←2010-01 2010-02 2010-03→ ↑2010 ↑all
2010-02-01
00:00:34 * MissPiggy wants to revamp education with computers as an integral part..
00:01:03 <MissPiggy> because I think it would be interesting, if you eliminate all computation by giving it to the machine -- to see what is left
00:01:28 <oklofok> our "applied mathematics" dep gives courses like that, theorems aren't proven, or at least you don't have to understand the proofs
00:01:47 <oklofok> which is sort of sad because stuff like probability theory is only found there
00:02:01 * MissPiggy doesn't know what 'understand' means anymore, either :(
00:02:25 <oklofok> for all intents and purposes, understand = memorize
00:02:47 <oklofok> well at least for this intent and purpose
00:03:17 * MissPiggy wants to write a sci-fi about it :P
00:03:27 <oklofok> err about what?
00:03:33 <oklofok> i should really continue reading...
00:03:35 <MissPiggy> computers
00:03:51 <olsner> hmm, this doesn't even seem to work :/
00:04:26 <oklofok> there's this part about singular cubes in the end i recall was pretty wacky, not sure i want to be reading it at 5 am
00:04:42 <MissPiggy> singular cubes = cube
00:04:49 <MissPiggy> pretty easy stuff if you ask me
00:04:57 <olsner> wait, it *did* work!
00:05:09 <oklofok> it's actually the image of a cube
00:05:29 <oklofok> f(C) where f is a continuous function
00:05:43 <oklofok> that's not exactly the wacky part
00:06:22 <oklofok> oh lol
00:06:28 <oklofok> sorry, idiot here
00:06:31 <oklofok> :P
00:07:04 <oklofok> forgot math terms usually also mean something in english
00:08:03 <MissPiggy> am I the only one who fantasizes about being ENCOURAGED to use a calculator to factor quadratics instead of doing pages and pages of it by hand?
00:08:33 <MissPiggy> why should it not be completely natural, when you learn a new algorithmic method of solving problems to program it in a re-useable way?
00:08:47 <coppro> I just use the quadratic formula; takes roughly as long
00:09:29 <MissPiggy> I don't care about the actual quadraitic, tat's just one example
00:09:46 <bsmntbombdood> i remember being in a class in middle school or so when the were trying to teach people to factor quadratics
00:10:16 <bsmntbombdood> they taught some kind of odd, non-deterministic method involving drawing shapes on paper
00:10:31 <oklofok> our exams rarely contain any computations that take more than half a minute even without a calculator... except for integrals
00:10:32 <MissPiggy> sounds cool
00:10:37 <MissPiggy> do you remember it?
00:10:40 <bsmntbombdood> wouldn't like me use the quadratic formula ^_^
00:11:23 <olsner> sweet, I even got the bijective de/encoding right, now all that's lacking is a weird language to plug in the middle of this
00:12:10 <oklofok> you could draw the shape of the curve and look at the picture to see where zeroes are
00:12:23 <oklofok> i suppose this was something cleverer
00:12:29 <MissPiggy> olsner what are you talking about?
00:12:32 <MissPiggy> I missed earlier
00:12:59 <oklofok> yeah what the FUCK are you talking about
00:16:00 <olsner> a program that reads stdin as a bijective base-256 number
00:16:11 <MissPiggy> bijective?
00:16:12 <olsner> then converts the number to base-pi, and back again
00:17:00 <bsmntbombdood> it doesn't make sense to have real bases
00:17:09 <olsner> hah! sure it does
00:17:13 <MissPiggy> why not?
00:17:46 <Sgeo> olsner, I thought input was base pi, and output was base e?
00:17:54 <Sgeo> Or something like that
00:18:02 <olsner> Sgeo: yeah, I just built it with output as base-pi to test that it's really working
00:18:23 <olsner> I don't really know yet how to convert directly from base-pi to base-e
00:18:48 <olsner> the burger is missing but I have the buns, so to speak
00:19:44 <oklofok> so how do you have a real base?
00:20:30 <olsner> basically, this: http://en.wikipedia.org/wiki/Non-integer_representation
00:20:55 <olsner> it's just pi^k instead of 10^k
00:21:17 <MissPiggy> bsmntbombdood: im fax
00:21:44 <olsner> that there has a greedy algorithm to generate the representation of any number in any base > 1
00:21:52 <bsmntbombdood> i suppose it works if your digits are reals too
00:22:02 <oklofok> "The numbers di are non-negative integers less than β."
00:22:11 <oklofok> this is really the only thing i wasn't sure about
00:22:23 <olsner> yeah, so base-pi has 0,1,2,3
00:22:39 <oklofok> bsmntbombdood: lol, yeah, that would be a pretty compact representation at least
00:22:55 <oklofok> like e = (e/pi)*pi
00:23:05 <oklofok> e in base pi
00:24:49 <oklofok> nice to know that works, for some reason i've never bumped into that
00:26:33 -!- MissPiggy has quit (Quit: MissPiggy).
00:27:37 <olsner> it's kind of messy since it doesn't add up to zero, but it seems that you don't need to bother with decimals to get the required precision
00:42:38 <pikhq> This is... Incredibly slow.
00:42:45 <pikhq> ./a.out `cat rot13.lazy` < ~/lazyk/lazier.scm 7.26s user 0.03s system 99% cpu 7.340 total
00:43:10 <pikhq> For comparison, the shipped interpreter:
00:43:10 <pikhq> ./a.out eg/rot13.lazy < lazier.scm 0.70s user 0.02s system 80% cpu 0.891 total
00:46:19 <Sgeo> pikhq, I believe olsner is looking for slowness?
00:51:25 <bsmntbombdood> http://www.maa.org/devlin/LockhartsLament.pdf
00:51:35 <Sgeo> readit
00:52:42 <oklofok> olsner: "add up to zero"? do you mean the representation of a natural number in base pi is infinite?
00:54:52 <olsner> oklofok: I suspect it might be, but I think you need a lot less than infinite to actually make it unambiguous after rounding
00:56:34 <oklofok> bsmntbombdood: sounds like the current state of mathematics
00:56:48 <oklofok> teaching of it, that is
00:56:51 <bsmntbombdood> oklofok: ...that's the point
00:57:05 <oklofok> mathematics in particular?
00:57:12 <oklofok> i haven't read all of it yet
00:58:45 <oklofok> i figured it might be about pretty much anything
00:59:04 <oklofok> but yeah maybe it could be just about math
01:00:20 <oklofok> okay i got on page two
01:00:21 <oklofok> ;)
01:08:35 <Sgeo> Is LogMeIn safe?
01:26:08 <madbr> bsmntbombdood: reading this, what I can think is... "ok but if mathematics were teached in a creative way, how would the teachers grade 150 different exams fairly"
01:26:09 -!- SimonRC has quit (Ping timeout: 265 seconds).
01:26:39 <bsmntbombdood> use a different method for evaluating performance, perhaps?
01:26:52 <bsmntbombdood> if exams are interfering with learning, there's obviously a problem
01:28:39 <madbr> like, this is kindof saying "they're not teaching creativity" and what I'm thinking is, "well, nobody teaches creativity"
01:28:41 <oklofok> give 'em a problem and give points for progress
01:32:17 * pikhq is amazed at what difference a few "foo = NULL;"s can do for memory usage.
01:33:44 <bsmntbombdood> poor garbage collection?
01:34:26 <pikhq> Garbage collectors can't collect things you still have references to.
01:34:31 <pikhq> Even if you're not using them again.
01:34:57 <pikhq> In this case, I was holding on to references before dethunking something.
01:35:08 <madbr> how about something like this: I'm writing a sound generator. I need a function that will generate a spectrum that is almost periodic, but where the phase and amplitude of harmonics vary with time
01:35:10 <pikhq> And a dethunk can take, well, any amount of time.
01:35:38 -!- SimonRC has joined.
01:36:05 <bsmntbombdood> i wonder if there are any garbage collectors that actually can infer that information
01:36:22 <pikhq> ML's apparently can.
01:36:29 <pikhq> As a side effect of its type system.
01:37:29 <oklofok> anyway a problem with making any subject better or more interesting to students is most people don't give a shit about anything. no matter how interesting it is, people don't want to hear it.
01:38:18 -!- Asztal has quit (Ping timeout: 240 seconds).
01:39:07 <pikhq> The biggest gain I got was making the dethunk function actually remove its closure... That's such a ridiculous source of memory leaks.
01:42:49 <olsner> hmm, it seems I have a lot to learn about precision
01:43:21 <olsner> worked fine for certain sizes of inputs that happened to make the program choose good numbers of bits to work with
01:43:37 <olsner> but failed to properly pi-encode "hello world"
02:12:33 <bsmntbombdood> hmmm
02:12:36 <madbr> working on a bignum system?
02:13:04 <bsmntbombdood> how do you compute, exactly, the representation of a pi-encoded number?
02:14:08 <pikhq> bsmntbombdood: Inaccurately.
02:15:50 <oklofok> bsmntbombdood: take the biggest power of pi that fits under it, and you get the first digit, then induction
02:16:12 <oklofok> well biggest power + biggest possible digit you can multiply it with
02:16:18 <bsmntbombdood> of course
02:16:45 <bsmntbombdood> but i don't know how to do that exactly
02:16:52 <madbr> then figure out at which digit to stop?
02:17:02 <oklofok> and it's enough to use as digits the natural numbers under the number being used as base.
02:17:20 <bsmntbombdood> any exponentiation/subtraction you are doing involves representations of pi, not pi
02:17:48 <oklofok> uh
02:18:03 <oklofok> so? we're still working with the actual number
02:19:09 <oklofok> say you have 21, you'd take pi^2 first, because that's the biggest power that fits under 21, it fits under it twice, so you take 21-2*pi^2, take the representation of that real in base pi, and you'll have the rest of the digits
02:19:30 <oklofok> so you get 2x.xxxxxxxx
02:19:36 <oklofok> x's continuing forever
02:19:47 <oklofok> (no idea what they are)
02:20:18 <oklofok> nothing about this involves "representations", although you'll need some to know what powers fit under what.
02:21:05 <bsmntbombdood> you can't exactly subtract 2*pi^2
02:21:12 <oklofok> you can't?
02:21:18 <oklofok> 21-2*pi^2 is a real number
02:21:54 <oklofok> we can represent it as a base pi number that contains only one whole digit, that is, its representation in base pi is of the form x.xxxxx
02:22:28 <bsmntbombdood> is 21-2*pi^2 equal to 3, 1.78, 1.2808, 1.268238, 1.2619555, 1.26082454, etc
02:23:03 <oklofok> are you saying you can't represent 21-2*pi^2 in base 10 using a finite number of digits?
02:23:12 <madbr> using base pi sounds weird
02:23:19 <oklofok> because that's completely true
02:23:32 <oklofok> you also can't represent it in a finite amount of bananas if bananas map in no way to real number.
02:23:33 <oklofok> s
02:24:05 <bsmntbombdood> you end up having to use an approximation of pi for all your calculations, is what i'm saying
02:24:16 <oklofok> who said anything about calculations?
02:24:45 <madbr> bsmntbombdood: you could store the operations, then evaluate just the number of digits you need
02:24:56 <oklofok> we are talking about the existence of the representation. pi has all sorts of algebraic properties, you can probably devise an algorithm for finding exact representations for numbers.
02:25:12 <oklofok> for a general real number that is obviously impossible
02:25:50 <bsmntbombdood> i understand that it exists, i am talking about an algorithm
02:25:59 <oklofok> oh
02:26:12 <oklofok> that's trickier
02:27:43 <oklofok> but yeah, approximate to some amount of digits. not exactly that interesting.
02:28:51 <madbr> well, pi can be done with, what, some polynomial series?
02:31:11 <oklofok> bsmntbombdood: an exact algorithm would be to just have the thing you are trying to represent in the form "21-2*pi^2". you start making approximations for pi to get the correct amount of pi^1's, say n, but then you'd continue with 21 - 2*pi^2 - n*pi, and use approximations to find the amount of 1's needed, etc.
02:33:55 <oklofok> (not actually an algorithm, but at least there's no error)
02:34:06 <oklofok> (i mean it might hang)
02:35:36 <oklofok> madbr: can't pi be done with pretty much anything
02:36:26 <madbr> you know better than be probably
02:37:00 <oklofok> i don't know anything about pi
02:37:27 <oklofok> i don't even know why it isn't algebraic
02:38:14 <oklofok> i hear it's like totally nontrivial
02:38:40 <oklofok> ...lol my gf will wake up soon, i should really start reading soon :P
02:39:19 <oklofok> (only 4:38, and i'm already reading about singular cubes, yay)
03:39:10 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
04:04:09 -!- puzzlet has joined.
04:20:00 -!- oklopol has joined.
04:21:30 -!- oklofok has quit (Ping timeout: 240 seconds).
05:24:47 -!- whtspc has joined.
05:31:02 -!- whtspc has quit (Ping timeout: 246 seconds).
05:59:40 -!- Pthing has joined.
06:08:35 -!- Ripley has joined.
06:25:45 -!- Ripley has left (?).
06:26:31 -!- oerjan has joined.
06:47:29 <Slereah> Hey
06:47:53 <oerjan> ho
06:47:59 <Slereah> I get a lot of Cannot send to channel for some reason on the other channels for some reason
06:48:02 <Slereah> What gives!
06:49:04 <oerjan> you don't seem to be registered. is it possible they only allow registered nicks to speak?
06:49:25 -!- madbr has quit (Quit: Radiateur).
06:50:18 <oerjan> they just changed ircd program, in case you haven't noticed, so some setup has changed
06:50:44 <Slereah> Weird
06:51:03 <oerjan> +R turned into some other quieting option, although i didn't have the impression it should change what happened in practice...
06:51:48 <Slereah> Yeah, but the channel I just tried talking doesn't have +R on
06:51:52 <Slereah> Or so it seems
06:51:58 <oerjan> +R doesn't exist any longer
06:52:05 <Slereah> And I can talk here just fine
06:52:08 <oerjan> it's +q something
06:52:29 <oerjan> well we've never silenced people here that i can remember...
06:52:32 <Slereah> It's just +cnt on ##physics
06:52:59 <oerjan> i'm not sure +q shows up by default, i think it's like a ban list
06:53:41 <oerjan> 07:52 0 - ##physics: ban $~a [by
06:53:42 <oerjan> JabberWalkie!~superdude@CPE0013d44814fd-CM001bd70964c4.cpe.net.cable.rogers.com, 121722 secs ago]
06:53:49 <oerjan> i think that might be the one
06:54:02 <oerjan> (found with /mode #physics +q)
06:54:09 <oerjan> *##physics
06:54:21 <Slereah> Well, let's try now
06:57:26 <Slereah> It works, thx
06:57:50 -!- tombom has joined.
07:03:29 -!- FireFly has joined.
07:08:40 -!- oerjan has quit (Quit: leaving).
07:39:44 -!- jcp has joined.
07:48:24 -!- FireFly has quit (Quit: Leaving).
07:50:47 -!- tombom has quit (Quit: Leaving).
07:52:27 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:15:18 -!- puzzlet has quit (Changing host).
08:15:18 -!- puzzlet has joined.
08:22:15 <olsner> hm, I'm thinking: screw this precision game, let's just choose an "official" number of bits for pi and store everything exactly as rationals when working
08:23:26 <olsner> but it would be better to just figure out how to make this reliable, that'd teach me something too
09:13:11 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
09:14:11 -!- fizzie has quit (Ping timeout: 260 seconds).
09:14:26 -!- Asztal has joined.
09:16:18 -!- fizzie has joined.
09:17:02 -!- mtve has joined.
09:27:44 -!- jcp has quit (Read error: Operation timed out).
09:39:59 -!- MigoMipo has joined.
09:56:01 -!- scarf has joined.
10:03:14 -!- MigoMipo has quit (Quit: Page closed).
10:23:19 -!- scarf has quit.
10:23:36 -!- scarf has joined.
10:53:53 -!- oklofok has joined.
10:56:25 -!- oklopol has quit (Ping timeout: 245 seconds).
10:58:23 -!- oklopol has joined.
11:00:53 -!- oklofok has quit (Ping timeout: 260 seconds).
11:20:32 -!- scarf has quit (Remote host closed the connection).
11:55:17 -!- Pthing has quit (Remote host closed the connection).
12:46:37 -!- MizardX has quit (Read error: Connection reset by peer).
12:47:26 -!- MizardX has joined.
12:51:45 -!- FireFly has joined.
12:54:56 -!- Pthing has joined.
13:01:20 -!- MigoMipo has joined.
13:19:33 -!- BeholdMyGlory has joined.
13:19:33 -!- BeholdMyGlory has quit (Changing host).
13:19:33 -!- BeholdMyGlory has joined.
13:27:56 -!- adam_d has joined.
13:51:33 -!- MizardX- has joined.
13:53:15 -!- MizardX has quit (Ping timeout: 260 seconds).
13:53:28 -!- MizardX- has changed nick to MizardX.
14:31:30 -!- MigoMipo has quit (Quit: Page closed).
14:54:33 -!- Pthing has quit (Remote host closed the connection).
14:56:24 -!- whtspc has joined.
14:57:45 -!- whtspc has left (?).
15:03:49 <AnMaster> Deewiant, what should 0j@ do? should it remain on j forever or should it reach the @ at some point?
15:05:30 <Deewiant> If 1j is like # then 0j is like z.
15:06:36 <AnMaster> Deewiant, hm does mycology test 0j?
15:06:43 <Deewiant> Beats me.
15:10:06 <AnMaster> Deewiant, so 0jv should take the down path then
15:10:21 <AnMaster> well strange, it looks like the code in cfunge does the wrong thing, but it does in fact do the right thing
15:12:06 <AnMaster> oh wait... now I see how it works
15:27:19 -!- cpressey has joined.
15:28:03 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
15:33:18 <cheater> hi AnMaster
15:47:10 <AnMaster> hello
15:51:29 -!- oerjan has joined.
15:51:38 -!- whtspc_ has joined.
15:55:55 -!- whtspc_ has quit (Client Quit).
16:11:58 -!- oklofok has joined.
16:13:25 -!- oklopol has quit (Ping timeout: 264 seconds).
16:27:09 -!- Deewiant has quit (Ping timeout: 276 seconds).
16:30:06 -!- MissPiggy has joined.
16:31:38 -!- MissPiggy has quit (Client Quit).
16:33:30 -!- kar8nga has joined.
16:35:27 -!- Deewiant has joined.
16:43:42 -!- oerjan has quit (Quit: Scheduled downtime approaching).
16:44:00 -!- MizardX- has joined.
16:46:00 -!- MizardX has quit (Ping timeout: 276 seconds).
16:46:29 -!- MizardX- has changed nick to MizardX.
16:58:53 <Ilari> Ugh. This lib needs to call closure as callback, but the function to register callback doesn't take context. :-/ ... Well, I think this needs trampolines (yay, runtime code generation). :-)
17:06:04 <pikhq> Well, if you don't care about it being even vaguely reentrant, you could just use a global. :P
17:13:32 <Ilari> Unfortunately, that isn't an option there.
17:17:16 -!- uoryfon has joined.
17:20:51 -!- tombom has joined.
17:27:38 -!- uoryfon_ has joined.
17:31:18 -!- uoryfon has quit (Ping timeout: 252 seconds).
17:31:27 -!- uoryfon_ has changed nick to uoryfon.
17:32:43 -!- kar8nga has quit (Remote host closed the connection).
17:40:32 -!- jcp has joined.
17:47:45 -!- MizardX has quit (Ping timeout: 276 seconds).
17:51:17 -!- augur has quit (Ping timeout: 246 seconds).
17:54:34 -!- uoryfon_ has joined.
17:57:38 * cpressey suddenly wants to start a punk band called "sudo rm -rf /"
17:57:42 -!- uoryfon has quit (Ping timeout: 252 seconds).
17:57:43 -!- uoryfon_ has changed nick to uoryfon.
17:58:51 -!- kar8nga has joined.
17:59:38 -!- uoryfon_ has joined.
18:02:39 -!- uoryfon has quit (Ping timeout: 252 seconds).
18:02:39 -!- uoryfon_ has changed nick to uoryfon.
18:04:48 -!- uoryfon_ has joined.
18:08:09 -!- uoryfon has quit (Ping timeout: 252 seconds).
18:08:12 -!- uoryfon_ has changed nick to uoryfon.
18:09:48 -!- uoryfon has quit (Quit: Colloquy for iPhone - http://colloquy.mobi).
18:14:03 -!- jcp has changed nick to javawizard2539.
18:14:40 -!- javawizard2539 has changed nick to jcp.
18:26:40 -!- augur has joined.
18:29:06 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
18:29:11 -!- lifthrasiir has joined.
18:53:52 -!- adam_d has quit (Ping timeout: 272 seconds).
18:59:16 -!- MissPiggy has joined.
18:59:18 -!- MissPiggy has quit (Changing host).
18:59:19 -!- MissPiggy has joined.
19:13:02 <MissPiggy> I think of a simple loop based language that you can write O(n^k) programs (for any fixed k)
19:13:30 -!- whtspc_ has joined.
19:19:46 <Ilari> Yeah, if one can only do fixed-count iteration, then one can only write algorithms that are in P.
19:20:16 <MissPiggy> every algorithm in P?
19:21:24 <Ilari> Actually, that's only if one can only iterate over collections. Number-based iteration allows algorithms not in P.
19:21:40 -!- uoryfon has joined.
19:21:44 <MissPiggy> oop
19:23:50 <Ilari> Actually, if one has number-based fixed iteration, one could do at least up to EXPTIME-complete.
19:25:43 <cpressey> I thought it was NEXPTIME
19:26:18 <Ilari> At least up to...
19:26:51 <Ilari> So might be some even bigger class...
19:27:17 <cpressey> Well, I don't remember where I heard that, and I don't know if I'm remembering it correctly.
19:29:41 -!- whtspc__ has joined.
19:29:45 <cpressey> At any rate, it contains every algorithm described as "feasible", which means... for "practical work" you don't need a Turing-complete computer. You only need TC if you want to write an interpreter :)
19:31:10 -!- whtspc__ has left (?).
19:32:11 <cpressey> s/computer/language/ to be a bit more precise.
19:38:09 -!- Slereah_ has joined.
19:38:50 -!- Slereah has quit (Ping timeout: 272 seconds).
19:40:05 -!- GreaseMonkey has joined.
19:47:02 -!- whtspc_ has quit (Read error: Connection reset by peer).
19:55:28 -!- uoryfon_ has joined.
19:57:40 -!- uoryfon has quit (Ping timeout: 245 seconds).
19:57:43 -!- uoryfon_ has changed nick to uoryfon.
20:06:00 -!- adam_d has joined.
20:06:24 -!- uoryfon_ has joined.
20:09:45 -!- uoryfon has quit (Ping timeout: 245 seconds).
20:09:47 -!- uoryfon_ has changed nick to uoryfon.
20:11:39 -!- uoryfon has quit (Quit: Colloquy for iPhone - http://colloquy.mobi).
20:11:42 <AnMaster> cpressey, so writing an interpreter isn't feasible then? ;P
20:14:50 -!- MigoMipo has joined.
20:14:52 -!- MigoMipo has quit (Excess Flood).
20:15:20 -!- MigoMipo has joined.
20:15:21 -!- MigoMipo has quit (Excess Flood).
20:20:50 <cpressey> AnMaster: Apparently not! I do like the distinction you can draw from it, though: "If I can prove my code halts, it's an algorithm. Otherwise, it's an interpreter."
20:26:28 <AnMaster> cpressey, you could have interpreters for sub-tc languages you know will always halt
20:26:55 <AnMaster> iirc ais/scarf designed one reversible always-halting language
20:27:03 <AnMaster> forgot the name of it
20:27:14 <uorygl> ais/scarf? Is that his name now?
20:27:35 <AnMaster> uorygl, he used scarf sometimes recently
20:28:04 <uorygl> Neat. Now I know who scarf is.
20:28:15 <AnMaster> hah
20:28:27 <AnMaster> hm 614 new mails
20:28:31 <AnMaster> most are probably spam
20:28:52 <AnMaster> actually no, it looks like there has been some huge debate on flightgear-devel list
20:30:02 <cpressey> AnMaster: well, if that'
20:30:44 <AnMaster> cpressey, ?
20:30:51 <cpressey> if that's an interpreter, then so is a program that solves the travelling salesman problem, is all I meant.
20:30:59 <AnMaster> cpressey, heh
20:31:03 <cpressey> Where the language there is weighted undirected graphs :)
20:31:26 <cpressey> Very, very sub-TC, you might say...
20:32:30 <cpressey> Now, back to fighting my favourite thing to ever come out of gnu: libtool.
20:32:37 * cpressey groans.
20:33:20 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
20:34:22 <cpressey> I wonder if the worlds of pain caused by shared libraries could have been avoided by just having OSes/filesystems that do hash consing.
20:35:45 <cpressey> Nah, probably not, b/c you have to rewrite all those pointers when you link statically, so the same library statically linked into two different files would look different in each. Ah well.
20:43:20 <AnMaster> cpressey, why are you using libtool?
20:43:45 <AnMaster> you can do shared libraries without libtool just fine
20:43:53 <AnMaster> cpressey, also how do you mean hash consing?
20:45:11 <cpressey> AnMaster: basically, every time you allocate a new piece of data, check to see if you already have an identical piece of data, and if so, just keep a reference to the existing data instead. The name comes from the research where the technique was developed in LISP.
20:45:41 <cpressey> as for why libtool... because i am stupidly trying to build some tools i need (subversion, right now) from source
20:46:13 <AnMaster> cpressey, like venti?
20:46:25 <AnMaster> (plan9 thing iirc)
20:46:33 <AnMaster> (yeah part of plan9 even)
20:47:13 <AnMaster> cpressey, they tend to just work after ./configure --prefix=$HOME/local/subversion && make && make install
20:48:18 <cpressey> Oh yes, it's very nice when they just work :) Darn thing keeps telling me it can't find expat, though.
20:48:35 <AnMaster> cpressey, so install expat
20:48:44 <AnMaster> sudo pacman -S expat
20:48:53 <AnMaster> or sudo apt-get install expat-dev or whatever
20:49:36 <pikhq> AnMaster: Building shared libraries without libtool is a pain to do portably.
20:49:38 <AnMaster> ah seems to be libexpat1-dev on ubuntu
20:49:48 <pikhq> ... Building anything *with* libtool is a pain, so I guess it evens out.
20:49:59 <AnMaster> pikhq, does it work on *bsd and linux easily without libtool?
20:50:23 <AnMaster> I don't really care about HP-UX, VMS and other obscure systems
20:50:30 <AnMaster> oh AIX too
20:50:30 <pikhq> AnMaster: It *works*, but people seem to suck at it.
20:50:41 <AnMaster> pikhq, isn't it just gcc -shared ?
20:50:45 <pikhq> (next person to build a shared library without -fPIC gets a kick to the balls)
20:50:56 <AnMaster> pikhq, well yes of course you use -fpic
20:50:58 <pikhq> AnMaster: Add -fPIC for fucks sake.
20:51:02 <AnMaster> also -fpic NOT -fPIC
20:51:15 <AnMaster> the lower case version is better on some platforms iirc
20:51:47 <pikhq> Yes, like DOS.
20:51:47 <pikhq> And DOS.
20:51:49 <pikhq> Also DOS.
20:52:01 <olsner> and sparc
20:52:45 <AnMaster> pikhq, what? -fpic vs. -fPIC?
20:52:46 <AnMaster> no
20:52:57 <pikhq> No, wait...
20:53:06 <AnMaster> it makes a difference only on SPARC, m68k and RS/6000 says man gcc
20:53:15 <pikhq> According to the man page, it only makes difference on m68k, PowerPC, and SPARC.
20:53:29 <olsner> haha
20:53:43 <AnMaster> pikhq, mine lists SPARC, m68k and RS/6000 under -fpic but m68, PowerPC and SPARC under -fPIC
20:53:45 <pikhq> -fpic makes a smaller offset table.
20:53:48 <AnMaster> whatever that is supposed to mean
20:53:56 <pikhq> If it's too small, it'll not compile.
20:54:01 <pikhq> -fPIC will always work.
20:54:04 <AnMaster> pikhq, it is faster though
20:54:09 <AnMaster> iirc
20:54:20 <pikhq> AnMaster: If your shared library is small enough.
20:54:22 <AnMaster> pikhq, and if you need such a large GOT you have too many functions
20:54:35 <AnMaster> divide it in more
20:54:50 <AnMaster> a library should follow the unix philosophy too
20:54:56 <AnMaster> (do one thing, do it well)
20:54:59 <pikhq> Anyways.
20:55:10 <olsner> on sparc the smaller table means single instructions can be used to load offsets into it, -fPIC generates double-instruction constant loading that can handle large offsets
20:55:12 <pikhq> Many build systems build shared libraries *without* using position-independent code.
20:55:30 <AnMaster> olsner, right
20:55:36 <pikhq> Because the x86 dynamic linker will manually relocate the library if it's not PIC.
20:55:37 <AnMaster> pikhq, that won't load
20:55:44 <AnMaster> on x86-64 iirc
20:55:46 <pikhq> It will on x86.
20:55:48 <pikhq> And *nowhere* else.
20:55:51 <AnMaster> pikhq, not on x86-64
20:56:00 <AnMaster> pretty sure about that
20:56:03 <pikhq> AnMaster: Yes. That's not x86.
20:56:11 <AnMaster> pikhq, well the difference is slight
20:56:18 <AnMaster> also x86-64 is the norm nowdyas
20:56:21 <AnMaster> days*
20:56:25 <AnMaster> for linux
20:56:31 <pikhq> The difference between the CPU architecture is slight.
20:56:38 <pikhq> The ABI is radically different.
20:56:44 <AnMaster> true
20:57:06 <AnMaster> where is the x86 abi
20:57:14 <AnMaster> I only read the amd64 abi
20:57:21 <pikhq> Undefined.
20:57:24 <pikhq> It's per-OS.
20:57:28 <pikhq> And often per-compiler.
20:57:32 <AnMaster> pikhq, well it must be documented for linux...
20:57:34 <AnMaster> somewhere
20:57:40 <pikhq> And if you're on Windows, give up now.
20:57:48 <AnMaster> pikhq, also Microsoft ignores the amd64 abi yes
20:58:02 <pikhq> Microsoft defines its own, yes.
20:58:13 <pikhq> Windows on x86 has 3 or 4 different calling conventions.
20:58:43 <pikhq> The Linux x86 ABI is defined in the LSB.
20:59:17 <AnMaster> I would like a nice, easy to use, 3D modeller, based on using boolean functions between primitives. Such as "intersection of this cube and (union of that cylinder and that sphere)". Anyone know such a thing?
20:59:45 <pikhq> Except for C++-specific details; those are from the IA64 ABI documentation for all GCC-supported architectures.
20:59:47 <AnMaster> this would in other words not be based on polygons (or it could be as well)
21:00:13 <AnMaster> pikhq, linux use different calling convetions on x86 too. regparam for example
21:00:19 -!- rodgort has quit (Quit: Coyote finally caught me).
21:00:28 <pikhq> AnMaster: regparam is very, very rarely used.
21:00:38 <AnMaster> cfunge uses regparam attribute on x86 to speed things up (there is a measurable difference)
21:00:53 <cpressey> AnMaster: thank you. libexpat1-dev worked. Why it worked and why plain 'expat' did not, I still have no good idea -- it's not like extra so's were installed (and that's what it was saying it couldn't find.)
21:01:06 <AnMaster> cpressey, plain expat is a program it says
21:01:17 <AnMaster> cpressey, "expat - XML parsing C library - example application"
21:01:22 <AnMaster> apt-get tells me that
21:01:27 <AnMaster> err
21:01:28 <AnMaster> apt-cache
21:02:04 <pikhq> Wheras on Windows, there's fastcall, stdcall, cdecl, safecall, and pascal calling conventions...
21:02:04 <cpressey> AnMaster: but expat installs /usr/lib/libexpat.so* ... which should be enough to link to, given that it didn't complain about headers.
21:02:07 -!- rodgort has joined.
21:02:23 <AnMaster> cpressey, well. maybe it needs *.la or *.a?
21:02:25 -!- rodgort has quit (Client Quit).
21:02:40 <pikhq> And those are just in use by Microsoft's compiler.
21:02:50 <AnMaster> cpressey, if you are doing subversion why not apt-get builddep subversion
21:02:53 <AnMaster> or was it builddeps
21:02:54 <AnMaster> ?
21:02:57 <AnMaster> something like that
21:03:00 <cpressey> AnMaster: well, libexpat.la appears to have been in my lib dir since Jan 19 as well
21:03:16 <cpressey> At any rate, it's built. best not to think any more about it, right? :)
21:03:19 <AnMaster> pikhq, delphi (which is pascal) used fastcall internally iirc
21:03:23 <pikhq> There's *also* the Borland fastcall and the GNU cdecl.
21:03:29 <AnMaster> or was it a modified fastcall?
21:03:32 <AnMaster> well probably
21:03:42 <AnMaster> pikhq, gnu uses it's own cdecl on windows?
21:03:53 <pikhq> AnMaster: The difference is in struct packing.
21:04:06 <AnMaster> <cpressey> At any rate, it's built. best not to think any more about it, right? :) <-- wrong. You always try to figure out *why* something unexpected happened
21:04:11 <AnMaster> pikhq, -_-
21:04:15 <pikhq> It packs its structs differently from Microsoft C.
21:04:15 -!- rodgort has joined.
21:04:23 <AnMaster> pikhq, that isn't calling convention!
21:04:26 <pikhq> With an attribute for Microsoft packing.
21:04:31 <AnMaster> struct packing is, well, ABI yes
21:04:36 <AnMaster> but not calling convention
21:04:38 <pikhq> Fine, fine, remove the GNU cdecl.
21:04:52 <pikhq> Borland still has its own fastcall.
21:05:06 <pikhq> (different registers are used)
21:05:12 <AnMaster> pikhq, anyway regparam with gcc isn't that rarely used. Let me grep cfunge sources for number of times it is used!
21:05:37 <pikhq> cfunge is the first thing I've heard of actually *using* it.
21:05:42 <cpressey> AnMaster: maybe my smiley should have been a ;-)
21:05:43 <AnMaster> pikhq, does MS still use fastcall?
21:05:49 <AnMaster> cpressey, maybe
21:05:53 <pikhq> Yes.
21:06:08 <AnMaster> pikhq, for what sort of functions
21:06:09 <pikhq> Random parts of Win32 use it.
21:06:13 <AnMaster> pikhq, also what about thiscall?
21:06:30 <pikhq> That's just a C++ implementation detail.
21:06:32 <AnMaster> ah
21:06:33 <pikhq> "First argument is this".
21:06:43 <AnMaster> s/C++/python/ ;P
21:06:54 <AnMaster> (except there it is explicit!)
21:07:00 <pikhq> Heheh.
21:07:42 <pikhq> Microsoft at least went sane on x86_64...
21:07:44 <AnMaster> how comes C++ needs it's own "different from C" ABI, while python manages fine with the C abi.
21:07:48 <pikhq> There is one calling convention.
21:07:48 <AnMaster> well yes I can see the reasons
21:07:50 <AnMaster> but still
21:07:52 <AnMaster> it makes you wonder
21:08:10 <AnMaster> pikhq, different from linux one though on x86_64
21:08:19 <AnMaster> pikhq, also doesn't syscalls use their own?
21:08:24 <AnMaster> on both linux and windows
21:08:26 <pikhq> Yes, but it's at least a *single* calling convention.
21:08:36 <pikhq> Syscalls must -- there's no way to just "call" them.
21:08:43 <AnMaster> pikhq, call gates?
21:08:50 <AnMaster> I have a vague memory of reading about that
21:08:58 <AnMaster> not sure how it worked
21:09:00 <pikhq> AnMaster: Even that requires some specific work on them.
21:09:38 <pikhq> The Linux call gate is linked in before the dynamic linker is started.
21:09:51 <pikhq> And the Linux call gate is at a specific address.
21:09:52 <AnMaster> true
21:09:56 <AnMaster> also no longer used
21:10:02 <AnMaster> it uses SYSCALL/SYSRET iirc?
21:10:07 <pikhq> ... No, the call gate is still used.
21:10:09 <AnMaster> or was it SYSENTER/SYSEXIT?
21:10:13 <pikhq> The call gate is a *recent thing*.
21:10:17 <AnMaster> pikhq, if you mean the vdso...
21:10:27 <pikhq> Yes, that's the call gate.
21:10:36 <AnMaster> pikhq, not the call gate in the meaning I used it
21:10:42 <AnMaster> http://en.wikipedia.org/wiki/Call_gate
21:10:52 <AnMaster> "Assuming a call gate has been set up already by the operating system kernel, code simply does a CALL FAR (LCALL in AT&T syntax) with the necessary segment selector (the offset field is ignored). "
21:11:09 <pikhq> Oh, that bloody thing.
21:11:24 <AnMaster> pikhq, so you know about it?
21:12:12 <pikhq> Linux doesn't use that.
21:12:22 <AnMaster> did I say it did?
21:12:27 <pikhq> No.
21:12:37 <pikhq> I'm saying it doesn't at all, though.
21:13:01 <Ilari> SYSENTER is quite funky. IIRC, it does not save address that called it.
21:13:10 <pikhq> Because it damned well doesn't help matters any.
21:13:19 <AnMaster> is it SYSCALL that is used then?
21:13:33 <pikhq> Linux's entry methods are an interrupt, syscall/sysret, or sysenter/sysexit.
21:13:37 <Ilari> So there can only be one SYSENTER in each VM space.
21:13:48 <pikhq> The Linux VDSO uses whichever one is the fastest.
21:13:48 <AnMaster> "It should be noted that call gates are more flexible than the SYSENTER/SYSEXIT and SYSCALL/SYSRET instructions since unlike the latter two, call gates allow for changing from an arbitrary privilege level to an arbitrary (albeit higher or equal) privilege level. The fast SYS* instruction only allow control transfers from ring 3->0 and vice versa. Upon comparing call gates to interrupts, call gates are
21:13:49 <AnMaster> significantly faster."
21:13:55 <cpressey> Interesting stuff.
21:14:32 <cpressey> I would think they would be a lot faster, especially for some access patterns (though maybe not ones that are frequently used in modern OSes)
21:14:53 <Ilari> And that SYSENTER is part of Linux-gate VDSO.
21:14:59 <AnMaster> cpressey, iirc virtualbox uses ring 2 a bit if there is no VT-d/whatever support
21:15:05 <AnMaster> or VT-x or whatever it was
21:15:12 <cpressey> Waiting for the next interrupt can be killer.
21:15:21 <pikhq> Ilari: Only if it's present.
21:15:26 <AnMaster> Ilari, even on x86-64?'
21:15:31 <AnMaster> s/'//
21:15:46 <AnMaster> I thought it used syscall exclusively on x86-64
21:16:21 -!- MissPiggy has quit (Read error: Connection reset by peer).
21:16:29 <AnMaster> basically AMD64 deprecated Intel's sysenter in the AMD64 specs
21:16:33 * AnMaster opens the file
21:17:01 <AnMaster> "6.1.2 SYSENTER and SYSEXIT (Legacy Mode Only)"
21:17:02 <Ilari> Well, if X64 has SYSCALL, its probably better than SYSENTER.
21:17:20 <AnMaster> " L i ke S Y S C A L L a n d S Y S R E T, S Y S E N T E R a n d
21:17:20 <AnMaster> SYSEXIT are low-latency system call and return instructions designed for use by system and
21:17:20 <AnMaster> application software implementing a flat-memory model. However, these instructions are illegal in
21:17:20 <AnMaster> long mode and result in an undefined opcode exception (#UD) if software attempts to use them.
21:17:20 <AnMaster> Software should use the SYSCALL and SYSRET instructions when running in long mode."
21:17:24 <AnMaster> yeargh
21:17:28 * AnMaster kills evince
21:17:37 <AnMaster> what the hell did it do there
21:17:47 <AnMaster> with that spacing
21:17:52 <pikhq> Ilari: Syscall and Sysenter do roughly the same thing.
21:18:02 <pikhq> One was created by Intel, the other by AMD.
21:18:20 <Ilari> pikhq: And presumably SYSCALL saves RIP...
21:18:46 <pikhq> Probably.
21:19:10 <AnMaster> doesn't linux map the clock in process memory for gettimeofday() and such
21:19:18 <AnMaster> it is iirc done in the vdso magic
21:19:41 <pikhq> Possibly.
21:23:05 -!- soupdragon has joined.
21:27:03 -!- soupdragon has quit (Client Quit).
21:50:08 -!- MissPiggy has joined.
22:07:33 -!- MissPiggy has quit (Quit: * I'm too lame to read BitchX.doc *).
22:16:01 -!- tombom has quit (Quit: Leaving).
22:19:58 -!- kar8nga has quit (Remote host closed the connection).
22:40:19 -!- coppro has joined.
22:40:52 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:04:53 -!- adam_d has quit (Quit: Leaving).
23:16:03 -!- Leonidas has quit (Changing host).
23:16:03 -!- Leonidas has joined.
23:20:32 <olsner> hah, getting a newer gmp and compiling mpfr and gmp locally seems to have given around 20%
23:21:13 <olsner> optimizing while the program isn't even made correct <3
23:21:35 -!- coppro has quit (Quit: restarting the X CPU-Hoggin System).
23:22:18 -!- rodgort has quit (Quit: Coyote finally caught me).
23:22:38 -!- rodgort has joined.
23:22:52 -!- Leonidas has quit (Quit: Reconnecting).
23:22:52 -!- Leonidas has joined.
23:22:52 -!- Leonidas has quit (Changing host).
23:22:52 -!- Leonidas has joined.
23:23:16 -!- Leonidas has quit (Client Quit).
23:24:26 -!- coppro has joined.
23:25:39 -!- Leonidas_ has joined.
23:25:39 -!- Leonidas_ has quit (Changing host).
23:25:39 -!- Leonidas_ has joined.
23:25:56 -!- Leonidas_ has changed nick to Leonidas.
23:29:02 -!- augur has quit (Ping timeout: 265 seconds).
23:29:33 -!- GreaseMonkey has quit (*.net *.split).
23:32:44 -!- GreaseMonkey has joined.
23:39:09 -!- XRY has joined.
23:39:11 -!- XRY has quit (Read error: Connection reset by peer).
23:40:41 -!- XRY has joined.
23:40:46 -!- XRY has left (?).
23:41:38 -!- SimonRC has quit (Ping timeout: 246 seconds).
23:41:54 -!- XRY has joined.
23:41:59 -!- XRY has left (?).
23:43:23 -!- FireFly has quit (Quit: Leaving).
23:45:23 -!- XRY has joined.
23:45:28 -!- XRY has left (?).
23:47:15 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
23:47:31 -!- GreaseMonkey has joined.
23:49:37 -!- XRY has joined.
23:49:46 -!- XRY has left (?).
23:51:58 -!- SimonRC has joined.
23:58:34 -!- mquin has joined.
23:58:45 -!- zzo38 has joined.
23:58:50 <zzo38> Finally, it works!
23:58:59 <zzo38> It works! The OASYS->TAVSYS works! It works! It {OUCH}
2010-02-02
00:01:31 <zzo38> http://pbox.ca/121kt
00:09:51 -!- jcp has joined.
00:12:04 -!- cheater has quit (Ping timeout: 260 seconds).
00:12:35 <zzo38> Hay you ! No cheating! Of course I am not channel operation
00:12:39 -!- zzo38 has left (?).
00:19:18 <pikhq> http://sprunge.us/HdLe Hooray, boredom.
00:22:45 <pikhq> (CPS in C. For no good reason.)
00:23:02 <olsner> all hail bad reasons
00:23:27 <olsner> all also hail absense of reasons
00:24:45 <olsner> also, dividing by the same (large arbitrary-precision floating-point) value was slower than inverting the value and multiplying instead
00:25:13 <olsner> almost 3x as fast, actually
00:28:41 -!- cheater has joined.
00:30:42 <cpressey> IMO it's a sign of a fairly useless pastebin if it doesn't support copying out as plain text! (pbox.ca)
00:30:45 <cpressey> Night all.
00:30:49 -!- cpressey has left (?).
00:33:33 -!- zzo38 has joined.
00:35:14 <zzo38> This is a better one http://pastebin.ca/raw/1774973
00:35:51 <zzo38> Now it is not useless
00:37:39 <zzo38> I have a new kind of question: Do you know how to play Quintuple Arcana?
00:48:05 -!- cheater has quit (Ping timeout: 245 seconds).
00:52:04 <zzo38> How many eyes does ettercap has?
00:55:36 -!- cheater has joined.
01:01:08 <zzo38> Even fortune cookies need to sleep sometime!
01:06:07 -!- zzo38 has quit (Quit: That is not a proper question).
01:48:35 -!- rodgort has quit (Quit: Coyote finally caught me).
01:48:51 -!- rodgort has joined.
02:39:42 -!- Pthing has joined.
03:14:04 <pikhq> http://filebin.ca/mckche/ski.tar.gz
03:14:46 -!- augur has joined.
04:18:14 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
04:19:33 -!- jcp has joined.
04:20:05 -!- Gracenotes has quit (Remote host closed the connection).
04:24:33 -!- Gracenotes has joined.
04:47:52 -!- Azstal has joined.
04:49:27 -!- Asztal has quit (Ping timeout: 252 seconds).
05:10:48 -!- jcp has quit (Read error: Connection reset by peer).
05:12:00 -!- jcp has joined.
05:34:44 -!- Asztal has joined.
05:35:26 -!- Azstal has quit (Ping timeout: 272 seconds).
05:41:06 -!- Asztal has quit (Ping timeout: 240 seconds).
05:44:31 -!- jcp has quit (Read error: Connection reset by peer).
05:45:46 -!- jcp has joined.
06:06:18 -!- madbr has joined.
06:25:50 -!- jcp has quit (Read error: Connection reset by peer).
06:27:02 -!- jcp has joined.
06:45:57 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
06:48:52 -!- fizzie has quit (Read error: Operation timed out).
06:48:53 -!- FireFly has joined.
06:48:53 -!- FireFly has quit (Changing host).
06:48:53 -!- FireFly has joined.
06:50:01 -!- fizzie has joined.
06:51:19 -!- coppro has joined.
07:02:19 -!- madbr has quit (Quit: Radiateur).
07:03:10 -!- tombom has joined.
07:04:04 -!- oklopol has joined.
07:07:40 -!- oklofok has quit (Ping timeout: 245 seconds).
07:26:58 -!- MigoMipo has joined.
07:38:05 -!- oerjan has joined.
07:50:00 -!- tombom has quit (Quit: Leaving).
07:51:22 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:56 -!- FireFly has quit (Quit: Leaving).
08:25:33 -!- FireFly has joined.
08:25:33 -!- FireFly has quit (Changing host).
08:25:34 -!- FireFly has joined.
08:32:32 -!- FireFly has quit (Quit: Leaving).
08:37:22 -!- oerjan has quit (Quit: leaving).
09:00:07 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
10:09:18 -!- MizardX has joined.
10:23:31 -!- Pthing has quit (Remote host closed the connection).
10:30:45 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
10:32:01 -!- jcp has joined.
10:56:08 -!- BeholdMyGlory has joined.
11:06:40 -!- jcp has quit (Ping timeout: 272 seconds).
11:15:43 -!- Pthing has joined.
12:05:42 -!- scarf has joined.
12:50:06 -!- Pthing has quit (Remote host closed the connection).
13:43:13 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
13:47:09 -!- Sgeo_ has joined.
13:50:42 -!- Sgeo has quit (Ping timeout: 272 seconds).
13:54:26 -!- augur has quit (Ping timeout: 240 seconds).
14:09:34 <cheater> is function-level programming similar to writing completely lambda lifted programs?
14:41:36 -!- augur has joined.
15:32:08 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
15:32:42 -!- cpressey has joined.
15:49:21 -!- FireFly has joined.
16:08:05 -!- MissPiggy has joined.
16:10:28 -!- FireFly has quit (Quit: Leaving).
16:17:42 -!- MigoMipo has joined.
16:33:38 -!- sebbu2 has joined.
16:36:34 -!- sebbu3 has joined.
16:36:44 -!- sebbu has quit (Ping timeout: 260 seconds).
16:37:04 -!- sebbu3 has changed nick to sebbu.
16:39:46 -!- FireFly has joined.
16:39:46 -!- sebbu2 has quit (Ping timeout: 240 seconds).
16:39:46 -!- FireFly has quit (Changing host).
16:39:46 -!- FireFly has joined.
16:43:48 -!- sebbu has quit (Ping timeout: 276 seconds).
16:55:14 -!- sebbu has joined.
17:03:39 -!- oerjan has joined.
17:04:44 <oerjan> <cheater> is function-level programming similar to writing completely lambda lifted programs?
17:05:04 <oerjan> i think it's more similar to writing point-free programs
17:05:34 <oerjan> or wait, what is lambda lifted again
17:07:00 -!- Asztal has joined.
17:08:33 <oerjan> hm right
17:11:58 -!- BeholdMyGlory has joined.
17:12:50 <oerjan> from what i get from wikipedia's http://en.wikipedia.org/wiki/Function-level_programming article + my slight knowledge of FP, completely lambda-lifted programs are almost the opposite of that
17:13:08 <oerjan> they certainly have plenty of variables
17:14:13 <oerjan> cheater: ^
17:15:25 <oerjan> and point-free programs are not quite the same as FP's style either, since you can definitely combine new higher-order functions with point-free programming
17:15:53 <cpressey> oerjan: that's what I said at first (function level being similar to pointfree), but I'm still trying to figure out what the heck Backus was talking about.
17:16:30 <oerjan> yeah his strictly limited set of higher-order functions makes it very weird
17:18:13 <cpressey> Yeah, he seems to make a strict distinction between functions and functionals, which isn't made in most discussion of functional programming. And I'm not sure I think it's all that useful... when functions *are* values, is the division between "function-level" and "value-level" really that strong?
17:18:34 -!- oerjan has set topic: 16 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:20:06 <cpressey> The other thing that FP seems to do (although this is possibly coincidental, and not part of function-level programming) is that it's not possible to embed a literal in a program -- all your values have to supplied as input.
17:20:28 -!- oerjan has set topic: 15 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:20:37 -!- tombom has joined.
17:21:25 <cpressey> Which means you can't really write a program to compute the diameter of a circle, given its radius. You would have to write "... given its radius and the current universe's value of pi" :)
17:22:12 <oerjan> hm doesn't FP have a way of creating constant functions?
17:22:14 <cpressey> Although, depending on the language, there are ways to defeat that, given logical invariants like x & ~x -> false
17:22:45 <cpressey> What I understood was, it has a way to turn a value into a constant function (but the value still has to come from input)
17:24:44 <oerjan> i don't see how that makes sense if functions are _not_ values
17:25:18 <oerjan> and my impression is they are not
17:26:18 <oerjan> my intuition tells me that it's more like a function form "constant x" which is a function, although x is a value - wp article is not clear on this
17:26:28 <cpressey> Well, you can build new ones using functionals. So you can manipulate them, like you would manipulate any other value. So it seems safe-ish to say functions "are values" in FP. Even if they're a compeltely different type of value from everything else.
17:27:19 <oerjan> sure, but a function in FP cannot turn a value into a function
17:27:30 <oerjan> it can only give values as results, i think
17:27:38 * oerjan should find a more reliable source
17:27:44 <MissPiggy> FP is STUPID!!!!!!
17:27:45 <cpressey> hm, that's a point.
17:28:00 <cpressey> MissPiggy has a point also.
17:28:02 <MissPiggy> anyone that wants to do functional programming without LAMBDA has lots his MARBLES
17:28:19 <MissPiggy> it's no coindicendec that LAMBDA is an anagram of MARBLES
17:28:37 <oerjan> you must have lost some marbles to think that
17:28:45 <oerjan> (the anagram part)
17:29:17 <cpressey> LAMBSER DRACULA'S
17:31:26 <cpressey> I kind of think the whole function/functional thing in FP was to simplify/rigidify the type system. Kind of like Russel's stuff about making sets of sets different from plain old sets.
17:35:06 <oerjan> oh, in http://www.stanford.edu/class/cs242/readings/backus.pdf it shows that constant is a functional form, not a function
17:35:25 <oerjan> and functional forms may have object arguments as well as function arguments
17:35:27 <scarf> [17:18] *** oerjan sets the channel topic to "16 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D". [17:20] *** oerjan sets the channel topic to "15 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D".
17:35:34 <scarf> I love the sort of time dilation that makes ehird capable of that
17:35:55 <cpressey> oerjan: That's what I suspected - so "functionals take functions to functions" on wp is wrong
17:36:10 <oerjan> i was first thinking that he hadn't been here since a sunday, but then i checked his reddit page and there was a comment from 15 days ago
17:36:22 <oerjan> yeah
17:43:13 <MissPiggy> where is ehird?
17:43:29 <oerjan> no idea
17:43:32 -!- kar8nga has joined.
17:44:58 <scarf> maybe we should try email?
17:45:05 <scarf> my guess is an extended ban from the internet, for whatever reason
17:45:57 <AnMaster> <cpressey> Which means you can't really write a program to compute the diameter of a circle, given its radius. You would have to write "... given its radius and the current universe's value of pi" :) <-- why did I just imagine a continuation of the universe....
17:46:02 <scarf> most recent email I have from ehird (which he posted to a mailing list I'm on) is jan 13
17:46:46 <oerjan> he's been online since then though
17:46:54 <AnMaster> hm
17:47:23 <AnMaster> also, could haskell exist without *external* state.
17:47:25 <oerjan> 18th or so
17:47:31 <AnMaster> as in, imagine there is no universe, just haskell
17:47:51 <scarf> I've emailed him, anyway
17:47:55 <AnMaster> or maybe not
17:47:57 <MissPiggy> ;(
17:49:36 <scarf> AnMaster: sounds worryingly like the smalltalk view of the universe
17:49:43 <scarf> but that's pretty easy to set up
17:49:48 <scarf> just ban the IO monad, look no more universe
17:50:31 <AnMaster> scarf, also ST/state.
17:50:40 <scarf> AnMaster: that's an internal thing
17:50:42 <AnMaster> since there is nowhere for the interpreter to store the state
17:50:50 <scarf> and yes there is, it can be stored in the moand
17:50:51 <scarf> *monad
17:50:54 <AnMaster> without existing in an external stateness context
17:50:56 <scarf> you can implement the state monad in pure haskell
17:51:02 <AnMaster> scarf, oh?
17:51:15 <AnMaster> scarf, what about the ST one?
17:51:19 <scarf> I don't know about ST
17:51:25 <AnMaster> hm okay
17:51:34 <pikhq> ST is only implemented with magic for efficiency's sake.
17:51:40 <pikhq> State *is* pure Haskell.
17:51:58 <pikhq> In fact, IO is only implemented with magic for utility's sake.
17:52:15 <scarf> I mean, I don't know what ST is
17:52:16 <pikhq> It's perfectly feasible to implement it in pure Haskell, so long as you don't mind it all doing not-much.
17:52:24 <pikhq> scarf: Strict state monad.
17:52:32 <scarf> ah, ouch
17:52:34 <AnMaster> also unless the gc could be implemented in pure haskell, this haskell's heap would grow forever, no?
17:52:46 <pikhq> That's an implementation detail.
17:52:48 <scarf> that sounds like it would be a) implementable nonmagically, and b) very inefficient if you did
17:53:02 <pikhq> scarf: Yes and yes.
17:53:22 <scarf> AnMaster: you're assuming something with a relatively standard pointer architecture for gc to even make sense
17:53:39 <pikhq> AnMaster: There's no *need* for garbage collection.
17:53:41 <scarf> I have more than one Underload interp; one of them uses a ref-counting gc, many others don't use or need any sort of gc at all
17:53:47 <AnMaster> scarf, well we are getting to that
17:53:54 <pikhq> Only for most practical implementations.
17:53:55 <AnMaster> hm
17:56:13 <scarf> gc is more-or-less a side effect of using references rather than just copying the entire object whenever you need a copy
17:56:15 <MissPiggy> I was trying to implement ST today
17:56:21 <MissPiggy> but I did not succeed
17:56:39 <scarf> obviously, the first is more efficient on standard computers, but there's no reason it has to work like that in practice
17:56:50 <scarf> well, in theory at least, but probably practice too
17:57:05 <scarf> for instance, you wouldn't use gc if you were implementing underload in, say, lisp
17:57:09 <cpressey> Indeed, when you have an infinite amount of tape, why bother reusing it?
17:57:10 <scarf> because having two layers of gc is pointless
17:57:34 <AnMaster> scarf, and pointerless?
17:57:37 <scarf> cpressey: I think Keymaker's BF implementation of Underload does indeed not use pointers, and it would be a lot more bloated if it did
17:57:48 <AnMaster> (sorry, should have left that to oerjan)
17:57:58 <scarf> oh, didn't realise it was meant to be a pun
17:58:44 <AnMaster> also the bf tape is not infinite
17:58:48 <AnMaster> in practise
17:59:06 <AnMaster> scarf, just write one in C and use gcc-bf ;P
17:59:38 <scarf> AnMaster: I'm now trying to imagine the size of Underload program that would be needed to make it run faster in gcc-bf-derlo than in keymaker's interp
17:59:58 <scarf> I think there is one, but I worry that it might be so large that it wouldn't fit into the limited-sized memory gcc-bf uses
18:00:20 <AnMaster> heh
18:00:46 <AnMaster> scarf, doesn't it partly depend on memory patterns
18:00:56 <AnMaster> like an endless loop that duplicates some data along the way
18:01:04 <scarf> AnMaster: yes, of course
18:01:07 <AnMaster> but which keeps the stack at a limited max
18:01:37 <AnMaster> scarf, wouldn't that require a gc to not run out of memory?
18:01:54 <scarf> AnMaster: it would either run out with or without, or not run out with or without
18:02:13 <AnMaster> scarf, oh?
18:02:34 <scarf> AnMaster: because you need either infinitely many pointers to the data/infinitely many copies of the data
18:02:37 <scarf> or finitely many of both
18:02:59 <AnMaster> ah
18:03:43 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:^):^:^:^:^^^S
18:03:43 <fungot> ...out of time!
18:04:23 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:^):^:^:^^^S
18:04:24 <fungot> ...out of time!
18:04:27 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:^):^:^^^S
18:04:28 <fungot> ...out of time!
18:04:31 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:^):^^^S
18:04:32 <fungot> ...out of time!
18:04:35 <scarf> ok, that's strange
18:04:39 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:^)^^S
18:04:39 <fungot> ...bad insn!
18:04:57 <cpressey> fungot evaluates Underload?
18:04:58 <fungot> cpressey: what is stfu?". i want a divorce!!... this is nice but the drivers aren't always
18:05:00 <scarf> cpressey: yes
18:05:23 <scarf> ^ul (x)(y)(z)(a(~)~*^~)^S
18:05:23 <fungot> x
18:05:33 <scarf> ^ul (x)(y)(z)(a(~)~*^~):*^S
18:05:33 <fungot> y
18:05:39 <scarf> oh, I see what I did wrong
18:05:50 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:*):*:*:*:*^^S
18:05:50 <fungot> ...too much stack!
18:05:53 <scarf> ^ul (x)(y)(z)(a(~)~*^~)(:*):*:*:*^^S
18:05:53 <fungot> x
18:05:57 <scarf> there we go
18:06:43 <scarf> still, the mistaken original somehow segfaulted when I pressed control-C, for no obvious reason
18:06:43 <scarf> in derlo
18:07:01 <scarf> oh, with a stack overflow
18:07:13 <scarf> (thanks Valgrind!)
18:11:35 <scarf> meanwhile, /this/ has happened to the Java documentation: http://java.sun.com/javase/reference/api.jsp
18:11:52 -!- cheater2 has quit (Ping timeout: 256 seconds).
18:12:29 <scarf> and likewise, http://sun.com is just a redirect
18:12:51 <AnMaster> cpressey, see:
18:12:53 <AnMaster> ^help
18:12:53 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
18:13:00 <cpressey> scarf: I don't see anything strange about the 1st link, but the 2nd was darn surprising
18:13:01 <AnMaster> bf and ul
18:13:13 <scarf> cpressey: the first link, look at the title and the colours
18:13:22 <cpressey> scarf: Ah.
18:13:23 <scarf> if you teach Java for a living like I do, you get used to looking at the API
18:13:28 <scarf> and it's weird seeing it with Oracle branding
18:13:37 <AnMaster> cpressey, also:
18:13:39 <AnMaster> ^source
18:13:39 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
18:14:03 <cpressey> Um, yes. I've been under a rock wrt the Java world lately, and I wasn't aware of this... acquisition or whatever it is.
18:14:11 <scarf> cpressey: Oracle bought Sun
18:14:25 <scarf> the entire company, including everything that they owned
18:14:34 <scarf> it's hilarious seeing adverts for Oracle Solaris, for instance
18:14:38 <AnMaster> <scarf> and likewise, http://sun.com is just a redirect <-- old (several days)
18:14:44 <cpressey> That's so... sad.
18:14:55 <scarf> AnMaster: yes, but still shocking
18:15:08 <AnMaster> well yes
18:15:17 <AnMaster> also what will happen to mysql
18:15:24 <AnMaster> just wondering
18:15:30 <scarf> apparently, oracle are going to invest in it
18:15:30 <AnMaster> I much prefer postgre
18:15:32 <cpressey> AnMaster: re source: cool!
18:15:47 <AnMaster> cpressey, well yes, I thought *you* would think that ;P
18:15:51 <scarf> the underload interp starts on line 311, if you're interested
18:16:27 <cpressey> If you want to pay a lot for a mediocre DB, Oracle is a good choice.
18:17:54 <cpressey> If you don't have that kind of money for that kind of mediocrity, MySQL is a good choice...
18:18:13 <scarf> MySQL manages to not quite be a relational database
18:18:26 <scarf> I think it's useful for the market it targets, but I'm not sure how to define that market
18:18:59 <cpressey> Data integrity? Who needs *that*?
18:19:03 <cpressey> Pfft.
18:19:15 <scarf> cpressey: sometimes you don't, although I agree sometimes you do
18:19:46 <scarf> well, as in, sometimes you can get the same effect without transactiosn
18:19:49 <scarf> *transactions
18:19:52 <cpressey> scarf: I was merely trying to define that market, ... through parody
18:19:59 <scarf> ah
18:20:15 <AnMaster> <cpressey> If you don't have that kind of money for that kind of mediocrity, MySQL is a good choice... <-- no
18:20:22 <AnMaster> postgresql is a better choice
18:20:52 <cpressey> AnMaster: I meant that with MySQL you get a lot of mediocrity for your buck :)
18:21:12 <AnMaster> <scarf> well, as in, sometimes you can get the same effect without transactiosn <-- what about innodb
18:21:12 <cpressey> I prefer postgres, too.
18:21:49 <scarf> AnMaster: innodb doesn't really have transactions
18:21:51 <scarf> well, it does a bit
18:21:58 <scarf> more than myisam, but less than a sane database engine
18:22:32 -!- cheater2 has joined.
18:23:12 <cpressey> I wonder how long it'll take Oracle to completely destroy Java and Solaris.
18:23:54 <scarf> my guess is, they won't
18:24:09 <scarf> I suspect that Oracle bought Sun just to prevent Java falling into the hands of someone who wanted to get rid of it
18:24:24 <scarf> I suspect that most of the companies that rely on Oracle rely on Java too, you see...
18:25:16 <cpressey> Hm. And now, they just rely on Oracle...
18:25:45 <cpressey> "completely destroy" might have been a bad choice of term.
18:26:03 <scarf> yep, "lock-in" seems more likely or reasonable
18:26:51 <AnMaster> what about iced tea
18:26:59 <AnMaster> or whatever it is called
18:27:00 <scarf> AnMaster: or OpenJDK?
18:27:18 <scarf> those should both be out of oracle's control whatever happens
18:27:51 <scarf> (IcedTea and OpenJDK are both different completions of the bits of Sun's JDK that they were legally allowed to open-source (i.e. not licenced from a third party), which was most of it)
18:28:33 <cpressey> Actually, by "completely destroy" I was trying to evoke what happened to Perl from 5 to 6, and (to a lesser degree) in Python from 2 to 3.
18:28:39 <scarf> http://www.oracle.com/features/suncustomers.html
18:28:45 <scarf> cpressey: hmm, but aren't those good things?
18:28:50 <cpressey> scarf: !
18:29:04 <scarf> perl6 isn't really production-ready yet, but it's one of the most mindblowing wonderful languages I know, especially if you have an esolanger mindset
18:29:10 <cpressey> scarf: !!
18:29:24 <scarf> there are something like ten different ways of writing an anonymous function and passing arguments to it
18:29:55 <AnMaster> cpressey, what is wrong with python 3
18:30:04 <AnMaster> any more than python 2 that is
18:30:10 <AnMaster> they fixed some stuff in it iirc
18:30:20 <AnMaster> like integer division now being //
18:31:00 <cpressey> It would take too long for me to explain fully, I think. Until I can compose it, suffice to say, I think those languages both "jumped the shark" at those points.
18:31:09 <cpressey> And I suspect Java 7 will be similar.
18:31:21 <scarf> cpressey: oh, I can imagine the sharkjumping
18:31:25 <AnMaster> cpressey, I prefer python 3 to python 2
18:31:28 <scarf> there's a reason perl5 is still developed
18:31:38 <scarf> I think perl6 is a different language with an unfortunately similar name
18:31:39 <cheater2> oerjan: function level programming is not functional programming
18:31:41 <scarf> although not very different
18:32:47 <cheater2> oerjan: function level programming is something completely different. it is a way of describing programs by transforming functions with functionals. you cannot write your own functions, and you have no variables. the only way you can get new functions is by applying functionals to existing functions.
18:33:05 <cpressey> AnMaster: The main problem I have with Python 3 is that continuing to call it "Python" suggests that migrating your existing Python code base to it will be ... easy! A piece of cake! You should do it!
18:33:05 <scarf> cheater2: sort-of like concatenative langs?
18:33:38 <scarf> $ 5to6 some_complicated_perl5_file.pl
18:33:38 <cpressey> Lua seems to have a better philosophy about "progress", overall, I think. Just my opinion.
18:33:45 <AnMaster> cpressey, I have done it. wasn't too hard. Migrating an application using the C API to make python an embedded scripting language was worse
18:33:49 <AnMaster> and I have done that too
18:33:53 <cpressey> AnMaster: how many LoC?
18:34:04 <AnMaster> and thanks to ifdefs made it compile against both python 2 and 3
18:34:25 <AnMaster> cpressey, around 1000 or so in total there. Also done a few other programs
18:34:49 <scarf> AnMaster: 1000's almost short enough to rewrite
18:35:01 <cpressey> AnMaster: Depending on how many 3rd party packages?
18:35:03 <cheater2> scarf: yes
18:35:07 <AnMaster> cpressey, most could be done by using some of the patches suggested by 2to3 (some patches like changing "in range(...)" to "in list(range(...))" weren't required)
18:35:22 <AnMaster> cpressey, one third party one. why?
18:35:22 <cheater2> cpressey: that also applies to you (FLP is not in any way related to FP)
18:35:37 <AnMaster> cpressey, so the third party ones need to be ported first
18:35:48 <AnMaster> and yes that one was tricky, it was a C json library.
18:35:58 <AnMaster> which depended on byte rather than unicode strings
18:36:03 <cpressey> AnMaster: I'm just suggesting that your example is small, compared to lots of Python codebases out there.
18:36:23 <AnMaster> cpressey, true, it isn't completely painless, but not too bad I found
18:36:35 <AnMaster> cpressey, also why are you using third party libs? NIH NIH! ;P
18:37:02 <scarf> hmm, ideally code should be written to be so portable it can easily be transferred to a different /language/
18:37:19 <cpressey> cheater2: So design an imperative function-level programming language :)
18:37:31 <scarf> oh, of course, you just write it as compiled BF, that works
18:37:52 <AnMaster> scarf, that *always* works
18:38:00 <AnMaster> ;P
18:38:12 <scarf> gah, I just had an urge to mention PSOX again
18:38:13 <AnMaster> scarf, well you might need psox ;P
18:38:16 <scarf> snap
18:38:22 <AnMaster> argh same second here
18:39:01 <scarf> we've clearly become some sort of hivemind
18:39:17 <AnMaster> hah
18:39:54 <AnMaster> cpressey, iirc you had some erlang code on your website? do you still use it?
18:39:58 <AnMaster> (the language that is)
18:40:20 <cpressey> AnMaster: Unfortunately, I haven't touched Erlang in a while.
18:40:46 <AnMaster> cpressey, how long? since before the unicode support?
18:41:07 <cpressey> AnMaster: Yeah, probably about then. I remember it being discussed, I don't remember actually using it.
18:41:13 <scarf> AnMaster: oh no, you aren't going to launch into an issue of what RAND_MAX should be on a bignum system again, are you?
18:41:22 <AnMaster> scarf, not his fingerprint
18:41:27 <cpressey> The continuous growing size of the OTP distribution frightens me :)
18:41:41 <AnMaster> cpressey, well efunge is written in erlang. I'm not aware of any other bignum funge
18:42:02 <AnMaster> (also I'm the author of efunge, as well as cfunge)
18:42:04 <cpressey> Ah, well. Funge, like C, was never designed with bignum implementations in mind...
18:42:28 <AnMaster> cpressey, well yes indeed. Currently I'm considering bignum intercal
18:42:34 <AnMaster> which would be just craz
18:42:36 <AnMaster> crazy*
18:43:18 <AnMaster> cpressey, anyway I'm also working on a fingerprint for async threads in efunge. work in progress.
18:43:19 <cpressey> More than I care to put in my brain at the moment, yes.
18:43:26 <AnMaster> some part works
18:43:45 <cpressey> Interesting...
18:43:55 <AnMaster> cpressey, really t feels so silly when you have multiple cores and possibly multiple nodes.
18:43:59 <AnMaster> really,*
18:44:09 <AnMaster> so that is where this things comes into it
18:44:31 <AnMaster> actually the multiple nodes might pose a problem since I use an ets table for funge-space.
18:44:41 <AnMaster> multiple nodes scenario*
18:45:03 <cpressey> Well, internal threads don't seem very Funge-like somehow... traditionally multiple IPs take their place ... not to discourage the development of a fingerprint to do it, of course.
18:45:16 <cpressey> But when you introduce nodes.... yeah.
18:45:30 <cheater2> cpressey: i am not sure that imperative style would be good for FLP, since there is no assignment in FLP
18:45:37 <cpressey> Hard to see how to mesh those with Befunge's model.
18:45:42 <AnMaster> I guess I could switch to mnesia, but that would be horribly slow
18:45:43 <cheater2> cpressey: btw, porting from py2 to py3 should be easy
18:45:54 <cheater2> cpressey: not much harder than porting 2.6 to 2.5 for example
18:45:59 <cheater2> or 2.4
18:46:41 <AnMaster> cpressey, the fingerprint provides sync g, p and compare-and-swap (as G, P and C), the normal g and p (and other write/reads) are not guaranteed to be visible right away to other threads. Each thread can contain multiple IPs in theory (but efunge atm doesn't implement t)
18:47:20 <AnMaster> also these threads wouldn't block each other when waiting for IO, unlike IPs in befunge normally do
18:47:31 <scarf> https://bugzilla.mozilla.org/show_bug.cgi?id=476766& https://bugzilla.mozilla.org/show_bug.cgi?id=542689
18:47:32 <cpressey> cheater2: It doesn't have to be "good", but if you can't get away from using functions for everything, you'll have a hard time convincing me that function-level has no relation to functional programming.
18:48:08 <cheater2> cpressey: function level programming does not produce results like you expect from normal programs.
18:48:13 <AnMaster> cpressey, oh and I predict that distributed funge will be all the rage instead of java or .NET in 10 years ;P
18:48:19 <cheater2> the output of a function level program is a program that is not written in FLP.
18:49:15 <AnMaster> cheater2, is it per chance written in #!/bin/cat ?
18:49:18 <cheater2> as i understand it, FLP is a kind of meta-programming language which allows you to define programs which then could be executed using some other runtime.
18:49:26 <cpressey> cheater2: You keep making exceptional-sounding claims about function-level programming, but at the same time, you keep asking the channel what function-level programming would be like.
18:50:15 <cheater2> cpressey: i am making claims about what i understand it as. but i'm interested in what other people understand it as. if someone contradicts what i say, of course they are wrong. ;-)
18:52:12 <cheater2> cpressey: a sort of constructive argument for coming up with ideas and concepts :-)
18:53:42 <cpressey> cheater2: Well, I will say I don't see a lot of support for the idea that it's a meta-language. I totally agree that it's not the same as (what we know today as) functional programming. My guess would be that Backus' thesis was to make a strong distinction and separation between values, functions, and functionals. (Whereas functional programming emphasizes that functions are values, and can be functionals.)
18:54:56 <cheater2> yes, that is my impression too
18:54:58 <cpressey> But other than that, it seems to share a lot of ideas from functional programming. Like that you create new functions by transforming existing ones. And that a program is a mapping from inputs to outputs.
18:55:13 <cheater2> i think the idea was too completely separate the data from the program structure
18:55:39 <cheater2> so, yes, you had a program which calculates the area of a circle given the radius and the current value of pi
18:56:00 <cheater2> but what's important, i think, is that he also separated the description framework
18:56:00 <AnMaster> that reminds me of one thing in freebsd kernel source
18:56:02 <cpressey> cheater2: that might be. If so... one of my language designs is "function-level" in that sense
18:56:08 <AnMaster> #define SECONDS_PER_MINUTE 60
18:56:10 <AnMaster> yes really
18:56:19 -!- sebbu2 has joined.
18:56:20 <AnMaster> at least it wasn't a runtime variable
18:56:24 <cheater2> i.e. that program, which calculates the area, is not written in the same language it was defined in.
18:57:18 <cpressey> http://catseye.tc/projects/larabee/ forbids literals in the program -- all values have to be read from input.
18:57:37 <cheater2> so, you define a program such as: print(multiply(arg2(),multiply(arg2(),arg2()))
18:57:51 <cpressey> But if you have the ability to copy values and perform logic, you can always hardcode logical constants by saying, e.g. X AND NOT X.
18:58:21 -!- sebbu has quit (Ping timeout: 276 seconds).
18:58:21 -!- sebbu2 has changed nick to sebbu.
18:58:24 <cheater2> and this program definition is defined in CFLPL which is cheater's function level programming language
18:58:33 <cpressey> cheater2: ok ...
18:58:51 <cheater2> and then it gets compiled to: code which is executable in php.
18:59:11 <cheater2> i think i've heard of larabee before
18:59:34 <cheater2> ah, it was the name of the intel gpu thing
19:00:41 <cpressey> Hm, 2 r's in the spelling of the gpu thing, but yes. I wasn't aware of that
19:01:47 <cheater2> i wasn't aware of the 2 r's
19:01:47 <cheater2> :D
19:01:57 <cheater2> have you ever used happstack cpressey?
19:02:15 <AnMaster> <cpressey> But if you have the ability to copy values and perform logic, you can always hardcode logical constants by saying, e.g. X AND NOT X. <-- if it treats it like C does, as integers, then you could use that to get 0 and 1, then get the rest of the values from there
19:02:17 <cpressey> cheater2: No.
19:02:36 <cpressey> AnMaster: right, or if you have arithmetic, X-X = 0, X/X = 1.
19:02:49 <cpressey> (or DivByZero exception :) )
19:02:56 <AnMaster> yeah
19:03:27 <AnMaster> cpressey, and then you can do (basically) 2=1+1 4=2*2 and so on
19:03:58 <cheater2> it's fruitless, there's no point in doing that
19:04:02 <AnMaster> would it be possible to make a tc language where this wasn't possible
19:04:25 <cpressey> AnMaster: well, forbid copying maybe?
19:04:43 <cpressey> AnMaster: although I don't think that'll get you very far :)
19:04:46 <AnMaster> cpressey, would it be tc then?
19:04:54 <AnMaster> and yes I suspect you could work around it
19:05:10 <cpressey> AnMaster: If my work on Larabee isn't completely whack, I think it's not TC.
19:05:35 <cpressey> If you can't copy, then you rely on two inputs and you can't guarantee they're equal, so you can't guarantee a constant
19:05:49 <AnMaster> cpressey, I suspect it is possible to get known constants in any tc program that can not hard code literals (but that can use input)
19:05:57 <AnMaster> not 100% sure though
19:06:18 <cpressey> AnMaster: Definitely an interesting line of inquiry.
19:06:22 <AnMaster> cpressey, but then isn't the program bounded by the number of arguments
19:06:26 <AnMaster> and thus sub-tc
19:07:12 <cpressey> AnMaster: I don't think it is -- you don't need to hard-code much, to start off a computation that produces an infinite amount of output
19:07:27 <cpressey> Like, computing pi to an indefinate # of decimal places
19:07:28 <AnMaster> cpressey, so it is allowed to copy those values once calculated?
19:07:40 <AnMaster> just not use an argument more than once?
19:08:17 <AnMaster> then it could just do it like X = arg1(), One = X / X, Zero = X - X.
19:08:18 <cpressey> AnMaster: well, that's where it gets tricky :) I think most models of computation rely on being able to copy values internally.
19:08:18 -!- scarf has quit (Read error: Connection reset by peer).
19:08:33 <AnMaster> ( heh I just realised that was potentially valid erlang code)
19:08:43 <AnMaster> well, it would need div, but otherwise)
19:09:32 <AnMaster> (just define arg1() to something suitable calling something in the init module to get the arguments)
19:10:32 <AnMaster> cpressey, well if you can't copy then internally you are probably subtc
19:10:38 <cpressey> I just checked, and Larabee allows you to store and fetch input, and do arithmetic. However, to fetch a value from memory, you need to supply and index which... must come from input. So I still think Larabee is sub-TC.
19:10:48 <AnMaster> since you can use each argument, then those new things can be used as one input in another computation
19:11:15 <AnMaster> and then the these results only used once
19:11:16 <AnMaster> and so on
19:11:21 <AnMaster> until you had no more input
19:11:22 <AnMaster> hm
19:11:29 <AnMaster> I think you could do "not" forever
19:11:32 <AnMaster> since it is unary
19:11:35 <cpressey> Ugh, my brain is hurting now.
19:11:43 <cpressey> I should probably have lunch.
19:11:46 <AnMaster> but any binary operators would reduce the number of variables to use
19:11:49 <AnMaster> brb
19:13:14 <Gregor> Ohhey, ehird is gone?
19:13:17 <Gregor> Didn't even notice that.
19:14:28 -!- kar8nga has quit (Remote host closed the connection).
19:14:54 <Gregor> That's actually a bit distressing. He's been more or less constantly present for a long time.
19:15:22 <oklopol> yeah ehird is hard to notice
19:15:38 <oklopol> you'd have to own a computer
19:16:36 <Gregor> In five days he'll join and see that the topic says "20 days since last ehird sighting" :P
19:17:26 <AnMaster> back
19:17:53 <AnMaster> Gregor, ... or not
19:18:13 <AnMaster> (depends on if we remember to update it ;P)
19:18:21 <Gregor> Well, true.
19:18:37 <Gregor> Oh btw, go to http://sun.com/
19:18:38 <Gregor> And cry.
19:18:40 <fizzie> 15 days since our last workplace accident.
19:19:13 <fizzie> fungot: seen ehird
19:19:14 <fungot> fizzie: are there documents of that in the general context of the article) contains essentially the whole difference between
19:19:40 -!- Gregor has set topic: RIP sun.com | 15 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:19:40 <fizzie> That's not a very good "seen" command, though I guess it *could* produce the correct reply too.
19:19:48 <Gregor> fizzie: 'snot likely :P
19:20:26 -!- cheater2 has quit (Ping timeout: 248 seconds).
19:20:27 <oerjan> cheater2: i know that function level programming is not functional programming.
19:20:30 -!- cheater3 has joined.
19:21:19 <MissPiggy> cheater3 "Oh not this again"
19:21:21 <MissPiggy> NO U
19:21:48 <cheater3> what?
19:22:23 <oerjan> cheater3: oh FP doesn't refer to functional programming, it refers to backus' original function-level language
19:22:37 <cheater3> oh ok
19:22:55 <oerjan> (btw i'm answering old messages so i have no idea what you are saying now yet)
19:23:59 <AnMaster> <fizzie> fungot: seen ehird <-- implement such a command then
19:24:00 <fungot> AnMaster: deep macrology? beh, beh. i don't seem to have run into the fnord status.'
19:26:41 <fizzie> Didn't one of the bots already have such a thing?
19:26:55 <MissPiggy> hehe
19:27:01 <MissPiggy> fungot, style
19:27:01 <fungot> MissPiggy: you can always fnord the occasional scheme code here. use lisppaste.
19:27:24 <fizzie> fungot: Yes, but it might not be a good idea to fnord Scheme.
19:27:25 <fungot> fizzie: glyp glof! varsinkin se yksi ( jos se en on siell), jossa ne fnord niit fnord! fnord!" " jenwolf sucks!" " fnord
19:27:37 <fizzie> Heh, a rare bit of Finnish there.
19:28:29 <Deewiant> "glyp glof"?
19:28:38 <AnMaster> fizzie, you are heavy on the fnords over there!
19:28:39 <fizzie> Deewiant: I don't know what that was about.
19:29:22 <Deewiant> I am disconcerted by the notion that both "glyp" and "glof" occur often enough to not be "fnord"
19:29:59 <fizzie> "Often enough" means "more than once" here, but still.
19:30:42 <fizzie> 2006-12.log:[2006-12-27 21:52:44] < oerjan> !exec "Argle bargle, glof glyp!"PrntNl
19:30:42 <fizzie> 2006-12.log:[2006-12-27 21:52:48] < oklobot2> Argle bargle, glof glyp!
19:30:42 <fizzie> 2006-12.log:[2006-12-27 21:54:53] < oerjan> !exec "Argle bargle, "PrntNl "glyp glof!"PrntNl
19:30:42 <fizzie> 2006-12.log:[2006-12-27 21:55:00] < oklobot2> glyp glof!
19:30:49 <fizzie> Seems that you can blame oerjan.
19:30:57 <fizzie> (Well, you can always blame oerjan!)
19:31:15 <Deewiant> oerjan: Consider yourself blamed!
19:33:51 <fizzie> The thing with the ".seen" command was apparently a bot nicknamed "Endeavour", and I don't remember it at all; and it's been here pretty much only in 2008-04, and twice in 2009-01.
19:35:15 <oerjan> fizzie: lambdabot has a @seen command, i don't know about any here...
19:36:23 <oerjan> Deewiant: glyp and glof are famous H2G2 words
19:36:35 <oerjan> or wait
19:36:40 <oerjan> that's glop glyf
19:37:14 <fizzie> 2006-11.log:[2006-11-12 21:09:23] < oerjan> !bf_txtgen Argle bargle, glop glyf
19:37:14 <fizzie> 2008-11.log:[2008-11-15 00:32:26] < oerjan> fungot: argle bargle, glop glyf
19:37:15 <fungot> fizzie: don't throw the pic away, i'll check that out. how do you implement by yourself
19:37:17 <fizzie> It's always you.
19:37:28 <AnMaster> I could tell envbot to join, it has a seen command
19:37:41 <AnMaster> but due to being written in bash it isn't very esoteric
19:38:03 <fizzie> I'm not totally convinced we need one. And anyway, fungot ought to be clever enough to spontaneously develop one.
19:38:03 <fungot> fizzie: hey! eso already exists. and, instruction and operand ( including numbers)
19:38:44 <oerjan> argh no, not the blaming!
19:39:53 * oerjan is no a jour
19:39:55 <oerjan> *now
19:41:09 <AnMaster> <oerjan> argh no, not the blaming! <-- is it just me, or was this a very vague and obscure discworld reference?
19:41:12 <oerjan>
19:41:17 <AnMaster> (iirc, one of the tiffany series?)
19:41:41 <oerjan> not a chance, unless my unconscious has read more pratchett than me
19:41:48 <AnMaster> ah...
19:44:38 * oerjan would not rule that out entirely though
19:46:48 <oklopol> turns out sometimes his recalls really are vague
19:47:09 <oerjan> you think?
19:48:38 <oklopol> i haven't caught that many errors
19:48:52 <oklopol> compared to the amount of vaguations
19:49:53 <oerjan> well obviously my really vague recalls are about ancient mysteries lost in time that you youngsters would have no hope of checking *MWAHAHAHA*
19:50:37 <oerjan> either that, or possibly i left no witnesses.
20:01:32 <cpressey> "take only photographs, leave no witnesses." i like that.
20:04:54 <oerjan> i'm not really that big on photographs either
20:06:24 <cpressey> Oooh yeah, they can be used as evidence of a court of law, cain't they. Well nix that then.
20:06:38 <cpressey> s/of/in/
20:06:57 <oerjan> of, too, i believe
20:07:33 <oerjan> also an excellent place to leave no witnesses
20:23:30 -!- MissPiggy has quit (Ping timeout: 245 seconds).
20:30:32 <Gregor> HEY that's a segue to http://codu.org/projects/zee/
20:30:38 -!- MissPiggy has joined.
20:30:38 <Gregor> Thanks for the segue guys
20:30:41 -!- augur has quit (Read error: Operation timed out).
20:31:20 <oklopol> i've had that idea
20:31:31 <oklopol> i think i almost considered doing something with it
20:31:38 <oklopol> or well, maybe not *almost*
20:31:55 <oklopol> but not much less
20:32:11 <Gregor> Have you had PLOT ideas? :P
20:32:24 <oklopol> no. plots make games impure.
20:32:29 <oklopol> as do "based on"'s
20:32:35 <Gregor> :P
20:32:58 * oklopol likes his games flash and ball.
20:33:16 <oklopol> ball being the objects, flash being how the game is implemented
20:33:36 <oklopol> but umm plot...
20:33:54 <fizzie> "Based on true story" games!
20:34:18 <oerjan> based on a filthy lie
20:35:09 <oklopol> Gregor: i might consider thinking about a plot, in the future maybe, or not.
20:35:24 <oklopol> would be so awesome
20:35:30 -!- speeskees has joined.
20:35:36 <oklopol> if it was like a 10 hour game, but you just have one crime scene photo
20:37:54 -!- speeskees has left (?).
20:38:22 <oklopol> wouldn't be a problem to do realistic rendering for the graphics :P
20:50:23 -!- adam_d has joined.
21:09:01 <Gregor> Nearly every definition of "execute" is nearly antonymous with "terminate". Except for the most common one, which is synonymous. Funny thing, English.
21:19:19 <oklopol> and the most common one is what?
21:19:44 * oerjan executes a swatting, terminating oklopol -----###
21:20:48 <Gregor> As in execution. Mr. Bobbert was executed.
21:20:48 <olsner> http://esoteric.voxelperfect.net/wiki/TMMLPTEALPAITAFNFAL <-- hmm, this is interesting
21:21:00 <olsner> try to build a polyglot in all variants of that language :)
21:21:12 <oklopol> if you mean the one that involved killing, i checked two dictionaries, in one it was the second to last meaning, in the other one there wasn't even a mention of that use. granted, these are pretty crappy dictionaries
21:21:17 <oklopol> *involves
21:21:24 <oerjan> also, http://tvtropes.org/pmwiki/pmwiki.php/Main/MostCommonSuperPower
21:21:26 <cpressey> "execute" = euphemism for "execute a death warrant"
21:21:37 <Gregor> Yes, I know.
21:21:41 <oklopol> yeah, i'm pretty sure that's the least used meaning
21:21:41 <Gregor> But that doesn't matter.
21:21:45 <Gregor> That's how words come to be.
21:21:47 <Gregor> oklopol: ???
21:21:52 <Gregor> oklopol: Maybe for a computer scientist.
21:22:01 <oklopol> and based on the dictionaries
21:22:26 <Gregor> Dictionaries don't index by meaning frequency ...
21:22:29 <oklopol> checked two other web ones and there was no mention of killing
21:22:32 <oklopol> true...
21:22:58 <Gregor> Meaning #3 at dictionary.coim is: " to inflict capital punishment on; put to death according to law."
21:23:07 <Gregor> I argue that that is the most common meaning understood by English speakers.
21:23:21 <pikhq> oklopol: It may not be in sane countries, but I'm in a country with the death sentence.
21:23:28 <oklopol> heh
21:23:29 <cpressey> I think what's more remarkable is the frequency of use of euphemisms in English-speaking countries...
21:23:30 <pikhq> Executions, y'know, *happen* here.
21:23:51 <Gregor> cpressey: I don't think it's legit to say it's still a euphemism for that. It's just taken on that meaning.
21:24:04 <oklopol> that's true... i think of executing as a term you'd only need when talking about 14th century france
21:24:10 <oklopol> i mean the killing one
21:24:33 <cpressey> Gregor: I hold a different opinion - the euphemistic meaning has become the dominant one, but it's still a euphemism.
21:24:39 <oerjan> 14th century france, 21st century US, what's the difference *ducks*
21:25:01 <oklopol> ducks are very different in usa, yes
21:25:37 <pikhq> Gameboy emulators without any sort of throttling...
21:25:43 <pikhq> Hard to play most games with.
21:25:44 <Gregor> pikhq: lawl
21:25:46 <pikhq> *Amazing* for RPGs.
21:26:03 <pikhq> "Suck it, grinding.":
21:26:16 <Gregor> THAT'S WHAT SHE SAID
21:28:15 <oklopol> there really should be something that lists frequencies of different meanings of words, at least a rough estimate
21:29:22 <Gregor> This is Mr. Command. Execute him!
21:29:23 <oerjan> may be hard to determine
21:29:47 <oklopol> or not.
21:29:56 <oklopol> maybe in 1% of cases
21:30:08 <oklopol> "does this word mean do or kill?"
21:30:48 <oerjan> i mean for an entire dictionary
21:31:05 <oklopol> not that do and execute are actually synonyms in any context
21:31:51 <oklopol> maybe it could be so rough an estimate it's actually just random numbers
21:32:19 <fizzie> oklopol: Wordnet has count-of-occurrences-in-tagged-texts, which sort of tries to be an estimate for that.
21:32:35 <fizzie> oklopol: It's just that not all meanings even have any counts there.
21:33:18 <fizzie> It sort of works for "real common" / "not so common" distinguishment; for red as an adjective:
21:33:20 <fizzie> The adj red has 3 senses (first 3 from tagged texts)
21:33:21 <fizzie>
21:33:21 <fizzie> 1. (43) red, reddish, ruddy, blood-red, carmine, cerise, cherry, cherry-red, crimson, ruby, ruby-red, scarlet -- (of a color at the end of the color spectrum (next to orange); resembling the color of blood or cherries or tomatoes or rubies)
21:33:21 <fizzie> 2. (8) crimson, red, violent -- (characterized by violence or bloodshed; "writes of crimson deeds and barbaric days"- Andrea Parke; "fann'd by Conquest's crimson wing"- Thomas Gray; "convulsed with red rage"- Hudson Strode)
21:33:22 <fizzie> 3. (7) crimson, red, reddened, red-faced, flushed -- ((especially of the face) reddened or suffused with or as if with blood from emotion or exertion; "crimson with fury"; "turned red from exertion"; "with puffy reddened eyes"; "red-faced and violent"; "flushed (or crimson) with embarrassment")
21:34:07 <oklopol> well, execute?
21:34:22 <fizzie> 1. (2) execute, put to death -- (kill as a means of socially sanctioned punishment; "In some states, criminals are executed")
21:34:22 <fizzie> 2. (1) execute -- (murder in a planned fashion; "The Mafioso who collaborated with the police was executed")
21:34:22 <fizzie> 3. (1) carry through, accomplish, execute, carry out, action, fulfill, fulfil -- (put in effect; "carry out a task"; "execute the decision of the people"; "He actioned the operation")
21:34:27 <fizzie> The other four meanings don't have a count.
21:34:32 <fizzie> Or have a count of zero, if you prefer.
21:35:06 <oklopol> why would you use a 14th century dictionary
21:35:38 <fizzie> It is up to you how much a meaning you derive from one or two mentions.
21:36:05 <oerjan> to spelle properlie, of course
21:36:49 <oklopol> the less data i have, the wilder i can let my imagination run when interpreting it.
21:38:06 -!- GreaseMonkey has joined.
21:39:13 <Gregor> *rewinding*
21:39:16 <GreaseMonkey> ...i never used an oracle thing in my life
21:39:24 <Gregor> cpressey: That seems like a very prescriptivist approach to language.
21:39:32 <Gregor> GreaseMonkey: YOU HAVE NOW
21:39:37 <GreaseMonkey> ARGH THIS SITE REQUIRES JAVACRAPT
21:40:01 <Gregor> cpressey: And IMHO prescriptivism is pretty silly for English in particular, and language in general.
21:40:06 <GreaseMonkey> Gregor: the versions of java i have were pre-oracle
21:40:06 <cpressey> Gregor: Prescriptivist? I'm not the one claiming throwing around "not legit to say that" :)
21:40:10 <cpressey> s/claiming//
21:40:37 <GreaseMonkey> anyways, i'm hoping they'll keep releasing open stuff
21:40:45 <Gregor> cpressey: Fair enough :P
21:41:08 <Gregor> GreaseMonkey: I was assuming that all Sun things, past and present, were now Oracle things. And in that case, it's amusing that you think Java is the only Sun thing you use.
21:41:24 <oklopol> prescriptivism is the only way mankind could ever escape the horrors of natural language
21:41:36 <GreaseMonkey> it's probably not the only thing
21:41:40 <GreaseMonkey> uhh...
21:41:48 <GreaseMonkey> what else do you think i'd use?
21:42:00 <GreaseMonkey> i've really only done j2se and j2me
21:42:03 <GreaseMonkey> afaik
21:42:09 <Gregor> Do use any Unix system?
21:42:17 <oklopol> what, you think language is just going to *evolve* into something sensible? do you know how ridiculous that sounds...
21:42:37 <Gregor> Sun has tentacles in every corner of nearly every Unix system. Maybe not huge portions, but little bits everywhere.
21:43:38 <GreaseMonkey> i use freebsd here, linux on my lappy
21:43:46 <GreaseMonkey> not using any zfs.
21:44:08 <GreaseMonkey> i actually use the diablo jdk
21:44:11 <GreaseMonkey> on freebsd
21:44:44 <Gregor> Sun is a contributor to the Linux kernel, X11, GNOME off the top of my head.
21:44:47 * oerjan notes that augur isn't here, must be why oklopol hasn't been mauled yet
21:44:56 <Gregor> And aside from that, everything else. Everything.
21:45:33 <GreaseMonkey> OK i'm having trouble finding the j2se library documentation
21:45:34 <cpressey> Oh no, Sun has contributed to open-source products I use every day. How shall I ever escape their diabolical grip.
21:45:37 <oerjan> everything under the sun
21:46:05 -!- MigoMipo has quit (Ping timeout: 240 seconds).
21:46:16 <Gregor> I'm not saying anything negative about Sun, I'm just saying that the not-insubstantial possibility that they'll stop being the Sun we know and love is bad.
21:46:46 <oerjan> cpressey: you'll have to cleanse it in holy water, i hear jews do that
21:46:50 -!- augur has joined.
21:47:11 <GreaseMonkey> found it: http://java.sun.com/javase/6/docs/api/
21:47:12 <oerjan> mind you i'm not sure if they apply it to electronics
21:47:33 <oklopol> probably applies well to programs
21:48:00 <fizzie> Misread "Sun has contraband in open-source products I use every day". That's quite a statement.
21:48:20 <GreaseMonkey> dear oracle: why did it take about 5 clicks from the front page to get to the j2se API documentation?
21:48:37 <Gregor> GreaseMonkey: Because you should have gone to java.sun.com ?
21:48:52 -!- MigoMipo has joined.
21:49:02 <fizzie> I tend to google for "java api" and go from there; never bothered to bookmark the thing.
21:49:02 <cpressey> So glad I'm not a "Java person".
21:49:15 <GreaseMonkey> ...hmmkay... i shall hopefully remember that
21:49:17 <cpressey> No offense to any "Java people" here of course.
21:49:31 <Gregor> Java people need more offense :P
21:49:39 <oerjan> i don't think we have many indonesians here
21:50:01 <GreaseMonkey> takes 4 clicks
21:50:25 <GreaseMonkey> i attempted to make a java decompiler once
21:50:26 <oklopol> read those two sentences as one, "oerjan: i don't think we need any indonesians here"
21:50:32 <GreaseMonkey> i could get the bytecode alright
21:50:45 <oklopol> that was slightly out of character for oerjan
21:50:53 <GreaseMonkey> however i think i was lacking in knowledge of decompilers
21:50:53 <fizzie> I guess I could share a homework question answer reply from comp.lang.c I found amusing: http://groups.google.com/group/comp.lang.c/msg/a64002d547d3a95f
21:50:57 <oerjan> *slightly*
21:51:34 <GreaseMonkey> ...people still use usenet?
21:51:51 <AnMaster> GreaseMonkey, yes of course
21:52:07 <AnMaster> don't you?
21:52:11 <GreaseMonkey> nope.
21:52:15 <fizzie> Of course they do; clc is a very very active group. Admittedly it's mostly full of spam and bizarre madness, as opposed to on-topic things, but still.
21:52:19 <GreaseMonkey> unless i'm encountering archives and stuff
21:52:26 <Deewiant> Hence, clcm.
21:52:41 <Gregor> lol
21:52:46 <Gregor> fizzie: How delightfully useless :P
21:52:47 <fizzie> Deewiant: What, and not read all that spinoza1111 stuff?
21:53:03 <Deewiant> Yes, exactly. :-P
21:53:46 <fizzie> Deewiant: And all Kenny McCormick crossposts between comp.lang.c and rec.games.bridge?
21:53:55 <AnMaster> Deewiant, clcm?
21:54:00 <fizzie> AnMaster: comp.lang.c.moderated.
21:54:04 <AnMaster> ah
21:54:06 <AnMaster> oh
21:54:08 <Deewiant> fizzie: Yes, those too.
21:54:12 <AnMaster> so clc was not about clc-intercal?
21:54:15 <AnMaster> argh
21:54:19 <AnMaster> fooling me like that
21:54:28 <Deewiant> You are as easily fooled as ever.
21:54:40 <fizzie> AnMaster: Given that I had mentioned the full "comp.lang.c" name in my previous comment, I thought the abbreviation safe.
21:54:58 <fizzie> Deewiant: That price is too high to pay for some peace and quiet.
21:55:07 <AnMaster> fizzie, meh
21:55:24 <AnMaster> fizzie, I didn't read the full url
21:55:33 <fizzie> AnMaster: It's also in the text before the URL.
21:55:43 <AnMaster> fizzie, "meh"
21:56:07 <AnMaster> if I can't spot it when re-reading, why would I have spotted it first time ;P
22:01:01 <cheater3> fizzie: what's the best way to do usenet?
22:01:07 <cheater3> fizzie: hopefully, free.
22:01:53 <fizzie> cheater3: I don't really know the best way; I just read using my ISP's NNTP server and slrn at the moment (though the actual newsreader changes from time to time).
22:02:07 <cheater3> hrm :(
22:02:23 <cheater3> i don't have an nntp server.. i don't even have 'an isp' (i travel a lot around da world)
22:02:27 <fizzie> Someone -- I don't remember who -- used http://www.eternal-september.org/ for that.
22:02:41 <fizzie> It should be somewhat free.
22:03:00 <oklopol> cheater3: what game do you cheat at to have the money for that?
22:03:12 <cheater3> oklopol: your mom
22:03:13 <Deewiant> Number of connections per day per user limited? That sounds like it sucks
22:03:14 <fizzie> (Though with some connection limits and no binaries-style groups.)
22:03:21 <cheater3> fizzie: that looks useful, thanks
22:03:35 <Deewiant> fizzie: Does your ISP provide the binaries-style groups?
22:03:42 <cheater3> Deewiant: probably not.
22:03:49 <cheater3> Deewiant: you use easynews for that.
22:04:42 -!- FireFly has quit (Quit: Leaving).
22:04:43 <Deewiant> I was asking because he said explicitly that eternal-september doesn't, whereas it seems to me that it's more noteworthy if something does.
22:04:59 <fizzie> Deewiant: I think they do, though I might be wrong. "grep ^alt.binaries newsrc-nebula | wc -l" at least says 1911, but I haven't checked if the groups contain any content.
22:06:14 <fizzie> Deewiant: I do remember that Saunalahti (or Scifi) used to, because they also had a nifty service that decoded all alt.binaries groups automagically into files on a network filesystem that was visible on their shell server.
22:06:45 <Deewiant> heh
22:06:49 <Deewiant> How long ago was that?
22:07:18 <fizzie> I would guess late 1990s.
22:08:30 <Deewiant> alt.binaries.music appears to have 75k headers here at least; let's see if there's any content
22:08:39 <fizzie> There was something like a hundred gigabytes (this was a big deal back then) full of copyrighted software and porn.
22:08:47 <fizzie> And possibly a few other files, but that was the majority of it.
22:08:48 <AnMaster> fizzie, that link: "Today is September, 6000 1993, the september that never ends "
22:08:55 <AnMaster> that should possibly (not) be celebrated
22:09:35 <fizzie> Hey, is it the 6000th day today (in some time zones)? Almost went by without noticing.
22:09:38 <AnMaster> ais523 would be interested in it
22:09:47 <AnMaster> fizzie, yes I just mentioned it!
22:10:17 <fizzie> AnMaster: Yes, it was a reaction to that.
22:10:41 <Gregor> TIME FOR MOAR MST3K
22:10:45 <AnMaster> fizzie, "hey" implied (to me) "look what I found out"
22:11:04 <fizzie> No, it was "hey" in the "surprised interjection" sense.
22:11:13 <Deewiant> It does look like there's data there, too. So apparently Welho provides.
22:11:16 <AnMaster> hrrm
22:11:18 <AnMaster> very well then
22:11:28 <Deewiant> Elisa didn't, IIRC.
22:12:40 <AnMaster> Deewiant, didn't what?
22:12:43 <fizzie> Deewiant: Oh, and in addition to the news-decoding, they had a huge "/work" directory that was also usable for sharing large files with other Saunalahti customers; that one was also full of pirated software too, though not as much porn.
22:13:01 <fizzie> Deewiant: See e.g. http://sektori.com/uutinen/saunalahtea-moititaan-piratismin/1457/
22:13:15 <fizzie> I think it got discontinued after getting official notice like that.
22:13:30 <fizzie> But before that, it had been quietly distributing data for at least some years.
22:13:48 <Deewiant> AnMaster: Provide binary newsgroups.
22:13:51 <AnMaster> ah
22:14:01 <oklopol> "syytää" :P
22:14:25 <AnMaster> newszilla6.xs4all.nl provides binaries
22:14:35 <AnMaster> readonly only (afaik)
22:14:41 <AnMaster> also that is ipv6 only
22:17:55 <fizzie> Deewiant: And as for the "number of connections per day limited" of eternal-september.org, the limit is 1200 connections/day/user. You can connect 50 times per hour, almost once per minute; I would think you need to have a rather terminal combination of Usenet addiction and short attention span to run into that limit, assuming you just connect-read-disconnect (or even connect-fetch-disconnect-read) instead of automagically polling a lot.
22:18:25 <AnMaster> fizzie, why not keep-alive?
22:18:52 <Deewiant> What does "one connection" over NNTP actually do? Download one message?
22:19:13 <fizzie> Deewiant: No, you can keep it open pretty much as long as you wish, and I think newsreaders usually do.
22:19:54 <fizzie> Though that last part is just conjecture; certainly it'd be possible to write a newsreader that opens a separate connection whenever you click on a message.
22:19:54 <Deewiant> Ah, that's not much of a limit then indeed.
22:21:24 <AnMaster> night →↓←↑
22:22:21 -!- FireFly has joined.
22:23:16 <fizzie> Doing a cartwheel while going to sleep, how suspiciously athletic.
22:23:52 -!- adam_d has quit (Quit: Leaving).
22:24:15 <cheater3> fizzie: what is the significance of september 1993?
22:24:52 <Deewiant> cheater3: http://en.wikipedia.org/wiki/Eternal_September
22:26:03 <cheater3> ahh haha
22:26:48 -!- Pthing has joined.
22:29:43 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
22:30:47 -!- tombom has quit (Quit: Leaving).
22:31:34 -!- augur has quit (Quit: Leaving...).
22:31:56 -!- MissPiggy has quit (Ping timeout: 272 seconds).
22:32:03 -!- MissPiggy has joined.
22:34:56 <cpressey> Interesting. September 1993 is when Befunge was born :)
22:35:02 -!- augur has joined.
22:35:16 <oerjan> it's actually all your fault!
22:37:58 <cpressey> Yes, I'm proud of how much Befunge, and esolangs in general, have really helped lowered the social standards of teh internets.
22:38:27 * cpressey makes directionless squawking sounds
22:39:42 <oerjan> `define squawk
22:39:44 <HackEgo> * utter a harsh abrupt scream \ * the noise of squawking; "she awoke to the squawk of chickens"; "the squawk of car horns" \ * gripe: complain; "What was he hollering about?"
22:40:05 <oerjan> oh dear
22:40:23 <oerjan> well i guess madness takes its toll
22:41:08 <oerjan> that'll be 5 quarters
22:49:06 <cpressey> Oh, the madness I blame squarely on shared objects.
22:49:44 <oerjan> hmm
23:03:15 <oklopol> squared objects
23:07:16 <cpressey> Right on! Unit test segfaulted!
23:11:34 <oklopol> eh? can't you just multiply by it and check if the result is the same?
23:11:45 <oklopol> oh shit unit
23:12:00 <oklopol> yeah okay that's much harder to check
23:12:06 -!- coppro has joined.
23:12:12 <oerjan> i bet he tested the units but forgot the nulls
23:13:20 <oklopol> nulls are easy to test for, units are sort of hard. unless it's a field, then it's pretty easy.
23:13:25 <coppro> great, now we have to write null tests to go with our null tests?
23:14:00 <coppro> err
23:14:06 <coppro> null tests to go with our unit tests
23:14:23 <oerjan> clearly. any ring theorist could have told you that.
23:15:14 <oklopol> i can only assume cpressey is some sort of an applied ring theorist
23:15:52 <cheater3> sup oklopol
23:16:23 <oerjan> both sup and inf lately, i hear
23:16:49 <oerjan> but maybe i shouldn't spread private conversation
23:17:13 <oklopol> hehe
23:18:03 <oklopol> also coding theory, but i figured you wouldn't be that interested
23:18:19 <oerjan> i find it a bit too cryptic
23:18:26 <Sgeo_> Hm, someone pinged me
23:18:49 <FireFly> Well, I pong you
23:19:29 <oklopol> was trying to figure out what exactly makes a code C in 2^n a perfect tile, that is, one for which you can find such a_i's that a_i+C's exactly partition 2^n
23:19:31 * Sgeo_ will check logs as soon as Google Chrome recovers.
23:19:37 <olsner> ah, string rewriting, a prefect match for numerical computing
23:19:42 <olsner> *perfect
23:19:46 <oklopol> sizes are obvious, as is the fact linear codes and their translates all form perfect tiles
23:20:05 <oklopol> but there are codes that form perfect tiles that have seemingly no structure
23:20:39 <olsner> I might have incidentally built a thue interpreter too
23:20:46 <oklopol> (translate = take the code and add something to it)
23:21:02 <oerjan> what a curious incident
23:21:43 <oklopol> basically i've been playing with 2^4 hypercubes for hours
23:22:09 <Sgeo_> ...according to the logs, no one pinged me
23:22:12 <Sgeo_> *mindboggle*
23:22:15 <oerjan> and yet you still appear human
23:22:24 <oklopol> there you go
23:22:50 <oklopol> okay i'll do the following sleeping now:
23:28:32 <cpressey> * sleeping on my side * sleeping on my back * sleeping while standing
23:29:19 * Sgeo_ accidentally got pina colada chapstick, and doesn't even know what pina colada is
23:30:11 <oerjan> http://en.wikipedia.org/wiki/Pi%C3%B1a_colada
23:31:25 -!- FireFly has quit (Read error: Operation timed out).
23:33:14 -!- FireFly has joined.
23:39:50 <cpressey> Too many ideas, too little time.
23:40:21 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:49:15 <cpressey> olsner: I read that as "I might have accidentally built a thue interpreter too"
23:54:03 -!- oerjan has quit (Quit: Good night).
23:54:14 <olsner> cpressey: I meant too as in "as well as what I was attempting to build"
23:54:56 <olsner> having already built about 3 of those while actually attempting to
23:57:19 -!- FireFly has quit (Quit: Leaving).
2010-02-03
00:03:56 -!- SimonRC has quit (Ping timeout: 246 seconds).
00:05:04 -!- Slereah has joined.
00:06:25 -!- Slereah_ has quit (Ping timeout: 240 seconds).
00:09:56 -!- GreaseMonkey has quit (Read error: Connection reset by peer).
00:10:26 -!- GreaseMonkey has joined.
00:10:35 -!- cpressey has left (?).
00:11:45 -!- SimonRC has joined.
00:23:23 -!- Pthing has quit (Remote host closed the connection).
00:24:25 <olsner> d'oh, I'm missing pieces, this isn't even TC
00:56:28 -!- cheater4 has joined.
00:57:06 -!- cheater3 has quit (Read error: Connection reset by peer).
01:12:03 -!- Pthing has joined.
03:58:04 -!- olsner has quit (Ping timeout: 260 seconds).
04:00:37 -!- olsner has joined.
04:01:51 -!- jcp has joined.
04:09:41 -!- jcp has quit (Read error: Connection reset by peer).
04:11:45 -!- jcp has joined.
04:27:06 -!- MissPiggy has quit (Remote host closed the connection).
05:15:11 -!- MizardX has quit (Read error: Connection reset by peer).
05:43:12 -!- Pthing has quit (Read error: Connection reset by peer).
05:44:13 -!- Pthing has joined.
05:45:06 -!- Gracenotes has quit (Ping timeout: 240 seconds).
05:47:21 -!- Gracenotes has joined.
06:04:09 -!- Pthing has quit (Remote host closed the connection).
06:08:39 -!- jcp has changed nick to javawizard.
06:29:16 -!- tombom has joined.
06:42:50 -!- javawizard has quit (Quit: I will do anything (almost) for a new router.).
06:44:06 -!- jcp has joined.
06:58:36 -!- Gracenotes has quit (Ping timeout: 272 seconds).
07:01:20 -!- Gracenotes has joined.
07:33:49 -!- FireFly has joined.
07:49:40 -!- tombom has quit (Quit: Leaving).
07:49:41 <oklopol> hehe, they're doing something with the pipes and absolutely no water should go in the drain; i've already managed to use the sink twice and flush the toilet once
07:55:25 -!- lifthrasiir has quit (Ping timeout: 265 seconds).
07:55:57 -!- lifthrasiir has joined.
07:56:14 -!- FireFly has quit (Quit: Leaving).
07:59:06 -!- Gracenotes has quit (Ping timeout: 252 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:40 -!- lifthrasiir has quit (Ping timeout: 272 seconds).
08:02:47 -!- lifthrasiir has joined.
08:07:03 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
08:09:38 -!- Pthing has joined.
08:11:10 <fizzie> oklopol: You literally give a crap about their instructions, then.
08:16:33 -!- Asztal has quit (Ping timeout: 276 seconds).
08:18:24 <oklopol> actually it was pee, if you must know
08:18:31 -!- lifthrasiir has joined.
08:18:40 <oklopol> i probably would've realized during a longer operation
08:21:51 <fizzie> In retrospect, I'm not sure I actually wanted to start a conversation about this.
08:24:26 <oklopol> in this context, i'll interpret "retrospect" as "looking at ass".
08:24:54 <oklopol> although i guess that makes no sense
08:27:08 -!- lereah_ has joined.
08:27:08 <fizzie> With all retrospect due, I really wasn't looking at your ass.
08:28:35 <oklopol> it's fine
08:29:34 -!- lifthrasiir has quit (Ping timeout: 258 seconds).
08:30:37 <fizzie> I'm going to have to take your word for that, though I'm sure it is.
08:30:42 <lereah_> Does linux have a standard way to read djvu files?
08:30:48 <lereah_> Or do I need to get one
08:31:25 <Deewiant> I don't know of any "standard" way but viewers do exist
08:31:41 <oklopol> you want to get a way from here?
08:32:31 <lereah_> Not sure I can get one though
08:32:34 <lereah_> I be at zerk
08:32:37 <lereah_> werk*
08:32:47 <fizzie> Evince, which is everywhere, has some support for it, I think.
08:32:50 <lereah_> Not sure you can install anything on that computer
08:34:14 <fizzie> At least djvu's mentioned on http://projects.gnome.org/evince/ and Evince's probably installed on anything Gnomish.
08:35:15 <lereah_> I'm on scientific linux, is it gnomish?
08:35:37 <lereah_> Yeah, I think it is
08:35:48 -!- lifthrasiir has joined.
08:37:09 <lereah_> Well, I tried typing evince on the console and it didn"t work, and that's about all my knowledge of linux
08:37:16 <lereah_> How do I open it?
08:38:54 <fizzie> If it's there, "evince" in a terminal should run it. You may be out of luck there.
08:39:05 <lereah_> Balls.
08:39:27 <lereah_> i tried finding an online converter to pdf but no luck
08:39:39 <lereah_> Can someone convert the file to pdf for me?
08:39:59 <lereah_> It is http://membres.multimania.fr/bewulf/Russell/Quantum%20Mechanics%20And%20Path%20Integrals%20-%20R.%20Feynman,%20A.%20Hibbs.djvu
08:40:17 <fizzie> KDE's "Okular" supposedly supports djvu too.
08:40:19 <oklopol> ooh math
08:41:11 <lereah_> No, SCIENCE!
08:41:20 <lereah_> (it are physics)\
08:41:53 <oklopol> hmm oh quantum mechanics
08:41:54 <fizzie> oklopol: I'm at the lectures of a course from the maths department at the moment; so technically this is math too. (But it's about numeric methods, so maybe it doesn't count.)
08:42:01 <oklopol> i just read blah blah path integrals
08:42:30 <oklopol> ofc quantum mechanics is certainly more interesting than path integrals
08:42:46 <lereah_> It is pretty neato torpedo
08:42:50 <lereah_> See, the concept is
08:42:59 <oklopol> fizzie: yell "woohoo math!"
08:43:06 <lereah_> A particle in this theory actually travels on EVERY POSSIBLE PATH
08:43:40 <oklopol> so how exactly does the path integral come in?
08:44:16 <oklopol> and does it travel in R^3?
08:44:18 <lereah_> Well, you have to do a sum over all path to find the probabilities of finding the particle here or there
08:45:22 <oklopol> i guess we could take the space of all continuous paths, and give it a natural measure obtained by some sort of integral average
08:45:34 <oklopol> "sum over all path" isn't specific enough
08:45:54 <lereah_> Yeah, it is rarely easy to find
08:46:07 <lereah_> I'm doing one right now, for instance
08:46:32 <oklopol> i mean you can't sum over all the paths, there's an uncountable number of them
08:46:35 <lereah_> You decompose time in little increments, and for the paths, you do all the possible turns you can do
08:46:42 <lereah_> Then you take the limit
08:47:17 -!- Gracenotes has joined.
08:49:00 <oklopol> all the possible turns is still an uncountable amount; and is this in R^3?
08:49:15 <lereah_> Iunno
08:49:21 <lereah_> Here's the example
08:49:27 <oklopol> you don't know or you don't know what R^3 is?
08:49:39 <lereah_> It is in R^3
08:49:50 <lereah_> A particle goes at the speed of light in 1D
08:50:10 <lereah_> At every time increment, it can do a turn
08:50:29 <oklopol> yeah in 1D you can do it combinatorially
08:50:42 <lereah_> So to go from point A to point B, you sum over all the possible turns at every increment of tine
08:50:57 <lereah_> In the end it's ~ an exponential
08:51:15 <lereah_> (by the way can someone convert it to pdf)
08:51:41 <oklopol> what i would do is google "dvu to pdf"
08:51:48 <lereah_> I did
08:51:56 <lereah_> But I can't install softwares here
08:52:12 <oklopol> well and "online converter" ofc, i never install anything
08:53:09 <oklopol> nothing on the first few pages
08:53:22 <oklopol> i guess no one's invented a converter
08:56:12 <lereah_> (that is why I ask)
08:57:43 -!- oerjan has joined.
08:59:45 <oerjan> <oklopol> hehe, they're doing something with the pipes and absolutely no water should go in the drain; i've already managed to use the sink twice and flush the toilet once
08:59:53 <oerjan> never trust a human to change his habits
09:00:06 <oklopol> or think about what he's actually doing
09:00:53 <oklopol> i was thinking about teaching math to innocent children
09:01:15 <oerjan> _evil_ math i assume
09:01:53 <oklopol> it's not the math that's evil, it just makes humans evil
09:02:04 <oklopol> MWAHAHAH
09:02:23 <oerjan> it turns them into rational, uncaring beasts
09:03:10 <lereah_> Even irrational numbers?
09:03:38 <oerjan> it's a bit complex
09:04:21 <oklopol> i think it's natural enough
09:04:27 <oklopol> we need more number fields
09:04:42 <oklopol> ...with funny names
09:04:44 <oerjan> oklopol: what a surreal idea
09:06:47 -!- augur has quit (Ping timeout: 246 seconds).
09:07:58 -!- augur has joined.
09:08:44 <lereah_> There's plenty of number sets
09:09:00 <lereah_> Constructible, computable, compressible, definable
09:09:22 <oklopol> and how are those names funny
09:09:41 <oklopol> that's the problem with contemporary mathematics, things aren't given funny names
09:09:59 <oklopol> and what's a contructible number
09:10:11 <oklopol> ohhh
09:10:22 <oklopol> right ofc i know those
09:11:13 <lereah_> Also algebraic and transcendental
09:11:16 <lereah_> Shit like dat
09:12:52 <oklopol> what's the definition of a compressible number?
09:13:13 <oklopol> i think you have to be careful or it might not be a field
09:13:32 <lereah_> A number you can write a finite sized program for
09:13:52 <oklopol> oh. then what's the definition of computable
09:13:55 -!- kar8nga has joined.
09:14:00 <oklopol> i thought you'd have to be able to compress it
09:14:16 <lereah_> Lemme check
09:14:50 <lereah_> Hm, I might remember the wrong name for it
09:15:46 <oerjan> no, finite sized program applies to compressible strings, not real numbers, i think
09:15:56 <oerjan> and the program must be shorter than the string
09:18:25 <oklopol> i wonder if there are puns involving Z[sqrt(2)]
09:18:37 <oerjan> compressible number doesn't seem to be a real term
09:18:46 <oklopol> or Z(sqrt(2)) if we want to emphasize fieldness i suppose
09:19:07 <lereah_> It might have been incompressible
09:20:12 <oerjan> no better
09:20:39 <lereah_> http://homepages.cwi.nl/~paulv/schedule06/intro.ps
09:20:57 <oerjan> if i don't put quotes around, google wants to give me (un)compressible flows instead
09:21:33 * oerjan doesn't do postscript
09:22:53 <oklopol> Unrecoverable error: configurationerror in setpagedevice
09:22:54 <oklopol> Operand stack:
09:22:54 <oklopol> false --nostringval--
09:22:54 <oklopol> Failed to open device or install ViewerPreProcess hook: returns -26
09:23:02 <oklopol> me neither, it seems
09:23:17 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
09:28:19 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
09:42:40 <lereah_> oklopol : http://arxiv.org/pdf/hep-th/9302097v1
09:42:51 <lereah_> If you want the path integral mathematically
09:43:04 <lereah_> It describes it a bit
09:43:16 <lereah_> With the hilarious wiener measure
09:43:30 <oklopol> ah, now there's a funny name
09:45:04 <lereah_> It was waiting for you
09:45:35 <lereah_> ":This calculus in functional space (“Wiener measure”) attracted
09:45:36 <lereah_> several mathematicians"
09:45:42 <lereah_> They love wiener measures
09:47:41 <oklopol> "this file is damaged and could not be viewed"
09:47:43 <oklopol> :P
09:47:55 <lereah_> Nigga you got file proble;s
10:09:16 -!- Pthing has quit (Remote host closed the connection).
10:30:26 -!- oerjan has quit (Quit: leaving).
10:44:22 -!- iamcal has joined.
10:45:48 -!- cal153 has quit (Ping timeout: 256 seconds).
10:46:24 -!- comex has quit (Ping timeout: 260 seconds).
10:46:29 -!- comex has joined.
11:49:05 -!- MizardX has joined.
12:34:19 <lereah_> How can I check what Linux I have?
12:35:30 <fizzie> "lsb_release -a" if it happens to support that LSB thing, but not all do.
12:35:54 <lereah_> k
12:36:05 <fizzie> If it does, the "Description" field is most likely a human-readable sensible thing.
12:36:29 <lereah_> Scientific Linux
12:36:32 <lereah_> Damn it
12:36:43 <lereah_> I guess it's close to some other linux
12:36:46 <lereah_> Let's check
12:37:28 <fizzie> It seems to be at least slightly related to Red Hat Enterprise Linux.
12:38:15 <lereah_> It is a free and open source operating system based on Red Hat Enterprise Linux and aims to be 100% compatible with and based on Red Hat Enterprise Linux.
12:40:27 <fizzie> You talk like a free, web-based, collaborative, multilingual encyclopedia project.
12:40:51 <lereah_> I sure do
12:40:56 <lereah_> Forgot the quotes
12:41:09 <lereah_> I don't like to type too much here, the keyboard is qwerty
12:41:49 <oklopol> ugh, who still uses qwerty
12:42:09 <oklopol> well i do but you know that's not relevant.
12:42:17 <fizzie> ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvxyz ,.-?!";: -- there, you can copy-paste most of the things you'll ever need out of that; no need for typing.
12:42:24 <lereah_> France does not
12:42:58 <fizzie> Visited CERN once, the azerty keyboards in the terminals there were confusing.
12:43:29 <oklopol> isn't azerty even stupider
12:43:58 <lereah_> Well, confirmed : I can't install a software here without admin priviledges
12:48:24 <oklopol> they're drilling in harmonic major second outside, i love it
12:49:21 <lereah_> drill baby drill
12:49:24 <oklopol> haha, a tritone xD
12:49:57 <oklopol> i can't concentrate with all this beautiful music around me
12:50:26 <lereah_> Put on some shitty music then
12:51:15 <oklopol> or i could just not concentrate
12:56:58 <fizzie> Debian package single-line descriptions are sometimes less than informative; what'd you expect from "gaia - interface to the planet"?
12:57:17 <lereah_> Some Pandora shit
12:57:28 <lereah_> Just plug in your ponytail
12:57:50 <fizzie> It is, in fact, "an Earth viewer that lets you navigate around the globe and zoom into almost any place".
12:58:02 <fizzie> I'm not sure how that's interfacing with the planet, but.
12:59:19 <oklopol> okay what am i wearing
12:59:42 <oklopol> well okay that's not fair, i'm not outside
13:01:54 <fizzie> It would be much more interfacingy if I could also change what you're wearing.
13:02:06 <oklopol> hmm, true
13:02:28 <oklopol> that sounds really scary after your questions about my ass
13:02:46 <oklopol> or how did the conversation go again
13:22:23 -!- deschutron has joined.
13:22:48 <deschutron> RIP
13:24:45 <deschutron> java.sun.com is there, but they changed the colours, and it looks less welcoming.
14:08:51 -!- oklopol has quit (Ping timeout: 276 seconds).
14:49:33 -!- MissPiggy has joined.
15:07:17 -!- augur has quit (Ping timeout: 246 seconds).
15:23:31 -!- cpressey has joined.
15:33:22 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
15:40:39 -!- augur has joined.
15:52:34 -!- FireFly has joined.
16:00:09 <Gregor> deschutron: Soon it'll forward to oracle.com/ogppl , and be renamed to the Oracle General Purpose Programming Language
16:00:45 <Gregor> Also, Solaris will be renamed to Oracle System Services
16:01:12 <Gregor> And they'll try to rename JavaScript to OracleScript
16:01:55 <Gregor> Then they'll rename VirtualBox to Oracle Virtual System and MySQL to the Oracle Database Sy--no wait.
16:02:55 <Gregor> MySQL will be renamed Oracle Database Demo :P
16:03:44 <Sgeo_> Can't MySQL just be forked?
16:03:53 <Gregor> Sure, but why? PostgreSQL is better.
16:04:15 <Sgeo_> Easier on systems already using MySQL?
16:04:34 <Gregor> I'm sure Oracle provides a very handy upgrade path :P
16:04:41 <deschutron> "Oracle General Purpose Programming Language" haha
16:05:49 <deschutron> yeah they could make a fork called OurSQL or something
16:05:53 <Sgeo_> Hey WOT plugin on Chrome: I love how long it takes you to warn me that I'm on a distrusted site
16:06:31 <deschutron> MySQL fans, that is
16:07:56 -!- puzzlet has quit (Ping timeout: 265 seconds).
16:10:25 -!- kar8nga has quit (Remote host closed the connection).
16:10:32 -!- kar8nga has joined.
16:11:00 -!- kar8nga has quit (Remote host closed the connection).
16:11:30 -!- kar8nga has joined.
16:20:53 -!- lereah_ has quit (Remote host closed the connection).
16:33:26 -!- kar8nga has quit (Remote host closed the connection).
16:33:47 -!- puzzlet has joined.
16:35:29 -!- BeholdMyGlory has joined.
16:36:24 -!- deschutron has left (?).
16:44:45 -!- scarf has joined.
16:53:45 <AnMaster> phew
16:54:09 <AnMaster> 1.5 dm snow during the night to today, then when I got home, another dm of snow
16:55:51 <AnMaster> also: open and mostly flat landscape around here and strong winds
16:56:04 <AnMaster> so really really bad roads today
16:58:02 <scarf> AnMaster: who measures in decimetres?
16:58:27 <scarf> IMO, 0.15m, 15cm, and 150mm would all be more plausible units there
17:02:04 <AnMaster> scarf, err, dm isn't all that uncommon in Sweden
17:02:33 <AnMaster> as in "a few decimetres" or such.
17:02:54 <AnMaster> scarf, oh and there is a class 1 warning for this part of the country
17:03:06 <AnMaster> (note: higher numbers are worse, it goes up to 3)
17:03:39 <scarf> hmm, 25cm of snow would be enough for a severe weather warning here in the UK
17:03:46 <scarf> but then, we're less used to large amounts of snow
17:04:20 <Gregor> Sweden.
17:04:23 <Gregor> Sweden is so weird.
17:04:33 <AnMaster> scarf, also, have you ever been traveling in an articulated bus that met another articulated bus on a already narrow street made yet more narrow due to the roughly 1.5 meter high heaps of snow on the sidewalks (also they extended a fair bit out in the street)
17:04:50 <AnMaster> scarf, really, this winter has been unusually bad
17:04:52 -!- tombom has joined.
17:04:54 <scarf> no, articulated busses are rare enough here as they are, and I don't think I've ever seen two at once
17:04:59 <scarf> *buses
17:05:15 <AnMaster> scarf, well same line, so two buses on the same line met
17:05:23 <AnMaster> really they had a hard time managing (I was in one)
17:05:55 <AnMaster> scarf, anyway what about non-articulated buses.
17:06:15 <scarf> AnMaster: oh, I see those all the time
17:06:23 <scarf> the record was something like 20 at once, that was a fun day
17:06:34 <AnMaster> scarf, I meant: the above scenario for other buses...
17:06:45 <AnMaster> or maybe you don't get enough snow to have a street made so narrow due to snow...
17:06:48 <scarf> basically, something had fallen off the roof of one of the big new skyscrapers in Birmingham and landed on one of the most major roundabouts there
17:06:55 <AnMaster> heh
17:07:02 <scarf> they had to close the roundabout as a result, while they did safety checks
17:07:19 <scarf> and pretty much every car driver avoided the city centre that day, but the busses didn't
17:07:26 <scarf> and they somehow managed to all be clumped in a really huge line
17:07:35 <scarf> nothing for half an hour, then 20 at once, on a huge range of different routes
17:08:33 <AnMaster> right, but that is still not quite like the scenario I described. Also it was snowing heavily at that point and the visibility was poor.
17:09:16 <AnMaster> scarf, oh and skyscraper, how many stories does it need to be that
17:09:22 <AnMaster> rather than just a tall house
17:09:37 <scarf> AnMaster: not sure, I think it's a relative term
17:09:51 <scarf> but it's one of the tallest buildings in Birmingham, many tens of storeys
17:09:53 <scarf> *stories
17:10:35 <AnMaster> could 15 stories or so be a sky-scraper anywhere?
17:10:42 <AnMaster> that is about the tallest around here I think
17:11:08 <AnMaster> and here = not just this town, but also the city a bit away
17:11:31 <AnMaster> in this town, I guess around 5 stories, maybe 7 in some of those newer houses...
17:12:52 <scarf> not sure
17:13:49 -!- oerjan has joined.
17:13:55 -!- cheater has quit (Ping timeout: 245 seconds).
17:14:44 <oerjan> dammit no oklopol
17:15:11 -!- oerjan has set topic: RIP sun.com | 16 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:16:06 <cpressey> There's something I've wondered for a while but never got clear on. If I compile with "gcc -ansi", does that necessarily preclude using any and all POSIX calls?
17:16:21 <AnMaster> scarf, btw, the snow outside the university reached above my knees outside one of the doors I had to reach
17:16:30 <AnMaster> due to the wind blowing it up against the house
17:16:39 <AnMaster> not nice
17:16:40 <scarf> cpressey: the header files take clues from the compiler as to which POSIX calls they should include
17:16:52 <AnMaster> oerjan, bad weather in norway too?
17:16:58 <scarf> by default, I think gcc tells them to use a GNUish set; if you say -ansi, it tells them to use an ANSI set
17:17:04 <AnMaster> oerjan, some 2.5 dm or so since yesterday here
17:17:07 <AnMaster> and still snowing
17:17:08 <scarf> but you can write your own #defines in order to select one yourself
17:17:40 <oerjan> AnMaster: no new snow here, although below -10 temperatures, no wind to speak of. i don't really call that bad...
17:17:42 <cpressey> scarf: Thanks.
17:17:56 <AnMaster> oerjan, well strong wind here...
17:18:09 <scarf> cpressey: man 7 feature_test_macros describes the whole mess
17:18:26 <AnMaster> oerjan, official warning (lowest level) from SHMI and such
17:19:06 <oerjan> i saw some warnings on yr.no in weeks previous, although i think trondheim was mostly missed
17:19:26 <cpressey> scarf: I'd rather not get into that :) I guess my question becomes, is there any sanctioned way in -ansi (-std=c89) to sleep for a given number of milliseconds?
17:19:39 <AnMaster> oerjan, lucky you
17:19:43 <scarf> no, milliseconds are too fine-grained, and that's actually impossible in DOS
17:19:54 <scarf> (the minimum sleep length is 1/19.2 seconds in DOS, for some reason I don't fully understand)
17:20:08 <oerjan> we did have approx -20 temperatures for a short while, though
17:20:11 <AnMaster> oerjan, fun yr.no claims it isn't snowing around here any longer
17:20:18 <AnMaster> looking out I have to strongly disagree
17:20:32 <oerjan> true, it's not always accurate
17:20:50 <AnMaster> oerjan, well, they could update it with current data as well
17:20:56 -!- fungot has quit (*.net *.split).
17:20:57 -!- ineiros has quit (*.net *.split).
17:20:58 -!- pikhq has quit (*.net *.split).
17:20:58 <cpressey> scarf: I believe that's the frequency of one of the timer chips from the original PC architecture. But anyway -- OK, I might have to take a different approach.
17:21:11 <AnMaster> oerjan, also it is generally better than most other ones I know of
17:21:18 <AnMaster> thus when it isn't better it is fun to poke fun at it
17:21:21 <scarf> if you want a guaranteed millisecond sleep, you could require POSIX 2001 (that's #define _POSIX_C_SOURCE 200112L) and use select
17:21:46 <oerjan> oh do you look at yr.no often too? :D
17:21:50 <scarf> or you could require SUSv2 compatibility (#define _XOPEN_SOURCE 500) and use usleep
17:21:52 <AnMaster> <scarf> (the minimum sleep length is 1/19.2 seconds in DOS, for some reason I don't fully understand) <-- can't you change it iirc
17:21:54 <cpressey> scarf: I don't really need for it to be guaranteed. Actually, I don't really need for it to be compiled with -ansi, except for a perverse sense of pride.
17:21:57 <AnMaster> setting the PIT to a higher freq
17:22:00 <AnMaster> or something such
17:22:30 <oerjan> it's in cooperation with the norwegian meteorological institute, you'd imagine they had _some_ clue
17:22:35 <scarf> cpressey: if going for maximum portability, you could abstract out the sleep to a separate file and have it with a bunch of ifdefs for sleeps on differnt platforms
17:22:40 -!- fungot has joined.
17:22:41 -!- ineiros has joined.
17:22:41 -!- pikhq has joined.
17:23:11 <AnMaster> oerjan, nah, they just check the weather stone
17:23:20 <scarf> *different
17:23:28 <cpressey> scarf: Not maximum portability, but yes, I'm thinking now to just #ifdef on whether -ansi was specified. If so, approximate sleeps to the nearest second ('cos I think C89 has something for that)
17:23:41 <scarf> yep, time
17:24:12 <oerjan> :D
17:24:30 <cpressey> Then I can say "compiles with -ansi -pedantic" and satisfy my sick sense of pride in that. Just need to discover that that define is. Whee!
17:24:46 <scarf> cpressey: #ifdef __STRICT_ANSI__
17:24:52 <scarf> the feature test macros work both ways round!
17:25:11 -!- Asztal has joined.
17:25:12 <cpressey> And scarf will even volunteer that information. This must be my lucky day!
17:25:14 <scarf> although, I think that's a glibc definition
17:25:22 <scarf> which is a really perverse sense of portability
17:25:47 <scarf> (if you wanted to be less perverse, you'd instead check that, say, _POSIX_C_SOURCE /wasn't/ set)
17:27:20 <cpressey> Yes.
17:27:34 -!- cheater has joined.
17:32:01 <AnMaster> cpressey, -ansi is C89 iirc?
17:32:19 <cpressey> AnMaster: Yup.
17:32:28 <AnMaster> cpressey, so what is wrong with C99
17:32:37 <cpressey> The manpage even says it's equivalent to "-std=c89".
17:32:53 <AnMaster> don't claim it jumped the shark, it didn't. The difference to C89 aren't that large
17:32:54 <cpressey> AnMaster: Nothing's "wrong" with C99, I just don't want to require it.
17:33:01 <AnMaster> cpressey, meh
17:33:15 <cpressey> No, it didn't jump the shark :)
17:33:20 <AnMaster> everything supports the most useful subset of C99 these days. Windows doesn't count (and on windows icc does it)
17:33:24 <AnMaster> (and mingw)
17:33:27 <AnMaster> (and so on)
17:33:51 <cpressey> AnMaster: I guess you did not see me type "sick sense of pride" twice above?
17:33:56 <scarf> hardly anything supports all of C99, though
17:34:05 <AnMaster> scarf, sure, complex numbers thingy and such
17:34:17 <scarf> AnMaster: I know you dislike python 3, but at least it exists
17:34:19 <scarf> C99 doesn't, really
17:34:25 <scarf> it's just a standard that only half caught on
17:34:32 -!- rodgort has quit (Quit: Coyote finally caught me).
17:34:38 <AnMaster> "most useful subset" = stdint.h, restrict, stdbool.h, inline, // comments, for (int i ...) and a few such things
17:34:50 <AnMaster> oh and .fieldname = foo initialisers
17:34:54 -!- rodgort has joined.
17:35:23 <cpressey> Hey, at least there's only one C99. There's like three RSS 2.0's.
17:35:59 <scarf> there are two C89s, though
17:36:01 <scarf> well, C89 and C90
17:36:10 <scarf> hilariously, they're identical except for the section numbering
17:36:14 <scarf> which makes them rather hard to quote
17:36:32 <AnMaster> scarf, you just *love* to mention that right?
17:36:48 <scarf> AnMaster: not massively, but it's worth mentioning in this context
17:36:50 <AnMaster> I mean, I heard it so many times
17:36:53 <AnMaster> from you
17:37:33 <scarf> AnMaster: I don't think I've said it that many times (anyone care to grep the logs?), and it probably wasn't aimed at you each time
17:38:25 <AnMaster> not aimed at at me every time no
17:38:54 <AnMaster> scarf, also hard to grep for due to exact wording differing
17:41:15 <AnMaster> actually about that amount of snow, other member of household got home, apparently I missed out on two rounds of clearing away the snow during the day. So add about 20 cm to that above...
17:42:09 -!- MigoMipo has joined.
17:42:15 <AnMaster> scarf, so around 45 cm of snow then
17:42:24 <scarf> that's a lot for one day
17:43:11 <AnMaster> scarf, quite, 10-15 cm being more normal "lot of snow for one day" around here
17:44:45 <AnMaster> this has been both the coldest and the snowiest winter for a long time
17:44:56 <AnMaster> I think it even beat that amount some 5 years ago or so
17:51:47 -!- tombom has quit (Ping timeout: 246 seconds).
18:06:21 -!- tombom has joined.
18:11:49 <AnMaster> scarf, oh btw, about 40 cars has gone over the side of the roads in this <something that iirc is roughly eqiv in size to a county in UK>. Due to the extremely slippery roads, partly caused by snow blowing across them.
18:25:14 <cheater4> is there a funge like befunge-93 but with inserting and removing rows/columns?
18:25:49 <cheater4> and is it tc?
18:26:45 <scarf> cheater4: ooh, I wrote something a bit like that
18:26:52 <scarf> now I'm trying to remember the name
18:26:55 <scarf> http://esolangs.org/wiki/Shove
18:27:02 <scarf> no, not that
18:27:03 <cheater4> 'a bit'?
18:27:07 <cheater4> 'splain
18:27:21 <oerjan> sprain your brain
18:27:22 <cheater4> lol
18:27:46 <cheater4> i sprain my brain when i'm reading the mysql manual.
18:27:57 <AnMaster> cheater4, use postgresql
18:28:00 <scarf> doesn't seem to be online, how strange
18:28:49 <cheater4> fuck sql and their non-deterministic totalitarian regime
18:29:06 <oerjan> Shove is conspicuously absent
18:29:07 <cheater4> scarf: just write it again, what could be so hard. :p
18:29:42 <scarf> reference interp: http://pastebin.ca/1786097
18:29:47 <scarf> strangely, I seem to never have written a spec
18:29:49 <scarf> but I believe it's TC
18:30:45 <cheater4> aha
18:30:48 <cheater4> so it is shove after all?
18:30:53 <scarf> yes, just not online
18:31:11 -!- kar8nga has joined.
18:31:38 <cheater4> jesus christ perl
18:31:39 <cheater4> i hate perl
18:32:02 <scarf> why?
18:32:28 <cheater4> why not?
18:32:36 <cheater4> i hate it because i don't know it.
18:32:40 <MissPiggy> if your having perl problems I feel bad for you son, I got 99 programming problems but regex ain't one
18:32:46 <cheater4> isn't that good enough for you?
18:32:55 <cheater4> i don't have problems with regex
18:33:04 <cheater4> but RAP (regex ain't perl)
18:33:18 <oerjan> MissPiggy: that a quote?
18:33:22 <MissPiggy> yes
18:33:25 <MissPiggy> im rapping about perl
18:33:28 <cheater4> it's from an old blue song
18:33:31 <cheater4> blues
18:33:47 <oerjan> um i mean literally
18:33:51 <MissPiggy> no
18:33:53 <MissPiggy> it's modified
18:35:26 -!- Gracenotes has quit (Read error: Connection reset by peer).
18:36:01 -!- impomatic has joined.
18:36:05 <impomatic> Hi :-)
18:36:10 <oerjan> i note that googling "if you're having perl problems" gives several relevant hits, but not with "regex"
18:37:09 <AnMaster> cheater4, MissPiggy: to add some context to the above. in Swedish "rap" means "burp" (the verb form would be "att rapa" - "to burp")
18:37:11 <oerjan> i conclude that regexes _are_ a problem in perl ;D
18:37:28 <MissPiggy> There are rappers with guns after me
18:37:29 <MissPiggy> Enemies that want to make sure I'm dead
18:37:29 <MissPiggy> Rap critics that say, "he only cares about money and women"
18:38:24 <oerjan> we scandinavians frequently rape after dinner </old joke>
18:39:38 <oerjan> heck if it's old _enough_, it may not have been a joke when it started
18:42:23 <impomatic> Is anyone planning to enter the CROBOTS tournament? http://crobots.deepthought.it/home.php?link=91
18:45:39 <impomatic> Hmmm... not much BF_Joust action :-(
18:45:54 <scarf> unfortunately not
18:48:42 <pikhq> GCC hates tail-call optimisation when longjmp is in use.
18:57:37 <AnMaster> pikhq, tell me, what are you trying to do....
18:57:40 -!- cheater has quit (Ping timeout: 245 seconds).
18:57:49 -!- cheater99 has joined.
18:57:50 <AnMaster> pikhq, are you trying to implement call/cc?
18:58:00 <AnMaster> if so, arrgh, and that won't work after you returned
18:58:17 <pikhq> AnMaster: call/cc with continuation-passing style.
18:58:38 <pikhq> Meaning no returning.
18:58:51 <pikhq> It works, GCC just doesn't tail-call optimize it at all.
19:00:05 <MissPiggy> dude if you wantCWCC don't use longjmp
19:00:44 <pikhq> MissPiggy: But it works just fine if you write continuation-passing style.
19:00:56 <pikhq> This means that functions never, ever return.
19:01:05 <AnMaster> pikhq, so longjmp() isn't tail call optimised?
19:01:36 <pikhq> AnMaster: No, functions *with them* aren't tail call optimised.
19:02:12 <pikhq> A tail call to fact becomes "call fact;addq $248, %rsp;ret"
19:02:51 -!- Sgeo__ has joined.
19:02:58 <pikhq> And a tail call to longjmp becomes "call longjmp".
19:03:09 <pikhq> Not "longjmp and then ret", just
19:03:13 <pikhq> "call longjmp".
19:03:43 <pikhq> __attribute__((noreturn)) makes GCC fecking stupid.
19:03:56 <AnMaster> pikhq, well longjmp doesn't return
19:04:07 <pikhq> AnMaster: Yes. "jmp longjmp" would be valid.
19:04:24 <pikhq> That would be a tail-call optimisation.
19:04:35 <scarf> my guess is that longjmp is coded in such a way that it expects to be called by a call
19:04:36 <AnMaster> pikhq, well since it restores the stack, the stack growing is not an issue
19:04:50 <AnMaster> scarf, iirc longjmp is a builtin for gcc
19:04:59 <pikhq> AnMaster: It's not.
19:05:01 <AnMaster> that is just iirc though
19:05:05 <AnMaster> pikhq, hm? really?
19:05:05 <pikhq> I'm looking at the assembly.
19:05:12 <scarf> pikhq: it's a bit of both
19:05:18 <pikhq> Builtins get handled differently.
19:05:26 <scarf> it's special-cased, and so is a builtin in that sense (and you can call it __builtin_longjmp if you like)
19:05:32 <scarf> but it ends up being turned into a cal in the asm
19:05:34 <pikhq> It's almost certainly part of libgcc.a.
19:05:36 <AnMaster> ah it seems to be libc
19:05:37 -!- Sgeo_ has quit (Ping timeout: 264 seconds).
19:05:41 <scarf> *call
19:05:46 <AnMaster> extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
19:05:46 <AnMaster> __THROW __attribute__ ((__noreturn__));
19:05:46 <pikhq> But it's not a builtin.
19:05:54 <pikhq> The builtins are invariably inlined.
19:06:08 <AnMaster> pikhq, then what about libgcc
19:06:09 <scarf> pikhq: it has properties of a builtin, and properties of a nonbuiltin
19:06:30 <AnMaster> libgcc_s even
19:07:14 <pikhq> AnMaster: Mmm.
19:07:41 <AnMaster> or maybe that is just for unsupported instructions kind of stuff (like 64-bit division on 32-bit x86)
19:07:55 <pikhq> scarf: Anyways. It seems that longjmp is part of libc.
19:08:30 <scarf> I remember that with gcc-bf, it's in the libc, but has a crazy calling convention that's different from the normal one
19:08:31 -!- |MigoMipo| has joined.
19:08:33 <scarf> hmm, or is that setjmp?
19:08:43 <pikhq> setjmp is the crazy one.
19:08:48 <scarf> ah yes, it's setjmp that needs to be weird, longjmp can just be a normal function call
19:08:49 -!- cheater99 has quit (Read error: Connection reset by peer).
19:09:44 -!- cheater99 has joined.
19:09:45 <pikhq> Among other things, it's declared __attribute__((returns_twice)).
19:10:26 <scarf> that's a beautiful attribute
19:10:32 <scarf> and not one that's officially documented, I think
19:10:36 <scarf> besides, it can return more than twice
19:11:01 -!- MigoMipo has quit (Ping timeout: 264 seconds).
19:11:07 <pikhq> "Returns twice" just means "there is more than one return here. Make sure all registers are dead."
19:11:41 <AnMaster> scarf, err, setjmp has the "return twice attribute" yeah
19:11:55 <AnMaster> scarf, but what other strange calling convention would there be
19:12:16 <scarf> gah, now I'm going to have to look at libbf/setjmp.s
19:12:17 <AnMaster> <scarf> and not one that's officially documented, I think <-- yes it is
19:12:25 <AnMaster> I'm 100% sure I read the docs
19:12:50 <AnMaster> pikhq, isn't vfork() also returns_twice?
19:12:54 <AnMaster> not sure about fork()
19:12:57 <pikhq> AnMaster: Yeah.
19:13:03 <AnMaster> even though it returns twice it happens in different processes
19:13:05 <pikhq> fork() isn't.
19:13:15 <pikhq> It returns twice, sure, but once per stack.
19:13:20 <AnMaster> pikhq, but... on linux vfork() is just fork() iirc?
19:13:25 <AnMaster> as in, it is mapped like that
19:13:32 <scarf> AnMaster: not quite
19:13:33 <AnMaster> since linux does COW anyway
19:13:39 <scarf> vfork messes with the scheduling on linux
19:13:45 <AnMaster> scarf, in what way?
19:13:49 <scarf> such that the parent won't run until the child execs
19:13:54 <AnMaster> well yes
19:13:55 <pikhq> AnMaster: No.
19:13:58 <AnMaster> so you need a mutex or such
19:14:03 <AnMaster> to make it wait
19:14:07 <scarf> it's safe under the same circumstances as it's safe on non-cow systems
19:14:11 <pikhq> AnMaster: vfork() halts the parent until the child exits.
19:14:16 <scarf> pikhq: or execs
19:14:20 <scarf> which is the normal use-case
19:14:30 <pikhq> By any of: _exit, fatal signal, or exec.
19:14:38 <AnMaster> pikhq, or _Exit()
19:14:41 <pikhq> scarf: The *sane* use-case, you mean. :P
19:14:54 <scarf> pikhq: the *portable* use-case, I mean
19:15:03 <scarf> because vform means something rather different on, say, SunOS
19:15:05 <scarf> *vfork
19:15:05 <pikhq> AnMaster: _Exit is an alias for _exit.
19:15:15 <scarf> pikhq: different standards
19:15:39 <AnMaster> pikhq, well, _Exit is C99 too
19:15:43 <AnMaster> _exit() is posix
19:16:06 <pikhq> Ah.
19:16:17 <pikhq> Really should look at the feature test macros in the man page more.
19:16:28 <AnMaster> beats me why they didn't just use _exit() in C99
19:16:36 <AnMaster> after all, the behaviour is identical
19:16:38 <pikhq> POSIX requires that _Exit be an alias for _exit.
19:16:45 <AnMaster> well yes
19:17:05 <pikhq> But it makes no sense for the two of them to exist.
19:17:09 <AnMaster> huh
19:17:11 <AnMaster> wth
19:17:18 <AnMaster> okay this is strange
19:17:24 <AnMaster> 3p comes before 2 in my man
19:17:25 <AnMaster> on arch
19:17:33 <AnMaster> reverse (and saner) way on ubuntu
19:17:45 <AnMaster> now to find where to fix it on arch...
19:18:20 <AnMaster> ah /etc/man_db.conf
19:23:27 -!- MizardX has quit (Ping timeout: 276 seconds).
19:31:31 -!- tombom_ has joined.
19:33:19 <pikhq> I've got half a mind to do this with getcontext and setcontext.
19:33:23 <pikhq> (oh, the evil I can do!)
19:34:22 -!- oklopol has joined.
19:34:39 <AnMaster> pikhq, they are removed and/or deprecated in POSIX 2008 iirc
19:34:41 -!- tombom has quit (Ping timeout: 258 seconds).
19:34:51 <AnMaster> ah yes
19:34:53 <AnMaster> man page says:
19:34:56 <AnMaster> " SUSv2, POSIX.1-2001. POSIX.1-2008 removes the specification of getcontext(), citing portability issues, and recommending that applications be rewritten to use POSIX threads instead."
19:34:58 <scarf> pikhq: it's because _exit is in user namespace in C89
19:35:05 <scarf> rather than implementation namespace
19:35:16 <scarf> so adding it might have broken existing C89 programs that used it as a variable name (!)
19:35:20 <AnMaster> scarf, so what about printf()?
19:35:24 <AnMaster> isn't that user name space?
19:35:32 <pikhq> AnMaster: But POSIX threads aren't a replacement.
19:35:39 <AnMaster> pikhq, not my fault
19:35:49 <pikhq> I know, just debating.
19:35:58 <scarf> AnMaster: yes, unless you include stdio.h
19:36:04 <pikhq> Pthreads are... Threading. getcontext et al are continuations, with which coroutines can be done.
19:36:12 <pikhq> (and thereby userspace 'threads')
19:36:28 <AnMaster> pikhq, you could simulate getcontext/setcontext with posix threads and mutexes
19:36:34 <scarf> presumably, they had a choice of making you #include <c99stdio.h> to get _exit(), or just calling it _Exit() and putting it in a preëxisting header
19:36:37 <pikhq> o.O
19:36:38 <AnMaster> scarf, ....
19:36:43 <pikhq> Yes, you could.
19:36:52 <pikhq> Dear lord.
19:36:58 <AnMaster> pikhq, what?
19:37:04 <pikhq> This would be the most evil fibonacci sequence implementation ever.
19:37:10 <AnMaster> what?
19:37:13 <scarf> pikhq: I did something similar in continuation.i
19:37:20 <scarf> using INTERCAL threads to simulate continuations
19:37:24 <pikhq> Continuation-passing style using POSIX threads.
19:37:29 <AnMaster> pikhq, wonderful!
19:37:53 <AnMaster> pikhq, a bit irritating on implementations not using user space threads
19:38:02 <AnMaster> on m:n mappings it shouldn't be too bad
19:38:11 <AnMaster> on 1:1 mappings, well, it would be bad
19:38:24 <pikhq> AnMaster: Could just link against GNU userspace threads for those platforms.
19:38:32 <AnMaster> pikhq, such as linux?
19:38:38 <AnMaster> linux uses 1:1 threads
19:38:54 <AnMaster> freebsd used to use m:n but switched to 1:1 too
19:39:02 <AnMaster> most other are 1:1 I think
19:39:13 <pikhq> NPTL uses either 1:1 or m:n.
19:39:21 <AnMaster> ntpl can use m:n?
19:39:23 <AnMaster> link?
19:39:30 <AnMaster> I never heard about this before
19:39:34 <pikhq> Not sure how to switch it over to m:n, but Wikipedia says it can.
19:39:44 <AnMaster> nptl*
19:39:46 <pikhq> Argh.
19:39:52 <AnMaster> pikhq, what?
19:39:53 <pikhq> No it doesn't.
19:40:03 <pikhq> "An alternative to NPTL's 1×1 model is the m×n model where there are typically more userland threads than schedulable entities. In the m×n implementation, the threading library is responsible for scheduling user threads on the available schedulable entities; "
19:40:10 <pikhq> That's just saying "this is possible".
19:40:11 <pikhq> -_-'
19:40:13 <AnMaster> yeah
19:40:35 <AnMaster> but linux doesn't do it
19:40:53 <pikhq> GNU Portable Threads are M:1.
19:41:15 <pikhq> Slightly inefficient, but work just about everywhere.
19:44:16 <oerjan> (i think there was a big error in it when i found it, which i removed :D)
19:44:25 <oerjan> darn windows
19:44:30 <AnMaster> oerjan, big error in what?
19:44:54 <oerjan> well since it ended up here anyhow, in http://en.wikipedia.org/wiki/Formally_real_field
19:45:34 -!- BeholdMyGlory has quit (Remote host closed the connection).
19:45:37 -!- kar8nga has quit (Remote host closed the connection).
19:45:47 <pikhq> AnMaster: Well, doing that I would have *one* advantage.
19:45:57 <pikhq> Writing in a functional style makes everything automatically reentrant.
19:46:02 <pikhq> Mmm, immutable values.
19:49:21 <pikhq> Though, if I did everything with getcontext et al, I could do stuff like have garbage-collected stacks. Which amuses me.
19:49:46 <cpressey> Doing continuation-passing style with pthreads would be a bit like doing it with bash shell calling "exec $0"... no?
19:50:12 <pikhq> cpressey: Remarkably similar.
19:52:09 <cpressey> I should implement that idea I had for "continuators" a while ago, even though it was really vague and unimplementable. Something about passing continuations between processes/threads, and calling a service to provide new continuations...
19:52:34 <cpressey> I think I just liked the term "continuator".
19:52:55 <AnMaster> pikhq, how could you gc the stacks?
19:53:04 <AnMaster> pikhq, also I doubt boehm-gc would like it very much
19:53:12 <pikhq> AnMaster: Stacks are explicitly allocated.
19:53:34 <AnMaster> pikhq, boehm-gc would go mad
19:53:39 <pikhq> You literally have to allocate a stack and stick it into a context for creating a new context.
19:54:36 <AnMaster> pikhq, what if you realloc() it?
19:54:36 -!- GreaseMonkey has joined.
19:54:40 <AnMaster> or anyway
19:54:44 <AnMaster> how do you grow it
19:55:09 -!- BeholdMyGlory has joined.
19:55:13 <pikhq> Generally, you just allocate a sufficiently large stack.
19:55:32 <pikhq> But it's normally allocated memory.
19:55:39 <pikhq> Which happens to be where the stack pointer is.
19:55:51 <GreaseMonkey> 'lo.
19:56:27 <GreaseMonkey> hard disk's a little slow this morning
19:57:21 <AnMaster> mhm
19:57:39 <AnMaster> GreaseMonkey, why are you still using a legacy rotational storage device?
19:57:55 <AnMaster> also instead of flying cars: WHERE ARE MY DATA CUBES?
19:58:15 <GreaseMonkey> AnMaster: so how much are, um, 160DMGB+250DMGB SSDs?
19:58:26 <GreaseMonkey> DMGB = drivemakers' gigabytes = 1000^3B
19:58:27 <AnMaster> wth is DMGB
19:58:56 <AnMaster> GreaseMonkey, thanks, will use that against ehird (he uses GB/GiB)
19:58:56 <GreaseMonkey> i completely refuse to refer to them as just GB
19:59:12 <GreaseMonkey> GB was always 1024^3
19:59:27 <GreaseMonkey> those who insist we use GiB for that should learn to stop being so cheap
20:00:12 <GreaseMonkey> some country should bring in a legislation which enforces that a xB is 1024^y bytes
20:00:28 <AnMaster> GreaseMonkey, G = 1000 in the SI system though
20:00:31 <GreaseMonkey> because 1000^x is just false advertising
20:00:37 <AnMaster> or are you using kig for 1000 grams?
20:00:42 -!- augur has quit (Ping timeout: 252 seconds).
20:00:51 <AnMaster> GreaseMonkey, ^
20:00:58 <GreaseMonkey> well, note that there's kg, and KB
20:01:01 <AnMaster> also they should just use cyliders
20:01:04 <AnMaster> cylinders*
20:01:26 <GreaseMonkey> it was always 1024 for a KB, anyway
20:01:41 <cpressey> kig = 1024 grams?
20:01:52 <GreaseMonkey> thing is, with metric, you're working with real numbers
20:01:54 -!- augur has joined.
20:02:03 <GreaseMonkey> and a human is supposed to measure it
20:02:04 <scarf> wow: http://labs.ripe.net/content/pollution-18
20:02:08 <GreaseMonkey> (usually)
20:02:17 <GreaseMonkey> but with a computer, you're working with integers
20:02:17 <scarf> it's a graph of what happened when 1.1.1.0/24 was put live on the internet
20:02:23 <pikhq> GreaseMonkey: The SI prefixes are useless for computers, yes.
20:02:25 <AnMaster> <cpressey> kig = 1024 grams? <-- ah hm
20:02:29 <scarf> basically, the people who owned it got DOSed
20:02:37 <pikhq> This is why we shouldn't use SI prefixes.
20:02:40 <AnMaster> make it, dmkg for "drive makers kilogram"
20:02:45 <pikhq> Mmm, gibibytes.
20:02:51 <AnMaster> to keep with GreaseMonkey's logic
20:02:59 <scarf> should be Kig
20:03:07 <scarf> capital K on KiB
20:03:09 <GreaseMonkey> thing is, it was always 1024 bytes to a KB
20:03:19 <AnMaster> err
20:03:22 <GreaseMonkey> it was also always 1000 grams to a kg
20:03:39 <AnMaster> isn't 1.0.0.0/8 private?
20:03:41 <AnMaster> oh wait
20:03:43 <AnMaster> that is 10
20:03:45 <pikhq> AnMaster: No.
20:04:00 <pikhq> 1.0.0.0/8 was recently assigned.
20:04:08 <pikhq> However, it's been used as a private space.
20:04:25 <pikhq> (it was reserved by the IANA since '81)
20:04:28 <scarf> there's a huge amount of unofficial use of 1.0.0.0
20:04:35 <GreaseMonkey> at first i thought you said they allocated 10.0.0.0/8
20:04:50 <scarf> the authorities are holding on to 1.1.1.0/24 on the basis that it would be crazy to allocate it to anyone
20:05:08 <GreaseMonkey> good point
20:05:23 <scarf> and it looks like RIPE decided to put it online for a bit to see what happened
20:05:29 <scarf> (the result was chaos, as you can imagine)
20:06:20 <scarf> <RIPE> We can certainly conclude from this that specific blocks in 1/8 such as 1.1.1.0/24 and 1.2.3.0/24 are extremely polluted. Unless the traffic sent towards those blocks is significantly reduced they might be unusable in a production environment.
20:07:58 <GreaseMonkey> it's not so bad considering that they actually tested it before attempting to release it
20:08:54 <scarf> it's brilliant that they even thought of testing
20:09:29 <GreaseMonkey> that might be why AW's server was so damn slow
20:09:51 <AnMaster> scarf, I couldn't imagine before reading it that it was chaos
20:10:11 <AnMaster> mainly because I couldn't imagine people would be abusing reserved prefixes
20:10:20 <scarf> AnMaster: Wikipedia has edits from 1.2.3.4, you can check that yourself
20:10:29 <scarf> that's what cottoned me on to thinking that there might be a problem
20:10:35 <scarf> (it also has edits from 127.0.0.1, which is amazing)
20:10:38 <AnMaster> scarf, what does that signify btw
20:10:44 <AnMaster> the 1.2.3.4 thing I mean
20:10:54 <scarf> it means that someone, probably a dev, put a fake IP in for the edit
20:10:59 <scarf> although I'm not sure whyt
20:11:00 <scarf> *why
20:11:03 <AnMaster> hm
20:11:12 <AnMaster> scarf, as for those 127.0.0.1, what sort of edits
20:11:23 <AnMaster> I guess someone used an ssh tunnel...
20:11:23 <scarf> you can check for yourself, you know
20:11:29 <scarf> http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Special:Contributions/127.0.0.1
20:11:33 <AnMaster> scarf, I don't know how to search on the ip
20:11:34 <AnMaster> ah
20:11:47 <scarf> looks like mostly interwiki links to the Russian Wikipedia
20:11:55 <AnMaster> yep
20:12:02 <AnMaster> so a bot that wasn't properly logged in?
20:12:31 <scarf> http://en.wikipedia.org/wiki/User_talk:127.0.0.1 is not that bad either
20:12:41 <scarf> "Note: In the event of vandalism from this address, half-baked abuse reports may be sent to Wikimedia's own network administrator for further investigation that will never be looked into."
20:12:57 <GreaseMonkey> hehe
20:13:14 <AnMaster> "Caution should never be used when blocking this IP or reverting its contributions without checking - if a block is unnecessary, administrators should consider using the banhammer without adding any templates as the block reason. Of course, most administrators are just testing the blocking and unblocking procedure."
20:13:18 <AnMaster> err
20:13:24 <AnMaster> is that backwards?
20:13:24 <GreaseMonkey> ARGH BALLS i can't get on wikipedia >_> <_<
20:13:40 <scarf> AnMaster: yes, it's backwards
20:18:00 <AnMaster> scarf, wth at http://en.wikipedia.org/wiki/User_talk:1.2.3.4
20:18:05 -!- |MigoMipo| has changed nick to MigoMipo.
20:18:46 <scarf> no idea there
20:19:20 <scarf> might be worth mentioning that it's changed hands since
20:19:43 <AnMaster> also why allocate 1/8
20:19:50 <AnMaster> just switch to ipv6 already dammit
20:20:01 <AnMaster> scarf, what changed hands?
20:20:26 <scarf> AnMaster: 1/8
20:21:21 <AnMaster> hm
20:30:21 <oerjan> um that's backwards? it seemed sort of logical to me to treat an address heavy-handed if it doesn't really have the right to exist as an editor...
20:37:15 <cpressey> AnMaster: I'm tempted to say that IPV6 is the "jumped the shark" of network addressing, but I won't :) It's not /quite/ the same effect...
20:37:45 <AnMaster> cpressey, it *is* about our only hope atm
20:37:58 <AnMaster> cpressey, any alternatives would take years to develop
20:38:00 <cpressey> But it's similar, I guess: "I'm only going to start doing it if all my friends are doing it, and my friends feel the same way"
20:38:09 <AnMaster> and we don't have that amount of time any more
20:38:16 <AnMaster> before ipv4 runs out completely
20:38:33 <AnMaster> cpressey, also I use a sixxs tunnel
20:40:34 <AnMaster> cpressey, my isp has an ipv6 block allocated, they don't use it though
20:40:39 <AnMaster> also I doubt my router could handle it
20:40:46 <AnMaster> could telnet to it and check it's menus
20:40:55 <AnMaster> (it's a speedtouch adsl modem/router)
20:41:48 <cpressey> I remember trying NetBSD once, and it insisting on using IPV6. That was not fun.
20:42:14 <pikhq> Comcast is beginning the switch to IPv6 *now*.
20:42:28 <cpressey> How very NetBSDish... "No! We will do it the RIGHT way, no matter what the cost!"
20:42:40 <GreaseMonkey> ...what the crap
20:42:49 <SimonRC> cpressey: heh
20:42:52 <GreaseMonkey> netbsd should still be using IPv2
20:43:01 <GreaseMonkey> THAT seems more netbsdish to me
20:43:08 <cpressey> GreaseMonkey: Heh
20:43:39 <GreaseMonkey> my netbsd experience is that it takes up sod-all RAM
20:44:15 <pikhq> GreaseMonkey: Garbage collection and manual memory management are highly overrated.
20:44:29 <pikhq> Just statically create a heap of a couple gigabytes and hope it works.
20:44:30 <pikhq> :P
20:45:06 <oerjan> just use your nanobots to create a few cubic meters of computronium
20:46:38 <scarf> pikhq: or the anagolf technique of just using whatever memory addresses happened to be in the variables at the time, and repeatedly running the program until they turn out to be writable
20:48:32 <AnMaster> cpressey, my isp hasn't started going ipv6 yet
20:48:33 <AnMaster> also
20:48:37 <AnMaster> things will be bad
20:48:45 <AnMaster> because almost no servers will have ipv6
20:48:52 <AnMaster> so you will have to go through 6-to-4
20:48:54 <AnMaster> and that
20:48:59 <AnMaster> will result in problems
20:49:06 <AnMaster> like connection limit counts for irc
20:49:07 <AnMaster> and what not
20:49:24 <AnMaster> also wikipedia banning
20:49:36 <scarf> I'd expect wikipedia to go to ipv6 some time
20:49:41 <AnMaster> well yes
20:49:48 <AnMaster> scarf, still, the issues are huge
20:50:00 <scarf> going home now, anyway
20:50:01 <scarf> bye everyone
20:50:04 <AnMaster> scarf, imagine rate limiting on lots of places
20:50:05 <AnMaster> scarf, cya
20:50:09 -!- scarf has quit (Remote host closed the connection).
20:50:09 <GreaseMonkey> cya scarf
20:56:44 <Ilari> Quite polluted /24 when announcing it causes tens of megabits of traffic (on block that should be quiet)... :-/
21:05:21 -!- augur has quit (Ping timeout: 259 seconds).
21:07:14 -!- augur has joined.
21:13:58 -!- MigoMipo has quit (Quit: co'o rodo).
21:14:07 -!- impomatic has left (?).
21:21:13 <Ilari> Often resource exhaustion problems don't feel that pressing until you really hit them, and when you hit them, you hit them _hard_.
21:30:44 -!- kar8nga has joined.
21:37:29 -!- adam_d has joined.
21:43:45 <pikhq> Well, I've got CPS with getcontext et al...
21:43:51 <pikhq> And it behaves... *Weirdly*.
21:44:38 <pikhq> It goes through 3 continuations just fine, before going up to a nulled out stack frame.
21:45:33 <pikhq> Yes, a nulled stack frame.
21:50:06 <cpressey> I'm sorry I ate your stack frame.
21:50:09 <cpressey> I was hungry.
22:01:29 <pikhq> And it is in fact a stack fram that was valid.
22:01:36 <pikhq> It just somehow gets nulled out.
22:01:46 <pikhq> I don't know how.
22:06:50 <pikhq> It would appear to be a result of a too-large new stack...
22:06:53 <pikhq> Somehow.
22:11:44 <pikhq> ... The program changes behavior with normal malloc.
22:12:10 <pikhq> With GC_MALLOC, it computes factorials validly for n in [0..11].
22:12:27 <pikhq> With normal malloc, it loops infinitely.
22:16:07 <pikhq> http://sprunge.us/RNie
22:18:06 <AnMaster> niht
22:18:08 <AnMaster> night*
22:20:59 <oerjan> ni!
22:22:40 -!- MizardX has joined.
22:23:28 <pikhq> I'm never using getcontext ever again.
22:23:50 -!- kar8nga has quit (Read error: Connection reset by peer).
22:27:02 -!- Pthing has joined.
22:28:46 -!- tombom_ has quit (Quit: Leaving).
23:06:50 -!- MissPiggy has quit (Ping timeout: 245 seconds).
23:07:24 -!- coppro has joined.
23:19:46 <cpressey> So I'm thinking an imperative function-level language would revolve around three concepts: storage locations (replace atoms), procedures (replace functions), and procedurals (replace functionals). Parameters would always be passed "by reference" -- so procedurals make new procedures by modifying (clobbering) existing procedures.
23:26:33 -!- FireFly has quit (Quit: Leaving).
23:34:29 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:37:29 -!- adam_d has quit (Quit: Leaving).
23:45:21 -!- mquin has quit (Remote host closed the connection).
2010-02-04
00:11:23 <cpressey> And Then There Were 42.
00:17:28 <GreaseMonkey> wow.
00:17:37 <GreaseMonkey> we really understand life.
00:17:47 <GreaseMonkey> at least conway's version, that is
00:23:29 <cpressey> Boo-yah!
00:23:31 -!- cpressey has left (?).
00:23:47 -!- SimonRC has quit (Ping timeout: 246 seconds).
00:24:08 <coppro> conway's life is awesom
00:24:14 <coppro> Are there any life-based languages?
00:27:00 <oerjan> well REDGREEN has a life subset
00:28:31 -!- SimonRC has joined.
00:29:11 <coppro> hmm
00:29:17 <coppro> is there a graphical version of REDGREEN somewhere?
00:29:40 <oerjan> no idea. and cpressey just left.
00:29:52 <coppro> I know he left
00:30:43 <oerjan> i guess you'd want a graphical version of ALPACA, since that's what it's written in
00:31:07 <oerjan> but still i dunno
00:37:20 <coppro> you could have a simple text-to-image replacement on top of the ALPACA layer
00:37:46 <oerjan> true
00:39:04 <coppro> does a nice generic one of those exist?
00:39:49 <oerjan> "no idea"
00:45:04 <coppro> that sounds like a reasonable project
01:01:32 -!- Slereah has quit (Ping timeout: 265 seconds).
01:06:51 -!- oerjan has quit (Quit: Good night).
01:34:20 -!- coppro has quit (Ping timeout: 245 seconds).
01:47:01 -!- coppro has joined.
02:17:11 -!- augur has quit (Ping timeout: 246 seconds).
02:19:38 -!- Asztal has quit (Ping timeout: 246 seconds).
02:33:26 <Sgeo__> *sigh* If I'm a superstar in a 3xx level class, that reflects badly on the school rather than well on me?
02:35:10 <Gregor> Nothing ever reflects well on you. :P
02:35:55 <Sgeo__> Seriously, one of these guys is a professional programmer, and apparently he's struggling
02:36:06 <Sgeo__> I think that that reflects poorly on the teacher
02:36:45 <coppro> Sgeo__: What's the class about?
02:36:53 <coppro> also, what school?
02:37:03 <Sgeo__> Data Structures, but currently we're just doing a Fraction calculator
02:37:10 <Sgeo__> SUNY Farmingdale
02:37:34 <Sgeo__> A lot of the students are complaining about a previous teacher from a 2xx level course
02:37:42 <Sgeo__> I had the same teacher and agree with those complaints, really
02:40:25 -!- augur has joined.
02:51:09 -!- Asztal has joined.
02:52:02 <pikhq> ... Professional programmer. Struggling with data structures.
02:52:20 <pikhq> ... Data structures, a 3xx level class?
02:53:10 <coppro> Sgeo__: what's complaining about a previous teacher got to do with it?>
02:53:31 <Sgeo__> coppro, the previous teacher didn't actually teach anything
02:53:39 <coppro> oh
03:18:04 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
03:30:08 <coppro> so, anyone interested in a program to display a text file with a tile system?
03:56:10 <Sgeo__> ABCDEFGHIJKLMNOPQRSTUVWXYZABCD
03:56:10 <Sgeo__> AKRYPTOS
04:21:53 -!- MizardX has quit (Read error: Connection reset by peer).
04:23:05 -!- MizardX has joined.
04:32:33 -!- MizardX has quit (Ping timeout: 258 seconds).
04:45:26 -!- Gracenotes has joined.
05:20:15 <augur> hey! :
05:20:16 <augur> :D
05:20:24 <augur> graaaaacenotes :D
05:29:35 <oklopol> heh, now they're drilling in minor third
05:31:23 <augur> oklopol! :D
05:32:26 <oklopol> augur! :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
05:33:49 <augur> ::glomp::
05:34:13 <oklopol> g...lomp?
05:34:23 <augur> pounce huggle
05:34:37 <oklopol> argh alarm clock is making a sound
05:34:44 <oklopol> WHY IS THIS MORNING FILLED WITH SOUND
05:34:54 <augur> because today is
05:34:56 <augur> SOUND DAY
05:35:00 <oklopol> :o
05:35:04 <oklopol> wow that would be cool
05:38:30 <oklopol> BYE
05:38:31 <oklopol> ->
05:38:43 <augur> byeee
05:51:36 <Gracenotes> this is rather useful, javascript:as=document.getElementsByTagName("a");for(i=0;i<as.length;i++){if(as[i].href)as[i].innerHTML=as[i].href};void(0)
05:51:49 <Gracenotes> for link-copying and the like
05:55:50 <oklopol> in my dream i was in a university that was completely based on aocp, there was one massive building per subsubchapter, 3.1.2. and such
05:56:45 <oklopol> they went up to 8, and i was told that's where all the reeeeally technical math happens
05:56:52 <oklopol> oh, and it was a math university
05:57:30 <pikhq> Gracenotes: ...
05:57:36 <pikhq> Gracenotes: That seems silly.
05:58:55 <Gracenotes> domains of usefulness: putting links to download sites into a copy/paste-able form, plugged into a terminal script which downloads them. possibly others.
06:01:01 -!- _s_k_y_ has joined.
06:01:33 <oklopol> why not express the y with s and k
06:01:41 -!- _s_k_y_ has left (?).
06:01:52 <oklopol> yeah i guess that was a bit rude on my part
06:02:02 <oklopol> it was a good enough nick
06:28:50 -!- FireFly has joined.
06:57:33 -!- tombom has joined.
07:50:14 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:52 -!- Slereah has joined.
08:16:28 -!- kar8nga has joined.
08:19:08 <Slereah> fukken
08:19:15 <Slereah> My computer at home is broken
08:50:11 -!- kar8nga has quit (Remote host closed the connection).
09:18:45 -!- Asztal has quit (Ping timeout: 252 seconds).
09:24:12 -!- Pthing has quit (Remote host closed the connection).
09:32:58 -!- oerjan has joined.
09:34:42 -!- cheater99 has quit (Quit: Verlassend).
09:35:14 -!- cheater99 has joined.
09:36:00 -!- cheater99 has quit (Client Quit).
09:37:13 -!- cheater has joined.
09:56:27 -!- adam_d has joined.
10:42:07 -!- mustafas has joined.
10:42:40 <mustafas> h'
10:42:43 <mustafas> hi
10:42:45 <mustafas> all
10:42:48 <oerjan> hello
10:43:21 <mustafas> where from
10:43:33 <oerjan> norway
10:43:37 <mustafas> turkey
10:43:45 <mustafas> 36 m
10:44:08 <oerjan> 39 m
10:44:18 <mustafas> good
10:44:48 <mustafas> what is time there
10:44:57 <oerjan> 11:44
10:45:06 <mustafas> same
10:45:15 <mustafas> what s your job
10:45:24 <oerjan> no comment
10:45:28 <mustafas> ok
10:45:43 -!- mustafas has left (?).
10:45:55 <oerjan> huh
10:49:30 -!- oerjan has quit (Quit: Later).
10:49:41 <fizzie> Ooh, I don't think we've had an honest-to-$deity A/S/L conversation here very often.
11:27:24 -!- Pthing has joined.
12:52:01 -!- MizardX has joined.
13:28:58 -!- Wareya has quit (Ping timeout: 248 seconds).
13:42:57 -!- Pthing has quit (Remote host closed the connection).
14:17:03 -!- cheater4 has quit (Ping timeout: 276 seconds).
14:41:48 -!- cheater2 has joined.
15:06:02 -!- scarf has joined.
15:40:45 -!- BeholdMyGlory has joined.
15:43:57 -!- cpressey has joined.
15:44:40 <cpressey> Isn't it 17 days now?
15:46:29 -!- MigoMipo has joined.
15:48:21 <pikhq> Yes.
15:48:25 <pikhq> Bit worrisome.
15:51:54 -!- MigoMipo has quit (Remote host closed the connection).
15:52:59 -!- MissPiggy has joined.
16:09:44 -!- MigoMipo has joined.
16:40:10 -!- Slereah has quit (Quit: Leaving).
16:43:01 -!- coppro has quit (Remote host closed the connection).
16:59:37 -!- tombom has joined.
17:05:04 -!- oerjan has joined.
17:05:40 <fizzie> Maybe his parents found out what sort of people we are, and forbid him to associate with us.
17:09:10 <MissPiggy> perverts
17:10:20 <oerjan> that doesn't explain why he's also gone from reddit. oh wait...
17:10:33 <cpressey> Wait, what sort of people *are* we?
17:11:07 <cpressey> Complete professionals.
17:11:12 <cpressey> That's my story and I'm sticking to it.
17:11:27 <oerjan> i'm not professional
17:11:48 -!- oerjan has set topic: RIP sun.com | 17 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:36:57 <cpressey> Is it just me, or do most developers actually *like* all that operational crap -- debugging, profiling, upgrading dependencies, configuring database servers, etc, etc?
17:37:22 <cpressey> Actually, "Is it just me" was exactly the wrong phrase to start that question with :)
17:37:30 <MissPiggy> lol
17:37:35 <MissPiggy> that was a total nonsequiter
17:37:52 <MissPiggy> hm
17:37:57 <MissPiggy> except backwards
17:38:08 <oerjan> well stop nonsequiting then
17:38:47 <cpressey> Is it just me that sees all the developers around them liking all that operational stuff
17:41:43 <oerjan> well it would be bad if nobody liked it, given that it has to be done
17:53:46 <cpressey> I think maybe some developers like those tasks because they are (in some sense) much easier than designing and coding.
17:56:14 <FireFly> Well, it's also utterly boring :)
17:56:24 <cpressey> Don't mind me, I'm just griping about being asked to profile some trivial changes I made. Outside any loop. In a DB-bound app. In the absence of any concrete performance requirements...
17:59:31 <oklopol> that's what you get for having a job
18:00:48 <cpressey> True. Although I'm sure this kind of thing happens often enough in open-source projects, too. :)
18:01:55 <oklopol> i'm not a strong support of OS either
18:02:11 <cpressey> JWZ once wrote an article griping about how open-source projects only do the work that's fun, not what's important. I wasn't impressed -- that's their freakin' perogative, if no one's paying them.
18:02:12 <oklopol> supporter
18:03:11 <oklopol> only do the work that's fun? in what sense?
18:03:47 <oklopol> i mean i'm under the impression OS programs are not inferior in quality to CS ones.
18:03:57 <cpressey> One sec, I'll try to find the article.
18:04:21 <oklopol> i'll prolly go to sleep soon, but maybe i'll read parts of it.
18:04:39 <cpressey> http://www.jwz.org/doc/cadt.html
18:04:42 <cpressey> It's short
18:07:24 <oklopol> great if that's true, sofar the only reason i have for not liking OS is i don't like it when people don't get paid for what they do.
18:08:22 <oklopol> which is almost "i just dislike for the heck of it".
18:08:25 <oklopol> *it
18:10:04 -!- augur has quit (Ping timeout: 265 seconds).
18:25:10 -!- kar8nga has joined.
18:48:06 -!- augur has joined.
18:49:39 -!- scarf has quit (Remote host closed the connection).
19:02:56 -!- Asztal has joined.
19:32:47 <olsner> I don't like doing non-programming crap (either? that original question was a bit unclear)
19:33:03 <olsner> it was also 2h ago
19:33:58 <olsner> version control, whenever it becomes a distinct activity, also sucks a lot
19:35:51 <cpressey> Hm. I don't mind most version control tasks (although I can see how some can be just awful).
19:37:07 <cpressey> I'm getting used to writing test cases. At least there, there's some concrete improvement you can feel.
19:37:33 <cpressey> And some troubleshooting is inevitable.
19:37:48 <cpressey> But configuring Apache and that sort of stuff... ugh.
19:39:39 <olsner> most VC tasks are basically just the "commit -> done" part of "code -> commit -> done", and that's fine and pretty much fun (since it means your code gets out into the world), but when you spend minutes, hours or days at a time battling version control then it really ... blows
19:40:04 <olsner> moving stuff around in a VCS that doesn't do moving, for example
19:41:46 <cpressey> Oh heck yeah. Maybe it's just me, but distributed version control seems much more hassle than it's worth.
19:42:20 <olsner> I think DVCS:es are more modern and thought-through and thus handle larger projects better
19:43:22 <cpressey> There's an element of that, sure, but I've never actually seen centralized VC fail badly at handling a large project, either.
19:44:05 <olsner> yeah, CVS has the benefit of only having to work at one file at a time :P
19:44:54 <olsner> otoh, CVS implements some of the low-level operations theeee most braindead way possible, takes a few seconds per file to create a branch in some circumstances
19:45:06 <olsner> it's O(n^2) in the number of existing branches
19:51:23 <cpressey> Nice.
19:52:06 <olsner> I think CVS is actually also using a hashtable to do this, but iterating it linearly
19:52:18 <olsner> or maybe their "hashtable" is just a list/array
20:55:17 -!- kar8nga has quit (Remote host closed the connection).
21:04:37 <cpressey> Well! Thanks to profiling, I optimized my cache access function, and it now only accounts for 5.9 microseconds of the access time of each web page, instead of 6.3 microseconds!
21:07:40 <oerjan> *gasp*
21:09:34 <cpressey> Hm, 3PM. Time for lunch.
21:09:55 -!- Sgeo|web has joined.
21:09:58 <Sgeo|web> *sigh*
21:10:13 <Sgeo|web> The idiots in my UNIX class are playing the "penis" game
21:11:23 <MissPiggy> sounds fun!!
21:11:33 <MissPiggy> but a bit raunchy for a UNIX class
21:11:56 <MissPiggy> or am I thinking of a different game..
21:12:05 * oerjan is afraid to ask
21:26:22 <oklopol> what's the penis game
21:29:02 -!- Gracenotes has quit (Ping timeout: 246 seconds).
21:29:04 <Sgeo|web> Where a group of people say "penis" louder and louder. The person who refuses to say it loses
21:29:50 <oklopol> lol that sounds awesome :D
21:30:09 <oerjan> the penis mightier
21:36:36 -!- olsner has quit (Ping timeout: 272 seconds).
21:41:37 -!- Sgeo|web has quit (Quit: Page closed).
21:49:55 -!- olsner has joined.
21:53:24 <fizzie> "OpenStreetMap is a free editable map of the whole world. It is made by people like you." People like me! Maybe they could also start a dating service thing, if they can guarantee something like that.
21:54:22 <Gregor> They are like you in that they are people :P
21:55:08 <oerjan> this is insulting to all the non-people who happen to be reading that!
21:55:51 -!- MigoMipo has quit.
21:59:36 <oklopol> pfft, people
22:04:25 -!- MigoMipo has joined.
22:08:05 <cpressey> "It is made by people who like you." Then they'd be even better suited for starting that dating service, no?
22:09:07 <oklopol> "it is made by people, like you".
22:09:16 <oerjan> "It is made by people who hate you and are trying to kill you."
22:10:18 <oklopol> i win because mine was a mom joke
22:10:24 <olsner> "it is made by norwegians."
22:12:41 <oerjan> same thing.
22:17:04 <olsner> exactly.
22:21:41 -!- tombom has quit (Quit: Leaving).
22:25:24 -!- MigoMipo has quit (Remote host closed the connection).
22:29:24 -!- jix has quit (Read error: Operation timed out).
22:29:29 -!- jix has joined.
22:38:28 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:54:54 -!- adam_d has quit (Quit: Leaving).
22:59:02 * cpressey suspiciously eyes the box labelled "PROBLEM TOMATOES"
22:59:30 <oerjan> fruit delinquents
22:59:58 <olsner> Troblem Pomatoes
23:01:00 <oerjan> i find that a spousy loonerism
23:01:59 <olsner> orle
23:02:02 <olsner> *orly
23:02:18 <olsner> 0118 999 881 999 119 725... 3 anyway
23:02:29 <oerjan> huh?
23:04:58 -!- wareya has joined.
23:05:18 -!- wareya has changed nick to Wareya.
23:05:29 <cpressey> check MATE!
23:11:04 <cpressey> You know what would be grand? If there was a scripting language that extended its own traceback/file-inclusion/line-number display when scripts were reading *their* files.
23:11:30 <cpressey> Yeah, there are some complexities to it, but I'm sure they're not insurmountable
23:16:48 -!- FireFly has quit (Quit: Leaving).
23:31:17 -!- coppro has joined.
23:32:24 -!- coppro has quit (Client Quit).
23:45:39 <Wareya> http://cymonsgames.com/forum/index.php?topic=191.0
23:48:07 <cpressey> What game be this?
23:48:36 <cpressey> http://cymonsgames.com/asciiportal/ apparently
23:49:19 <cpressey> Looks cute.
23:58:53 <Gregor> lawlehcoptahs
2010-02-05
00:05:31 -!- cpressey has left (?).
00:15:14 -!- comex has changed nick to oops-sama.
00:15:46 -!- oops-sama has changed nick to comex.
00:45:58 -!- augur has quit (Ping timeout: 272 seconds).
00:54:29 -!- SimonRC has quit (Ping timeout: 246 seconds).
01:03:20 -!- oerjan has quit (Quit: Good night).
01:03:28 -!- Pthing has joined.
01:04:22 -!- SimonRC has joined.
01:05:53 -!- MissPiggy has quit (Ping timeout: 256 seconds).
02:20:31 -!- coppro has joined.
02:26:50 <Sgeo__> Sam Hughes responded to me! *squee*
02:28:54 <coppro> Sam Hughes?
02:29:28 <Sgeo__> The qntm.org guy
02:29:42 <Sgeo__> Fine Structure, the Ed stories, Geocide
02:32:40 <Pthing> oh, he does things outside of everything2?
02:33:44 -!- MizardX has quit (Ping timeout: 260 seconds).
02:34:46 <Sgeo__> I know that the Fine Structure stuff, and I bet a good amount of his other fiction, is on both e2 and qntm
02:36:00 -!- MizardX has joined.
02:36:34 -!- augur has joined.
02:47:53 <pikhq> Pthing: www.qntm.org . Read.
02:48:09 <Pthing> but i can't, jibreel
02:50:24 <Sgeo__> ?
02:50:48 <Pthing> nyekulturny
02:50:56 <Pthing> i got it bookmarked now, though
03:00:19 -!- MizardX has quit (Ping timeout: 260 seconds).
03:20:14 -!- Asztal has quit (Read error: Operation timed out).
04:00:35 -!- Sgeo__ has quit (Ping timeout: 245 seconds).
04:20:00 -!- olsner has quit (Ping timeout: 252 seconds).
04:23:04 -!- olsner has joined.
04:28:17 -!- Sgeo has joined.
05:11:29 -!- bsmntbombdood_ has joined.
05:12:30 -!- bsmntbombdood has quit (Ping timeout: 256 seconds).
05:17:10 -!- Gracenotes has joined.
05:40:31 -!- jcp has joined.
06:05:18 <oklopol> why do i keep reading john gabriel's knols
06:05:24 <oklopol> it hurts so much
06:06:45 <AnMaster> oklopol, fiction?
06:06:57 <AnMaster> ouch got to run bbl
06:12:03 <oklopol> yes
06:12:15 <augur> guys
06:12:21 <oklopol>
06:12:21 <oklopol> thems=[]
06:12:21 <augur> i feel like i spoke with one of you at one point
06:12:28 <augur> about some sort of graph transformation
06:12:34 <oklopol> http://knol.google.com/k/are-real-numbers-uncountable#
06:12:49 <oklopol> famous fiction
06:12:51 <augur> maybe it was you, oklopol, i dont know
06:14:13 <augur> but basically it was a transformation of a rooted graph into a tree where like
06:14:36 <augur> the "daughter" nodes of the any given node were all of the nodes that the original node in the graph was connected to by an edge
06:17:57 <augur> does that sound familiar to anyone?
06:22:05 <oklopol> yes
06:22:12 <oklopol> but i don't recall any use for it
06:24:00 -!- sebbu2 has joined.
06:24:17 <augur> whats it called
06:24:19 <augur> tell me, please
06:24:20 <augur> D:
06:25:08 <oklopol> it's a treificated graph, obviously
06:25:10 <oklopol> see you ->
06:25:14 <augur> :|
06:25:19 <augur> nooo
06:25:26 <augur> i need to know what its called! :(
06:26:55 -!- sebbu has quit (Ping timeout: 240 seconds).
06:27:19 <augur> oklopol! :(
06:46:57 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:59:25 -!- tombom has joined.
07:04:56 -!- bsmntbombdood__ has joined.
07:05:16 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
07:06:13 -!- bsmntbombdood_ has quit (Ping timeout: 264 seconds).
07:13:59 -!- MigoMipo has joined.
07:23:03 -!- FireFly has joined.
07:48:47 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:15:31 -!- Slereah has joined.
09:06:14 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
09:06:45 -!- Gracenotes has quit (Ping timeout: 276 seconds).
09:12:16 -!- BeholdMyGlory has joined.
09:22:39 -!- Gracenotes has joined.
09:31:51 -!- FireFly has quit (Remote host closed the connection).
09:32:22 -!- FireFly has joined.
10:05:17 -!- FireFly has quit (Quit: Leaving).
10:08:28 -!- BeholdMyGlory has quit (Remote host closed the connection).
10:08:28 -!- oerjan has joined.
10:09:12 -!- FireFly has joined.
10:09:23 -!- Pthing has quit (Remote host closed the connection).
10:10:20 <oerjan> <AnMaster> oklopol, fiction?
10:10:31 <oerjan> it's fiction, it's just that the author doesn't know this
10:11:14 * oerjan hasn't read them but there was a post about it on good math/bad math yesterday
10:52:27 -!- Pthing has joined.
11:04:28 -!- oerjan has quit (Quit: Later).
11:28:16 -!- MizardX has joined.
12:09:51 -!- scarf has joined.
12:28:00 -!- scarf has quit (Remote host closed the connection).
12:32:18 -!- scarf has joined.
12:50:03 <scarf> is there something wrong with me?
12:50:12 <scarf> I wanted to write a program, and decided Java was the best language for it
12:50:34 <oklopol> :o
12:51:15 <scarf> so far it's going rather well
12:51:30 <scarf> although this confirms my suspicions that Java absolutely needs an IDE specifically designed for it
12:51:49 <Ilari> scarf: What kind of program?
12:52:03 <oklopol> i don't think a java project of mine has ever failed
12:52:04 <scarf> Ilari: I'm trying to write a ttyrec player that's better than any of the current ones
12:52:06 <scarf> but a GUI one
12:52:11 <oklopol> but i've just done semisimple uni projects
12:52:15 <scarf> and with all sorts of interesting features
12:52:17 <oklopol> in it
12:53:17 <Ilari> Java doesn't allow much crazy stuff. But the reflection part is really nice...
12:53:27 <scarf> I'm not trying to do crazy stuff, though
13:11:25 <FireFly> Pretty much the only crazy thing I've seen Java allow is having a class, variable and function of the same name
13:16:45 <scarf> the most crazy thing I've done so far is subclassed BasicSliderUI and overloaded the method that paints the background
13:16:49 <scarf> so as to have a slider with a custom background
13:30:58 <oklopol> why's that crazy?
13:32:07 <scarf> it isn't really, but it was a pain to figure out what to do
14:45:56 -!- Asztal has joined.
14:49:10 -!- BeholdMyGlory has joined.
14:50:05 -!- cpressey has joined.
14:50:23 -!- cpressey has left (?).
14:51:37 <AnMaster> <oerjan> it's fiction, it's just that the author doesn't know this <-- ouch!
14:52:03 <AnMaster> <scarf> although this confirms my suspicions that Java absolutely needs an IDE specifically designed for it <--- iirc there are plenty
14:52:25 <AnMaster> though the only ones I can remember the names of right now are eclipse and netbeans
14:52:44 <AnMaster> scarf, and what the hell is that program?
14:52:48 <scarf> AnMaster: there are plenty, I'm using netbeans because it's what I'm supposed to teach here
14:52:54 <scarf> and it's a ttyrec player
14:53:03 <AnMaster> what the crap
14:53:10 <scarf> what's the what the crap for?
14:53:24 <AnMaster> that java would be best for that...
14:53:37 -!- augur has quit (Ping timeout: 264 seconds).
14:53:37 <AnMaster> scarf, is ttyrec a text format? Or binary?
14:53:40 <scarf> binary
14:53:50 <scarf> but it's meant to be portable, cross-platform, GUI and have loads of features
14:53:52 <AnMaster> hard to parse?
14:54:06 <scarf> easy to parse, hard to interpret
14:54:20 <AnMaster> also fun: jaunty kernel *source* update, and modules, but no the actual kernel image itself
14:54:27 <AnMaster> and it changed patch level number
14:54:29 <scarf> the format's incredibly simple, and so is missing most of the particularly useful information, that would be needed to, say, upload
14:54:30 <AnMaster> or whatever it is called
14:54:32 <scarf> AnMaster: I noticed that too
14:54:41 <scarf> same in karmic, except there was a kernel update the next day
14:54:55 <AnMaster> scarf, any bug report for it in jaunty?
14:55:12 <AnMaster> ah here it is, ran apt-get update again
14:57:28 <AnMaster> and on arch (for updates): download size: 42.82 MB, installed size: 204.92 MB. Quite good compression. And arch packages are gzipped
14:57:46 <AnMaster> can't see any obvious "lots of text only" package either
15:02:24 <AnMaster> yeargh, conflict on menu.lst
15:30:15 -!- kar8nga has joined.
15:33:42 -!- MissPiggy has joined.
15:33:42 -!- MissPiggy has quit (Excess Flood).
15:34:17 -!- MissPiggy has joined.
15:34:18 -!- MissPiggy has quit (Changing host).
15:34:18 -!- MissPiggy has joined.
15:43:28 -!- MizardX has quit (Read error: Connection reset by peer).
15:43:45 -!- MizardX has joined.
15:50:40 -!- MissPiggy has quit (Quit: MissPiggy).
15:56:30 -!- MissPiggy has joined.
15:56:30 -!- MissPiggy has quit (Excess Flood).
15:57:07 -!- MissPiggy has joined.
16:03:31 -!- MigoMipo has joined.
16:15:36 -!- whtspc has joined.
16:16:14 -!- cpressey has joined.
16:23:40 -!- MigoMipo has quit.
16:28:32 <scarf> gah at the netbeans update dialog
16:28:47 <scarf> it concatenates the licences of all the updates that are being applied, and asking if you agree
16:29:04 <scarf> which means I'm having to scroll through something like 10 copies each of the GPL and CDDL to see if there's anything else buried in there
16:31:00 -!- Slereah has quit (Quit: Leaving).
16:31:09 <scarf> oh, there are other licences there too
16:31:14 <scarf> 3 copies of the Apache licence so far
16:31:21 <cpressey> Heh. A need for "license de-duping."
16:31:35 <scarf> and a modified BSD3 which bans using a particular name for derivative works
16:31:52 <scarf> cpressey: Debian actually has that
16:31:52 <cpressey> Oh, you got to love the BSD license forking.
16:32:00 <scarf> it symlinks all the copies of the GPL to a common location
16:32:25 <cpressey> Well, I'll defeat it by rewording my BSD disclaimer!
16:32:45 <scarf> I was kind-of scared there'd be a BSD4 in there somewhere
16:32:57 <scarf> done about 2/3s, though, and haven't seen one yet
16:33:14 <cpressey> 4. Thou shalt not distribute as part of a "Hits of the 90's" compilation.
16:34:12 <scarf> ooh, LGPL
16:35:04 <scarf> hmm, looks OK
16:35:16 <scarf> the ridiculous thing is, that accepting an open-source licence agreement is generally irrelevant anyway
16:36:05 <cpressey> Given that most of the conditions only apply once you copy it or modify it -- yes.
16:36:09 <cheater> scarf: what's wrong with bsd4? i am ignorant on that topic
16:36:17 <scarf> cheater: the "odious advertising clause"
16:36:30 <cheater> oh, they still make new versions of the unmodified?
16:36:33 <scarf> basically, the fourth clause of the original BSD licence basically required credit in documentation and on startup
16:36:41 <cheater> i thought they were gone from the new versions
16:36:43 <scarf> they are
16:36:46 <scarf> BSD3 is newer than BSD4
16:36:49 <cheater> oh you mean the bsd 4clause
16:36:51 <scarf> (3-clause BSD, 4-clause bSD)
16:36:52 <scarf> *BSD
16:36:53 -!- whtspc has quit (Ping timeout: 240 seconds).
16:37:06 <cheater> yeah, heh
16:37:12 <scarf> and some people, like the currently missing ehird, even advocate 2-clause
16:39:15 * scarf wonders whether to use an existing Java terminal implementation, or roll their own
16:40:08 <scarf> rolling my own has the advantage of being able to put various customisations in, like starting halfway through the ttyrec
16:40:28 <scarf> and marking unknown positions with a "unknown" symbol until they're known
16:41:56 -!- sebbu2 has changed nick to sebbu.
16:52:25 -!- Gracenotes has quit (Ping timeout: 264 seconds).
17:09:43 -!- coppro has quit (Remote host closed the connection).
17:23:29 -!- Pthing has quit (Remote host closed the connection).
17:24:39 <pikhq> scarf: The GNU opinion on "accepting license agreements" is "You must agree in order to use the rights given in the license. Using or installing this software is not one of those rights, so no need to agree with the license."
17:24:49 <pikhq> That also appears to be the opinion by most sane people.
17:24:50 <scarf> pikhq: agreed
17:26:26 -!- kar8nga has quit (Remote host closed the connection).
17:35:13 -!- tombom has joined.
17:58:36 <cpressey> Sooo.... SUSv3 (POSIX) implies the presence of a C99 compiler. And C99 implies the availability of SUSv3 system calls. Therefore C99 <-> POSIX?
17:59:27 <pikhq> No, C99 implies the availability of a small subset of SUSv3 system calls.
17:59:43 <pikhq> And that's only because that's how you *implement* stdio.h.
17:59:57 <pikhq> C99 does not imply, say, fork.
18:01:05 <Sgeo> I think I'm going to uninstall this transformation pack thing
18:02:54 <cpressey> pikhq: Interesting. And somewhat of a relief.
18:03:49 <scarf> different C standards have started taking features from the others, which is not exactly surprising
18:04:18 <cpressey> Although, I don't suppose you know of any sort of rough quick guide as to which headers are C99 and which are POSIX.
18:04:48 <scarf> there's a list of C99 headers at the end of C99 itself
18:04:58 <cpressey> Cool.
18:04:59 <scarf> let me try to find one of the public drafts (the actual standard is behind a paywall)
18:05:11 <cpressey> I think I have a link somewhere...
18:06:15 <Sgeo> Why do you have to pay to see a standard?
18:06:26 <cpressey> Sgeo: that cheeses me off too
18:06:47 <scarf> cpressey: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf
18:06:55 <scarf> look at annex B in the table of contents
18:07:12 <scarf> annex B summarises the contents of the headers, the table of contents says which they are
18:07:28 <scarf> although note that for a POSIX build, some things are added by POSIX to the standard C headers, just to annoy you
18:07:30 <cpressey> I found http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf -- heh, the date at the top is "Septermber 7, 2007"
18:08:01 <scarf> that would presumably be a different draft of the same standard
18:08:16 <scarf> yours is newer than mine, probably works better
18:08:49 <Sgeo> BRB restart home my comp survives
18:09:39 <scarf> incidentally, WG14 made their reasoning behind C99 public: http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf
18:11:45 -!- Sgeo_ has joined.
18:12:34 -!- Sgeo_ has quit (Read error: Connection reset by peer).
18:14:23 -!- Sgeo has quit (Ping timeout: 256 seconds).
18:16:08 <cpressey> I'm still a bit confused why -std=c89 disallows you from using POSIX things, then, but I suppose it is another case of just annoying me
18:17:13 <scarf> cpressey: it's not "disallow", it's "prevent compatibility problems"
18:17:41 <scarf> it's perfectly legal to have a function called _exit() in a file that includes stdlib.h in C89, for instance
18:17:46 <cpressey> Ah.
18:17:49 <scarf> try that in POSIX, and you'll get an error
18:18:00 <cpressey> Well then it is "disallow", but it's for a good reason.
18:18:05 <scarf> yes
18:18:24 <scarf> (the C99 equivalent is called _Exit(), which isn't allowed in C89 because it starts with an underscore and a capital letter)
18:18:45 -!- Sgeo has joined.
18:20:08 <cpressey> I think every personal project I've written in C99, relies on C99 only because it makes some POSIX call. Mostly nanosleep().
18:20:47 <cpressey> Er, assuming that's POSIX and not some BSDism or something that just happens to be widely supported, would have to double check that.
18:21:43 <scarf> UNIX standardisation is a mess
18:21:44 <cpressey> Yeah, it is. ok.
18:21:59 <cpressey> (nanosleep is in POSIX, I mean)
18:22:27 * scarf wonders how long it will be before a picosleep becomes necessary
18:22:40 <cpressey> Eerm
18:23:00 <scarf> computers aren't fast enough for it to be useful yet
18:23:16 -!- pikhq has quit (Read error: Connection reset by peer).
18:23:31 <scarf> I've certainly written real-time Linux applications which grabbed hold of the scheduler and used carefully timed pauses to communicate with an external device in bursts
18:23:32 <cpressey> Eeerrm no, not yet.
18:24:11 <scarf> (this was for an embedded system; telling the scheduler not to interrupt your process at all until it tells the other processes it's their turn is not the sort of thing you regularly do on a desktop OS)
18:25:12 <cpressey> AmigaOS forbid() and permit() come to mind.
18:26:04 <cpressey> Cooperative multitasking is so nice.
18:26:34 * Sgeo needs to stop appearing in XML
18:27:16 <scarf> cpressey: I dealt with it back when I was writing windows 3.1 programs
18:27:59 <scarf> and Linux has a cooperative-multitasking scheduler, but you need to be root, and include an unusual library, to be able to trigger it
18:28:10 <Sgeo> <user><stub_uid></stub_uid><ustat></ustat><pgeo></pgeo><sgeo>0</sgeo>
18:28:32 <Sgeo> source of http://www.stubhub.com/all-cities/unc-tickets/
18:28:33 <scarf> </scarf></user></Sgeo>
18:36:06 * Sgeo should probably eat food at some point
18:38:20 -!- oerjan has joined.
18:42:52 <scarf> "A program whose output is affected by the value returned by a call to setlocale might not be strictly conforming. If the only way in which the result affects the final output is by determining, directly or indirectly, whether to make another call to setlocale, then the program remains strictly conforming; but if the result affects the output in some other way, then it does not."
18:43:38 <scarf> how nicely tortuous
18:46:23 <cpressey> I would have said torturous
18:47:15 <scarf> there's something nicely eso about a function whose only purpose is to determine whether to call it again
18:47:18 <oklopol> what the hell
18:47:30 <scarf> unfortunately, setlocale has side effects, meaning that it isn't quite so purely beautiful
18:47:34 <Sgeo> scarf, it would be worse if it didn't have ..
18:47:35 <Sgeo> right
18:49:31 <scarf> hmm, among other things, that means it's an undecidable problem to tell whether a C99 program is strictly conforming
18:50:01 <scarf> you could make a turing machine of locales, or something
18:50:34 <cpressey> I like how most undecidable problems suggest Turing-complete esolangs
18:50:37 <scarf> (admittedly, you can do that /anyway/ in C99, but doing it with locales would be funny)
18:50:45 <cpressey> It's the setlocale tarpit!
18:50:57 -!- pikhq has joined.
18:51:06 <scarf> cpressey: I read an article about cache effects recently
18:51:10 <scarf> and was wondering about making an esolang out of those
18:51:26 <scarf> e.g. multiple threads each of which can only store finite data each, but you can have arbitrarily many
18:51:46 <scarf> and the only way they can communicate is by accessing lots of memory really quickly to change the relative running speeds of the others
18:52:16 <cpressey> That could work, as a design...
18:53:22 <cpressey> bbl -- need food.
18:53:27 <scarf> it would be horrendously nonportable, but I think that's a plus
18:54:34 <Sgeo> What happened to the deliberately slow language?
18:54:44 <scarf> SLOBOL?
18:54:52 <scarf> I think people just forgot about it, it wasn't particularly interesting
18:57:36 -!- Sgeo_ has joined.
18:57:41 <Sgeo_> Accidental hibernation is fun!
18:57:59 <Sgeo_> Not SLOBOL
18:58:29 <Sgeo_> The one olsner was making, with the conversion between base e and pi, or whatever
18:58:43 <scarf> ah
18:58:48 <scarf> I don't know about that one
18:59:43 -!- Sgeo has quit (Ping timeout: 256 seconds).
19:01:02 <Sgeo_> How easy/difficult would it be for someone with a weak grasp of Javascript to attempt to fix a WebKit specific issue with a website?
19:01:28 <scarf> not massively difficult, although the problem might not be in the javascript
19:01:36 <scarf> it rather depends on what the issue is, I'd imagine
19:01:46 * Sgeo_ will attempt it
19:01:56 <Sgeo_> Maybe make a Greasemonkey script
19:02:20 <Sgeo_> Be the savior of everyone at my school who loves Chrome and refuses to use Firefox or IE or IETab just for this specific site
19:02:39 <Sgeo_> (That set includes me. I doubt that it includes anyone else, but still)
19:11:29 -!- augur has joined.
19:11:52 <FireFly> Hmmm
19:12:58 <FireFly> Is there a certain name for a higher-order function which takes two lists of the same length, and applies a function to the first element in both lists, the second, and so on?
19:13:12 <FireFly> And then returns the result as a new list
19:13:19 <Deewiant> zipWith
19:13:24 <FireFly> Ah, thanks
19:14:02 <augur> oklopol!
19:14:17 <oklopol> meeeeeeeeeee
19:14:33 <augur> did you actually recognize that description of a graph-to-tree transformation i described last night?
19:15:15 <Deewiant> augur: Transitive closure?
19:15:28 <augur> Deewiant: uh.. i dont _think_ so but who knows
19:15:48 <Deewiant> If you have a DAG, anyway.
19:16:12 <augur> it was a transformation that took a rooted graph and turned it into a tree where the daughters of each node N were the nodes N' that N was connected to by an edge in the graph
19:16:39 -!- scarf has quit (Remote host closed the connection).
19:16:52 <augur> e.g. if your graph was { ab, bc, ac } rooted at a, the tree node for a would have tree nodes for a b and c as its daughters
19:17:05 <Deewiant> Ah, not transitive then. I thought you'd get all N' that could be reached from N.
19:17:10 <augur> the nodes for b would have a b c as its daughters, etc.
19:17:23 <cpressey> Sounds more like a spanning tree -- sort of the reverse of transitive closure.
19:17:28 <augur> a spanning tree huh
19:17:32 <Sgeo_> Awesome! avast has a virus-scanning screensaver
19:17:39 <cpressey> Not exactly, but similar
19:17:49 <augur> no, not a spanning tree at all :(
19:18:28 <cpressey> ...union of all possible spanning trees? :)
19:18:41 <augur> :P
19:18:42 <augur> no
19:18:45 <augur> even then!
19:18:51 <augur> the resulting tree is infinitely large
19:19:11 <cpressey> Ah.
19:20:59 <Sgeo_> If I run a screensaver at the same time XP turns off my monitor, will the screensaver still run?
19:21:02 <cpressey> So by most definitions of "tree" it's actually not a tree :)
19:21:17 <augur> well it SORT of is :P
19:21:18 <oklopol> absolutely nothing to do with a spanning tree if you ask me
19:21:32 <Sgeo_> (The screensaver has side-effects)
19:22:12 <oklopol> i don't know the name for the structure, but really it is the exact same mathematical object in some sense
19:22:24 <augur> oklopol: same as what?
19:22:36 <oklopol> i mean if you just care about how things are connected to each other
19:22:39 <cpressey> Sounds more like the closure of all infinite paths through the graph to me, now.
19:22:49 <oklopol> augur: as the original graph
19:22:57 <augur> oh, yes, thats part of the point actually
19:23:10 <augur> i dont remember who first showed it to me, someone here i think
19:23:26 <oklopol> cpressey: what does "closure" mean there?
19:23:28 <augur> and at the time i thought, gosh thats useless isnt it
19:23:46 <augur> but ive actually realized that its immensely important to something im working on
19:23:47 <oklopol> well maybe that's a stupid question
19:23:53 <cpressey> oklopol: well, union over a countable set, i think.
19:24:16 <oklopol> countable set of what? or is that your definition for closure?
19:24:51 <cpressey> Countable set of infinite paths, in this case.
19:25:04 <cpressey> At least I hope that's countable :)
19:25:46 <oklopol> it's not; and what's the union of paths? do you take the set of nodes from each path and take the union of them?
19:25:52 <oklopol> you'll get the connected component as a set
19:26:36 <oklopol> consider a graph that forms a triangle, everytime you move you have two choices, now consider reals in binary representation
19:27:03 <cpressey> These are good questions; I don't have answers, since I only started thinking about this 10 minutes ago. :P
19:28:23 <oklopol> closure usually means you have some set of things, and you have something you can do, and if the set is "closed under" the thing you can do, it's a closure of that thing
19:28:48 <cpressey> Well, can you have closures of uncountable sets?
19:29:01 <MissPiggy> what!!
19:29:25 <augur> MissPiggy! :o
19:29:26 <oklopol> topological closures are sets that are closed under convergent sequences
19:29:35 <oklopol> topology is all about uncountability
19:29:50 <cpressey> So is that a "yes"?
19:30:01 <oklopol> sure
19:30:46 <oklopol> i mean if i understood what you meant
19:31:12 <oklopol> "can you take the closure of an uncountably large set w.r.t. some operation"
19:32:12 <cpressey> OK, so what'
19:32:26 <cpressey> One sec.
19:32:45 <cpressey> So what's left is to define the operation.
19:33:12 <cpressey> So you have a graph with n nodes, and for each node there's a (potentially) uncountable set of infinite paths that starts at it.
19:33:28 <oklopol> this is a truth
19:34:02 <cpressey> And each path is a countable list of nodes, is it fair to say that?
19:34:27 <oklopol> a path in a graph is a function from N to the set of nodes, imo
19:34:36 <oklopol> an infinite graph that is
19:35:05 <oklopol> and if f is the path, you have for all n that the edge (f(n), f(n+1)) is in the graph
19:35:16 <cpressey> OK, fair enough, but can it be represented as a countable list of nodes?
19:35:42 <oklopol> well there's a surjection from N isn't there :P
19:36:10 <cpressey> But the graph I'm talking about it's infinite (yet).
19:36:16 <oklopol> i mean if we define a path as a function from N to the nodes, then clearly there will only be |N| nodes in there
19:36:33 <cpressey> I mean, I was under the impression that the origiinal thing was to be applied to finite graphs. I could be wrong.
19:36:34 <oklopol> so... yes
19:36:41 <oklopol> yes, most likely
19:36:49 <cpressey> Simpler that way, anyway :)
19:37:11 <oklopol> infinite graphs are sexy
19:37:35 <oklopol> coding theory is one of my current obsessions
19:38:34 <cpressey> So... to sketch the operation for closure I'm thinking of... in a finite graph g: for each set of paths starting at node n: for each node m in the list of nodes in the path: replace m with the set of paths that start at m in g
19:38:43 <cpressey> That's sloppy, but hopefully it captures the idea
19:39:10 <cpressey> You're actually making copies of the nodes in g
19:39:26 <oklopol> the thing is the result must be a tree
19:39:36 <cpressey> See, I don't see that part :)
19:39:51 <oklopol> a closure is usually the closure of a set
19:39:59 <oklopol> you don't "see" it?
19:40:00 <cpressey> Well, ok, maybe I do.
19:40:01 <cpressey> It
19:40:13 <cpressey> It's a tree, because you're making copies of the nodes from g
19:40:30 <cpressey> So you have no cycles.
19:40:56 <oklopol> anyway the thing is if you have a finite thing, and your operations only give you more finite things if their parameters are finite, then the closure will be *finite*
19:41:03 <oklopol> i mean, the objects in it will be finite
19:41:27 <cpressey> Well, true. If the original graph in this case is a tree (no cycles thus no infinite paths,) the result of applying this... whatsit... is finite.
19:41:28 <oklopol> arbitrarily big, sure, but finite things are usually closed under operations
19:41:38 <oklopol> or "finiteness" is
19:41:58 <oklopol> even without cycles the result contains infinite paths
19:42:01 <oklopol> you can return
19:42:09 <oklopol> well, okay, directed plus no loops and maybe
19:43:03 <cpressey> If "without cycles the result contains infinite paths" then I don't understand the construction, sorry :)
19:43:29 <oklopol> see, if you have an undirected graph, then every edge is a loop
19:43:34 <cpressey> Oh, undirected.
19:43:38 <cpressey> Mrrrh :)
19:43:53 <oklopol> i don't know, but that's why "well, okay, directed plus no loops and maybe"
19:44:03 <cpressey> Yeah.
19:44:05 <augur> universal covering graph!
19:44:06 <oklopol> in any case no one said no loops
19:44:14 <augur> thats the closest ive seen to it, oklopol
19:44:22 <augur> infact its EXACTLY what i want
19:44:35 <augur> minus reflexing edges
19:44:41 <augur> but thats ok, because thats dependent on the graph
19:46:23 <oklopol> it's just for trees says wp
19:46:38 <cpressey> Hard to imagine the usefulness of an infinite tree in a practical application, but then, I'm not a mathematician :)
19:46:42 <oklopol> but it also gives a definition that works without that assumption
19:46:43 <oklopol> so yeah
19:47:11 <oklopol> cpressey: infinite just means you don't have to care it's finite.
19:47:23 <cpressey> Ah. Indeed.
19:47:27 <oklopol> extendable
19:47:36 <cpressey> You could even code this up as some sort of lazy generator...
19:47:41 <oklopol> my back.... hurts...
19:47:43 <augur> oklopol: actually its for any connected graph
19:47:54 <augur> cpressey: its totally lazy, yeah
19:48:06 <oklopol> For any connected graph G, it is possible to construct its universal covering graph.[1] This is an instance of the more general universal cover concept from topology; the topological requirement that a universal cover be simply connected translates in graph-theoretic terms to a requirement that it be acyclic and connected; that is, a tree.
19:48:10 <oklopol> this is what i meant
19:48:15 <oklopol> but also read
19:48:17 <oklopol> "but it also gives a definition that works without that assumption"
19:48:18 <augur> infact, it doesnt even have to be lazy, since as oklopol points out, the universal covering graph is essentially just the graph itself
19:48:42 <augur> atleast as far as you can tell locally
19:48:48 <cpressey> Wellll... you're kind of "looking at it lazily" :)
19:48:50 <oklopol> yeah... and god my back hurts
19:49:04 -!- Gracenotes has joined.
19:49:10 <oklopol> cpressey: i prefer to think of it as a graph iterator
19:49:36 <cpressey> "From this node, as far as I can tell by looking at my immediate edges, I am in fact surrounded by an infinite tree!!"
19:49:36 <oklopol> than a graph generator
19:50:09 <cpressey> Now to apply this to Hunt the Wumpus somehow.
19:52:38 <oklopol> i don't believe in wumpi
19:53:50 -!- tombom_ has joined.
19:56:10 -!- tombom has quit (Ping timeout: 248 seconds).
19:58:11 -!- augur has quit (Ping timeout: 265 seconds).
20:08:28 <oerjan> um you guys, this is really quite simple: the vertices of your tree are the _paths_ from the root of your original graph.
20:08:49 <cpressey> That's what I was trying to say, in a painful, pseudo-mathematical way.
20:09:30 <oerjan> very well then.
20:11:03 <cpressey> Er, and I realize now I was possibly saying something much uglier. (Every node of the tree would have an uncountable number of branches. That's overkill.)
20:11:23 <oerjan> ah.
20:11:27 <oklopol> oerjan: that's the answer to how to represent it as a closure?
20:11:36 <oklopol> or is it the answer to what its name is?
20:11:51 <oklopol> these were the two questions that were asked, not sure of others
20:11:59 <oerjan> it's the answer to how to define it easily...
20:12:06 <cpressey> I don't know if it's an answer, but it's a succinct way to describe it.
20:12:07 <oklopol> i see
20:13:07 <oklopol> didn't know that was an issue, anyway probably the tree doesn't actually contain the infinite paths, prolly came up with that myself
20:13:21 <oklopol> don't have augur's original q
20:13:40 <oklopol> because it would be a pretty weird tree :P
20:13:55 <oerjan> oklopol: unless your name is John Gabriel ;D
20:14:02 <oklopol> hah
20:15:02 <oklopol> the infinite paths would be separate connected components of the graph wouldn't they
20:15:13 <oklopol> i mean components of one node
20:15:25 <oklopol> ...i guess we'd need some sort of definition first
20:15:38 <oerjan> oh i meant finite paths
20:15:51 <oerjan> right
20:16:28 <oklopol> yeah i know you did, but i didn't, i said there'd be an uncountable amount of paths, because for some reason i thought the infinite paths would be there too
20:16:28 <oerjan> well with the right topology, you could have the finite paths converge at infinite ones
20:16:48 <oklopol> hmm
20:17:07 <oklopol> a graph's connectedness is just topological connectedness?
20:17:29 <oerjan> if you include the edges as lines, so
20:17:46 <oklopol> i mean they're pretty discrete things...
20:17:48 <oerjan> otherwice the vertices seem somewhat isolated
20:18:25 <oerjan> so the finite paths would form a discrete topology, while the infinite paths they converge to would be the non-isolated points
20:18:40 <oklopol> afaiu, really you could only define open sets sensibly as connected components, or discrete topology.
20:18:46 <oklopol> hmm
20:18:48 <oklopol> oh
20:19:09 * Sgeo_ remembers when his math teacher (in 6th grade) put a question on our tests "Do your socks have holes in them"
20:19:27 <Sgeo_> It was one of those joke questions, where the correct answer was that yes, all of them do
20:19:36 <Sgeo_> But in a topological sense, they do not
20:20:09 <oklopol> so our open sets would be generated by {x} for all nodes x, and for all infinite paths, any of their infinite suffices
20:20:17 <oerjan> actually for an acyclic graph you also have some non-hausdorff options, you can let the closure of a vertex be all the vertices reachable from it
20:20:33 <oerjan> (hm scratch acyclic, that works anyhow i think)
20:21:12 <oklopol> Sgeo_: unless you consider them complex entanglements of strings!
20:21:32 <oklopol> ooooh, sock theory, is there a complete categorization of topological socks?
20:22:16 <oklopol> oerjan: err, do you mean taking as closed sets the connected components in the graph sense?
20:22:31 <oerjan> in fact there is iirc a direct correspondence between finite T0 spaces and trees
20:22:40 -!- kar8nga has joined.
20:22:53 <oerjan> oklopol: oh no, i'm assuming a directed graph
20:22:56 <oerjan> er
20:23:00 <oerjan> s/trees/forests/
20:23:11 <oerjan> oh no wait
20:23:30 <oerjan> *in fact there is iirc a direct correspondence between finite T0 spaces and finite partial orders
20:23:46 <oerjan> actually that might be forests too
20:23:50 <oklopol> so what exactly would the topology be?
20:24:10 <oklopol> umm
20:24:16 <oklopol> oh
20:24:21 -!- whtspc has joined.
20:24:36 <oklopol> closed sets = for all nodes x all vertices reachable from x?
20:24:42 <oerjan> yeah
20:24:45 <oklopol> ah cool
20:24:52 -!- kar8nga has quit (Remote host closed the connection).
20:25:00 <oklopol> sexy stuff
20:25:09 <oerjan> you could also make that the definition of open, well that's just reversing the graph really
20:25:33 <oerjan> for finite spaces the axioms for open sets == the axioms for closed sets
20:26:12 <oklopol> ah, good point
20:28:02 -!- Sgeo_ has changed nick to Sgeo.
20:30:14 -!- augur has joined.
20:36:23 -!- bsmntbombdood_ has joined.
20:39:49 -!- bsmntbombdood has quit (Ping timeout: 264 seconds).
20:40:35 <cpressey> That's actually the first time I've ever seen topology and graph theory linked in a coherent way. Not that I really understand what oerjan said...
20:41:59 -!- oklopol has left (?).
20:42:05 -!- oklopol has joined.
20:42:07 <oklopol> whoops
20:42:42 <oklopol> anyway limits require a topology, and linking finite and infinite things in a sensible way is usually done via limits
20:43:00 <oklopol> (of some sort)
20:43:42 -!- bsmntbombdood__ has joined.
20:44:03 -!- ehird_ has joined.
20:44:09 <ehird_> Zero days since last ehird sighting.
20:44:10 <cpressey> It seems like it's harder to find literature on discrete topology -- I got the impression topologists don't consider it as interesting as the other kinds. Ditto infinite groups (finite groups are so much more exciting!)
20:44:18 * oerjan hug tackles ehird
20:44:18 <cpressey> Oh hi ehird_.
20:44:39 <oerjan> you're alive!
20:44:51 <ehird_> Yes, but it doesn't feel it. I can't believe my life at the moment.
20:44:54 <oklopol> hello ehird_, i'm just as excited about your arrival as the others
20:45:10 <oerjan> oh dear
20:45:22 <oklopol> cpressey: discrete topology means every set is open, which essentially just means you have a set.
20:45:52 <ehird_> I think I've disappeared this long before for similar reasons; maybe I was just especially awesome before disappearing.
20:46:09 <oklopol> the topology of a space is a family of subsets of the powerset of the objects in the space (to put it very simply), if you have all the subsets, there's really no need to even have them explicitly.
20:46:16 -!- oerjan has set topic: RIP sun.com | 0 days since last ehird_ sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:46:23 <oklopol> the book would basically be about set theory.
20:46:45 <oklopol> infinite vs finite groups is a completely different matter
20:46:58 <ehird_> If anyone wants me to explain, I will, in /msg. I don't want it to be logged.
20:47:11 <cpressey> oklopol: Gotcha.
20:47:23 -!- bsmntbombdood_ has quit (Ping timeout: 256 seconds).
20:47:46 <cpressey> (by which I mean "I see", in case there was any ambiguity)
20:48:02 <oklopol> i don't think there was
20:48:35 <oklopol> maybe "gotcha" is easier to interpret as "i have no idea what you mean"
20:48:44 <oklopol> than "i see" which is more neutral
20:48:58 <cpressey> Well, there's the "Gotcha!" as in "Aha! Now you're trapped!"
20:49:11 <cpressey> Which I didn't mean.
20:50:04 <oklopol> hmm, i guess
20:50:55 <oklopol> "the topology of a space is a family of subsets of the powerset of the objects in the space" just seems like something you might want to not try to understand. or maybe it's just me
20:51:04 <oklopol> i mean
20:51:10 <oklopol> it's even wrong
20:51:13 <oklopol> let's retry
20:51:33 <oklopol> the topology of a space is a *subset* of the powerset of the set objects in the space
20:52:20 <oklopol> clearly i couldn't handle such a long string of information
20:52:58 <cpressey> I have in my head some fuzzy notion of "discrete topology" that isn't the same as the definition by that name (which I did read and understand once, a long time ago now,) and I get them mixed up. It's coming back to me now, a bit. More obvious why it's not terribly interesting.
20:54:03 * Sgeo wonders if http://codepad.org/UCmJrhSx is a good explanation to someone who's not in Computer Programming
20:54:37 <cpressey> I mean, people in CS throw around terms like "network topology", but from all that I tried to read in actual topology literature, it sounds like a minor abuse of the term "topology". Network topology is far more like graph theory, no?
20:55:06 <MissPiggy> topology
20:56:15 <augur> toplology
20:56:22 <cpressey> Sgeo: looks fairly decent
20:57:29 <cpressey> Sgeo: might be worth pointing out that statements can only go inside functions
21:02:54 -!- MigoMipo has joined.
21:03:20 -!- coppro has joined.
21:23:32 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
21:25:14 <ehird_> Hi coppro.
21:25:51 <coppro> He's back!
21:25:59 <pikhq> He liveth!
21:26:22 <ehird_> Yes. Methinks I should link you both to the log of #esoteric-priv so you know what the hell's up.
21:26:49 <pikhq> Perhaps.
21:26:58 <ehird_> http://pastie.org/private/4oxpzgiywxbjobgrsa
21:27:07 <ehird_> Oh, that's logged.
21:27:11 <ehird_> But not easily googleable.
21:27:18 <ehird_> You know what, I don't care.
21:27:55 <MissPiggy> ehird why did you leave
21:28:00 <ehird_> In true utilitarian form, I'm sorry for dragging you into this and probably making you sadder as a result.
21:28:06 <MissPiggy> what the hell is priv
21:28:08 <ehird_> MissPiggy: Click the link. It wasn't voluntary.
21:28:16 <ehird_> #esoteric-priv as in private, I created it just to relay that.
21:28:21 <coppro> O_o
21:28:32 <ehird_> O_o is pretty much perfect.
21:28:50 <ehird_> I'd suspect myself of hallucinating all this if it weren't so fucking gritty.
21:28:54 <MissPiggy> so are you okay now?
21:29:06 <ehird_> No. I'm still not free.
21:29:13 <pikhq> Y'know, that's perhaps the most retarded way of treating... Anything.
21:29:20 <pikhq> Particularly Asperger's.
21:29:22 <coppro> agree with pikhq :(
21:29:57 <MissPiggy> what the fuck
21:30:04 <MissPiggy> ehird are you in UK
21:30:14 <ehird_> Yes.
21:30:22 <pikhq> (the expected reaction from removing an autistic patient from something they're obsessed about ranges from passive-agressive fucking with the doctors or having a meltdown. Don't fuck with that shit.)
21:30:37 <pikhq> s/or/to/
21:30:57 <MissPiggy> ehird so when will you be allowed to resume?
21:31:34 <ehird_> Resume what, exactly? Sorry if I'm not being so good at communication, I've had no meaningful form of it for god knows how long.
21:31:58 <MissPiggy> I mean like not be detained by these people?
21:32:13 <pikhq> ehird_: When is the soonest that you can get the fuck out of Britain? :P
21:32:22 <ehird_> When I... /msg time, I don't want this to be logged.
21:32:37 <coppro> ehird_: contact your media
21:33:19 <ehird_> Yes, I've been suggested that multiple times tonight. I'm seriously considering it now.
21:33:41 <coppro> from what I've heard, the British media can be especially harsh
21:34:08 <ehird_> You have no idea.
21:34:36 <coppro> "Help! Help! I'm being repressed!"
21:35:45 <Sgeo> ehird_'s back!
21:36:00 <pikhq> ehird_: When the hell did that mess start, anyways?
21:36:00 <ehird_> Sgeo: http://pastie.org/private/4oxpzgiywxbjobgrsa
21:36:19 * oerjan thought we weren't going to talk about this in this channel.
21:36:24 <oerjan> *cough*
21:36:26 <ehird_> pikhq: Its origins reach back a year... or two, I don't know... this whole unit thing (the place is a "unit") started, um, late last year.
21:36:26 * pikhq missed that
21:36:32 <ehird_> Like say september or slightly earlier.
21:36:38 <ehird_> oerjan: I really can't care any more.
21:36:44 <ehird_> If they find the logs, so be it.
21:37:36 <coppro> like, I'm seriously considering contacting someone myself about this :/
21:37:53 <ehird_> Well, please ask me first...
21:38:27 <coppro> yeah
21:38:46 <coppro> you're clearly smart enough to know what they're doing is bad for you
21:39:10 <pikhq> coppro: Britain's handling of mental health issues is just royally fucked up in general...
21:39:22 <coppro> Apparently
21:39:57 <pikhq> Heard one too many horror stories from British friends.
21:40:12 <pikhq> ... One to many? Try far too many. Anyways.
21:40:21 <coppro> What really scares me is that even his parents can't stop them
21:40:34 <pikhq> coppro: Big Brother knows best!
21:40:47 * coppro cuddles the CoRaF
21:41:48 * pikhq pulls up the Convention on the Rights of the Child...
21:42:06 <ehird_> Child's rights, a better punchline I've not heard.
21:42:46 <pikhq> ehird_: It's law in all countries other than the US and Somalia.
21:43:11 <ehird_> But in the modern world, in practice, children have basically no rights.
21:44:18 <coppro> thankfully, that's not the case everywhere
21:44:20 <cpressey> Not to belittle the situation in any way -- I'm a bit surprised at how unsurprised I am at this.
21:44:57 <ehird_> cpressey: It surprised me only because I was the one it was happening to.
21:45:01 <pikhq> Darned thing doesn't allow parents to veto the state.
21:45:05 <ehird_> No belittling taken.
21:45:07 <pikhq> That's a freaking useless document.
21:45:39 <ehird_> In case anyone doesn't know (cpressey might not, for instance) I'm 14
21:46:26 <coppro> do you know if there's any legal recourse your parents can take?
21:47:01 <coppro> (besides seeking asylum elsewhere)
21:47:31 <ehird_> Well, in the courts I suppose they could preemptively battle sectioning; the outcome of that would, I assume, be either me being sectioned or a confirmation that they would not be allowed to section me unless my situation changed significantly.
21:47:57 <ehird_> The prospect of the outcome being me being sectioned (I already stopped attending once, a second rebellion and they would not trust me at all) makes me extremely wary of that option.
21:48:27 <coppro> what does "sectioned" mean?
21:48:43 <ehird_> Institutionalised.
21:49:11 <coppro> :(
21:49:20 <Sgeo> How is it that you're out now?
21:49:40 <ehird_> It's the weekends. I get weekends home. That was one of the things they threatened not to give me if I was sectioned.
21:49:43 <pikhq> Sgeo: Monday-Friday
21:49:45 <ehird_> *weekend
21:49:46 <Sgeo> Ah
21:50:20 <pikhq> ehird_: If I were you, I'd be contacting the press and seeking asylum.
21:50:21 <MissPiggy> so you have to stay there overnight ??
21:51:56 <ehird_> MissPiggy: yes.
21:52:12 <MissPiggy> this is not right
21:52:26 <MissPiggy> I am very sorry for you being in this horrible situation
21:52:44 <ehird_> Thank you
21:53:17 <coppro> yeah, this is seriously awful :(
21:53:34 <MissPiggy> I don't trust the media about anything, I am not sure if that would be to your advantage or not?
21:53:44 <ehird_> I don't know.
21:53:49 <ehird_> They certainly generate massive publicity.
21:53:59 <ehird_> I'm a wreck right now, I guess I've been bottling this up for weeks...
21:53:59 <coppro> Publicity is likely to be in your favor
21:54:07 <coppro> but not for certain
21:54:14 <ehird_> It's just hit me how insane this all is...
21:54:19 * oklopol would take institutionalization over publicity...
21:56:30 <oklopol> maybe i'll go get some coke before someone notices i'm insane and removes that freedom ->
21:56:52 <Ilari> At least they are not shooting him up on insulin to make him gain weight... :-/
21:57:01 <pikhq> I count myself glad that I'm in the US, where our mental health system almost does not exist. :P
21:57:05 <coppro> I don't think this should be anything but a last resort, but looking at the papers, I think you'd qualify for refugee status to Canada.
21:57:21 <ehird_> Canada's nice, but yes, last resort.
21:57:30 <ehird_> If moving I'd much rather do it the regular way if at all possible.
21:57:36 <coppro> not sure about elsewhere, because you don't qualify under the Convention
21:57:52 <pikhq> ehird_: Just straight-up moving there is pretty easy for you, though.
21:57:58 <ehird_> I'm sure lucky that you guys are clever.
21:58:02 <pikhq> Hooray, Commonwealth.
21:58:24 <ehird_> Europe is the most likely place to move to
21:58:30 <ehird_> Dead easy to move around the EU
21:58:33 <coppro> yeah
21:58:56 <coppro> I was mostly looking at Canadian immigration law to satisfy my own curiosity
21:59:31 <ehird_> Thanks for this guys you have no idea how much this means to me, fuck it i'm descending into cliche land
21:59:50 <MissPiggy> don't worry about that :P
22:00:05 -!- SimonRC has quit (Ping timeout: 246 seconds).
22:00:34 <ehird_> One thing's for sure. It'd have taken a hell of a long eternity for anyone to guess this when I said I was only on sporadically because my life's fucked up
22:00:54 <oklopol> i thought your mom said no computer
22:00:54 <coppro> yeah. It's better for you to come out, because now we can be worried about you if you disappear again
22:00:56 <oklopol> ;P
22:01:06 <oklopol> (seriously)
22:01:18 <ehird_> My mother isn't stupid. :)
22:01:31 <oklopol> yeah i know, but that was my first thought
22:01:33 <ehird_> coppro: Oh, I almost forgot! I'm gay. Joking :p
22:01:38 <oklopol> eh, the coek
22:01:41 <coppro> :P
22:01:49 <coppro> not that I'd care
22:02:39 <oklopol> was our bet about just girls?
22:03:20 <oklopol> probably not
22:03:54 <coppro> ehird: I'd say your Article 5 right under the European Convention on Human Rights is being violated
22:03:55 <oklopol> because if it was just about girls, then i'd totally be against you being homosexual
22:04:23 <Ilari> oklopol: Coke? Wanting to damage liver? :-)
22:04:39 <coppro> *ehird_
22:04:42 <pikhq> coppro: Which one's that?
22:04:44 <oklopol> by coke i mean the blackish drink, or did you mean that as well?
22:04:55 <coppro> pikhq: liberty and security of person ("liberty" being the key bit)
22:05:13 <Ilari> oklopol: Yes.
22:05:19 <oklopol> damages liver?
22:05:26 <pikhq> coppro: Ah, right.
22:05:31 <oklopol> what have you been reading
22:05:56 <coppro> http://en.wikipedia.org/wiki/Article_5_of_the_European_Convention_on_Human_Rights
22:06:02 <pikhq> Also a violation of the Article 3 of the Universal Decleration of Human Rights.
22:06:27 <Ilari> oklopol: http://www.youtube.com/watch?v=dBnniua6-oM (as introduction).
22:06:42 <coppro> pikhq: but the Universal Declaration does not have legal force in the UK
22:06:52 <coppro> the European Convention has direct legal force
22:07:01 <ehird_> [22:03] <coppro> ehird: I'd say your Article 5 right under the European Convention on Human Rights is being violated
22:07:05 <ehird_> yikes.
22:07:14 <oklopol> "e. the lawful detention of persons for the prevention of the spreading of infectious diseases, of persons of unsound mind, alcoholics or drug addicts or vagrants;" fits anyone
22:07:17 <pikhq> coppro: Yes it does.
22:07:27 <coppro> pikhq it does?
22:07:46 <Sgeo> oklopol, I'd imagine though that they'd have to be told for what, though
22:07:48 <pikhq> coppro: Only Somalia and the US have *not* ratified it.
22:08:24 <coppro> you mean the Convention on the Rights of the Child?
22:08:40 <pikhq> Erm. Right, that was ratified.
22:08:51 <pikhq> The Declaration is just that -- not enforced at all.
22:08:53 <pikhq> Thinko. :/
22:08:53 <coppro> right
22:09:14 <coppro> but the UK Human Rights Act of 1998 directly puts the European Convention into force
22:09:22 <Ilari> oklopol: Its the sugar in the coke that does the damage...
22:10:04 <cpressey> Ilari: What kind of lies are you spreading about there being sugar in Coke??? That, my friend, is nothing but genuine high-fructose corn syrup!
22:10:33 <ehird_> cpressey: marry me.
22:11:03 <Ilari> cpressey: Sugar and HFCS are pretty much the same health-wise (i.e. nasty).
22:11:47 <cpressey> See, that's what we Americans do to protect our precious bodily fluids instead of ratifying meaningless pfft declarations of pfft. Also, fluoride in tap water, and mercury in fillings.
22:12:35 <pikhq> Ilari: Not really.
22:12:55 <cpressey> True, I'm actually a Canadian. But if I stay here long enough I'll eventually turn into one of them...
22:12:56 <pikhq> Ilari: HFCS encourages greater consumption.
22:13:19 <pikhq> Our obsession with corn syrup is part of *why* Americans eat so damned much.
22:13:24 -!- [newbie] has joined.
22:14:03 <Ilari> Sugar + Refined grains => Trouble. That has been seen over and over again.
22:14:07 -!- SimonRC has joined.
22:14:24 <pikhq> Yes. HFCS is just more trouble than straight sugar.
22:14:47 <oklopol> okay i'm wanting coke more and more by the minute, have to get some before watching more ->
22:15:19 <coppro> ehird_: If you need to talk seriously about anything, I'm here, and I suspect that most of the rest of the channel will be too
22:15:29 <ehird_> Thank you.
22:15:30 -!- [newbie] has quit (Client Quit).
22:15:34 <ehird_> Is this not serious? :-)
22:15:42 <coppro> this is 100% serious :)
22:16:00 * oerjan does the 100% serious dance
22:16:01 <ehird_> But yes, I will most likely need advice very soon...
22:16:12 -!- [newbie] has joined.
22:16:16 <pikhq> ehird_: Hmm. As a Commonwealth citizen, you are *nearly* a citizen of Canada already....
22:16:19 <Sgeo> Same here, but I probably can't be as helpful
22:16:37 -!- MigoMipo has quit (Ping timeout: 240 seconds).
22:16:44 <ehird_> pikhq: if I moved to canada how easy would it be for the uk to retrieve me
22:16:58 <Sgeo> (As in, I'm willing to listen, not that I need help)
22:17:03 -!- [newbie] has changed nick to MigoMipo.
22:17:06 <pikhq> ehird_: Non-trivial.
22:17:26 <coppro> if you get refugee status (and as I said, I believe you would qualify), very difficult
22:17:59 <MissPiggy> are you sure that escaping is in your best intrest? if you cooperate then it would presumably just be a finite amount of time wasted by this
22:18:13 <pikhq> If you get refugee status, there is but one way for the UK to retrieve you...
22:18:15 <pikhq> War.
22:18:30 <MissPiggy> too bad UK loves going to war...
22:19:05 <ehird_> Without refugee status, though?
22:19:15 <ehird_> MissPiggy: I'm almost entirely sure.
22:19:27 <pikhq> ehird_: Depends.
22:19:34 <pikhq> At what level of government are these actions being done?
22:20:07 <ehird_> Um, the NHS. Nothing's actually being "forced" on me, they're just saying they will force me if I don't do it "voluntarily" through the Mental Health Act.
22:20:11 <ehird_> Which is law.
22:20:21 <Ilari> pikhq: What chemical differences after breaking the alpha linkages there are between Sugar and HFCS than sightly higher amount of fructose (55% vs. 50%) in HFCS?
22:20:39 -!- comex has changed nick to comexbot.
22:20:41 <coppro> It would still be pretty difficult
22:20:49 <ehird_> pikhq: Careful. Ilari has studied the shit out of nutrition.
22:20:55 <pikhq> NHS can't do jack shit to a foreign resident.
22:21:09 <pikhq> Ilari: Alas. I should shut up about things I've merely heard about.
22:22:03 <coppro> ehird_: IIRC, they'd need to convince the higher-ups to try and get Canada to issue an extradition order, which probably wouldn't happen. If they managed to get an order, you could fight it in the legal system on the basis that your rights would be violated
22:22:31 <pikhq> ehird_: I think the Crown in Right of Canada could force you back to the UK. Short of that, though, not much.
22:22:41 <ehird_> What about another EU country?
22:22:47 <coppro> I don't know about the EU
22:23:00 <coppro> pikhq: I don't think that falls under the Prerogative
22:23:19 <pikhq> coppro: Mmm. Right.
22:23:23 <coppro> and it would, in any case, still be subject to being fought in the Courts. The Charter is a powerful piece of law.
22:23:45 <coppro> (quite possibly the strongest piece of human rights law in the world)
22:23:55 <pikhq> ehird_: They'd have to find you.
22:24:01 <pikhq> And then sue the country you're in at the time.
22:24:16 <pikhq> Meanwhile, you could go a few miles to the next country. :P
22:24:42 <Ilari> pikhq: HFCS is infamous, yes. But it might not be (much) worse than sugar.
22:24:47 <coppro> I'd expect they'd just ignore you if you left
22:24:49 <Sgeo> Are there downsides to refugee status?
22:25:04 <pikhq> Sgeo: It's non-trivial to get.
22:25:12 <pikhq> Especially compared to just moving.
22:25:28 <pikhq> Particularly compared to moving in the EU...
22:25:37 <coppro> yeah, moving in the EU is a breeze comparatively
22:25:43 <pikhq> (which is a matter of just leaving...)
22:25:55 <coppro> the biggest trick about refugee status is that you must have left your country already
22:27:03 <Ilari> I haven't studied "the shit out of nutrion" there are lots of people who know much more. But compared to most ordinary people...
22:27:07 -!- augur has quit (Ping timeout: 256 seconds).
22:28:17 <Sgeo> Ilari, that's roughly where I am with programming knowledge. #esoteric is people who know much more. "ordinary people" is all the students in the programming track..
22:28:44 -!- _MigoMipo_ has joined.
22:28:46 <coppro> On the whole, #esoteric probably contains at least one person who knows more than most ordinary people for nearly any subject
22:28:51 <coppro> and if they don't, they know someone who does
22:28:52 -!- MigoMipo has quit (Ping timeout: 240 seconds).
22:29:01 -!- _MigoMipo_ has changed nick to MigoMipo.
22:29:28 <ehird_> coppro: In the cyberfuture, #esoteric will be known as the international hub for the intelligentsia.
22:29:54 * coppro has the Magic: the Gathering department covered
22:29:57 <coppro> :P
22:30:00 <ehird_> Upon those who enter we look at, not with scorn perhaps but with an intense neutrality; and those who ask a question are careful, lest we decide to creatively misinterpret it.
22:30:13 <coppro> :D
22:30:14 <ehird_> We are also, relatedly, known as the international hub of slackers who've never done anything worthwhile anyway.
22:30:24 <coppro> :P
22:30:31 * coppro is going to judge a Pro Tour in two weeks!
22:31:05 <pikhq> coppro: Oh, you're a judge? Niceness.
22:31:19 <coppro> Yeah!
22:31:21 * pikhq is merely a guy who knows the rules very well
22:31:22 <Sgeo> ehird_, considering everything that's happening, I don't know if you really care, but Fine Structure is complete
22:31:24 -!- augur has joined.
22:31:27 <coppro> pikhq: got your RA?
22:31:31 <pikhq> Which helps when friends do things very, very weird.
22:31:39 <pikhq> coppro: ... No.
22:31:45 <coppro> you should try for it
22:31:53 <ehird_> Sgeo: My life is complete once more ;P
22:32:00 <Ilari> When it comes to programming, it seems that some people are just better as programmers (and it isn't about experience).
22:32:03 <ehird_> *:P
22:32:21 <pikhq> (among other things, we have countered a spell by Sharazad, and then using a Ring of Maruf in the subgame to fetch it off the stack.)
22:32:47 <coppro> :D
22:32:54 <coppro> I take it you're mostly old-schoolers then?
22:33:11 <pikhq> No, just very casual.
22:33:20 <pikhq> Which means we end up seeing a lot of *everything* going.
22:33:33 <coppro> nice
22:33:39 <coppro> play EDH!
22:34:46 <pikhq> I've got my Reaper King EDH deck right here.
22:34:53 <coppro> :D
22:35:07 <coppro> there will be EDH side events at the PT, too bad I don't get to play :(
22:37:55 <pikhq> ehird_: So, it seems that in Canada, if you're a refugee you can only be removed from Canada via extradition, if the reason for being a refugee no longer exists, you voluntarily move elsewhere, or you voluntarily become a citizen.
22:38:16 <pikhq> Also, you may apply outside of Canada.
22:38:41 <pikhq> http://laws.justice.gc.ca/eng/I-2.5/page-4.html#anchorbo-ga:l_2-gb:l_1
22:39:17 <oklopol> coppro has the Magic: the Gathering department covered <<< you're not the only one
22:39:29 <ehird_> oklopol: wouldn't peg you as a magic kind of guy
22:39:34 * Sgeo wonders if he should bring in a friend who's a magic person
22:39:46 <ehird_> anyway guys, um, #esoteric-priv plz, would like to go off the record for some things
22:40:00 -!- whtspc has quit (Ping timeout: 252 seconds).
22:41:36 <oklopol> ehird_: actually i've played a considerable amount of it, although i suck at it. but i didn't really mean myself
22:42:27 <coppro> I just meant for this channel
22:42:41 <oklopol> yeah me too, pikhq, zzo, etc
22:42:56 <coppro> Sgeo: #mtg on EFNet
22:43:51 -!- MigoMipo has quit.
22:46:19 -!- MigoMipo has joined.
22:48:10 -!- zzo38 has joined.
22:48:46 <cpressey> Speak of the debbil
22:48:57 <cpressey> SORRY
22:49:03 <cpressey> I mean SPEEK of the debbil
22:49:29 <oklopol> Ilari: soon first liter down
23:01:32 -!- Gracenotes has quit (Ping timeout: 240 seconds).
23:03:10 <Wareya> I think I already posted this, but
23:03:11 <Wareya> http://cymonsgames.com/forum/index.php?topic=191.0
23:03:31 <Wareya> Turing complete ascii game, haha
23:03:42 <coppro> REDGREEN
23:03:44 <cpressey> You did, but it's still entertaining.
23:03:50 <Wareya> yeah
23:03:52 <cpressey> Rubicon :)
23:03:59 <ehird_> Wareya: Congratulations, you just doubled the lightheartedness of this channel with that one link. :P
23:04:04 <ehird_> (And the ontopicness...)
23:04:17 <cpressey> I wonder if anyone's tried to put together a list of Turing-complete (or nearly so) computer games.
23:04:21 <Wareya> what is the lightheartedness was 0
23:04:24 <Wareya> if*
23:04:36 -!- tombom_ has quit (Quit: Leaving).
23:05:44 <ehird_> Wareya: Who knows.
23:05:48 <ehird_> It was something like 1/xkcd.
23:06:03 <Wareya> haha
23:06:03 <ehird_> (In case you haven't seen the log, we've been discussing the glorious matter of how fucked up my life is.)
23:13:15 <augur> cpressey: turing complete computer games?
23:13:58 <augur> GoL!
23:14:11 <oklopol> it's a game?
23:14:11 <MissPiggy> lol
23:14:15 <oklopol> oh...
23:14:18 <augur> GAME of life
23:14:21 <augur> OBVIOUSLY
23:14:38 <oklopol> ah okay i thought you were referring to a possibly existing computer version of the board game
23:14:45 <cpressey> augur: I know one time I was on here, long ago, people were discussing whether Transportation Tycoon is TC
23:14:52 <ehird_> augur: so uh are you remotely interested in how fucked up my life is?
23:14:53 <oklopol> but i guess that's an even better joke
23:14:54 <augur> chess is turing ocmplete
23:15:05 <augur> ehird_: always!
23:15:08 <cpressey> scarf claims to have a proof that Rubicon is TC.
23:15:18 <oklopol> wp says chess's extensions to an infinite grid are exponential time, but not tc
23:15:27 <augur> oklopol: true!
23:15:28 <ehird_> augur: http://pastie.org/private/4oxpzgiywxbjobgrsa.
23:15:37 <cpressey> Yeah, I've also seen Minesweeper called TC, but I'm suspicious
23:15:39 <ehird_> augur: And I'm not joking, or doing some emo shit when I say fucked up.
23:16:02 <oklopol> exponential time to do something, i have no idea how exactly these extensions work, probably pretty much anything gives the same results
23:16:11 <cpressey> Obviously AsciiPortal and Robozzle
23:16:40 <oklopol> cpressey: no but it was proven NP-complete
23:16:43 <oklopol> pretty simple really
23:16:50 <cpressey> There was something called Winter something or something that was like a video game version of CRobots or something
23:17:00 <MissPiggy> AsciiPortal is TC?
23:17:08 <oerjan> oklopol: exponential time in the size could still mean TC for _infinite_ size
23:17:26 <cpressey> MissPiggy: not sure if it's proven, but suspected at least
23:17:28 <oerjan> i suspect that wp really means unbounded, not infinite
23:17:30 <oklopol> err yes, i guess...
23:17:48 <oklopol> or then it means some sort of extensions to "size n"
23:17:50 <oklopol> i have no idea
23:17:55 <Wareya> you can build nand gates into asciiportal levels
23:18:02 <augur> ehird, wait, so what
23:18:11 <augur> you're being forced to go to some place?
23:18:12 <cpressey> How are you supposed to "execute" chess? Nondeterministically make every possible move?
23:18:16 <augur> why? how did this come about?
23:19:17 <ehird_> augur: I think I answered that in the channel too. let me try and find the log
23:19:29 * augur hugs ehird_ :(
23:19:34 <cpressey> I've often wanted to make a game based on a cross between Befunge and Paradroid, too. That could be TC, it just... doesn't exist.
23:19:35 <augur> well i think you're normal. and pretty cool.
23:19:38 <augur> if a bit girly. ;P
23:20:30 <ehird_> augur: anyway it came about for complicated reasons...
23:20:34 <ehird_> i can't really explain
23:20:40 <zzo38> How can chess be turing complete? I think of [[InfChessPro]] but I don't know if you can assume such things
23:20:50 <zzo38> And I have the same question, how to "execute" chess?
23:20:54 <Sgeo> RoboZZle is TC
23:21:11 <cpressey> Carnage Heart, that's it, not Winter anything
23:21:38 <zzo38> Sgeo: I can believe that, it has stacks and also sometimes command for change color of a square, too.
23:21:55 <Sgeo> Langton's Ant was implemented in it
23:22:00 <Sgeo> That means it's TC, I think?
23:22:05 <ehird_> augur: #esoteric-priv if you want to discuss it...
23:22:31 <Wareya> sorry if I sound snoopy, but I just want to listen
23:22:47 <ehird_> That's okay. Just don't tell anyone else...
23:22:58 <Wareya> no problem
23:23:06 <ehird_> It's public enough to anyone in here given the pastie link.
23:25:55 <zzo38> Please show me how Langton's Ant is implemented in it?
23:26:10 <oklopol> are you serious?
23:26:14 <MissPiggy> zzo38, I think it's pretty trivial
23:26:18 <oerjan> a pretty obvious way to ask whether a game like chess is TC is "what is the result (white/black wins, tie) from a given position with perfect play by both players?"
23:26:22 <MissPiggy> since it has got a paint command
23:26:22 <oklopol> hence "are you serious"
23:26:27 <MissPiggy> so you just do the obvious thing
23:27:07 <oerjan> then you need to encode your computation into the initial position.
23:27:07 <oklopol> yeah, basically there are commands that exactly correspond to the rules of the ant.
23:27:15 * MissPiggy doesn't think you can encode arbitrary diophantine equations in chess
23:27:26 <cpressey> oerjan: I think that's equivalent to what I said? Nondeterministically make every possible move.
23:27:29 <pikhq> oerjan: Chess halts given perfect play.
23:27:35 <MissPiggy> zzo38 did that actually help at all?
23:27:35 <Wareya> How do you "execute" chess?
23:27:43 <pikhq> Actually, even without perfect play, it must halt.
23:27:58 <MissPiggy> pikhq what if you have infinite peices
23:28:26 <oerjan> pikhq: we are naturally assuming an infinite extension here
23:28:27 <ehird_> pikhq: how come
23:28:31 <ehird_> move forwards and backwards forever
23:28:33 <Sgeo> I'd sell a finite amount on eBay at regular intervals
23:28:34 <coppro> 50 move rule
23:28:36 <ehird_> eh there's probably some dumb-ass limit rule
23:28:39 <pikhq> ehird_: 50 move rule.
23:28:39 <zzo38> Chess will always halt if you use 50 move rule
23:28:39 <ehird_> coppro: ding
23:28:50 <coppro> if you have infinite pieces and infinite space, though, you're fine
23:28:54 <cpressey> :(
23:28:57 <coppro> because the 50 moves reset every time a pawn moves
23:29:03 <coppro> so a pawn could keep moving forever
23:29:04 <pikhq> Also, given perfect play, such an instance will never happen.
23:29:18 <coppro> threefold repetition wouldn't happen in perfect play
23:29:27 <cpressey> Right, let's extend to an infinite chessboard -- but don't drop the 50 move rule! :)
23:29:34 <coppro> :P
23:29:46 <coppro> Let's also include every variant piece!
23:30:22 <pikhq> Also, I'm pretty sure an infinite chessboard would make it easy to guarantee checkmate.
23:30:42 <oklopol> even without the 50 rule, the game only has a finite amount of positions, and therefore doesn't allow any computation.
23:31:14 <pikhq> And since perfect play aims for checkmate...
23:31:34 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:31:36 <zzo38> Yes, that is true of course, there is only a finite amount of positions, which is what I was thinking of at first
23:32:16 <zzo38> It is possible some variants might be different, though
23:33:40 <cpressey> I think you need an unbounded sized board just to say you can handle "input" of arbitrary sizes.
23:34:06 -!- MigoMipo has quit (Quit: Konversation terminated!).
23:34:36 -!- coppro has quit (Read error: Connection reset by peer).
23:34:56 <oklopol> you need an unbounded board just to have computation in the mathematical sense.
23:35:27 -!- coppro has joined.
23:35:41 <zzo38> Yes, I think you would, but there are variants with unbounded boards.
23:35:47 <oklopol> if the system only allows for a finite amount of initial positions, it is algorithmically trivial to solve absolutely any question about it.
23:36:23 <oklopol> if (board looks like this) { ... } else if (board looks like that) { ... } etc
23:37:59 <cpressey> oklopol: I catch your meaning, but I wonder if I can't come up with a counterexample that exploits your choice of words...
23:38:15 <coppro> ehird_: Before I go, I'd like to run an idea by you; would you be interested in a program that would provide for a tiled display of ASCII source?
23:39:12 <oklopol> cpressey: impossible!
23:39:47 <AnMaster> ehird_, hi!
23:39:58 <AnMaster> ehird_, what kept you away before?
23:40:01 <AnMaster> welcome back
23:40:15 <cpressey> oklopol: Say I have a 2-symbol UTM, and I say that you can feed it any of the first 600 billion billion prime numbers to it, in binary. Then I ask you to tell me which of those cause the UTM to halt, and which cause it to loop forever.
23:40:22 <coppro> AnMaster: http://pastie.org/private/4oxpzgiywxbjobgrsa
23:40:49 <cpressey> The system has a finite amount of initial positions...
23:41:04 <oklopol> ah but that *is* algorithmically trivial
23:41:28 <oklopol> for each of those numbers, it either stops or not
23:41:38 <oklopol> and there's a finite amount of them.
23:41:47 -!- ehird_ has quit (Ping timeout: 248 seconds).
23:42:13 <cpressey> It would be trivial to represent the algorithm, yes, but not to discover the correct one. I guess you meant the former.
23:42:45 <AnMaster> coppro, hrrm
23:43:19 * Sgeo doesn't see a Scroll Lock button on this keyboard
23:43:32 <oklopol> cpressey: just going by the rigorous definition of "algorithmically trivial"
23:43:39 -!- ehird has joined.
23:43:49 <oklopol> wb
23:45:20 <AnMaster> ehird, wv!
23:45:21 <AnMaster> wb*
23:45:27 -!- AnMaster has set topic: RIP sun.com | 0 days since last ehird sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
23:45:43 <cpressey> oklopol: and an interesting definition of "solve" :)
23:46:14 <cpressey> clearly not "answer correctly"
23:46:15 <oklopol> how is it not a solution if you can write a O(1) algo for it? ;)
23:47:34 <oklopol> the algo is clearly O(1) (hidden constant 600 billion billion)
23:48:05 <AnMaster> cpressey, oklopol: what are you trying to solve?
23:48:09 <zzo38> http://chessvariants.org/shape.dir/infiniteboard.html
23:48:27 <oklopol> nothing really
23:49:00 <cpressey> Well, I've solved the P=?NP problem, then. It is either yes or no.
23:49:01 <Sgeo> It depends on what the meaning of "trying" is
23:49:30 <oklopol> the P?=NP problem is algorithmically trivial, yes
23:49:51 <cpressey> And thus it is solved.
23:49:52 <oklopol> this is the first thing you hear in a course about computability
23:50:02 <oklopol> oh okay i see what you mean
23:50:37 <oklopol> hmm
23:50:46 <AnMaster> cpressey: I assume not for any useful values of solved
23:50:59 <zzo38> I have also read about chess variants where the number of rows is 2 times omega and that the number of columns is very infinite
23:51:09 <cpressey> I think there's maybe a linguistic issue about "solve" versus "has a solution"?
23:51:19 <oklopol> okay i don't think i've said anything incorrect
23:51:44 <oklopol> algorithmically trivial to solve != possible to solve
23:51:59 <ehird> AnMaster: ah, you have recently returned?
23:52:08 <ehird> AnMaster: http://pastie.org/private/4oxpzgiywxbjobgrsa
23:52:21 <AnMaster> ehird, someone else (coppero?) linked it above
23:52:24 <AnMaster> so read it
23:52:24 <ehird> Okay.
23:52:28 <AnMaster> ehird, poor you
23:52:45 <ehird> Poor me.
23:52:45 <AnMaster> ehird, also: emigrate to somewhere saner
23:52:55 <zzo38> I have heard of ideas for chess variants where white pieces go forward in time, and black pieces go backward in time. Maybe we can even make a esolang with similar ideas?
23:52:56 <ehird> My plan.
23:52:57 <cpressey> oklopol: OK, maybe.
23:52:57 <augur> linguistics!? :o
23:53:00 <ehird> Sweden or Norway, most likely.
23:53:13 <ehird> Well, our plan; my parents' too.
23:53:17 <AnMaster> ehird, Sweden is shit nowdays. Norway is expensive to live in
23:53:25 <AnMaster> well, Sweden isn't as bad as UK
23:53:27 <AnMaster> but still
23:53:32 <ehird> How's Sweden shit? You may have an incredibly skewed view; you guys voted for the pirate party
23:53:35 <oklopol> cpressey: just a matter of definitions, i love nothing more than to use a completely counterintuitive definition as counterintuitively as possible.
23:53:42 <AnMaster> ehird, FRA, IPRED
23:53:46 <AnMaster> to mention two things
23:53:51 <oklopol> well okay i love many things
23:54:07 <ehird> AnMaster: the whole world is going that way
23:54:13 <ehird> well
23:54:16 <ehird> fra, okay, sure, that's bad
23:54:24 <ehird> but sweden doesn't have internet censorship right? finland does
23:54:27 <FireFly> Nighty
23:54:32 <ehird> norway is expensive sure but surely not that much more expensive than sweden
23:54:36 <ehird> the three counrties are really similar right?
23:54:40 -!- FireFly has quit (Quit: Leaving).
23:55:01 <AnMaster> ehird, iirc there is/was some sort of non-enforced recommendation of child porn sites that isp could blacklist
23:55:03 <AnMaster> or such
23:55:06 <AnMaster> vague memory
23:55:26 <AnMaster> ehird, also what about Bolivia? It might be saner
23:55:57 <oerjan> O_o
23:56:10 <ehird> I think it is what AnMaster would call a joke.
23:56:17 <oerjan> ah.
23:56:36 <AnMaster> ehird, no
23:56:38 <pikhq> AnMaster: Yes, there was.
23:56:50 <pikhq> AnMaster: Do note that that's one of the things the Piratbyran opposed.
23:57:10 <AnMaster> pikhq, well yes, but this all goes at EU level nowdays
23:57:19 <pikhq> And that the other political parties adopted as part of their platform in response.
23:57:19 <oklopol> scandinavia is one big happy family really
23:57:22 <AnMaster> there is basically no choice at any lower level for such things
23:57:38 <pikhq> ... Things inside of Sweden are at EU level?
23:57:41 -!- bsmntbombdood has quit (Ping timeout: 246 seconds).
23:57:46 <pikhq> Not just EU laws?
23:57:48 <ehird> I can't knock the EU if it's going to be saving my ass with free immigration.
23:57:58 <pikhq> :P
23:58:34 <coppro> ehird: did you see my idea?
23:58:35 <AnMaster> <pikhq> Not just EU laws? <-- I referred to EU laws
23:58:36 <AnMaster> as in
23:58:48 <AnMaster> FRA and IPRED are required laws by EU
23:58:49 <ehird> coppro: which?
23:58:49 <pikhq> ehird: More like "near-citizenship".
23:58:49 <pikhq> AnMaster: Ah.
23:58:57 <ehird> not fra surely
23:59:02 <AnMaster> pikhq, as in, the country has to implement something like it
23:59:06 <ehird> i don't think the eu would condone warrantless wiretapping much less require it
23:59:06 <AnMaster> ehird, pretty sure yes
23:59:10 <AnMaster> well
23:59:14 <AnMaster> something very close
23:59:24 <AnMaster> Sweden went way further though iirc
23:59:38 <coppro> ehird: I'm thinking of writing a program to tilize text; it would have nice features like the ability to run on updating text (e.g. a cellular automaton) and maybe even have an editor
2010-02-06
00:00:21 <ehird> i actually felt a brain context switch there, to programming mode
00:00:30 <ehird> sorry i'm thick right now, tilize?
00:00:43 <coppro> I just made the word up :)
00:00:50 -!- SimonRC has quit (Ping timeout: 246 seconds).
00:00:53 <Wareya> make tiled? :P
00:00:55 <coppro> I mean to take a text "image" and render it with graphical images
00:01:09 <coppro> like produce a graphical version of a Befunge program or something
00:01:26 <ehird> okay
00:01:41 <AnMaster> coppro, like showing code flow paths in colours?
00:02:53 <MissPiggy> <ehird> i actually felt a brain cell switch there, to programming mode
00:02:57 <MissPiggy> all one of them?
00:03:11 <ehird> umm context switch
00:03:12 <ehird> not cell switch
00:03:22 <ehird> but yeah, just one cell is all my programming magic
00:03:23 <ehird> it's
00:03:24 <ehird> quantum
00:03:25 <MissPiggy> that's how /I/ read (the first time)
00:03:26 <coppro> AnMaster: no
00:03:30 <MissPiggy> it.s....... quantum!
00:03:35 -!- zzo38 has quit (Quit: Is Dungeons&Dragons turing complete? Actually, that isn't even a valid question).
00:03:42 <MissPiggy> lili
00:03:45 <coppro> the basic version would just take a text and replace each character with an image
00:04:36 <ehird> i think i'm obligated to inject some ehird into the discussion
00:04:49 <coppro> that was the plan; we haven't had enough ehird lately
00:04:57 <ehird> <some statement about being apple-fanboy-forced into buying the ipad><criticise it rampantly><says that i still love it>
00:05:08 <AnMaster> <coppro> the basic version would just take a text and replace each character with an image <-- bitmap font rendering?
00:05:08 <ehird> that's my quota
00:05:31 <AnMaster> ehird, oh? so you love the ipad?
00:05:38 <cpressey> I gotta say, I love it when unit tests fail when you substitute a class with a subclass of it which *overrides nothing in it*
00:05:48 <ehird> I hate it and want it to be my wife!
00:06:02 <cpressey> Anyway, I gotta go. Later folks.
00:06:03 <coppro> AnMaster: that would be the basic principle, yeah
00:06:03 <cpressey> Good luck ehird :)
00:06:07 <ehird> cpressey: Thank you.
00:06:10 <AnMaster> ehird, hard to decide on it?
00:06:12 -!- cpressey has left (?).
00:06:24 <ehird> AnMaster: Regular teenagers think they have issues with deciding on their sexuality. They should try being freedom-lovin' Apple fanboys.
00:06:38 <AnMaster> coppro, wow what a great new invention! rendering text to a graphical image. Rather than sending it to a vt100 terminal unit
00:06:53 <coppro> It's not new
00:06:54 <AnMaster> you mean, actually render in *software*?
00:07:01 <AnMaster> coppro, I was being sarcastic
00:07:02 <AnMaster> ...
00:07:03 <ehird> umm i'm required to inject some display nerdery into this subtopic
00:07:06 <ehird> guys, it has an IPS screen
00:07:12 <ehird> and it's so thin and light and handheld. IPS!
00:07:14 <ehird> ok
00:07:18 <ehird> back to more depressing things
00:07:31 * coppro knows of sexual troubles!
00:07:32 <AnMaster> ehird, but it is too large to fit into a pocket
00:07:38 <AnMaster> well
00:07:40 <ehird> so's your mom
00:07:45 <ehird> coppro: you and everyone else
00:07:50 <ehird> join the club
00:07:55 <ehird> receive t-shirt, etc.
00:08:00 <AnMaster> unless you want: "is that an ipad in your pocket, or are you just extremely happy to see me?"
00:08:06 <coppro> I've been a member for a long while now
00:08:07 <Wareya> lol
00:08:14 <AnMaster> but that would be, um, ridiculous
00:08:14 -!- pikhq has quit (Read error: Connection reset by peer).
00:08:22 <coppro> pretty sure I'm in a special division though
00:08:38 <Wareya> Thta's a reason I wear cargo pants
00:08:54 <ehird> wait it costs $499? why don't i have one already
00:08:58 <ehird> apart from it not being released and stuff
00:09:03 <AnMaster> hah
00:09:13 <ehird> i was expecting like, $799
00:12:12 <oerjan> could be a misprint.
00:12:29 <coppro> given that it's just a big iPhone, I'd say it's not a misprint
00:13:14 -!- SimonRC has joined.
00:14:29 -!- bsmntbombdood has joined.
00:14:55 <AnMaster> ehird, but what use case does ipad fill
00:15:37 <ehird> the "i am sitting on a bench and I want to read the new york times and check my email" case for one
00:15:59 <Wareya> it has better video hardware
00:16:22 <ehird> i'm not sure how useful the ported office suite will be though
00:16:25 <ehird> with that keyboard
00:17:18 <coppro> the plug-in one?
00:17:49 <ehird> the onscreen one
00:17:51 <AnMaster> ehird, hm
00:18:15 <coppro> yeah, I don't expect that to be useful
00:18:18 <ehird> it runs a subset of iphone apps too so it's a big games console
00:18:25 <ehird> and fart sound maker
00:18:31 <coppro> too big to thumb-type, and practically impossible to touch-type
00:19:19 <ehird> i dunno, touch-typing could be practical
00:19:27 <ehird> with the error-correction
00:19:27 <coppro> I can't see it really being
00:19:33 <ehird> i can almost do it on an iphone, it's just too small
00:19:57 <coppro> because touch-typing sucks on a keyboard with no force feedback, and the angle is awkward because you have to type and view on the same surface
00:20:31 <AnMaster> <ehird> it runs a subset of iphone apps too so it's a big games console <-- not full OS X apps?!
00:20:34 <AnMaster> what the crap
00:20:38 <ehird> AnMaster: >_<
00:20:42 <Wareya> American laptops: Full sized keyboard! Bigger keys instead of a full layout! Yay!
00:20:48 <coppro> AnMaster: I said it's a big iPhone. I wasn't kidding.
00:20:54 <AnMaster> coppro, ...
00:20:57 <ehird> AnMaster: and i said i wouldn't argue with you this weekend
00:20:58 <AnMaster> that stupid...
00:21:04 <ehird> i lied
00:21:04 <Wareya> it has better video hardware
00:21:20 <AnMaster> I'm just shocked at this vendor lockin
00:21:31 <AnMaster> <Wareya> American laptops: Full sized keyboard! Bigger keys instead of a full layout! Yay! <-- hm?
00:21:31 * ehird grabs the popcorn
00:21:34 <ehird> We're playing Vendor Lockin!
00:21:36 <AnMaster> you mean, like most laptops?
00:21:41 <ehird> The game where AnMaster calls EVERYTHING vendor lockin!
00:21:43 <AnMaster> Wareya, having full sized main area?
00:21:47 <ehird> 24/7/365!
00:21:48 <Wareya> huh?
00:21:49 <ehird> Don't miss it!
00:22:05 <Wareya> No, the whole thing's width is that of a standard IBM-style keyboard
00:22:12 <Wareya> seriously full sized
00:22:34 <Wareya> but it's just an enlarged version of a normal laptop keyboard
00:22:38 <AnMaster> Wareya, well my lenovo thinkpad has qwerty minus numeric keypad. the main (letter) area have keys the same size as a full sized pc keyboard
00:22:53 <Wareya> yes
00:22:57 <AnMaster> some side keys are smaller, such as the F-keys
00:23:02 <Wareya> it's as big as a full keyboard
00:23:04 <AnMaster> and alt/ctrl/win
00:23:16 <Wareya> but it has no numpad and the arrows are squashed under shift and enter
00:23:18 <AnMaster> and the arrow keys are smaller and moved
00:23:25 <AnMaster> Wareya, yes?
00:23:26 <AnMaster> indeed
00:23:33 <AnMaster> seems like a sane solution for a laptop
00:23:37 <AnMaster> easy to adopt to
00:23:38 <Wareya> And it's the same size as a normal IBM-style desktop keyboard
00:23:45 <AnMaster> hm?
00:23:46 <Wareya> yet it uses a laptop layout
00:23:52 <AnMaster> Wareya, no mine isn't
00:23:55 <Wareya> mine is
00:23:58 <AnMaster> due to the lack for a keypad on the side
00:23:58 <Wareya> I'm saying
00:24:02 <AnMaster> it's a 15" laptop
00:24:09 <AnMaster> so you couldn't fit keypad there
00:24:14 <AnMaster> with full sized main key
00:24:18 <AnMaster> main keys*
00:24:28 <AnMaster> Wareya, still it makes it easy to switch between laptop and desktop
00:24:30 <Wareya> If can fit an IBM desktop keyboard on top of this laptop's keyboard
00:24:32 <AnMaster> same key sizes for most keys
00:24:42 <Wareya> the keys are enlarged, but it has a laptop layout
00:24:50 <Wareya> I mean
00:25:10 <AnMaster> well with the numeric keypad the desktop keyboard is wider than my laptop
00:25:16 <AnMaster> well,*
00:25:27 -!- pikhq has joined.
00:25:32 <Wareya> for me they're the same
00:25:54 <Wareya> Instead of taking advantage of the space for a full kayboard layout, they squeezed in an engarged laptop layout.
00:25:56 <AnMaster> Wareya, is that a 17" laptop?
00:26:12 <Wareya> I don't know measurements very well
00:26:29 <AnMaster> Wareya, becuase having the same *key size* for the letter keys is useful
00:26:33 <AnMaster> when you switch a lot
00:26:37 <AnMaster> it avoids a LOT of annoyance
00:26:42 <AnMaster> due to missed keys and such
00:26:47 <Wareya> -all- of this laptop's kays are super sized
00:26:48 <Wareya> it's retarded
00:26:55 <ehird> Who is Wareya?
00:26:57 <Wareya> super sized from an IBM keyboard's size
00:26:57 <ehird> Is he new?
00:27:00 <Wareya> relatively
00:27:04 <ehird> Joined?
00:27:10 <Wareya> http://esolangs.org/wiki/User:Wareya
00:27:14 <AnMaster> ehird, you know ais -> scarf btw?
00:27:33 <ehird> yes, is that permanent? I doubt it
00:27:42 <AnMaster> ehird, seems fairly permanent so far
00:27:47 <AnMaster> as in, lasted several days
00:28:08 <ehird> i'm gonna move to a country where i have to wear ais523 around my neck
00:28:17 <AnMaster> eh?
00:28:26 <Wareya> cold country?
00:28:32 * Sgeo watches the joke woosh above AnMaster's head
00:28:43 <Sgeo> Oh, or maybe it didn't
00:29:36 <AnMaster> Sgeo, indeed, it is controlled airspace there
00:31:06 <ehird> yes, otherwise all the jokes would crash together
00:31:15 <ehird> and form some sort of horrible mutant joke of all of them combined
00:31:19 <ehird> which you would then laugh at
00:31:23 <Wareya> like that one?
00:31:39 <AnMaster> hehehe
00:33:39 <ehird> so anyone want to come to norway with me and found an operating systems and programming languages research company
00:33:52 <MissPiggy> that sounds cool
00:33:54 <MissPiggy> I want to do that
00:34:28 <oerjan> joke sothoth
00:34:30 <ehird> so do i :P
00:34:39 <MissPiggy> sothoth
00:34:42 <ehird> the only problem is figuring out a way to be profitable!
00:34:44 <MissPiggy> freaking
00:34:49 <MissPiggy> I have to freaking read goddam
00:34:54 <MissPiggy> H P Lovecraft
00:35:01 <MissPiggy> is there a good version with lots of pictures??
00:35:06 <ehird> apart from that, you know, big space with lots of computers networked together... you can come into work if you want, some sort of money will probably change hands at some point
00:35:07 <AnMaster> XD
00:35:08 <ehird> chill
00:36:47 <ehird>
00:38:05 <AnMaster> night ↓
00:38:15 <Sgeo> I'm not going to sleep now!
00:38:22 <ehird> AnMaster: you're on top of sgeo
00:38:33 <ehird> congratulations, you managed to turn #esoteric to the awkwardly homoerotic once more.
00:39:46 <Sgeo> Esolangers are the only ones in that strange channel right niow
00:40:46 <ehird> Which strange channel?
00:41:20 <Sgeo> The tullinge one
00:41:33 <ehird> It's just a channel for some area of Sweden.
00:41:54 <oklopol> best area there is
00:42:17 <oerjan> "tulling" means fool in norwegian. just saying.
00:43:00 <Wareya> tulling - turring, just saw that
00:44:16 <oerjan> "turring" means fool in norwegian with a ridiculous japanese accent. just saying.
00:44:26 <ehird> Luftputefartøyet mitt er fullt av ål
00:44:27 <ehird> Min svävare är full med ål
00:44:35 <ehird> Ilmatyynyalukseni on täynnä ankeriaita
00:44:38 <ehird> norweigan, swedish, finnish
00:44:39 <ehird> who wins
00:45:38 <oerjan> swedish; it has three funny accents, the others just two
00:45:59 <Wareya> haha
00:46:20 <ehird> swedish is not... rounded enough
00:46:23 <ehird> it's too... tall
00:46:31 <ehird> you can't imagine a pleasant gentleman speaking swedish
00:47:13 <oerjan> indeed. like elves, really.
00:47:32 <Gregor> Good day gentlemen, bork bork bork.
00:47:52 <Wareya> which elves?
00:48:07 <oerjan> the tall, arrogant obnoxious ones.
00:48:08 <Wareya> High fantasy elves or childhood fantasy elves?
00:48:11 <Wareya> okay
00:48:18 <oklopol> i welcome you to the pleasantness of the current moment.
00:48:30 <Wareya> I'm getting jumk food
00:48:34 <Wareya> junk*
00:48:37 <oklopol> i wish i had junk food
00:48:56 <Wareya> I'm walking to a store half a mile a way for...
00:49:05 <Wareya> a single bag of doritos, and a 2-liter of whatever
00:49:09 <Wareya> later
00:49:13 <oklopol> later
00:49:20 <ehird> someone hug me
00:49:22 <ehird> !
00:49:23 <oklopol> no idea what doritos are, but they must be awesome
00:49:34 * MissPiggy hugs ehird
00:49:41 <ehird> yay
00:49:45 <ehird> doritos are corn crisp things
00:49:52 <Wareya> they're overprocessed, brand-name corn chips with cheese and spicing
00:49:54 <ehird> you dip them in things
00:50:04 <oklopol> hugging guys is weird
00:50:09 <Wareya> I know too much about junk foor for a 130 lb teenager
00:50:23 * oklopol hugs still
00:50:24 <Wareya> food*
00:50:35 <oerjan> Wareya: http://www.airshipentertainment.com/growfcomic.php?date=20091101
00:50:53 <Wareya> I'll read it when I get back
00:51:09 <ehird> 14, 74 lbs representin'
00:51:15 <ehird> i am light. light as a feather
00:51:21 <ehird> also really short.
00:51:33 <ehird> in fact my interior is 99% air.
00:51:39 <ehird> 0.99% helium
00:51:45 <oklopol> i'm like two and a half yous
00:51:52 <oklopol> well not exactly
00:52:26 <oerjan> ehird: maybe you could escape the uk in balloon form
00:52:50 <ehird> i'd get a squeaky voice *and* escape
00:52:51 <ehird> sounds good
00:53:14 <oklopol> it's like two horses with one giant hammer
00:53:18 <oerjan> better not fart while over the north sea, though
00:54:09 <oklopol> oh dear, second fart joke
00:54:44 -!- SimonRC has quit (Ping timeout: 246 seconds).
00:55:06 <oerjan> wait, there was another one?
00:55:30 <oklopol> i started doing this thing today where i do the french r thingie without voicing
00:55:39 <oklopol> makes breathing more fun
00:55:40 <oklopol> err
00:55:52 <oklopol> yes, you were like "...oh dear did i make fart joke"
00:55:58 -!- pikhq has quit (Read error: Connection reset by peer).
00:56:07 <oerjan> that's essentially the german ch, isn't it
00:56:35 <oklopol> i don't think it's supposed to roll that much
00:56:44 <oerjan> acch so
00:56:56 <oklopol> at least it rolls less audibly
00:57:00 <oklopol> i basically snore
00:57:08 -!- pikhq has joined.
00:57:17 <oklopol> like a helicopter
00:57:35 <oerjan> and everyone knows it's very bad for helicopters to snore
01:01:54 -!- pikhq has quit (Write error: Connection reset by peer).
01:03:23 -!- pikhq has joined.
01:04:02 -!- pikhq has quit (Write error: Connection reset by peer).
01:05:26 -!- SimonRC has joined.
01:05:50 <ehird> Hi, SimonRC.
01:08:37 -!- pikhq has joined.
01:09:20 -!- pikhq has quit (Read error: Connection reset by peer).
01:09:29 <Wareya> alright
01:11:28 <Wareya> that's pretty funny
01:13:54 <oerjan> just found that "old" comic... i've been reading other comics on foglio's site for ages without realizing "What's new" _wasn't_ a link to the news section
01:14:11 -!- pikhq has joined.
01:14:17 <Wareya> My experience on the internet is like blurry tunnelvision
01:14:23 <oerjan> or so i assume, since i hadn't noticed it before
01:14:30 <Wareya> so I don't know this guy
01:14:45 -!- pikhq has quit (Read error: Connection reset by peer).
01:15:49 <oerjan> well the newer comic Girl Genius has won a good number of awards
01:18:12 <Wareya> I find it funny how it just loosely compared good/evil to roder and chaos
01:18:19 <Wareya> http://www.airshipentertainment.com/growfcomic.php?date=20091115
01:18:32 <ehird> Well, entropy is the greatest evil in the universe.
01:19:12 <Wareya> In my opinion, order/chaos and good/evil are utterly seperate scales
01:19:44 <oerjan> well duh but isn't what that comic _says_
01:20:11 <Wareya> It sounds like it's listing new names for the same things, to me.
01:20:21 <Wareya> Maybe because of my dialect, eh
01:20:39 <oerjan> and in d&d good/evil and law/chaos are the two fundamental axes
01:20:56 <Wareya> yeah
01:23:16 <oerjan> also i would say it's because we're all culturally impressed with associating good with light and law
01:23:34 <oerjan> even if we may not always agree consciously
01:23:51 <Wareya> On a really fundamental level, I guess you're right
01:24:16 <Wareya> but I do feel like that good and light are the same thing anyway, so
01:24:22 <oerjan> er, s/law/order/, or both
01:24:26 -!- pikhq has joined.
01:24:54 <oerjan> while the bat people are likely to disagree vehemently ;D
01:25:02 <Wareya> heh
01:32:35 <oklopol> i don't really see any connection between good and light
01:33:08 <MissPiggy> maybe you have been educated evil?
01:33:21 <MissPiggy> and do not understand the four simultaneous days?
01:33:30 <oklopol> ;)
01:33:46 <oklopol> i like being in the dark, dunno why
01:33:52 <Wareya> I've played plenty of jrpgs
01:34:02 <Wareya> I think that's where good=light and evil=darkness came from
01:34:06 <Wareya> for me
01:37:31 -!- ehird has quit (Ping timeout: 248 seconds).
01:43:10 -!- Asztal has quit (Ping timeout: 272 seconds).
01:48:50 -!- jcp has joined.
01:53:04 -!- ehird has joined.
02:01:03 <oklopol> good night everybody, may i find dreams in my sleep.
02:01:03 <oklopol> ->
02:01:27 <ehird> Sleep, perchance to quark.
02:02:34 <Sgeo> "To sleep in Springfield, perchance to dream of being someplace else"
02:03:02 * Sgeo sees no relevent hits on Google, and points to some Simpsons book
02:05:04 <pikhq> Freaking snowstorm.
02:07:48 -!- pikhq has quit (Read error: Connection reset by peer).
02:11:45 -!- MissPiggy has quit (Quit: MissPiggy).
02:13:22 <olsner> hmm, someone pinged me >7h ago
02:13:59 <Sgeo> olsner, might have been me
02:14:08 <Sgeo> I mentioned the language you were making
02:14:17 -!- pikhq has joined.
02:14:55 <olsner> Sgeo: sweet, what were you saying?
02:15:06 <Sgeo> I was asking what happened with it, I think
02:15:10 <Sgeo> It should all be in the logs
02:15:18 <olsner> meh, logs, bah
02:16:08 <olsner> well, it's being developed, and I have an experimental implementation that should be reworked slightly to make it TC
02:16:16 <ehird> Sgeo: should i ensadden olsner too, or am i not that evil
02:16:22 -!- pikhq has quit (Read error: Connection reset by peer).
02:16:31 <olsner> and I may still decide to rebuild the middle-part of it
02:17:04 <Sgeo> ehird, *shrug* it's your life, your decision
02:17:05 <olsner> ehird: oh, ensadden me as early as possible so that I may not be worsely ensaddened in further future
02:17:17 <Sgeo> *life story
02:17:44 <olsner> ehird about to die or something?
02:18:03 <ehird> Heh, no.
02:18:22 <ehird> I know at least one thing and it's that I'm not that bad off.
02:18:55 <ehird> If I was about to die, I couldn't be talking lightly about ensaddening people on IRC. I'm utterly terrified of death.
02:18:58 <ehird> Anyway, http://pastie.org/private/4oxpzgiywxbjobgrsa
02:19:13 <ehird> (For perspective, since I'm not sure if you know or not, I'm 14.)
02:23:30 <olsner> yah, knew you're young... your situation sounds weird and harsh, but it's how I've always suspected "mental care" works pretty much everywhere
02:23:48 <ehird> I think it's definitely better in some places.
02:23:48 <olsner> after all, it's pretty much impossible to differentiate sane persons and insane persons claiming to be sane
02:23:58 <ehird> thud.
02:24:04 <ehird> ...or vice versa.
02:24:35 <ehird> olsner: I would be less ... whatever emotion I am about this whole situation if they were making steps to treat what they brand me with, instead of a bullshit "malnutrition"
02:24:39 <olsner> claiming to be insane? that's a sign of sanity if there ever was one :P
02:24:41 <ehird> But they're not
02:30:00 <olsner> I think these systems are (with good intentions) built to prevent either you or your parents from bailing you out
02:31:41 <ehird> Yes. But I cannot forgive the people involved.
02:31:51 <ehird> They still did these things unthinkingly.
02:33:59 <Sgeo> If they're claiming "malnutrition", they can't find a way to make sure you eat without detaining you in a place?
02:35:16 -!- pikhq has joined.
02:35:40 <ehird> They're not making sure I eat they're just giving me a drink that's woefully inappropriate; 2 x 1390 kcal + whatever else I eat in the day = one over-caloried puppy, and it's designed for people with disease-related malnutrition who *cannot* get the required amount of energy from food. And I'm not malnutritioned, I eat alright, maybe a bit less than usual. I'm just very thin, just as my father was.
02:35:51 <ehird> Runs in the family, we're both perfectly healthy, no story there.
02:36:07 <ehird> But, you know, if the junk science of BMI says I'm overweight, well howdy-doody, to hell with the facts
02:36:23 <Sgeo> I think that I could use that drink
02:36:47 <Sgeo> Even though technically I can get the required amount of energy from food, I tend not to
02:36:53 -!- pikhq has quit (Read error: Connection reset by peer).
02:37:30 * Sgeo tends not to eat properly
02:37:43 <Sgeo> I think that it would make sense for me to be in your position, tbh
02:38:22 <olsner> I suppose detaining and force-feeding is what they will ultimately resort to to make you eat, after trying various other things, if they still think you're malnutritioned
02:45:25 -!- pikhq has joined.
02:46:14 <ehird> Sgeo: no, believe me it wouldn't
02:46:18 <ehird> nobody would be helped by my position
02:46:29 <ehird> btw nutrition science is bullshit, ask Ilari if you have a lot of time :p
02:46:36 -!- pikhq has quit (Read error: Connection reset by peer).
02:46:45 <ehird> olsner: there's an anorexic girl there, 13, celebrity-obsessed, refuses to eat or drink. they just have her on a feeding tube.
02:46:56 <Sgeo> ehird, my physical body, if not my mind, might be helped
02:47:00 <Sgeo> I seriously don't eat enough
02:47:05 <ehird> they don't seem to especially care about actually fixing things, just temporary "fixes"
02:47:16 <ehird> Sgeo: maybe you just eat the wrong things. But seriously, nutrition science is crap.
02:53:51 -!- rodgort has quit (Ping timeout: 265 seconds).
02:59:40 -!- rodgort has joined.
03:11:29 -!- oerjan has quit (Quit: Good night all).
03:12:43 -!- augur has quit (Ping timeout: 256 seconds).
03:55:17 -!- Pthing has joined.
04:06:48 -!- augur has joined.
04:25:27 -!- pikhq has joined.
04:28:31 <pikhq> Internet? Work?
04:28:31 <pikhq> Please?
04:33:15 <uorygl> Neat, I started a debate: http://forums.xkcd.com/viewtopic.php?f=18&t=55981
04:35:14 * Sgeo likes the taste of pina colada on his lips
04:35:27 <pikhq> Neat, I've got Internet.
04:35:43 <uorygl> "Suppose I have a ball on a hill. The ball is tolling directly up toward the top of the hill, such that its total energy is equal to what it would be if it were at rest at the top of the hill. So, it has enough energy to get to the top, but does it actually do so in a finite amount of time?"
04:36:40 <pikhq> uorygl: No. It approaches the top asymptotically.
04:37:42 <Sgeo> That's one side of the debate
04:39:44 <pikhq> Though I'm pretty sure it depends upon the geometry of the hill...
04:40:25 <pikhq> God dammit xkcd forums.
04:40:44 <pikhq> It appears to be making Conkeror ignore all input on that window.
04:41:00 -!- sebbu has quit (Ping timeout: 245 seconds).
04:41:05 <uorygl> I'm pretty sure the infinitists are right.
04:41:23 <Sgeo> I think if chapstick had some kind of toxin that was only dangerous if a lot of chapstick was needlessly used, I'd be dead now
04:42:21 <pikhq> uorygl: I'm pretty sure there's a limit in there, so yeah...
04:43:24 <ehird> I hate chapstick.
04:43:33 -!- pikhq has quit (Read error: Connection reset by peer).
04:44:18 * Sgeo loves it
04:44:21 * Sgeo loves the taste
04:44:43 -!- MizardX has quit (Read error: Connection reset by peer).
04:44:48 -!- MizardX has joined.
04:55:17 -!- pikhq has joined.
05:00:43 -!- ehird has quit (Ping timeout: 248 seconds).
05:10:40 -!- pikhq has quit (Read error: Connection reset by peer).
05:11:46 -!- pikhq has joined.
05:27:04 -!- bsmntbombdood has quit (Remote host closed the connection).
05:51:41 -!- Gracenotes has joined.
06:32:04 -!- sebbu has joined.
06:48:44 -!- sebbu2 has joined.
06:51:39 -!- sebbu has quit (Ping timeout: 265 seconds).
06:51:39 -!- sebbu2 has changed nick to sebbu.
07:32:20 -!- bsmntbombdood has joined.
07:33:37 <Sgeo> ehird: If you see this, remind me that I have to tell you something
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:54:42 -!- kar8nga has joined.
09:04:21 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
09:05:37 -!- jcp has quit (Ping timeout: 264 seconds).
09:30:56 -!- tombom has joined.
09:32:37 -!- FireFly has joined.
09:37:26 -!- MigoMipo has joined.
09:57:44 -!- bsmntbombdood has quit (Ping timeout: 265 seconds).
10:09:50 -!- bsmntbombdood has joined.
10:15:29 -!- kar8nga has quit (Remote host closed the connection).
10:23:10 -!- Bullseye has joined.
10:23:38 * Bullseye is running I-n-v-i-s-i-o-n 3.1.1 (June '09) with Advanced File Serving features by cRYOa on mIRC v6.35 32bit obtained from #Invision on irc.irchighway.net and http://www.i-n-v-i-s-i-o-n.com
10:23:56 -!- BeholdMyGlory has joined.
10:24:14 -!- Bullseye has left (?).
10:37:48 <Gracenotes> uh. super.
10:41:29 -!- Pthing has quit (Read error: Connection reset by peer).
10:42:04 <oklopol> "if there is a finite distance along the flat to the edge from the balls initial starting place, then i think you are right, an infinitely small push would take an infinite amount of time to even reach the edge, so the exact nature of the slope and the starting position may make a difference here" god these guys are retarded
10:42:36 <oklopol> also this is a slightly old conversation i'm reading, i notice
11:34:37 -!- tombom has quit (Quit: Leaving).
11:52:49 -!- verangirl has joined.
11:53:12 <AnMaster> why do I feel like writing my own irc client suddenly
11:54:42 <verangirl> hello
11:57:13 <AnMaster> hi
11:58:50 <verangirl> are you identi.ca user?
11:59:13 <AnMaster> no idea what that site is
11:59:55 <verangirl> is the free as in freedom twitter
12:00:36 <verangirl> look: http://identi.ca/group/conspiracy
12:00:50 -!- Pthing has joined.
12:01:05 <AnMaster> verangirl, mhm, you know this channel is about esoteric programming languages right? Not about esoterica.
12:01:20 <AnMaster> Sometimes people mistake this channel for the other thing
12:02:29 <verangirl> hum, ok
12:03:42 <AnMaster> esoteric programming languages being intentionally unusual, weird or silly languages. Often (but not always) designed to be hard to program in.
12:06:23 -!- SimonRC has quit (Ping timeout: 246 seconds).
12:07:03 <verangirl> than see you
12:07:04 -!- verangirl has left (?).
12:19:01 <Sgeo> Bwuh? Why did Chrome spontaneously decide to reload a bunch of tabs?
12:19:11 <Sgeo> Also, this channel isn't about esoterica? Crud. See you
12:19:14 -!- Sgeo has left (?).
12:19:22 -!- Sgeo has joined.
12:20:41 <Pthing> i wonder if there actually is a channel for magick weenies
12:51:04 -!- oerjan has joined.
13:02:03 -!- MigoMipo has quit (Remote host closed the connection).
13:07:39 -!- ehird has joined.
13:07:41 <ehird> 04:20:41 <Pthing> i wonder if there actually is a channel for magick weenies
13:07:42 <ehird> ##php
13:07:52 <Pthing> hilarity
13:07:57 <ehird> oblivious to how things work, merely trading magic incantations that appear, on the surface, to do what they desire
13:08:42 <ehird> also 23:33:37 <Sgeo> ehird: If you see this, remind me that I have to tell you something
13:15:40 -!- oerjan has quit (Quit: Later).
13:22:59 -!- MigoMipo has joined.
13:37:11 <ehird> "My own vote is clear: yes to both. Equality is reflexive (every value is equal to itself, at any longitude and temperature, no excuses and no exceptions); and the purpose of assignment is to make the value of the target equal to the value of the source. Such properties are some of the last ramparts of civilization. If they go away, what else is left?" --Bertrant Meyer
13:37:33 -!- MissPiggy has joined.
13:42:32 <ehird> hi MissPiggy.
13:42:42 <MissPiggy> hey
13:43:39 <ehird> MissPiggy: agda question - it's tc but total, right? how does it handle that; that partiality monad?
13:44:28 <MissPiggy> well it is total
13:44:41 <ehird> is it not tc, then?
13:45:12 <MissPiggy> but you can express every partial function N -> N using a data type
13:45:22 <AnMaster> ehird, interesting, but what is the context?
13:45:24 <MissPiggy> or you could build a model of lambda calculus using a partiality monad
13:45:30 <ehird> in the language i spent a night babbling about - which has, as these things tend to, mutated wildly since - i'm trying to make it total, but to have partiality very ...
13:45:31 <ehird> thingy
13:45:36 <ehird> easy
13:45:37 <AnMaster> (of that quote above)
13:45:45 <ehird> AnMaster: http://bertrandmeyer.com/2010/02/06/reflexivity-and-other-pillars-of-civilization/
13:45:51 <ehird> (bertrand meyer = creator of Eiffel)
13:45:58 <ehird> hmm i said bertrant before
13:45:59 <ehird> *Bertrand
13:47:05 <MissPiggy> the function space A -> B (or forall a : A, B, or whatever) cannot express every recursive function
13:47:25 <MissPiggy> because -> is total functions (because you want to compute with them in types)
13:47:31 <ehird> right
13:47:33 <ehird> hmm
13:47:43 <MissPiggy> but e.g. A -> Computation B can be a model of lambda calculus
13:47:44 <ehird> expressing it with a data type, how do you mean? I'm curious if it's what I'm thinking of or not
13:47:57 <ehird> right, so a partiality monad
13:48:15 <MissPiggy> well you can define all the primitive recursive stuff and Mu, just as a syntax first
13:48:27 <MissPiggy> then you can give a big step semantics,
13:48:35 <ehird> right right, but what's the actual data type; i mean, it's a total language so is there sort of a backdoor where you can introduce partiality?
13:49:04 <MissPiggy> so you really are talking about the class of recursive functions now, every proof you write with respect to the semantics of that type is a valid statement about them
13:49:36 <ehird> your Computation there is a partiality monad, isn't it?
13:49:53 <ehird> so presumably to make meaningful use of them, given a haskell-style main program solution, you need main :: Partial (IO ())
13:49:54 <MissPiggy> yeah that's just one way
13:50:08 <ehird> otherwise you'd be in total-land, and couldn't invoke the forbidden fruit of the partial lands
13:52:40 <ehird> my lambda syntax is currently λα.β because otherwise function types would get confusing :) (λα. α → ∅) vs (λα → α → ∅)
13:52:54 <ehird> (fuck yeah, unicode; i'm using unicode up the wazoo)
13:53:15 <ehird> admittedly it is rather awkward as I have *not* yet written an editor mode or editor which lets you type \a. a -> () to get that
13:53:18 <MissPiggy> yeah \x -> m is stupid
13:53:51 <ehird> hmm, wait
13:53:55 <ehird> ∅ is Void
13:53:56 <ehird> not ()
13:54:55 <ehird> MissPiggy: come up with a nice unicode name for my () set :P
13:55:07 <MissPiggy> I wouldn't worry about writing partial programs
13:55:37 <MissPiggy> although that is just me ..
13:55:43 <MissPiggy> so maybe not such a valuable statement
13:55:47 <ehird> Well, considering I am planning to use this language as an entire OS, I'm sure I will run into partiality at some point - and the total FP paper certainly did show that some operations are damn awkward with total FP.
13:56:25 <MissPiggy> why do you want to write an OS with it?
13:56:32 <ehird> I dunno. I love the proof system duality and the mathematical soundness of having no ⊥,
13:56:40 <ehird> but I'm not sure totality is practical.
13:56:52 <MissPiggy> hurrump
13:57:08 <ehird> MissPiggy: My goal in computing is to completely revolutionise it. My two separate interests are operating systems and programming languages.
13:57:19 <ehird> It is only natural that my awesome programming language would be my awesome operating system.
13:57:33 <ehird> Note "be", not "be used to write".
13:57:46 <MissPiggy> alright but you're not going to do a full correctness proof of the OS?
13:57:51 <ehird> My OS design involves the programming language being central; a living environment.
13:57:53 <ehird> Think Smalltalk.
13:58:05 <ehird> MissPiggy: Yes, well. :P
13:58:07 <MissPiggy> have you talked to luqui about thsi
13:58:20 <ehird> luqui's blog was a big inspiration
13:58:26 <ehird> but i haven't caught him on irc yet
13:58:53 <ehird> heh I could use ∈ instead of ∷
13:58:55 <ehird> that's ugly though
13:59:12 <MissPiggy> the thing about \in is that it's asymmetric
13:59:34 <MissPiggy> so if you can get two symbols (one for the flipped relation)
13:59:52 * ehird wonders whether his empty type/set should be called ∅ or ⊥
14:00:04 <ehird> ⊥ would be the type theory way; ∅ the set theory way...
14:00:24 <ehird> ∅ seems less confusing; ⊥ is too associated with non-termination and undefinedness in programming
14:00:42 <MissPiggy> in haskell* :P
14:00:42 <ehird> then again, I'd like to be able to use ∅ to denote empty containers in value-land, and that would be doubly confusing
14:00:51 <MissPiggy> nobody else has a clue what it is
14:01:08 <ehird> well, whatever; apart from agda guys, haskellers are the most mathematically civilised programmers :)
14:01:15 <ehird> (and coq etc)
14:02:28 <ehird> The joys of Unicode: /=? Why wouldn't you just write ≢?
14:03:42 <MissPiggy> I was thinking about a language that could compile into almost every high level language
14:03:52 <Sgeo> ehird, see my memo to you
14:03:56 <ehird> ≢ because you have to use ≡ for equality
14:04:01 <ehird> because = is definition
14:04:07 <ehird> MissPiggy: underlambda :P
14:04:42 <ehird> Sgeo: relink the paste in /msg; it may not be so bad
14:04:52 <ehird> I have after all linked to the pastie which tells everything in this channel
14:05:21 <ehird> MissPiggy: can you think of any way to use ≠ for equality and not be inconsistent since = is definition? maybe a better symbol for definition? :P
14:05:31 <MissPiggy> := for definition
14:05:41 <MissPiggy> = for the equality type!
14:05:48 <MissPiggy> then yuo can say x = y and MEAN IT
14:06:06 <ehird> := isn't unicode bitchnizzle
14:06:13 <MissPiggy> there's a unicode one :P
14:06:21 <ehird> FIND IT PEASANT
14:06:52 <MissPiggy>
14:06:57 * ehird considers that |α| instead of abs α may be taking the mathematical notation thing a *bit* too far
14:07:10 <MissPiggy> |a| is a fucking abomination
14:07:13 <ehird> MissPiggy: a more hideous symbol I've not seen! I wonder what font size I'm expected to use to make out "def" there.
14:07:16 <ehird> MissPiggy: yeah agreed
14:07:18 <MissPiggy> |a|b|c|
14:07:19 <ehird> retarded notation
14:07:26 <MissPiggy>
14:07:40 <ehird> maybe that reduction symbol that rconnor likes
14:07:51 <MissPiggy> yeah I'm not keen on the unicode stuff because all the operators are too small (unnecessarily :/)
14:07:54 <ehird> mathematical notation defines too much syntax when functions would do :/
14:08:02 <ehird> MissPiggy: yeah I'm taking care not to use any blots of ink
14:08:14 <ehird> also, _my_ OS will display it perfectly legibly ;)
14:08:18 <MissPiggy> hehe
14:08:27 <ehird> http://r6.ca/blog/20031202T032200Z.html
14:08:36 <ehird> →<sub>β</sub><sup>*</sup>
14:08:41 <ehird> we have our definition symbol.
14:09:08 <fizzie> ||a||₂ for the euclidean norm.
14:09:21 <ehird> I draw the line at superscript numbers for powers
14:09:39 <oklopol> fizzie: yes, the stupid symbol is used for all norms
14:10:05 <ehird> Okay, okay, so any fancy space-age editor, like my OS, will *display* it as superscripts.
14:10:17 <ehird> But in the Unicode representation?
14:10:19 <ehird> Nooooooooooooooooooooooo way
14:11:01 <ehird> (Actually I think my OS will only have to consider code as text for interacting with the outside world. Internally, it's an AST or compiled code; in the UI, it's rendered with fancy things like superscripts.
14:11:05 <ehird> s/$/)/
14:11:22 <fizzie> We have a maths teacher who uses sub- and superscript indices completely interchangeably, often changing them between consecutive lines. Also some sort of "middle-scripts" occasionally.
14:11:42 <MissPiggy> wow lol
14:12:00 * ehird wonders what the best symbol for the exponentation operator is
14:13:39 -!- SimonRC has joined.
14:14:37 <ehird> maybe ↑ due to knuth :)
14:14:47 <MissPiggy> http://www.reddit.com/r/math/comments/axd4m/what_is_the_mathematical_rule_that_says_if_abc/c0jw2vc
14:14:48 <MissPiggy> wut
14:15:18 <ehird> anyone who answers a question starting "What is the mathematical rule" with "common sense" is so idiotic I cannot comphrend it
14:15:44 <MissPiggy> 1+1=2 is common sense!
14:15:54 <ehird> http://us.metamath.org/mpegif/2p2e4.html
14:15:57 <MissPiggy> a^2+b^2=c^2 because duh!!
14:15:57 <ehird> i love metamath
14:16:07 <MissPiggy> yeah it's so 80s
14:16:15 <ehird> howso
14:16:24 <MissPiggy> hey guys I just had a great idea, lets put all our math in the computer!
14:16:34 <ehird> says the agda fan
14:16:47 <MissPiggy> epigram fan
14:16:55 <ehird> why don't you like metamath?
14:17:04 <MissPiggy> I do like it, it's just very funny
14:17:07 <ehird> aight
14:17:11 <ehird> i misinterpreted what you said
14:18:18 <ehird> foo α β = (α ≡ β) ∨ (α ≢ β)
14:18:57 <ehird> ⊕ ∷ Bool → Bool → Bool
14:18:59 <ehird> AND JUST WHY NOT
14:19:14 <ehird> hmm ≡ is sometimes used for definition?
14:19:17 <ehird> maybe i could swap =/≡
14:19:21 <MissPiggy> or definitional equality
14:19:26 <ehird> oh or ≐ is a nice unicodey thing for :=
14:19:34 <ehird> not at all ridiculous like ≝
14:19:47 <MissPiggy> like y + x = x + y, but not definitionally
14:19:52 <MissPiggy> you need induction to prove it
14:20:49 * ehird wonders if he's crazy enough to do ÷ ∷ Boringtypeclasstypethingy → Anotherone → Maybe Yetanotherone
14:21:17 <ehird> Yesiree we have a mathematical programming language here, please ignore the endless handling of ÷'s return values behind the curtain
14:21:32 * ehird decides yes
14:21:36 <ehird> I am crazy enough.
14:21:50 <ehird> I just need nice syntax for doing things like this in expressions.
14:22:51 <ehird> Like, say f {x} (y z {r q {x}}) → (using haskell syntax) do x' <- x; x'' <- x; r_q_x' <- r q x''; return (f x' (y z r_q_x'))
14:23:03 <ehird> given some surrounding brackets to denote that it's a special expression thingy ofc
14:23:09 <ehird> that way you could use the maybe monad
14:23:27 <ehird> MissPiggy: So, do you think ≡ is a reasonable symbol for what-Haskell-calls (to avoid ambiguity) =?
14:23:29 <MissPiggy> why you would want to??
14:23:36 <MissPiggy> no I don't
14:23:40 <ehird> kay
14:23:48 <ehird> also,
14:23:58 <ehird> for one, Maybe handling
14:24:14 <ehird> 2 + {3 ÷ x}
14:24:20 <MissPiggy> hahahaha ÷
14:24:22 <ehird> yes!
14:24:26 <MissPiggy> nice
14:24:34 <MissPiggy> oh
14:24:43 <MissPiggy> "... enough to do ÷ ∷ Boringtypeclasstypethingy..."
14:24:46 <MissPiggy> I read that as a + :(
14:24:52 <ehird> lol
14:25:02 <MissPiggy> + ÷ = ≢ ≝
14:25:07 <ehird> anyway, {| 2 + {3 ÷ x} |} is nicer to write than fmap (2 +) (3 ÷ x)
14:25:37 <ehird> a downside is that imperative weenies could do {| say {readLine} |} :P
14:25:49 <ehird> but i guess it's just a generalisation of >>= and =<< and <$> and blah blah blah
14:25:50 <MissPiggy> lol
14:26:00 <MissPiggy> idiom brackets
14:26:02 <AnMaster> ehird, Hm is ÷ fraction, integer division, floating point division or something else?
14:26:08 <ehird> yeah i suspected idiom brackets were the same thing
14:26:14 <ehird> AnMaster: Yes.
14:26:28 <AnMaster> ah all of them then
14:26:30 <AnMaster> ah,*
14:26:44 <ehird> Well, not all of "something else". You have to obey some properties, or the compiler will yell at you.
14:26:54 <AnMaster> well of course
14:27:21 <ehird> Not really "of cause"; almost all languages don't do such things.
14:27:28 <ehird> You can define (/) to be pretty much whatever you want in Haskell.
14:27:31 <AnMaster> "of cause"?
14:27:34 <ehird> *course
14:27:38 <AnMaster> ah
14:27:42 <AnMaster> ehird, but is the result of ÷ exact or not?
14:28:07 <ehird> It depends on the definition doesn't it?
14:28:47 <AnMaster> ehird, yes indeed, which is what my first question about it tried to ascertain.
14:28:59 <ehird> I'll probably require that {| α × {β ÷ α} ≡ β |}, so...
14:29:16 <ehird> (Using ≡ as equality, though that symbol is very much in flux.)
14:29:46 <AnMaster> then it can not produce a "simple" floating point value when dividing two floating point values I think.
14:29:52 <AnMaster> though, I'm not 100% sure about that
14:30:45 <ehird> I'd relax it to {| someEqualityThingProvidedByTheDefinition (α × {β ÷ α}) β |}, but that's as good as letting you define it to anything.
14:31:05 -!- lieuwe has joined.
14:31:08 <AnMaster> >>> (3231.318478239 / 238914.12391) * 238914.12391
14:31:08 <AnMaster> 3231.3184782389999
14:31:22 <ehird> I love how my λ is the same thing as ∀.
14:31:25 <ehird> It makes me feel warm and fuzzy.
14:31:36 <ehird> AnMaster: I might have a separate class for inexact operations.
14:31:58 <ehird> ÷?, maybe.
14:32:01 <MissPiggy> epigram has quotient types
14:32:16 <MissPiggy> so you could quotient out by "someEqualityThingProvidedByTheDefinition" and still use {| α × {β ÷ α} ≡ β |}
14:32:45 <AnMaster> ehird, iirc any floating point operation is potentially inexact. Well, almost any. x := y would be exact if both are the same type of floating point.
14:32:48 <ehird> so that allows inexact definitions but still doesn't let you define it to anything you want? How?
14:32:52 <MissPiggy> so haskal?
14:32:57 <ehird> AnMaster: Yes, I know.
14:33:07 <AnMaster> right
14:33:11 <MissPiggy> by the way
14:33:14 <MissPiggy> in numerics
14:33:22 <ehird> AnMaster: Floating-point operations don't obey the laws of arithmetic, though. :)
14:33:24 <MissPiggy> we get something like fl : R -> R defined
14:33:28 <ehird> hmm
14:33:31 <ehird> maybe you could use Real
14:33:38 <ehird> and specify the inexact implementation as an "implementation detail"
14:33:39 <MissPiggy> and you write x + y*z would compute to fl(x + fl(x*z))
14:33:45 <AnMaster> ehird, true. So what you want is basically a CASkell?
14:33:46 <MissPiggy> where fl does the rounding etc
14:33:47 <ehird> i.e., the code is considered to operate on reals in all their exactness
14:33:53 <MissPiggy> CASkell! lol
14:33:53 <ehird> AnMaster: no.
14:33:55 <MissPiggy> awesome
14:33:59 <ehird> but at runtime
14:34:01 <MissPiggy> that's a good name though
14:34:04 <ehird> it uses floating-point
14:34:05 <ehird> AnMaster: yeah
14:34:07 <ehird> erm
14:34:07 <ehird> MissPiggy: yeah
14:34:13 <ehird> i smiled at the name.
14:35:39 <AnMaster> <ehird> and specify the inexact implementation as an "implementation detail" <-- "this implementation always round to zero. No, that isn't a typo for 'towards zero'."
14:35:45 <ehird> it occurs to me that "e" is a rather inconvenient name to give e, given the commonality of single-letter variable names...
14:35:56 <ehird> AnMaster: heh
14:36:04 <ehird> it's correct for sufficiently large values of zero
14:36:34 <ehird> i'd call e "euler", but euler has done so many mathematical things that it would be hopelessly vague :P
14:36:37 <AnMaster> hm? representing numbers as the length of a series of zeros?
14:36:57 <ehird> like if an idiot was working with the Euler–Mascheroni constant he'd be confused.
14:37:02 <ehird> AnMaster: It's a joke.
14:37:36 <MissPiggy> in a mathematical context e means exp(1)
14:37:45 <MissPiggy> in a monad context + means mplus
14:37:45 <AnMaster> ehird, well, as someone in here said: it is perfectly in spirit with this channel to try to make a working thing of a joke.
14:37:52 <MissPiggy> well actually I prefer (+) for mplus
14:38:01 <ehird> MissPiggy: + for mplus would be interesting.
14:38:08 <AnMaster> might have been ais/scarf
14:38:19 <ehird> I'm already sold on o (too lazy to unicode) = category composition
14:38:27 <ehird> which is even generaler than o = fmap, i think
14:38:39 <MissPiggy> hmm
14:38:48 <MissPiggy> fmap and o are quite different thuogh
14:38:54 <MissPiggy> and I think o is better
14:39:02 <MissPiggy> fmap should just be map
14:39:02 <ehird> hmm
14:39:06 <ehird> (.) :: cat b c -> cat a b -> cat a c
14:39:08 <ehird> --control.category
14:39:10 <MissPiggy> yeah
14:39:10 <AnMaster> ehird, why is e a bad name for e? I can think of at least one way to end up with that as a reasonable letter
14:39:13 <MissPiggy> that seems good
14:39:14 <ehird> ok, that doesn't allow . = fmap
14:39:16 <ehird> but that's good i think
14:39:20 <ehird> i think you're right
14:40:09 <ehird> the supereditor will probably display α ÷ β as
14:40:13 <ehird> α
14:40:13 <ehird> -
14:40:14 <ehird> β
14:40:15 <ehird> :)
14:40:42 <ehird> although at the same time I don't think I want to abandon the entirety of linear syntax
14:40:44 <ehird> it has useful properties
14:40:51 <ehird> (not necessarily textual, but linera)
14:40:53 <ehird> *linear
14:41:11 <ehird> also, consistency is Good, and also something mathematical notation sorely lacks
14:41:29 <ehird> MissPiggy: any good ideas for the hole character in mixfix operators?
14:41:37 <ehird> I don't want to use _, it should be allowed in variable names I think
14:41:38 <MissPiggy> mixfix? boo!!!
14:41:42 <AnMaster> (basically: (e^x)' = e^x, thus it is "its own derivative", and a lot of mathematicans were from Germany historically, thus that leads to "eigen" for "own/self", thus e)
14:41:49 <ehird> [14:33] <MissPiggy> and you write x + y*z would compute to fl(x + fl(x*z))
14:41:51 <ehird> i like that
14:41:53 <MissPiggy> why I hate mixfix is:
14:41:54 <AnMaster> ehird, what about that way to explain why e is a good name for e?
14:42:03 <ehird> basically the same thing as what i was saying
14:42:13 <ehird> AnMaster: yes, but in programming "e" is not an uncommon variable name
14:42:20 <ehird> so having "e" in global scope is problematic
14:42:22 <ehird> MissPiggy: I'm listening
14:42:24 <AnMaster> ehird, true.
14:42:28 <ehird> but i love mixfix so it better be a good argument :P
14:42:34 <AnMaster> ehird, you could use namespaces/module prefixes
14:42:41 <AnMaster> so you have like math:e or such
14:42:51 <ehird> AnMaster: and if you're writing mathematical code?
14:42:53 <MissPiggy> suppose you were making a type system or soemthing, and you wanted to define a function t :: T, to express that t has type T
14:42:55 <ehird> Presumably you envelop all of math.
14:43:05 <AnMaster> ehird, import it? like "from math import e"
14:43:05 <ehird> And you run into the same problem, although I guess mathematicians wouldn't name variables e because of that.
14:43:13 <MissPiggy> the type of t depends on T, so in mixfix you can't do it.. you have to write T ::' t
14:43:17 <AnMaster> (psedo-python)
14:43:22 <AnMaster> pseudo*
14:43:49 <ehird> MissPiggy: I just meant the general idea of being able to define an operation if_then_else_, not any specific definition of the semantics
14:43:52 <MissPiggy> mixfix operators being typed is the problem really
14:44:07 <MissPiggy> yeah if you just make them notations, rather than well typed terms I think it's better
14:44:19 <ehird> I didn't know they were terms in Agda or whatever
14:44:23 <ehird> if they are I don't see why
14:44:41 <MissPiggy> welll when you compute it will print back the mixfix terms
14:44:53 <MissPiggy> rather than something horrid like Ap (Ap (Dollar ..) (Ap ..
14:44:58 <MissPiggy> that we're so used to seeing.
14:45:03 <ehird> so it's basically prettyprinting?
14:45:14 <MissPiggy> if they are just notations then it's a bit harder to make the link, I guess
14:45:14 <ehird> also, you may be used to seeing it but I observe agda from a strictly outside viewpoint! ha!
14:45:27 <MissPiggy> :p
14:45:28 <ehird> MissPiggy: seems ridiculous to add such craziness just for prettyprinting
14:45:33 <ehird> make a smarter pretty-printer!
14:45:41 <MissPiggy> but not too smart!
14:45:51 <ehird> Unless you make sure it's Friendly!
14:45:55 <MissPiggy> lol
14:45:56 <MissPiggy> yeah
14:46:22 <MissPiggy> ehird you know I have read so muh lesswrong
14:46:24 <MissPiggy> much*
14:46:27 <ehird> yeah i prettyprinted my expression that (given infinite time) checked if the reimann hypothesis was true or false
14:46:35 <ehird> it printed "the Boolean *£($&(*£$uq))(ii!£()!*£)(*NO CARRIER
14:46:41 <MissPiggy> :D
14:46:48 -!- ehird has left (?).
14:47:19 -!- ehird has joined.
14:47:22 <ehird> Phew, my connection dropped there.
14:47:32 <AnMaster> ehird, easy to explain
14:47:37 <AnMaster> you said "no carrier" ;P
14:47:49 <lieuwe> i'm still trying to come up with some sort of high-level esolang... can't come up with anything implementable :-/
14:47:53 <AnMaster> clearly _something_ listened
14:48:09 <MissPiggy> lieuwe you came up with unimplementable stuff? :)
14:48:11 <ehird> AnMaster: Was that a pun? A carrier carries something, if a carrier stops carrying something they drop it?
14:48:15 <ehird> If so, I love you.
14:48:21 <ehird> You have made an actually good pun.
14:48:24 <ehird> Congratulations.
14:48:24 <MissPiggy> lol
14:48:33 <lieuwe> MissPiggy: not toataly unimplementable, just very hard...
14:49:00 <AnMaster> ehird, it was a reference to modems mostly. Remembers those leds on them? I mean good old 28 kbit ones and such
14:49:03 <ehird> sounds like the compiler for my language
14:49:13 <ehird> "yeah, in fact it's technically implementable!"
14:49:31 <ehird> should hire a buncha phds to do it for me
14:49:35 <ehird> AnMaster: So not a good pun then :(
14:50:15 <ehird> MissPiggy: i have this horrible feeling that the ML-style module system is going to interact terribly strangely with my type system
14:50:26 <AnMaster> ehird, My variant seems more relevant to any sort of connection over telephony.
14:50:33 <MissPiggy> ehird you could just steal Coqs module system
14:50:42 <MissPiggy> I have no idea about modules though
14:50:45 <ehird> MissPiggy: i might, is it as good as ml's? :P
14:51:02 <MissPiggy> well I think it's basically the same, except a bit extra for the types
14:51:13 <AnMaster> ehird, and iirc you have iphone or adsl to choose from.
14:51:52 <ehird> or 3g stick :P
14:51:58 <AnMaster> well true
14:52:07 <AnMaster> still a carrier there
14:52:34 <AnMaster> and if you use that or the iphone then it is carrier in several meanings
14:53:07 -!- kar8nga has joined.
14:53:16 <ehird> data [_] ∷ Set → Set where
14:53:18 <ehird> ∅ ∷ λα. [α]
14:53:20 <ehird> _:_ ∷ λα. α → [α] → [α]
14:53:29 <AnMaster> ehird, but primarily see http://en.wikipedia.org/wiki/NO_CARRIER
14:53:31 <ehird> where _ is the operator placeholder thingy
14:53:43 <ehird> Yeah, yeah, so in actuality those names are in the Container or Sequence or whatever thingy.
14:53:43 <MissPiggy> why not epsilon?
14:53:51 <MissPiggy> also PUKE!!!!!!
14:53:56 <ehird> And yes, overloading ∅ to mean something other than the empty *set* is probably abhorrent.
14:53:58 <MissPiggy> use : for type judgements and :: for cons :P
14:53:59 <ehird> BUT I LIKE UNICODE.
14:54:06 <MissPiggy> epsilon is unicode!!
14:54:09 <ehird> MissPiggy: I don't use :: for type judgements, I use ∷
14:54:12 <MissPiggy> I just didn't look it up
14:54:15 <ehird> AnMaster: I know what no carrior is
14:54:17 <ehird> *carrier
14:54:20 <ehird> that's why i said it
14:54:20 <AnMaster> ehird, right
14:54:22 <MissPiggy> yeah well ∷ sucks ;[
14:54:36 <ehird> MissPiggy: i don't even know what it's supposed to be :)
14:54:44 <ehird> anyway : for type judgements just seems too... lightweight
14:54:52 <ehird> i dunno why, it just seems like the meat is taken out from the expression
14:55:10 <ehird> maybe I shhould use ∈ for type judgements :P
14:56:03 <MissPiggy> yeah ∈ is better than ::
14:56:09 <MissPiggy> or ∷ whatever
14:56:10 <ehird> looks ugly to me :P
14:56:13 <ehird> what's wrong with ::
14:56:21 <MissPiggy> it atkes TWICE as long to type
14:56:26 <ehird> >_<
14:56:27 <MissPiggy> believe me it adds up
14:56:36 <MissPiggy> it is the single most common operator you type
14:56:41 <lieuwe> MissPiggy: wtf's up with the greek letters:-p?
14:56:43 <ehird> no, = is
14:56:45 <AnMaster> ∈ and :: mean different things, no?
14:56:52 <ehird> lieuwe: we're being pretentious functional programmers
14:56:53 <ehird> AnMaster: no
14:57:01 <ehird> is-member-of-set = is-of-type
14:57:02 <lieuwe> ehird: :P
14:57:10 <ehird> MissPiggy: = is more common than ::
14:57:14 <ehird> think e.g. let and where
14:57:18 <ehird> where often you omit the types
14:57:26 <ehird> but :: outside of a definition isn't very common
14:57:30 <MissPiggy> ehird, but hm
14:57:31 <ehird> so = is definitely more common than ::
14:57:33 <AnMaster> ehird, hm seems wrong to use the same symbol for them somehow
14:57:38 <ehird> AnMaster: They are the same thing.
14:57:48 <AnMaster> nevertheless...
14:57:51 <AnMaster> but meh
14:57:53 <ehird> You're saying the same thing as "it seems wrong to use the same symbol for addition and addition".
14:58:19 <AnMaster> yes, there should be different symbols for integer and floating point addition
14:58:22 <AnMaster> and so on
14:58:24 <ehird> Although you have a point in that _∈_ in value-land will be container/sequence-membership, and it'd be nice to be able to use things like that in type-land
14:58:33 <ehird> AnMaster: But those are different things.
14:58:43 <ehird> You don't seem to understand: "Type" is just another word for "set".
14:58:43 <AnMaster> true
14:58:58 <AnMaster> ehird, depends on what set theory and/or type theory you use iirc?
14:59:06 <MissPiggy> types aren't really sets though
14:59:17 <MissPiggy> we just call them that and use ∈ because we don't like set theory
14:59:30 <ehird> is ℕ not a set?
14:59:42 <MissPiggy> well it's an inductively defined set
14:59:47 <ehird> i.e. a set
14:59:49 <AnMaster> ehird, ℕ is the set of natural numbers yes
14:59:51 <MissPiggy> but it's not made up of {}'s
14:59:59 <ehird> No, but it's a set.
15:01:23 <ehird> MissPiggy: but yeah, _∈_ in value-land will be member-of-sequencecontainerwhatever; and it would be nice to be able to use that in type-land, which we can't do if we use it for type judgement
15:01:37 <ehird> bloody haskell doesn't have to avoid naming conflicts between value- and type-land :P
15:02:01 <MissPiggy> oh yeah
15:02:32 <MissPiggy> operators just break up the monotony of f (g x y) (h z (w p q))
15:02:49 <MissPiggy> g x y + h z (p * q)
15:02:50 <ehird> i suggest we call using non-operator names for functions 9-to-5 naming
15:03:03 <ehird> MissPiggy: *×
15:03:12 <MissPiggy> p × q
15:03:16 <MissPiggy> I love that x
15:03:17 <ehird> or ·
15:03:19 <ehird> your choice
15:03:25 <ehird> x × x
15:03:33 <ehird> unicode needs italics-x as a character :P
15:03:55 <AnMaster> ehird, the cross product of x and x?
15:04:11 <AnMaster> iirc × and · are quite different
15:04:13 <ehird> Heard of multiplication, AnMaster?
15:04:34 <AnMaster> ehird, yes but isn't cross product and dot product different for vectors?
15:04:54 <MissPiggy> two different kinds of product
15:05:09 <ehird> Well, true.
15:05:38 * ehird wonders what fun category-theory concept × should be defined to
15:05:44 <ehird> There's gotta be something, there's always something.
15:06:05 * MissPiggy doesn't even know what category theory does...
15:07:02 <ehird> It doesn't do anything! It sits around looking awesome.
15:07:21 <ehird> i'm fairly sure that it's an odd instance of the curry-howard isomorphism though, in that they're the same definitions but used entirely differently
15:07:26 <ehird> cosmic usefulness transfer
15:07:35 <MissPiggy> ah
15:07:41 <MissPiggy> curry-howard-lambek
15:08:05 <MissPiggy> a three way isomorphism between types (in programming languages), propositions (in logic) and objects of a Cartesian closed category.
15:08:37 <ehird> you forgot linguistics
15:08:55 <MissPiggy> ???
15:08:57 <MissPiggy> what
15:09:03 <ehird> linguistics is isomorphic to logic, thus to programming
15:09:07 <MissPiggy> ho
15:09:08 <MissPiggy> how
15:09:11 <ehird> dunno ask augur
15:09:15 <Gracenotes> is forgetting linguistics worse than forgetting poland?
15:09:16 <MissPiggy> tell me!!!
15:09:21 <ehird> also they, well augur, also i think i've seen you, use basically lambda calculus for some syntax :P
15:09:28 <Gracenotes> also, I take it you mean semantics
15:09:31 <ehird> Gracenotes: i had to restrain myself not to say that
15:09:33 <ehird> yeah semantics whatever
15:09:34 <ehird> i'm no linguer
15:09:43 <AnMaster> no no don't do it. We won't get rid of the linguistics discussion for hours then! :(
15:09:57 <ehird> uh oh
15:10:06 <ehird> quick, what's the one thing that can distract augur from linguistics
15:10:07 <ehird> AH!
15:10:10 <ehird> Gay sex!
15:10:17 <ehird> QUICK EVERYONE, TO THE BUTT-BATALLIONS
15:10:20 <AnMaster> argh
15:11:18 <oklopol> MissPiggy: in category theory, you have objects, and "structure-preserving mappings" between them, then you have a very general way to define things like isomorphisms, the same definition works for groups and sets and so on, because you just talk about properties of functions that have to do with their composition.
15:11:34 <ehird> oklopol: that also works to kill the linguistics.
15:11:53 <ehird> argh i should have said "buttallions"
15:14:06 <oklopol> basically isomorphisms can be just defined as mappings that can be inverted both ways, that is, "no info is lost", then when you look at the category of groups and morphisms, and the category of sets and functions, you'll see that you've defined a sensible isomorphism for both
15:14:22 <oklopol> called bijection for functions ofc
15:14:35 <oklopol> i have to pizza maybe
15:14:56 <MissPiggy> would be nice to have a formal theory about these informationy heuristics we use
15:16:34 <ehird> i did data Bijection a b = Bijection (a -> b) (b -> a) in haskell but i was sad
15:16:43 <ehird> because you couldn't, you know, show that it was actually... that
15:17:15 <ehird> in awesome languages I could just include an (f (g x) = x) :P
15:18:56 <ehird> hey
15:18:59 <ehird> is that a Category, I wonder?
15:19:18 <ehird> (.) :: cat b c -> cat a b -> cat a c
15:19:43 <ehird> so ((b->c),(c->b)) -> ((a->b),(b->a)) -> ((a->c),(c->a))
15:20:02 <ehird> yes it is
15:20:11 <ehird> (Category as in the haskell definition of it in base)
15:20:22 <ehird> that's pretty slick.
15:20:45 * MissPiggy still doesn't see the point
15:20:50 <ehird> MissPiggy: it's cool?
15:20:53 <MissPiggy> so you have a category of bijections, now what??
15:21:00 <ehird> now you can compose bijections!
15:21:41 <ehird> hey wait
15:21:47 <ehird> I don't even need to require that they be functions
15:21:49 <ehird> no wait, I do
15:21:52 <ehird> I need a way to apply them
15:21:55 <ehird> was thinking I could just do categories
15:22:00 <ehird> waiiit
15:22:01 <ehird> I could
15:22:09 <ehird> no
15:22:10 <ehird> I couldn't
15:22:10 <ehird> kay
15:24:03 <ehird> data Bijection ∷ Set → Set → Set where
15:24:05 <ehird> Bijection ∷ λα. λβ.
15:24:07 <ehird> {f ∷ α → β} →
15:24:09 <ehird> {g ∷ β → α} →
15:24:11 <ehird> {λx. f (g x) ≡ x} →
15:24:13 <ehird> {λx. g (f x) ≡ x} →
15:24:14 <ehird> Bijection α β
15:24:23 <ehird> only problem there is that we need ≡
15:24:31 <ehird> but having it depend on equality is silly imo
15:24:51 <ehird> erm, f and g shouldn't be in {}
15:24:53 <ehird> they should be in (), I think
15:25:11 <ehird> (MissPiggy: right?)
15:25:37 <MissPiggy> well
15:25:47 <MissPiggy> if you are into category theory why don't you define it as a split epi
15:25:49 <MissPiggy> and mono
15:26:51 -!- lieuwe has quit (Ping timeout: 248 seconds).
15:27:18 <ehird> because i don't understand category theory :)
15:27:31 <MissPiggy> me neither
15:27:37 * ehird wonders how to combine GADTs and the Foo { blah :: ..., } stuff
15:27:49 <MissPiggy> GADT??
15:28:05 <MissPiggy> record syntax for GADT?
15:29:05 <ehird> yar :P
15:29:15 <ehird> well, not record syntax necessarily
15:29:21 <ehird> just automatic accessor-definers
15:29:28 <ehird> MissPiggy: you know what would be nice?
15:29:32 <ehird> Having juxtaposition be like
15:29:48 <ehird> juxtaposition :: (Juxtaposable a b c) => a -> b -> c
15:29:49 <ehird> where
15:29:55 <ehird> class Juxtaposable a b c | a b -> c
15:30:04 <ehird> so you have Juxtaposable (a -> b) a b
15:30:15 <ehird> and, say you have an accessor
15:30:17 <ehird> but it also works for writing
15:30:29 <ehird> so you have like
15:30:42 <ehird> modify :: value -> accessor for that value -> new value of the property -> value
15:30:43 <ehird> but also
15:30:51 <ehird> Juxtaposable (Accessor a b) a b
15:30:58 <ehird> so you can do "prop value" for access
15:31:02 <MissPiggy> by the way (you probably know this..) the dependent type stuff is more general than GADT
15:31:25 <MissPiggy> hmm although is it more general than She style GADT?
15:31:26 <ehird> yeah
15:31:36 <ehird> but gadts are nice syntax for most stuff, so.
15:33:05 <ehird> i'll also have type-level functions basically
15:33:12 <ehird> type Foo bar baz quux = ...
15:33:23 <MissPiggy> don't use type to define them??
15:33:32 <ehird> i was just picking an arbitrary keyword :)
15:33:38 <MissPiggy> okay but why need any keyword
15:33:41 <ehird> but it's the same thing as haskell's type synonyms
15:33:42 <ehird> just more general
15:33:45 <ehird> as opposed to
15:33:50 <MissPiggy> the only different is that you are going into Set rather than Int or something
15:33:57 <ehird> well, yes
15:34:01 <ehird> but you use it at compile-time
15:34:07 <ehird> I guess in the living environment of my OS it doesn't matter, but...
15:34:15 <ehird> I suppose you are right.
15:35:36 <ehird> # 9.7-inch (diagonal) LED-backlit glossy widescreen Multi-Touch display with IPS technology # 1024-by-768-pixel resolution at 132 pixels per inch (ppi)
15:35:42 <ehird> According to Apple 4:3 is widescreen
15:38:29 <AnMaster> btw, for P=NP, could it be that it is unprovable if it is the case or not? Has anyone tried to prove it unprovable?
15:38:49 <ehird> http://www.google.co.uk/#hl=en&source=hp&q=p%3Dnp+unprovable&btnG=Google+Search&meta=&aq=f&oq=p%3Dnp+unprovable&fp=33a9a577caa4e7cb
15:38:57 <ehird> This article shows that "P-not-equal-to-NP" is unprovable in ZFC. Here is a review of this proof by the German logician Ralf Schindler. ...
15:39:04 * ehird wonders if it's a crackpot
15:39:09 <AnMaster> ehird, #hl? that url is broken
15:39:20 <AnMaster> everthing after that first # is an anchor
15:39:21 <ehird> "Unfortunately, there is an error in the proof [...]."
15:39:24 <ehird> AnMaster: javascript
15:39:27 <ehird> not me, google
15:39:37 <AnMaster> ehird, usually I don't get # there in the urls..
15:39:37 <AnMaster> hm
15:39:42 <ehird> it's to avoid loading the surrounding stuff of the page, I bet
15:39:46 <ehird> to speed up load times
15:40:12 <ehird> "Proof by contradiction. Assume P=NP. Let y be a proof that P=NP. The proof y can be verified in polynomial time by a competent computer scientist, the existence of which we assert. However, since P=NP, the proof y can be generated in polynomial time by such computer scientists. Since this generation has not yet occurred (despite attempts by such computer scientists to produce a proof), we have a contradiction."
15:41:24 <AnMaster> ehird, After reading it twice: huh?
15:41:38 <ehird> It's a joke; laugh.
15:41:46 <AnMaster> ehird, ah
15:41:56 <ehird> If you don't understand it, you don't understand what p=np means :P
15:42:54 <ehird> If we can defeat entropy and have a singularity it doesn't matter how long computations take; the universe will be filled with one gigantic computer on which all our minds will be uploaded. It will make us experience time in sync so that every computation is instant.
15:43:15 <ehird> i.e., if someone runs a computation that takes a gazillion years, everyone stops thinking, a gazillion years pass, then we resume thinking; to us, the computation happened immediately
15:43:25 <AnMaster> ehird, well, my brain was in math proof mode when reading it. I do see the joke now
15:43:27 <AnMaster> anyway
15:45:20 <AnMaster> what I meant was, that maybe P=NP is unprovable in the same sense as the cardinality of R. Or to take another example: the parallel postulate in Euclidean geometry. (Which is why it is an axiom)
15:47:23 <ehird> You're a genius!
15:47:28 <ehird> Why don't we just define P=NP as an axiom?
15:47:33 <ehird> omg, this changes everything :D
15:48:26 <AnMaster> har har
15:49:51 <AnMaster> couldn't it (in theory) be proven that it is impossible to prove either P=NP or P!=NP ?
15:50:42 <ehird> If it's true, maybe it can be proven.
15:50:52 <ehird> It could be true that it is unprovable and yet not be provable that it is unprovable.
15:50:59 <AnMaster> that too
15:51:01 <ehird> It could also be false and thus not provable, at least if ZFC is consistent.
15:51:25 <AnMaster> ehird, maybe it could be proven that it is unprovable to prove it unprovable?
15:51:36 <AnMaster> (argh the headache)
15:51:59 <ehird> I'll prove your mom.
15:52:16 <AnMaster> alas I can't think of any snappy reply to that
15:53:20 <ehird> "Your mom proved your face in bed last night, didn't she?"
15:53:29 <ehird> "I was there. WATCHING"
15:53:45 <MissPiggy> <ehird> Why don't we just define P=NP as an axiom? -- because nobody knows if it's independent yet!!
15:54:15 <ehird> CONSISTENCY IS IRRELEVANT!
15:54:25 <MissPiggy> it's import to me :(
15:54:34 <ehird> Son, I am import.
15:54:38 <MissPiggy> lol
15:55:18 <ehird> i feel like i'm stumbled upon this wonderful oasis in programming language design
15:55:20 <ehird> *i've
15:55:29 <ehird> all the smartest people are here and it has such cool stuff
15:55:52 <ehird> also, she is my favourite preprocessor ever.
15:56:04 <ehird> pattern synonyms are actually something i've always wanted in haskell
15:57:03 <MissPiggy> She has them
15:57:12 <ehird> She does.
15:57:12 <MissPiggy> oh shit
15:57:16 <MissPiggy> you are talking about she
15:57:22 <ehird> YOU BROKE THE GRAMMAR
15:57:38 * MissPiggy crawl back into my mud bath
15:57:41 <ehird> She has rules, and the first is: She can be talked about, but only if you respect her grammar.
16:00:31 <AnMaster> hm a non-constructive proof for P=NP would be fun
16:01:14 <ehird> Go straight to ⊥; do not pass go, do not collect £200.
16:01:26 <AnMaster> heh
16:01:52 <AnMaster> isn't testing *if* a number is prime in P? iirc that is
16:02:16 <AnMaster> ehird, ^
16:02:39 <Deewiant> Yes, it is. Known since 2002.
16:02:49 <AnMaster> Deewiant, AKS right?
16:02:53 <Deewiant> Yes.
16:03:01 <ehird> That book actually contained something meaningful?
16:03:03 <ehird> I'm astonished.
16:03:15 <ehird> Stolen from someone else, right?
16:03:20 <Deewiant> Wut?
16:03:29 <AnMaster> wut indeed
16:03:29 <ehird> Oh, not A New Kind of Science.
16:03:34 <ehird> It was published in 2002.
16:03:36 <AnMaster> ehird, AKS Primality test
16:03:40 <ehird> My inferrence engine is broken today.
16:03:50 <AnMaster> ehird, you mean, it wasn't intentional
16:03:51 <AnMaster> ?
16:03:52 <Deewiant> YOU BROKE THE SPELLING
16:03:54 <ehird> Nope :P
16:03:58 <ehird> Deewiant: :'(
16:04:05 <Deewiant> :-P
16:04:09 <ehird> MissPiggy: any totally dependawesome insights on http://www.daimi.au.dk/~madst/tool/papers/expression.txt
16:04:22 <ehird> she has http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html but i dunno seems hacky
16:04:22 <MissPiggy> ah
16:04:28 <MissPiggy> I have never actually understood this problem
16:04:33 <MissPiggy> i.e. I didn't read through it
16:04:41 <ehird> my understanding is
16:04:51 <MissPiggy> higgelty piggelty works nice for epigram
16:05:00 <MissPiggy> but I don't know if it's related to expression problem
16:05:01 <AnMaster> Deewiant, I have a vague memory of reading that AKS is horribly inefficient though. And that some of the non-polynomial algorithms are in fact faster in practise for most "practical purposes"
16:05:13 <ehird> data Ty a = Foo a | Bar a
16:05:18 <MissPiggy> and I'm not sure even if I come up with a solution that I deem _perfect_ other people will just say it sucks
16:05:29 <ehird> Here, we can easily add functions (columns) to this without violating type safety or modifying existing code,
16:05:39 <ehird> but we cannot add new rows (data type cases)
16:05:42 <ehird> like
16:05:47 <ehird> func1 func2 func3
16:05:49 <Deewiant> AnMaster: I don't know if it's "horribly inefficient" but yes, in practice it's slower than the probabilistic tests
16:05:51 <ehird> Foo ...
16:05:52 <ehird> Bar ...
16:05:53 <ehird> with the results
16:05:55 <ehird> get it?
16:06:07 <ehird> in an object-oriented language, the columns can't be changed: they're the methods in a class
16:06:12 <ehird> but you can easily add new rows: subclasses
16:06:21 <ehird> The expression problem is: How can we have *both*?
16:06:36 <MissPiggy> wait a second,
16:06:56 <MissPiggy> you have data Expr = ..., and each constructor of Expr is a row
16:07:03 <MissPiggy> and you have func1, func2, ... each is a column
16:07:06 <ehird> yar
16:07:25 <ehird> you can easily add new functions, but you cannot add rows *elsewhere in the program*
16:07:29 <ehird> they're fixed
16:07:35 <ehird> with functions, you can just create a new one and bam, you're done
16:07:39 <ehird> now, with OOP
16:07:48 <MissPiggy> so to add a new constructor you have to update each func1, and to add a new func you have to update each constructor??
16:07:51 <ehird> you have class Foo { int bar(); int quux(); }
16:07:57 <ehird> each method is a column
16:07:58 <ehird> and you have
16:08:08 <ehird> the values as the rows still
16:08:14 <ehird> but you can extend them
16:08:15 <ehird> class Bar extends Foo { ... }
16:08:18 <ehird> so we can add rows
16:08:26 <ehird> so with FP you can add columns, with OOP rows; the problem is being able to add both
16:08:33 <ehird> elsewhere in the program
16:08:40 <ehird> without breaking existing code
16:09:09 <MissPiggy> alright let me think
16:09:14 <ehird> i'll make a text file showing this more clearly without ircspeak
16:09:23 <MissPiggy> you can do both of these (FP or OOP) approach using ADTs
16:09:43 <MissPiggy> I mean each one individually, using a different approach
16:09:44 <AnMaster> btw, when you measure O(whatever) for an algorithm for prime factorisation, what exactly is it you measure it against.
16:09:56 <MissPiggy> but to have one framework that lets you solve both problems at once..
16:10:15 <Deewiant> AnMaster: Their complexities are O(f(n)) where n is the number tested
16:12:02 <oklopol> usually you say a number's size is its log
16:12:14 <oklopol> so just stick 2^n in there
16:12:18 <oklopol> or what Deewiant said
16:12:22 <AnMaster> Deewiant, wouldn't then "try each number from 2 to sqrt(n) to see if it divides n" be O(sqrt(n)). After all, that is how many divisions you perform. And O(sqrt(n)) would grow slower than O(n), no? And isn't O(n) polynomial?
16:12:56 <MissPiggy> interesting problem
16:12:58 <MissPiggy> bbiab
16:13:00 <AnMaster> I must be missing something critical here
16:13:10 <oklopol> AnMaster: that's a pseudopolynomial algorithm for it, a polynomial algorithm, when talking about numbers, is one where you take n as the log of the number
16:13:36 -!- MissPiggy has quit (Quit: MissPiggy).
16:13:39 <oklopol> for numbers we have separate classes for taking the number as its own size (pseudo), and taking its log as size (more natural for most problems)
16:13:43 <AnMaster> oklopol, ah. Which logarithm? the natural one?
16:13:49 <oklopol> doesn't matter
16:14:06 <oklopol> i'll leave proving that as homework
16:14:30 <AnMaster> oklopol, it does... if you take the n-log
16:14:37 <AnMaster> it would always yield 1
16:15:09 <oklopol> obviously it must be a constant
16:15:18 <AnMaster> oh right
16:15:30 <ehird> eh, misspiggy disappeared
16:15:48 <oklopol> anyway log_a(n) and log_b(n) are a constant apart, so that doesn't matter for O
16:15:50 <oklopol> (usually)
16:16:32 <ehird> Well, for anyone who wants an explanation of what the expression problem is: http://pastie.org/812457.txt?key=jy9qm2hfkgtfxiooahshxw
16:16:48 <oklopol> i have enough problems already
16:16:52 <oklopol> (5)
16:17:23 <AnMaster> oklopol, hm correct me if I'm wrong but: log_a(n) > log_b(n) for all n if a < b?
16:17:27 <ehird> http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w
16:17:32 <ehird> Revised version; forgot to change one sentence.
16:17:41 <AnMaster> wait, no, that probably only applies to n larger than the base or such
16:17:44 <oklopol> AnMaster: nope
16:17:45 <ehird> oklopol: Is a bitch one?
16:17:58 <oklopol> ehird: they all have to do with complex analysis
16:18:14 <AnMaster> oklopol, "nope" to "only applies" or to the original statement?
16:18:40 <oklopol> no matter what n is, log is increasing
16:18:41 <ehird> oklopol: So I suppose you could say that you have 99 (minus 94) problems, but a bitch ain't one.
16:18:50 <oklopol> (well n>0)
16:19:00 <AnMaster> oklopol, well yes, but that isn't what I said. I said what their relative values are
16:19:04 <AnMaster> between two different bases
16:19:04 <oklopol> ehird: is that a reference to something?
16:19:14 <ehird> Maybe. Also, http://i.imgur.com/b8OLl.jpg
16:19:28 <oklopol> AnMaster: oh sorry
16:19:49 <AnMaster> oklopol, log_10(500) < log_e(500) for example
16:20:03 <oklopol> yeah that's true then, log is decreasing w.r.t. base
16:20:05 <AnMaster> (those are the ones with easily accessible buttons on my calculator
16:21:50 <Deewiant> AnMaster: What you're missing in your trial division thing is the complexity of a division
16:21:50 <AnMaster> oklopol, does it make sense to do something like lim_{a->+inf} log_a( whatever )
16:22:16 <oklopol> depends on the topology!
16:22:20 <oklopol> but yes, why not
16:22:33 <AnMaster> oklopol, then use that log for the complexity!
16:23:06 <AnMaster> whenever it is constant or not could perhaps be argued, but it no longer depends on n at least
16:23:12 <oklopol> ah, i guess you win
16:23:16 <AnMaster> Deewiant, hm. What is that complexity
16:23:30 <oklopol> O(n^2) with the trivial algo
16:23:35 <AnMaster> oklopol, well, I'm on deep water here, I probably missed something crucial.
16:24:14 <AnMaster> that is still polynomial unless I'm completely missing something?
16:24:18 <oklopol> i don't remember what the known bounds are tho
16:24:28 <oklopol> wait were you serious about the lim?
16:24:32 <oklopol> i have no idea what you meant
16:24:38 <AnMaster> oklopol, not really
16:25:09 <AnMaster> but, it is an interesting question: What happens with logarithms as the *base* approaches infinity?
16:25:41 <oklopol> the function "f(n) = lim_{a->+inf} log_a( n )" is the constant function 0, i think
16:26:48 <oklopol> i also think in the interval [1, inf) we have uniform convergence, but my head hurts a bit too much now to be sure
16:27:56 -!- cheater3 has joined.
16:27:57 <oklopol> oh wait, prolly not.
16:28:32 <Deewiant> AnMaster: If n = number of bits in the number then trial division is O(2^(n/2)) (Wikipedia), which I guess is where the non-P-ness comes from.
16:30:06 <AnMaster> hm
16:31:25 -!- cheater2 has quit (Ping timeout: 264 seconds).
16:31:48 <AnMaster> also, why can't you have negative arguments to log? I mean, y = log_a(x) means the same as a^y = x right? And in the latter you can get negative x.
16:32:16 <oklopol> and e^x > 0 for real x
16:32:17 <AnMaster> like a=-4 and y=3
16:33:31 <AnMaster> (-4)^3 = -64 Thus shouldn't 3 = log_{-4}(-64) ?
16:34:47 <ehird> AnMaster: So -64 takes 3 digits to represent in base -4? Noted.
16:35:10 <oklopol> with a negative base, it makes no sense to give the log any arguments except naturals afaik
16:35:12 <AnMaster> ehird, well yeah, when you think of logarithms that way it doesn't really work out ;P
16:35:27 <ehird> isn't it true though?
16:35:30 <Deewiant> For general negative x, y is complex
16:35:40 <Deewiant> And non-unique
16:35:45 <AnMaster> oklopol, hm? (-2)^(-1/2) gives an imaginary answer, doesn't it?
16:36:15 <ehird> abc in base n is just (((a*n)+b)*n)+c
16:36:31 <AnMaster> to be more precise, isn't it ((sqrt(2))^-1)i
16:37:09 <AnMaster> Deewiant, ah, the lack of uniqueness could indeed cause issues
16:38:10 <oklopol> hmm okay i'm not sure what i was thinking
16:38:27 -!- MissPiggy has joined.
16:38:35 <MissPiggy> ehisrd
16:38:40 <ehird> MissPiggy: http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w
16:38:48 <AnMaster> Deewiant, but then sqrt(n) really isn't unique either, except it is defined to be the positive value. Which is why you for the solution to x^2 = 4 would write x=+/- 2
16:38:50 <ehird> The expression problem, explained simply.
16:39:02 <MissPiggy> ehird iI think I can give nice solution
16:39:13 <ehird> are you so excited you can't type? :P
16:39:14 <MissPiggy> which makes essential use dependendt types
16:39:21 <MissPiggy> no this sthing is qwerty
16:39:22 <MissPiggy> :/
16:39:25 <ehird> ah lol
16:39:27 <AnMaster> haha
16:39:37 <MissPiggy> I am on my moms computer because I got fed up with this installer
16:39:39 <AnMaster> MissPiggy, which layout normally?
16:39:44 <MissPiggy> colemak
16:39:47 <AnMaster> ah
16:39:57 <Deewiant> AnMaster: As I see it, the problem is defining log_a(x) so that it gives the appropriate real result for negative x, but is undefined when no such value exists
16:40:39 <MissPiggy> ehird you know lists
16:40:47 <MissPiggy> excpet backwards...
16:40:53 <MissPiggy> [] :: a :: b :: c
16:40:58 <ehird> okay
16:41:00 <ehird> equivalent
16:41:05 <MissPiggy> of course the type of c can depend on the tail of the list
16:41:13 <ehird> the head you mean
16:41:17 <ehird> :P
16:41:18 <ehird> head::tail
16:41:22 <ehird> or are we still calling it the tail
16:41:25 <ehird> just having tail::head
16:41:26 <Deewiant> AnMaster: log_a(x) would be defined when: x > 0 & a > 1 or x < 0 & a < 0 & what
16:41:49 <MissPiggy> i mean you coulld have xs :: x, then x : Vector (length xs)
16:41:50 <AnMaster> Deewiant, hm? Two things there: 1) why must it be a real value? 2) undefinedness in some points doesn't sound too bad, after all x^-1 is undefined for x = 0 (defined in all other points afaik)
16:42:02 <Deewiant> AnMaster: 1) if you want it to be complex, that's already been done.
16:42:15 <MissPiggy> then you get [] :: () :: (a) :: (x y) :: (p q r)
16:42:20 <Deewiant> AnMaster: ln(-1) = i pi
16:42:24 <ehird> http://www.wolframalpha.com/input/?i=set
16:42:24 <ehird> wat
16:42:37 <Deewiant> AnMaster: For 2), sure, but what's the definition
16:42:39 <MissPiggy> so similar to this, instead of making a triangle ou could make a matrix
16:42:46 <MissPiggy> by adding rows and cols to it
16:42:50 <cheater3> hey guys
16:42:58 <cheater3> anyone got introduction to algorithms 3e?
16:42:58 <AnMaster> Deewiant, 1) hm right 2) what?
16:42:59 <ehird> MissPiggy: interesting!
16:43:09 <Deewiant> AnMaster: What I just said
16:43:11 <ehird> but does it work for any type? i don't think so
16:43:14 <ehird> you have to define it to work
16:43:20 <AnMaster> Deewiant, isn't it undefined due to x^-1 = 1/x and division with zero being undefined?
16:43:22 <Deewiant> AnMaster: Sure, you can let it be undefined for some values, but what are those values
16:43:29 <MissPiggy> now the actual elements of each row/col would have a type computed based on the recursion structure of the function in that column against the fold for the type of that row
16:43:53 <MissPiggy> ehird anyway that's just the idea.. I'll try and write it out and see if it works
16:43:56 <Deewiant> AnMaster: Huh? e^(i pi) = -1
16:44:23 <ehird> MissPiggy: If that works it's really cool
16:44:23 <AnMaster> Deewiant, I think we are talking about two different things here. with regards to 2).
16:44:35 <MissPiggy> ^..^
16:44:40 <cheater3> come on
16:44:42 <cheater3> someone has to
16:44:43 <AnMaster> Deewiant, Didn't "sure, but what's the definition" refer to the bit "x^-1 is undefined for x = 0"?
16:44:57 <AnMaster> oh
16:44:57 <AnMaster> meh
16:45:00 <Deewiant> AnMaster: I meant what would the definition of log_a(x) be
16:45:09 <AnMaster> Deewiant, I read "what" as "that" -_-
16:45:12 <Deewiant> And what values of a and x would it be defined for
16:45:30 <AnMaster> Deewiant, as in, you claimed x^-1 was undefined for x=0 due to being defined that way XD
16:45:41 <Deewiant> Yeah, no. :-P
16:46:01 <Deewiant> (Although that's sort of true too.)
16:46:10 <AnMaster> oh?
16:46:54 <Deewiant> x^-n is defined as 1/x^n for x != 0, n > 0
16:47:36 <oklopol> of course you can define the function to have any value you want, you just can't make a field have a meaningful multiplicative inverse for 0
16:47:45 <AnMaster> hm, forgot that was by definition rather than as a consequence of something else
16:47:58 <oklopol> well it's a consequence of what i said
16:48:13 <oklopol> that it's defined that way
16:48:15 <AnMaster> Deewiant, but a lot of math wouldn't work if it wasn't defined like that though.
16:49:14 <Deewiant> I didn't say it's unnecessary or anything.
16:49:43 <AnMaster> (differentiation of expressions like x^(1/3) comes to mind)
16:49:55 <AnMaster> Deewiant, hm is it an axiom then?
16:50:07 <Deewiant> No, just a definition.
16:50:17 <AnMaster> hm.
16:52:00 <AnMaster> wouldn't it radically change the "rule" that (x^a)' = a*x^(a-1) though if that definition of negative exponents didn't exist?
16:52:21 <AnMaster> Hrrm, maybe it could be defined in some other way for when a<1 in that case
16:52:35 <MissPiggy> (x^a)' = a*x^(a-1)
16:52:39 <oklopol> in no point but 0 could that change
16:52:45 <MissPiggy> by the way
16:52:54 <MissPiggy> there's two kinds of differentiation
16:53:14 <MissPiggy> one is where you differentiate a function, like the function x |--> x^a
16:53:42 <MissPiggy> the other is where you differentiate 'formally', like it's just some kind of symbolic operation on syntax
16:53:50 <MissPiggy> and you get dxdx = 0, dxdy = -dydx
16:53:58 <MissPiggy> it's weird as fuck....
16:54:32 <oklopol> there are natural ways to interpret those, even without infitesimals
16:54:50 <oklopol> and to be honest i'm not sure i understand them
16:55:05 <AnMaster> MissPiggy, I always distrust math that treats dx and dy as if you could treat them like a normal variable. For a start; they consist of more than one letter! ;P
16:55:12 <MissPiggy> well, ... it gives the right answer in the end
16:55:14 <AnMaster> s/;/:/
16:55:22 <ehird> d isn't a letter though
16:55:22 <oklopol> formal differentiation is usually an operation defined for polynomials defined just like differentiation usually works for polynomials
16:55:31 <ehird> d is a magical operation and it isn't even the letter d!
16:55:36 <ehird> at least i consider d an operation, prolly cause i'm stupid
16:55:44 <ehird> like, it's a transformation on variables
16:55:55 <MissPiggy> d(u+v) = du+dv
16:56:06 <MissPiggy> d(uv)=du*v + u*dv
16:56:11 <MissPiggy> stuff like that
16:58:04 <AnMaster> I highly distrust how integration by substitution due to the way it treats dx. Stuff like dx/dt=t' leading to dx=t'dt :/
16:58:22 <oklopol> it's just a mnemonic
16:58:26 <AnMaster> oklopol, yes I know that
16:58:38 <MissPiggy> oh you know integration by substitution
16:58:42 <AnMaster> it still creeps me out though
16:58:44 <MissPiggy> I have an idea about that
16:59:06 <oklopol> intergration by substitution works as follows: substitute something for x.
16:59:07 <MissPiggy> if (x,y,z) is one coordinate system (u,v,w,...) is another, then you make a pullbacn
16:59:12 <MissPiggy> pullback
16:59:27 <AnMaster> MissPiggy, I have a test in a course about integration in two weeks time. Err make that integration and differential equations even.
17:00:06 <MissPiggy> and the idea is that you can transform forms like Adx+Bdy+Cdz into a du,dv,dw.. form
17:00:18 <AnMaster> MissPiggy: what?
17:00:38 <AnMaster> MissPiggy, wait, is that integration in more than one variable?
17:00:49 <MissPiggy> yes
17:01:16 <MissPiggy> you can interate over dx,dy,dz, or dydz,dxdz,dydx or dxdydz
17:01:21 <AnMaster> MissPiggy, I don't read that much math when studying CS. At least not during the first year
17:01:34 <MissPiggy> which corresponds to the curves, surfaces and volumes
17:01:59 <MissPiggy> of course 3D is just one special case of nD
17:02:48 <AnMaster> MissPiggy, well yes, I am aware of that it is possible to do integration in more than one variable. I don't know how however.
17:03:39 <MissPiggy> well theres this theorem that relates integration over a boundry to integration over the volume itsselt
17:03:39 <oklopol> AnMaster: if you have a function from an n-dimensional rectangle to reals, just integrate one axis at a time
17:04:05 <MissPiggy> it's all pretty nebulous and convoluted.. I'm still trying to figure it out myself
17:04:06 <AnMaster> hm...
17:04:14 <oklopol> i mean integrate along one axis, and at each point integrate over the (n-1)-dimensional rectangle
17:04:18 <oklopol> corresponding to that point
17:05:11 -!- Pthing has quit (Remote host closed the connection).
17:05:16 <AnMaster> oklopol, like ∫(∫(∫...dz)dy)dx? or something like that?
17:05:28 <oklopol> if you wanna integrate a function from some more complex thing, you usually use substitution so you can integrate on a rectangle
17:05:37 <oklopol> yeah something like that
17:06:05 <oklopol> fubini's theorem says you can integrate along the axes separately, and order matters not
17:06:08 <AnMaster> oklopol, I mean: do they go inside each other, instead of, say, being multiplied with each other or some other operation to combine them
17:06:15 <oklopol> inside of each other
17:06:19 <AnMaster> right
17:06:43 <MissPiggy> woah is that fubini's theorem
17:06:49 <MissPiggy> I should know that....
17:07:08 -!- sshc has quit (Quit: leaving).
17:07:13 <AnMaster> oklopol, seems like a PITA to calculate though
17:07:33 <AnMaster> (considering what a PITA integrals in one variable is)
17:07:40 <oklopol> if you have n axes, you have to solve n integrals
17:07:40 <AnMaster> s/is/are/
17:07:56 <oklopol> often some of them are just multiplication
17:08:28 <AnMaster> oklopol, oh? "often" as in "often in exams" or "often in real world applications"?
17:09:27 <oklopol> say you're integrating f(x, y) = x over [0,1]x[0,1], you'd have int_{x from 0 to 1}( int_{y from 0 to 1} x ), so you just get int_{x from 0 to 1} ( x ), because you're integrating the *constant* x over y
17:10:02 <oklopol> if you're integrating an expression that doesn't depend on y over variable y, then it's just multiplication
17:10:07 <oklopol> i don't know anything about the real world
17:10:14 <oklopol> or calculus, for that matter
17:11:24 <fizzie> In real world you just integrate numerically and forgot all that symbol-manipulation nonsense. (Okay, so maybe not *quite*...)
17:11:31 <AnMaster> oklopol, also, as far as I have understood it, ∫(f(x)*g(x))dx can't be solved for _all_ f and g where both ∫f(x)dx and ∫g(x)dx can be solved. Except with numerical methods that is.
17:11:41 <AnMaster> even if you can solve it for many such products
17:12:04 <AnMaster> (that was in reply to "<oklopol> often some of them are just multiplication")
17:12:28 <AnMaster> fizzie, hah
17:12:30 <oklopol> yeah okay you completely misunderstood then
17:12:46 <oklopol> reread "oklopol: if you're integrating ..."
17:13:19 <AnMaster> oklopol, well, yes, I was so busy writing that line to be correct, I hadn't noticed any line after "<AnMaster> oklopol, oh? "often" as in [...]"
17:13:27 <oklopol> int_{y from a to b}( x ) is integrating a constant from a to b, so you just get (b - a)x
17:14:10 <oklopol> often the expression is only nontrivial to integrate over one axis (in homework problems that is :P)
17:14:51 <AnMaster> int_{y from a to b}( x ) <-- I can't say I'm familiar with that syntax. It looks like pseudo-latex though.
17:15:21 <oklopol> even int y a b (x) should be obvious
17:15:44 <AnMaster> oklopol, to be more specific: I'm unable to detect any dx or dy indicating which variable you are integrating to
17:15:54 <oklopol> oh that would be y
17:15:56 <AnMaster> err, "integrating with respect to"
17:15:57 <oklopol> i don't use d's
17:16:21 <AnMaster> well okay, then that line makes perfect sense yes
17:16:56 <Deewiant> That'd be (b - a)y then, not (b - a)x.
17:17:24 <oklopol> Deewiant: what would be?
17:17:48 <Deewiant> No, right, I read that exactly upside-down.
17:17:55 <AnMaster> Deewiant, err wait... the x would still be there as well, no? wouldn't it be x*(b-a)*y
17:17:58 <oklopol> y is not necessarily even bound after the integral, and okay
17:18:10 <oklopol> 8|
17:18:24 <AnMaster> wait, nvm
17:18:24 <oklopol> AnMaster: y means nothing except inside that integral.
17:18:36 <AnMaster> oklopol, I forgot that it wasn't an indefinite integral
17:18:38 <Deewiant> xb - xa.
17:18:54 <AnMaster> y is what gives (b-a) indeed
17:19:02 <oklopol> ...what does it have to do with this that it's indefinite?
17:20:18 <AnMaster> oklopol, unless I'm completely confused by now: ∫xdy = ∫(x*1)dy = x*∫1dy = x*y
17:20:29 <oklopol> (i mean apart from the fact it's not one)
17:20:42 <MissPiggy> you can just write
17:20:44 <oklopol> oh
17:20:50 <MissPiggy> ∫dx
17:20:52 <Deewiant> AnMaster: Yes, for an indefinite integral that's correct.
17:20:56 <MissPiggy> it doesn't need ∫1dx
17:21:19 <AnMaster> MissPiggy, well yes. I added the 1 to make it clear what I meant though.
17:21:28 <MissPiggy> ok
17:21:38 <AnMaster> And for an definite one then y turns into (b-a)
17:21:48 <MissPiggy> ∫_A dxdydz is the volume of A
17:21:58 <AnMaster> Deewiant, ^
17:22:13 <Deewiant> Yes, I am aware.
17:22:27 <AnMaster> Deewiant, well, but looks like oklopol got confused:
17:22:29 <AnMaster> <AnMaster> y is what gives (b-a) indeed
17:22:29 <AnMaster> <oklopol> ...what does it have to do with this that it's indefinite?
17:23:01 <oklopol> yeah i was confused, didn't see why it's relevant that the definite integral was indefinite
17:23:07 <Deewiant> AnMaster: So why are you talking to me and not him?
17:23:09 <oklopol> because it wasn't true
17:23:09 <AnMaster> oklopol, my point was that I forgot it _wasn't_ indefinite
17:23:14 <oklopol> i see
17:23:30 <oklopol> "AnMaster: oklopol, I forgot that it wasn't an indefinite integral" misread
17:23:37 <AnMaster> Deewiant, well: both since you highlighted me ;P
17:24:22 <Deewiant> Mostly because he didn't respond
17:24:54 <AnMaster> Deewiant, err? he did? "<oklopol> oh" 8 seconds before that highlight?
17:25:23 <Deewiant> I wasn't sure if that was a response :-P
17:25:32 <oklopol> i just realized what he meant
17:25:51 <oklopol> and continued watching simpsons
17:25:52 <AnMaster> Deewiant, I couldn't see what other interpretation would make any sense though
17:27:04 -!- MissPiggy has quit (Quit: MissPiggy).
17:27:39 <AnMaster> also: definite integrals from 1 to infinity (or similar) are creepy.
17:27:39 <oklopol> i should sleep
17:28:29 -!- MissPiggy has joined.
17:29:31 <oklopol> what's creepy about them?
17:29:40 -!- Asztal has joined.
17:30:18 <AnMaster> wasn't it something like the integral of 1/x from 1 to inf went to infinity. But if you rotated the curve that is formed by that function around the x axis and integrated to find the volume of it, then it result in some finite number? But if you tried to find the area of that body, it went towards infinity
17:30:35 <oklopol> oh that old thing
17:30:36 <AnMaster> I don't remember if it was 1/x or 1/(x^2). Something like that anyway
17:30:45 <oklopol> think about the same thing in one less dimension
17:30:56 <AnMaster> oklopol, hm?
17:30:58 <oklopol> say you have the curve 1/x^2 or something
17:31:03 <oklopol> the are under it is finite
17:31:07 <oklopol> but the actual line is infinite
17:31:08 <AnMaster> well yes
17:31:10 <oklopol> WOW
17:31:14 <oklopol> *area
17:31:18 <AnMaster> which is creepy too. But not quite as creepy
17:31:27 <oklopol> then there's the paint argument
17:31:33 <oklopol> that
17:31:38 <oklopol> if you pour paint into the infinite tube
17:31:41 <oklopol> it'll fill up
17:31:43 <AnMaster> oklopol, Yes I heard that
17:31:52 <oklopol> but you can never actually paint it
17:31:53 <AnMaster> but it wouldn't be enough to paint the sides
17:31:56 <AnMaster> exactly
17:31:56 <oklopol> yeah
17:32:16 <oklopol> but the thing is this makes absolutely no sense as an analogy
17:32:35 <oklopol> because you'd be painting it with some constant thickness of paint
17:33:12 <oklopol> so obviously you'll be using much more paint toe paint it than to fill it, after a whi
17:33:24 <oklopol> *to paint it *while
17:33:30 <oklopol> (wild mouse)
17:34:52 <AnMaster> oklopol, about that thickness: you could get it go towards zero.
17:35:17 <AnMaster> (makes as much sense at the rest...)
17:35:32 <oklopol> yep
17:35:37 <AnMaster> anyway, there are several creepy bits here: 1) that an integral from n to infinity can give a finite value (where n is a finite number). 2) that you get finite volume and infinite area.
17:35:40 <oklopol> and then the amount of paint would also be finite
17:35:56 <AnMaster> well for 1), that is excluding the integral of f(x)=0
17:36:55 <AnMaster> or functions that not only approach zero, but actually reach it and then stay there.
17:37:00 <oklopol> that sounds about as creepy as "two numbers can add up to a third one"
17:37:01 <AnMaster> at some finite point
17:37:10 <AnMaster> oklopol, hm?
17:38:05 <oklopol> it just does not sound creepy
17:38:45 <ehird> oklopol: they CAN?!?!?!?
17:38:51 <AnMaster> oklopol, okay to be more exact: a function f(x) with the property that "f(x)>0 for all x" can (sometimes) when integrated from a finite number n to infinity have a finite integral
17:38:56 <oklopol> ehird: they can, and they *will* :|
17:39:04 <AnMaster> oklopol, how is that not creepy?
17:39:20 <ehird> are you sure you know what creepy means
17:40:23 <oklopol> does it sound creepy that we can have an infinite set all of whose elements are positive, but for which there is such a real number r that for all finite subsets of our set, the sum of that set is less than r?
17:40:34 <oklopol> this is what the whole thing reduces to
17:40:48 <oklopol> *sum of that subset
17:40:54 <oklopol> shouldn't use words for stuff like that
17:41:25 <AnMaster> ehird, hm? It seems to contradict intuition of reality. Yes I know that intuition is quite often wrong. Still results in a creepy feeling for some cases of it.
17:43:09 <AnMaster> oklopol, that way to express it is too abstract (to me at least) to visualise it.
17:43:33 <oklopol> it means you take your integral and round things up
17:43:36 <ehird> why visualise it
17:43:42 <oklopol> you get an infinite amount of numbers
17:43:46 <oklopol> all of which are positive
17:44:18 <oklopol> and if you know anything about series, you can see this infinite amount of numbers can have such an upper bound
17:44:25 <AnMaster> oklopol, but try imaging this integral in terms of area
17:44:43 <oklopol> i always imagine infinite sums in terms of area
17:44:55 <oklopol> say i have a sum of 2^n for n = 0, 1, ...
17:44:58 * pikhq imagines a function which asymptotically approaches 0.
17:45:05 <oklopol> i just start stacking them up
17:45:09 <oklopol> and i see their sum is 2
17:46:02 <AnMaster> oklopol, so you feel perfectly comfortable on all levels with the fact that an area A limited by two infinitely long sides can be finite?
17:46:04 <Deewiant> Presumably 2^-n
17:46:35 <oklopol> hehe
17:47:04 <oklopol> AnMaster: sure, i even feel comfortable with defining "area" of that to be a frog
17:47:25 <oklopol> *the
17:47:29 <AnMaster> oklopol, har.
17:47:36 <oklopol> it was not a joke
17:47:39 <ehird> negative bases are awesome
17:47:41 <ehird> signs are rubbish
17:47:54 <oklopol> there is no connection between mathematical areas and the real worls
17:47:56 <oklopol> *world
17:48:00 <MissPiggy> yes there is
17:48:00 <AnMaster> ehird, balanced -ternary?
17:48:03 <oklopol> no ther eisn't
17:48:05 <ehird> http://en.wikipedia.org/wiki/Negative_base
17:48:06 <oklopol> *there isn't
17:48:35 <AnMaster> where - is a minus sign of course
17:49:52 <AnMaster> oklopol, then how do you explain that finite real world and math areas seem quite often to match up?
17:50:06 <ehird> http://personal.cis.strath.ac.uk/~conor/pub/Holes/Holes.pdf
17:50:08 <ehird> this is awesome
17:50:32 <ehird> AnMaster: because we constructed them to be vaguely similar to the real world at first
17:50:44 <oklopol> AnMaster: they model the real world well; obviously i didn't mean what i said
17:50:47 <ehird> matheamtics has no inherent existence, it's just single-manipulation we dreamed up
17:50:50 <oklopol> although it was completely true
17:51:00 <AnMaster> ehird, well yes.
17:51:24 <MissPiggy> mathematics is real
17:51:52 <ehird> Your definition of "real" is strange.
17:51:55 <AnMaster> MissPiggy, unless it is complex (or quaternionius or whatever)
17:52:04 <ehird> It does not exist physically, and abstract concepts do not really "exist" as such, they only exist insofar as operations on them.
17:52:05 <AnMaster> hm
17:52:13 <oklopol> but the geometry of our world isn't the same as R^n, it's just one approximation of it
17:52:16 <ehird> And the symbol manipulation was all invented by us. There's no inherent existence of mathematics.
17:52:18 <AnMaster> "quaternionius" sound incredibly awkward
17:52:19 <ehird> The universe does not have mathematics. We do.
17:52:30 <ehird> AnMaster: Sounds like a good name for a fictional character.
17:52:33 <ehird> Quaternionius.
17:52:39 <AnMaster> ehird, what genre?
17:52:44 <ehird> WHO KNOWS
17:53:33 <AnMaster> oklopol, what about fractals? Comfortable with them too?
17:54:23 <ehird> AnMaster is uncomfortable with a lot of very simple things.
17:54:23 <AnMaster> ehird, hm does a balanced negative base even make sense?
17:54:29 <oklopol> MissPiggy: no one's saying mathematics isn't real, because that's not really a question, but according to modern physics we do not live in R^3, although a nice model of physics can be constructed by saying particles are points in R^3
17:54:52 <oklopol> AnMaster: what definition of fractal?
17:55:08 <MissPiggy> I agree with what you are saying about geometry
17:55:31 <oklopol> i'm not all that comfortable with sets whose hausdorff dimension is not a natural number, they are usually really scary
17:56:46 <AnMaster> oklopol, hm.
17:56:55 -!- Pthing has joined.
17:57:56 <AnMaster> oklopol, also I'm no expert on fractals, not sure what you mean with definition of fractal here. The bit that defines a specific fractal?
17:58:33 <Deewiant> "Definition of fractal" can't really mean more than one thing
17:59:04 <AnMaster> Deewiant, oh?
17:59:22 <oklopol> AnMaster: hausdorff measures are a way to measure sizes of sets, just like jordan measures and lebesque measures, jordan being the simplest one; hausdorff measures take as argument the "dimension" of the set you're measuring, for instance if you draw a line in R^3, it's 1-dimensional measure can be finite, although it's 3d-measure is clearly 0
17:59:56 <AnMaster> I could think of two things: a) definition of a given fractal b) definition of what a fractal in general is.
18:00:11 <Deewiant> "Definition of fractal" can't mean a)
18:00:17 <oklopol> the hausdorff dimension of a set is such a real number that the hausdorff measure of the set, with that dimension, is not zero or infinite
18:00:19 <oklopol> if possible
18:00:25 <Deewiant> "Definition of x" where x is known to be a fractal does
18:00:39 <oklopol> now fractals, afaik, are defined as sets whose hausdorff dimension is not a natural number
18:01:16 <oklopol> but a common way to construct such sets is through these recursive thingamajigs
18:01:33 <oklopol> which are probably a more common definition for a fractal
18:02:20 <oklopol> so what i'm saying is i'm comfortable with drawing things recursively, but sure, some complex sets are pretty scary
18:02:27 <AnMaster> well yes recursive algorithms is the most common way to define a fractal that I have seen
18:02:32 <AnMaster> if not the only way
18:02:49 <AnMaster> that is, a given fractal
18:03:03 <oklopol> so everything is a fractal that can be computed using recursion, or what exactly?
18:03:23 <AnMaster> oklopol, well, not afaik.
18:03:27 <oklopol> a question by which i mean that's a crappy definition, the hausdorff one is sexy
18:03:49 <AnMaster> oklopol, I did know a bit about the dimension thing
18:03:53 -!- MissPiggy has quit (Quit: MissPiggy).
18:04:37 <oklopol> what do you mean, you knew we can embed k-dimensional objects in n-dimentional space?
18:04:55 <oklopol> *dimensional
18:05:47 <AnMaster> also, what ehird said about common creepyness above: by that logic complex numbers should be creepy. But they aren't IMO
18:07:04 <AnMaster> <oklopol> what do you mean, you knew we can embed k-dimensional objects in n-dimentional space? <-- I knew that fractals had a non-natural number dimension.
18:07:38 <oklopol> oh? cool.
18:07:48 <oklopol> (i hope you also know not all do)
18:08:24 <AnMaster> oklopol, hm?
18:08:36 <oklopol> well err
18:08:55 <oklopol> i mean if you use the definition "thing you can draw using some sorta recursino"
18:08:58 <oklopol> *recursion
18:09:00 <oklopol> :P
18:10:04 <AnMaster> oklopol, well that includes things that aren't fractal clearly. Such as: f(x,y) = draw a straight line of length 1 jonined up to f(x+1,y)
18:10:10 <AnMaster> (or something like it)
18:10:20 <oklopol> yeah
18:10:39 <AnMaster> which, while recursive, would give you a straight line starting at a given point and then going on forever
18:11:46 <oklopol> the sexiest thing about hausdorff dimensions is you don't have need to be working with real numbers
18:11:52 <oklopol> just any metric space
18:11:55 <AnMaster> oklopol, what about requiring more operations for each step (alt: you recurse more than once at a given level)
18:12:11 <AnMaster> most (all?) fractals seems to be like that?
18:13:26 <AnMaster> like "f(L) = divide the line L in 3, remove middle, call the other two L1 and L2, f(L1), f(L2)"
18:13:40 <AnMaster> hm, is that a fractal, or just something similar?
18:13:42 <oklopol> koch snowflake
18:13:48 <oklopol> oh
18:13:57 <oklopol> that's the cantor set
18:14:06 <oklopol> did you come up with that?
18:14:15 <AnMaster> oklopol, I know that algorithm is a classical one
18:14:19 <oklopol> if you did, you could've been famous!
18:14:20 <oklopol> oh
18:14:21 <AnMaster> I didn't remember the name of it
18:14:38 <oklopol> also called cantor's dust, it has useful properties
18:14:51 <AnMaster> oklopol, name is indeed familiar when you mention it
18:15:03 <AnMaster> oklopol, anyway, what is the dimensionality of it
18:15:32 <oklopol> all the cs's are homeomorphic (the ones obtained by different sorts of splits into three parts), but some leave you with zero measure, some have finite
18:15:39 <oklopol> (with lebesque measure)
18:15:49 <oklopol> oh...
18:15:52 <ehird> Homeomorphic lebesques.
18:16:00 <AnMaster> ehird, XD
18:16:01 <ehird> I think they have porn of those.
18:16:48 <Deewiant> Higher math is actually all porn behind the scenes
18:16:52 <AnMaster> also: "<oklopol> koch snowflake" <-- that's the one you add in a triangle (well, two sides of one) in the middle, right?
18:16:53 <oklopol> i don't know if the hausdorff dimension goes down and measure goes up for some splits, you'd have to ask someone who actually know about this stuff
18:17:11 <oklopol> yeah
18:17:22 <ehird> Homeomorphic lebesques functoring.
18:17:59 <ehird> "Bona fide elements of ∅ are hard to come by, so we may safely offer to exchange them for anything you might care to want: as you will be paying with bogus currency, you cannot object to our shoddy merchandise."
18:18:52 -!- MizardX has quit (Read error: Connection reset by peer).
18:19:03 -!- MizardX has joined.
18:19:34 <AnMaster> ehird, that quote is one truly awful joke...
18:20:00 <AnMaster> where is it from?
18:20:11 <ehird> It's not so much a joke as colourful wordplay.
18:20:34 <ehird> http://personal.cis.strath.ac.uk/~conor/pub/Holes/Holes.pdf, a paper that begins:
18:20:34 <AnMaster> yeah, maybe calling it "joke" was stretching things a bit ;P
18:20:38 <ehird> Abstract
18:20:41 <ehird> Mornington Crescent
18:20:43 <ehird> 1 Introduction
18:20:46 <ehird> The purpose of this paper is not only self-citation (McBride, 2001; McBride & Paterson, 2006), ...
18:20:54 <ehird> (Yes, the abstract is actually "Mornington Crescent".)
18:21:03 <AnMaster> hah
18:22:02 <AnMaster> ehird, the language used, which one is it? haskell?
18:22:16 <AnMaster> some parts of it look quite similar at least from a quick glance
18:27:29 <ehird> Haskell with a few bits of do-what-i-mean.
18:27:39 <ehird> In
18:27:43 <ehird> naughtE :: ∅ → a
18:27:44 <ehird> naughtE = ⊥
18:27:46 <ehird> for example,
18:27:53 <ehird> ⊥ would be an operator and thus not valid like that
18:28:04 <ehird> But it doesn't matter because it's a paper, not a program. :P
18:28:18 -!- MizardX- has joined.
18:28:26 <ehird> (And they don't actually, you know, define ⊥.)
18:30:45 -!- MizardX has quit (Ping timeout: 258 seconds).
18:30:46 -!- MizardX- has changed nick to MizardX.
18:31:15 -!- jcp has joined.
18:32:17 <augur> ehird
18:32:23 <augur> you're right, she forgot language
18:32:38 <augur> the lambek calculus was designed for grammatical structures.
18:34:54 <Gracenotes> augur returns to the discussion, just in time for me to wake up
18:35:01 <augur> hey :p
18:35:17 <Gracenotes> ಠ_ಠ
18:35:25 <Gracenotes> oh hai
18:37:28 <AnMaster> ehird, ah
18:39:09 <augur> ehird, i think you're naughtE
18:41:12 * pikhq waves at folk
18:51:39 <augur> hey pikhq
18:52:33 <pikhq> Hey.
19:06:24 -!- sshc has joined.
19:07:24 * Sgeo wonders if ehird is going to read FS soon
19:10:55 <augur> im having an email convo with noam chomsky D:
19:10:55 <augur> :D
19:10:57 <augur> D:
19:19:14 <cheater3> hello
19:20:22 <ehird> [18:32] <augur> you're right, she forgot language
19:20:22 <ehird> he
19:20:27 <ehird> augur: really?
19:20:28 <ehird> cool
19:21:00 <augur> ehird: misspiggy is not a boy.
19:21:06 <ehird> he's fax.
19:21:08 <ehird> aka soupdragon
19:21:11 <augur> and fax is a girl.
19:21:18 <ehird> i'm fairly sure i've heard otherwise
19:21:34 <Deewiant> If using a female nickname one should expect female pronouns.
19:21:42 <augur> well we'll ask just to confirm ;P
19:21:56 <augur> ehird: indeed, tho, yes. lambek calculus _is_ a theory of grammar.
19:22:22 <augur> "Joachim Lambek proposed the first noncommutative logic in his 1958 paper Mathematics of Sentence Structure to model the combinatory possibilities of the syntax of natural languages. His calculus has thus become one of the fundamental formalisms of computational linguistics."
19:22:23 -!- ehird has changed nick to alice.
19:22:25 <alice> In wonderland.
19:22:28 <alice> Aw, taken.
19:22:37 -!- alice has changed nick to alise.
19:24:37 <alise> augur: what's your evidence that fax is a girl? my evidence that e is male is: one, probability; the vast majority of this channel is male - in fact, I believe there are no females currently in here, and a vague recollection of some sort of data meaning he was male, but my memory is terribly fuzzy when it comes to this place; so much talk, so little time.
19:24:47 <augur> my evidence is that she told me so.
19:25:11 <augur> i believe shes a transgirl, however, hence the potential confusion.
19:25:26 * Sgeo wonders how ehird will/would react to the RoboZZle addiction in here
19:25:35 <alise> augur: ah.
19:25:58 <cheater3> whats up sweeties?
19:26:05 <augur> or maybe transman? i have no clue about the details, honestly.
19:26:23 <augur> all i know is that fax/soupdragon/misspiggy is smart and interested in CS and linguistics
19:26:28 <augur> and therefore has become a good friend.
19:26:33 <augur> cheater3: WHOS YOU
19:26:37 <alise> hmm... i think we've had more transgirls here than cisgendered females
19:26:39 <augur> DONT CHEAT ME
19:27:00 <augur> alise: you're a transgirl.
19:27:08 <alise> no. no i'm not
19:27:09 <augur> tho maybe not intentionally :X
19:27:16 <alise> my gender is 0.5 :P
19:27:26 <augur> :p
19:27:33 <augur> ehird is genderqueer!
19:28:42 <cheater3> augur: i am you
19:28:47 <augur> D:
19:28:49 <augur> oh ok
19:28:51 <alise> god programming languages are sexy :|
19:28:55 * augur makes out with himself
19:29:00 <alise> can i be typesexual
19:29:05 <cheater3> programming languages are transgender
19:29:17 <augur> only if you're into programming languages with strict typing
19:29:24 <augur> which ofcourse means lots of leather and whips
19:29:29 <alise> i was about to -
19:30:08 <alise> i think i'm going to stick with this name for a while, see how many people treat me differently because they think i have ovaries
19:30:37 <augur> i wont
19:30:39 <augur> i hate ovaries
19:30:57 <augur> but you're still ehird, and ovaries wont make you most spiteful
19:31:03 <augur> more*
19:31:10 <alise> so I was thinking about what to call the empty type, right, and I thought hey, I could use ∅ *and* have it be used by sequence/collection/whatever. I just have to make Set (or Type or whatever) an instance of it! But that won't work, because there'll be operations like cons :: a -> sequence a -> sequence a which doesn't make sense because one, sets/types don't have element types
19:31:12 <cheater3> augur: do you have 'introduction to algorithms' 3 ed for me?
19:31:26 <alise> and two, they're not really a concrete collection of values
19:31:31 <alise> so I'm back to square one
19:31:34 <augur> cheater3: what?
19:31:53 <augur> alise: call it Empty. thats what the dependent type people call it.
19:31:57 <cheater3> i am looking for the book called what i just mentioned, augur
19:32:05 <augur> cheater3: ill try!
19:32:15 <alise> augur: I *am* a dependent type person!
19:32:22 <alise> augur: but I'm also a Unicode whore.
19:32:32 <augur> :)
19:32:38 <augur> then use an epsilon
19:32:53 <augur> ∅ should be reserved for actual {}'s
19:33:07 <alise> right but epsilon is "arbitrarily small", not "length one"
19:33:11 <augur> ε is occasionally used for the empty string, but
19:33:12 <cheater3> augur: 2ed gives minus 50 points
19:33:33 <alise> augur: do you think ∅ is acceptable for any sequence, though?
19:33:48 <alise> lists, concrete sets (actual {}s, as you put it), associative maps, etc.
19:33:50 <augur> no, its not a sequence
19:33:59 <alise> but it's a convenient and pretty notation
19:34:13 <alise> 1 ∷ 2 ∷ 3 ∷ ∅
19:34:38 <alise> err wait
19:34:44 <alise> what i want isn't "arbitrarily small"
19:34:46 <alise> I want "empty"
19:34:52 <alise> epsilon isn't empty, it's arbitrarily small
19:35:08 <augur> well its the empty string in formal language theory!
19:35:10 <alise> relatedly, what should I call the unit type? maybe a circle
19:35:13 <augur> cheater3: i only have the second edition :(
19:35:24 <augur> cant find the 3rd edition anywhere
19:35:26 <alise> augur: don't get me wrong, I don't care about total mathematical notation faithfulness
19:35:29 <cheater3> augur: you don't want minus 50 points, do you?
19:35:30 <augur> alise: unit type should be a fancy 1
19:35:31 <alise> I just don't want it to *confuse* mathematicians
19:35:36 <alise> augur: heh
19:35:39 <alise> augur: find me a fancy one and it's done
19:35:46 <alise> augur: blackboard 1 would work, to fit in with sets like N
19:35:58 <augur> well lets see what unicode gives us
19:36:51 <alise> disregard ∷ ∀a. a → ○
19:36:52 <alise> disregard x = ○
19:37:18 <augur> 1⒈①❶➀➊⓵⑴Ⅰⅰ
19:37:28 <alise> heh, ➀
19:37:36 <alise> ○ > ➀ imo
19:37:40 <augur>
19:37:55 <alise> that is not a rude gesture.
19:38:10 <augur> if i had one more finger it would be
19:38:11 <pikhq> ZAL҉̵̞̟̠̖̗̘̙̜̝͇̊̋̌̍̎̏̐̑̒̓̔̿̕̚͡ ̒̓̔̕̚GO he cometh.
19:38:11 <augur> :|
19:38:27 <augur> i like the ring tho
19:38:28 <augur> ring is nice
19:38:58 <alise> ZAL҉̵̞̟̠̖̗̘̙̜̝͇̊̋̌̍̎̏̐̑̒̓̔̿̕̚͡ ̒̓̔̕̚GO is ta∵∵si∵∵
19:40:43 <augur> ⦶⦸⦼⧃⧂
19:40:49 <augur> check it out, im writing in naboo-an!
19:41:01 <alise> ○ is nice because it's like () but without the tupley implications
19:41:04 <alise> because it isn't really tupley
19:41:09 <augur> indeed
19:41:18 <alise> main ∷ Partial (IO ○)
19:41:35 <augur>
19:41:47 <augur>
19:41:57 <alise> ⇄ would be a good unicode name for IO.
19:42:00 <augur> ⊙⊚
19:42:08 <cheater3> augur: i think it doesn't exist :(
19:42:10 <alise> main ∷ Partial (⇄ ○)
19:42:18 <alise> augur: your second-last line is just a boob.
19:42:26 <augur> cheater3: it does, published in like september last year or something
19:42:39 <cheater3> augur thats not the kind of exist that i meant
19:42:43 <augur> ⨴ can denote partial
19:42:54 <augur> ⨴ (⇄ ○)
19:42:58 <alise> I can't see that
19:43:12 <augur> its part of a circle!
19:43:14 <alise> multiplication sign in left half circle
19:43:15 <alise> lol
19:43:25 <cheater3> why are you guys using squares all the time
19:43:32 <augur> we're using unicode
19:43:33 <augur> and you're not
19:43:36 <augur> GTFO
19:43:39 <cheater3> i am using xchat
19:43:43 <cheater3> the latest version
19:43:52 <cheater3> so what are you talking about
19:43:53 <alise> http://www.fileformat.info/info/unicode/char/25d6/index.htm
19:44:02 <pikhq> If it doesn't do Unicode, then it sucks balls.
19:44:03 <alise> cheater3: one, stop using windows
19:44:04 <alise> two, get fonts
19:44:07 <cheater3> how do i make xchat use unicode more than it does already
19:44:08 <alise> three, set encoding to utf-8
19:44:15 <cheater3> how do i set encoding
19:44:20 <alise> press alt-f4.
19:44:38 <cheater3> alttttttttttttttffffffff44444
19:44:41 <cheater3> doesnt work
19:44:46 <cheater3> i cant reach the minus
19:44:49 <alise> autodefenestrate
19:45:31 <pikhq> cheater3: Weak.
19:46:27 <alise> so pikhq
19:46:37 <alise> i don't want to use _ for my multifix operator placeholder character
19:46:41 <alise> uh you may not know what multifix is
19:46:47 <alise> pikhq: multifix lets you define operators like this
19:46:53 <alise> if_then_else_
19:47:02 <alise> [_]
19:47:03 <alise> (_)
19:47:17 <alise> _therefore_CHICKENPOX$_okay_okay
19:47:19 <alise> used as:
19:47:24 <alise> if poo then bar else lux
19:47:26 <alise> [bok]
19:47:29 <alise> (wammy)
19:47:44 <alise> mints therefore (death is okay) CHICKENPOX$ whoa okay (2+2) okay
19:47:56 <pikhq> alise: So, even less special syntax.
19:48:11 <alise> λ_._
19:48:11 <pikhq> Hmm.
19:48:12 <alise> It's a lambda!
19:48:17 <cheater3> pikhq: i would like to stand up to your expectations but i cannot. :(
19:48:19 <alise> pikhq: but I don't want to use _ for it because you should be able to use that in names
19:48:25 <alise> (Unicode is acceptable, even encouraged)
19:48:56 <pikhq> alise: Not sure; that's hard to pick...
19:49:44 <alise> i used the boob character, ⨀, but it just didn't really look very good
19:49:46 <alise> if⨀then⨀else⨀
19:49:55 <alise> λ⨀.⨀
19:50:00 <alise> pikhq: Some sort of question mark would work
19:52:34 <cheater3> can you guys try those squares again pls
19:52:38 <Asztal> if ※ then ※ else ※
19:52:43 <cheater3> nope, doesn't work
19:52:51 <cheater3> try again?
19:53:05 <Asztal> cheater3: you also need a good font or an IRC client that does font substitution properly
19:53:14 -!- gm|lap has joined.
19:53:19 <cheater3> Asztal: try once again
19:53:23 <Asztal> ‽℀℘ℋ₨áóíúéμ
19:53:29 <cheater3> nope, still squares
19:53:29 <gm|lap> http://esolangs.org/wiki/RETURN <-- made an interpreter in python
19:53:30 <alise> Asztal: no spaces
19:53:42 <alise> if※then※else※
19:53:45 <alise> looks like a holocaust
19:53:47 <alise> :P
19:53:52 <alise> if BOOM then BOOM else BOOM
19:53:59 <gm|lap> i saw: interrobang, a/c, some weird p, some weirder H, Rs, 'a, 'o, 'i, 'u, 'e, mu.
19:54:01 <cheater3> Asztal: i am using xchat, is that not a good client for that?
19:54:13 <gm|lap> cheater3: try setting the encoding to UTF-8
19:54:13 <alise> what has ℀ got to do with anything?
19:54:24 <cheater3> gm|lap, Asztal: i tried doing /charset IRC and /charset UTF-8
19:54:32 <cheater3> both do not work
19:54:34 <gm|lap> aww :/ i guess you might be lacking fonts then
19:54:47 <cheater3> where do i get unicode fontz for my windoze?
19:55:03 <gm|lap> idunno, all i can say is you can get them with linux
19:55:08 <gm|lap> or FreeBSD, even
19:55:36 <gm|lap> i suggest you look at that python interpreter, the idea is really scary
19:56:16 <cheater3> let me try this
19:56:17 <cheater3> Courier New – 2726 characters (3151 glyphs) in version 5.00
19:56:57 <gm|lap> heh... AFAIK X11 rips chars from other fonts
19:56:59 <Asztal> if you couldn't see áéíóú that's an indication that it's not a font issue
19:57:04 <gm|lap> if anything's missing
19:57:26 <cheater3> Asztal: i could see that
19:57:29 <gm|lap> if you couldn't see ☭ that's an indication that it's probably a capitalism issue
19:57:32 <alise> cheater3: stop using windows. :)
19:57:33 <cheater3> Asztal: but i could not see the 5 to the left of that
19:57:37 <alise> if☭then☭else☭
19:57:38 <pikhq> gm|lap: Yeah, X11 makes a best-effort to display everything, even if it is ugly as hell.
19:57:41 <cheater3> alise: stop being a transgirl :)
19:57:51 <alise> consider it done
19:57:53 <alise> gm|lap: not on my usual baux
19:57:58 <alise> (yes, baux)
19:58:18 <gm|lap> alise: don't upgrade, pulseaudio in ubuntu 9.10 is extremely crappy
19:58:30 <gm|lap> i removed it with force
19:58:34 <gm|lap> ...actually, with apt-get remove
19:58:40 <alise> i like 9.10, but this isn't my machine
19:58:44 <gm|lap> also esound is broken too
19:58:45 <alise> it hasn't been upgraded only out of laziness
19:58:48 <gm|lap> hmmkay
19:58:52 <gm|lap> my desktop runs freeBSD
19:59:05 <Asztal> if¤then¤else¤
19:59:11 <alise> normally i run os x, which you can criticise for many reasons but excellent display of unicode text is not one of them
19:59:11 <Sgeo> My desktop still runs 7.04
19:59:20 <gm|lap> tbh freebsd has the best sound system for unix ever: newpcm
19:59:38 <gm|lap> it's like multi-application OSS
20:00:04 <alise> gm|lap: we have that it's called ossv4
20:00:34 <gm|lap> i heard that was the one that was single-app-only... hmm
20:00:45 <gm|lap> there was one which did MIDI and one which did multi-app
20:01:05 <alise> ossv3, old oss, is single-app
20:01:10 <alise> ossv4, which is new and not in the kernel, isn't
20:01:14 <alise> unless i'm mistaken
20:01:21 <alise> (it's kernelspace just not in the mainline kernel)
20:03:30 <Sgeo> gm|lap, this isn't my desktop
20:03:37 <Sgeo> I rarely even use my desktop anymore
20:03:44 <Sgeo> Only when I want to get old files off of it
20:03:53 <cheater3> this is the slowest installer ever
20:03:59 <cheater3> microsoft word viewer 97 or something
20:04:07 <alise> pikhq: perhaps a solid middle dot would work
20:04:10 <Sgeo> Get AbiWord?
20:04:11 <cheater3> ok
20:04:15 <pikhq> alise: Perhaps.
20:04:18 <cheater3> can you guys try the squares again
20:04:22 <cheater3> pls
20:04:31 <FireFly> 最↓→ð
20:04:32 <FireFly> Perhaps
20:04:35 <cheater3> works
20:04:37 <alise> gm|lap: also, harddrive sizes are not a marketing conspiracy.
20:04:40 <cheater3> didnt even need to restart
20:04:42 <FireFly> <Asztal> ‽℀℘ℋ₨áóíúéμ
20:04:46 <cheater3> this did not work
20:04:58 <Sgeo> cuils?
20:05:00 <cheater3> i see 5 squares and then 5 letters with diacrytics
20:05:09 <cheater3> and then \mi
20:05:14 <cheater3> or \mu or whatever that is
20:05:14 <gm|lap> i reckon it's just being cheap
20:05:20 <cheater3> brb
20:05:50 <alise> gm|lap: http://www.tarsnap.com/GB-why.html
20:05:59 -!- cheater3 has quit (Quit: Leaving).
20:06:03 <pikhq> cheater3: Don't even see interrobang?
20:06:16 <pikhq> I'd guess you don't get a gnaborretni, either.
20:06:33 <alise> G = 1000 is standard; you cannot change prefixes. the unit after a prefix cannot change a prefix; that is merely nonsensical. Furthermore, the decimal, standard version is in fact *more common* in computing than the binary one.
20:07:01 <alise> Ki/Gi/Ti are the standard binary prefixes; it should be RAM, which is the main exception to the decimal rule, whose marketing changes.
20:07:09 <gm|lap> we don't run 2.2GB processors, we run 2.2GHz.
20:07:24 <gm|lap> 1 Gbps Ethernet transmits data at... 10^9 bits per second < that's also stupid.
20:07:26 <alise> pikhq: Please LART gm|lap, for he believes that units change their prefixes.
20:07:39 <gm|lap> it was always 2^10 B for a KB
20:07:50 <gm|lap> The 2.4GHz band which wireless ethernet operates within lies... between 2.4 x 10^9 and 2.5 x 10^9 Hz <-- likewise, not a byte.
20:08:00 <pikhq> gm|lap: And it was fucking wrong.
20:08:12 <pikhq> Stop making things fucking wrong.
20:08:26 <gm|lap> stop making things so damn cheapass
20:08:30 <alise> complaining about hard-drive makers using SI prefixes is the wonderful domain of idiots who like to appear smarmy and pedantic without actually caring about being correct.
20:08:43 -!- kar8nga has quit (Remote host closed the connection).
20:08:46 <alise> gm|lap: I will quote from the page you apparently didn't read.
20:08:48 <alise> "Hard drive prices are determined almost entirely by competition between manufacturers, so if hard drives were labelled in GiB instead of being labelled in GB, we'd be paying the same number of dollars for the same number of bytes anyway — if this really was a global conspiracy, it would be one of the dumbest conspiracies ever."
20:09:09 <pikhq> gm|lap: I will agree with you in one thing, though -- hard drives should be labelled in GiB.
20:09:18 -!- cheater2 has joined.
20:09:26 <alise> Yes, because they should be SSDs.
20:09:29 <pikhq> However, that does not mean a gigabyte is 2^10 megabytes.
20:09:35 <pikhq> (or mebibytes, for that matter)
20:09:37 <alise> Which are flash memory, which is addressed in silicon, so you get powers of two.
20:09:47 <alise> SSDs: Sexually Satisfying Disk
20:09:49 <alise> s
20:09:50 <cheater2> megafael
20:10:00 <cheater2> i restarted xchat and it said the 30 day evaluation is over
20:10:03 <cheater2> so i had to restart it
20:10:14 <cheater2> i thought this was free open source software, wtf
20:10:20 <alise> It is, the Windows build isn't.
20:10:23 <alise> Use Silverex, or not Windows.
20:10:29 <cheater2> can you guys try some unicode again?
20:10:35 <alise> no. :D
20:11:14 <gm|lap> http://silverex.net/news IIRC
20:11:21 <Sgeo> Hm
20:11:28 <Sgeo> This laptop has to be at least 3 years old
20:11:31 <cheater2> do not be unfriendly alise
20:11:35 <cheater2> it is not nice
20:11:40 <alise> http://www.silverex.org/news/ actually
20:11:48 <alise> cheater2: :'''''''''''''''''(
20:11:48 * Sgeo is using Silverex
20:11:53 <alise> i cry
20:12:11 <cheater2> Asztal: can you try some unicode for me please?
20:12:26 <alise> we should replace the ehird sighting in the topic with scarf sitings. anyone seen him recently?
20:13:19 -!- Pthing has quit (Remote host closed the connection).
20:13:32 <alise> *sightings
20:17:21 <alise> http://www.fileformat.info/info/unicode/char/2237/index.htm
20:17:26 <alise> I wonder what it's actually supposed to b e
20:17:27 <alise> *be
20:17:31 <alise> "proportion" is unhelpful
20:18:11 <alise> pikhq: annoyingly unicode messes with layout :(
20:18:26 <alise> because characters that display as >1 character are still treated as one character
20:18:32 <alise> (you can't fit *every* character into a tiny space)
20:18:35 <alise> (not without distortion)
20:18:41 <pikhq> alise: :/
20:18:46 <alise> the solution, of course, is non-textual editing! :P
20:23:57 <cheater2> if ※ then ※ else ※
20:24:02 <cheater2> hmm
20:24:08 <cheater2> if ※ then ※ else ※
20:24:13 <cheater2> this crap don't work
20:25:56 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
20:26:27 -!- MissPiggy has joined.
20:26:41 <alise> hi MissPiggy
20:26:45 <MissPiggy> hello
20:26:54 <MissPiggy> nice name
20:27:13 <alise> so's your face :|
20:27:19 <MissPiggy> why thank you
20:27:25 <alise> I know rite
20:28:05 <MissPiggy> just repartitioned and reinstalled my os
20:29:17 <alise> your solution to the expression problem, what if your type doesn't have any relevant dependicity? do you have to like put a dummy dependent thingy in to make it work?
20:29:29 <MissPiggy> I don't know what you mean
20:29:38 <MissPiggy> what type
20:29:39 <alise> I didn't really understand it so yeah
20:30:39 <MissPiggy> ?
20:31:47 <MissPiggy> hm
20:31:52 <MissPiggy> what are you asking
20:32:22 <alise> well
20:32:25 <alise> can you explain your solution to me
20:32:27 <alise> I didn't really grok it
20:32:49 <MissPiggy> okay
20:33:43 <MissPiggy> dyld: unknown required load command 0x80000022
20:33:43 <MissPiggy> zsh: trace trap ocaml
20:33:53 <MissPiggy> dammit
20:33:55 <alise> MissPiggy is an AI?!
20:33:59 <alise> le gasp
20:34:12 <alise> MissPiggy: you're using OCaml and zsh on OS X.
20:34:13 <MissPiggy> you're surprised by this?
20:34:19 <alise> i am so inferrerator
20:34:47 <MissPiggy> okay anyway,
20:34:56 <MissPiggy> the idea is to make a data type a bit like this one:
20:35:15 <MissPiggy> data Snoc a where nil :: Snoc a ; cons :: Snoc a -> a -> Snoc a
20:35:39 <MissPiggy> god dammit
20:35:45 <MissPiggy> data Snoc a where nil :: Snoc a ; snoc :: Snoc a -> a -> Snoc a
20:35:55 <alise> ya ya
20:36:07 <MissPiggy> the difference, is that in snoc xs x, you let the type of x depend on xs
20:36:09 <MissPiggy> so perhaps
20:37:00 <MissPiggy> data Snoc f where ... ; snoc :: forall xs :: Snoc f, f xs -> Snoc f
20:37:21 <MissPiggy> if you let f = const a, then it's equivalent to the old one
20:37:40 <MissPiggy> but if you let f xs = Vector a (length xs),for example -- you get triangles
20:37:52 <alise> forall xs :: Snoc f, f xs -> Snoc f
20:37:53 <MissPiggy> my idea is to use this to make matrices instead of triangles
20:37:54 <alise> this notation confuses me
20:38:14 <MissPiggy> it's just (xs :: Snoc f) -> (x :: f xs) -> Snoc f
20:38:17 <alise> use haskell notation like you've been doing but with (name::t)-style dependent type notation plz :P
20:38:19 <alise> ok
20:38:19 <alise> wait
20:38:21 <alise> lemme write this out so far
20:38:43 <alise> what type is f?
20:38:47 <alise> a->a?
20:38:53 <alise> no, a->Set
20:38:58 <MissPiggy> f :: Snoc f -> Set
20:39:01 -!- kar8nga has joined.
20:39:12 <MissPiggy> but don't worry about the type of f
20:39:21 <MissPiggy> it will probably become something else in the future
20:39:36 <alise> so it's not Snoc f a
20:39:38 <alise> just Snoc f?
20:39:57 <MissPiggy> yeah as I was writing Snoc f a I realized Snoc f subsumes it
20:40:08 <MissPiggy> so there's no need for an a
20:40:16 <alise> so:
20:40:22 <alise> data Snoc :: (Snoc f -> Set) -> Set where
20:40:22 <alise> nil :: Snoc f
20:40:26 <alise> cons :: (xs :: Snoc f) -> (x :: f xs) -> Snoc f
20:40:33 <alise> so, let me say this in words
20:40:56 <alise> cons takes a value of type Snoc f named xs, and a value of type (f xs) named x, and returns a Snoc f.
20:41:06 <alise> so f gets the rest of the list, and returns the relevant type
20:41:17 <alise> so Snoc (const t) = Oldsnoc t
20:41:30 <alise> I think I see how this is cool
20:41:35 <alise> It's a polymorphic list of sorts
20:41:41 <alise> except the type of the element depends on the rest of the list
20:42:07 <MissPiggy> yes
20:42:25 <alise> If you can formulate a type meaning "the integer x", you could have snoc nil 1, snoc (snoc nil 1) 2, etc. type
20:42:26 <alise> but nothing else
20:42:28 <alise> okay, got it
20:42:32 <alise> so how does this solve the expression problem?
20:42:34 <MissPiggy> now what we could do is define something like
20:42:48 <MissPiggy> ROW <name> <vector of elements of this row>
20:42:57 <MissPiggy> COL <name> <vector of elements of this col>
20:43:23 <MissPiggy> so when you snoc a ROW on, it computes the number of elements you have to define, to add this row (and col similarly)
20:43:43 <MissPiggy> this way you can build up a NxM matrix starting from a 0x0 one
20:44:03 <MissPiggy> at a first approximation that matrix could just have numbers in it, or whatever -- it doesn't really matter
20:44:26 <MissPiggy> to solve the expression problem we will have to compute the type of the cell based on the function spec.
20:44:37 <MissPiggy> but that's just details, the important bit is SNOCing on ROWs, and COLs
20:48:09 <alise> wait wait
20:48:12 <alise> let me catch up
20:48:15 <alise> forgot to read
20:48:20 <alise> okay so ROW and COL are data constructors
20:48:23 <alise> of the same type or not
20:48:34 <MissPiggy> yeah, I think that they have to be of the same type
20:48:39 <alise> an issue is that
20:48:46 <alise> ROW does not actually add rows
20:48:49 <alise> + func1 | func2 | ... Foo x y | y | x ... Bar x y | x | y ... +-----------------...
20:48:50 <alise> erm
20:48:54 <alise> Foo x y | y | x ...
20:48:55 <alise> Bar x y | x | y ...
20:48:58 <alise> all Foos and all Bars are the same row
20:48:59 <MissPiggy> ROW adds a column
20:49:03 <MissPiggy> and COL adds a row
20:49:05 <alise> ...
20:49:06 <alise> why?
20:49:24 <alise> [20:43] <MissPiggy> so when you snoc a ROW on, it computes the number of elements you have to define, to add this row (and col similarly) i don't get what you mean by that
20:51:11 <alise> :/
20:51:19 <alise> so
20:51:24 <MissPiggy> let me answer that question
20:51:49 <alise> just a sec
20:51:55 <alise> MissPiggy: I think an example would help, so
20:51:56 <alise> http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w
20:51:59 <alise> the unextended bit there
20:52:04 <alise> with Foo x y and Bar x y as the rows
20:52:07 <alise> and func1 and func2 as the columns
20:52:14 <alise> how would you write that, given your definitions?
20:52:29 <MissPiggy> suppose we wanted to define functions, eval, size and show on data Exp = Num Int | Add Exp Exp | Mul Exp Exp
20:53:01 <alise> no
20:53:05 <alise> can we use my example :P
20:53:11 <alise> not to be rude, it's just that i understand mine
20:53:14 <alise> since it's very simple
20:53:32 <alise> instead of getting bogged down in details etc
20:55:59 <alise> z
20:57:24 <alise> MissPiggy: think I should have inductively defined sets as in mathematical notation?
20:57:28 <alise> might be convenient, dunno
20:57:44 <MissPiggy> you start with the 0x0 matrix, [] `snoc` ROW "Num"*description of num () `snoc` Row "Add*description of add ()`snoc`COL eval (case for eval Num, case for eval Add)`snoc`ROW "Mul"*description of mul (case for eval Mul)`snoc`COL show (implementation of show for all 3 casese..)
20:57:51 <MissPiggy> read that sequentially and slowly :P
20:58:10 <MissPiggy> I think you can consider inductives as sets, but I don't
20:58:31 <MissPiggy> oh you said something else completely
20:58:38 <alise> yerr, i don't understand that :(
20:58:40 <MissPiggy> well you can implement set theory in type theory
20:58:48 <alise> what is it for Foo/Bar/func1/func2? :P
20:58:55 <alise> and what's a description
20:59:04 <alise> and er you have an unterminated string
20:59:09 <MissPiggy> it just says whwat the type of the constructor is
20:59:52 <alise> ??
21:01:34 <MissPiggy> we dont' program over the real data Expr = ...
21:01:48 <MissPiggy> we are actually making a program over a generic sort of datatype called a universe
21:01:54 <alise> yeah but uh
21:01:59 <alise> ff
21:02:02 <MissPiggy> so U <description of Nat> is isomorphic to Nat
21:02:10 <MissPiggy> and U <descrption of Expr> is .... Expr
21:02:17 <alise> so what is *
21:02:20 <alise> what is string * thing
21:02:22 <alise> what operator is that
21:02:28 <alise> tuple?
21:02:31 <MissPiggy> oh I just meant that like a tuple yeah
21:02:39 <alise> thanks for inventing notation without telling me :/
21:02:55 <alise> description = type?
21:03:02 <MissPiggy> could be yeah
21:03:13 <alise> what's the resulting value
21:03:18 <alise> (exists a. a)?
21:04:26 <MissPiggy> resulting value?
21:04:31 <MissPiggy> of what?
21:04:31 <alise> of the type
21:04:33 <MissPiggy> which type
21:04:37 <alise> fff
21:04:38 <alise> description
21:04:39 <alise> = type
21:04:40 <alise> of row
21:04:49 <MissPiggy> you know this sort of notation?
21:04:55 <MissPiggy> MuX.1+X
21:04:58 <MissPiggy> for data types
21:05:01 <alise> [20:57] <MissPiggy> you start with the 0x0 matrix, [] `snoc` ROW "Num"*description of num () `snoc` Row "Add*description of add ()`snoc`COL eval (case for eval Num, case for eval Add)`snoc`ROW "Mul"*description of mul (case for eval Mul)`snoc`COL show (implementation of show for all 3 casese..)
21:05:04 <alise> that line is what i'm referring to
21:05:22 <MissPiggy> I'm starting to realize that my idea takes quite a bit of background to understand..
21:05:43 <alise> Okay, so I've tried to write my Foo/Bar/func1/func2 example using your notation.
21:05:47 <MissPiggy> wait I have a great idea how to explain that
21:05:49 <alise> nil `snoc`
21:05:50 <alise> Row "Foo" (a -> a -> (exists b. b)) `snoc`
21:05:52 <alise> Row "Bar" (a -> a -> (exists b. b)) `snoc`
21:05:54 <alise> Col "func1" (\_ y -> y) (\x _ -> x) `snoc`
21:05:55 <alise> Col "func2" (\x _ -> x) (\_ y -> y)
21:06:02 <MissPiggy> yeah just like that
21:06:15 <alise> Okay. Unfortunately, it doesn't allow adding rows.
21:06:20 <MissPiggy> ??
21:06:25 <alise> If I add a row, and then call func1 or func2 on it, they don't work; they explode and break.
21:06:30 <alise> Because they don't handle the new type.
21:06:31 <MissPiggy> no
21:06:33 * Sgeo goes to mark 7000 or so conversations as read
21:06:46 <alise> In the OOP system, which can add rows, they inherit the definition (and you cannot remove fields, so they must work)
21:06:49 <MissPiggy> when you add a Row you must define one new case for func1 and func2
21:06:57 <alise> so it becomes
21:07:00 <MissPiggy> the reason you MUST do this, is because if you don't -- it will not typecheck
21:07:19 <alise> Row "Quux" blah (\_ _ z -> z) (\_ y z -> y+z)
21:07:23 <alise> func1 and func2 respectively
21:07:24 <MissPiggy> you can add N-rows and M-columns in any order, but at the end of the day you will have definede NxM cells of a matrix
21:07:30 <MissPiggy> yes
21:07:45 <alise> it's a good solution, but i can't help thinking that it should really be a language feature, not something added on
21:07:49 <alise> this would be incredibly awkward to program in
21:07:51 * MissPiggy is compiling Coq to try and implement this
21:08:09 <MissPiggy> alise yeah it'll be awkward as fuck in Coq but I bet you could make easy as pi in epigram
21:08:16 <alise> easy as pi :D
21:08:23 <alise> fuckin' Coq
21:08:25 <MissPiggy> (the epigram that isn't quite finished yet, epi 2)
21:08:39 <alise> try agda?
21:08:47 <alise> the flexible operators might help make the syntax more bearable
21:09:08 <Sgeo> I have 16,163 messages in label "Agora"
21:09:22 <alise> I have two rabbits
21:09:38 <alise> (13530 conversations here, comprising more messages)
21:09:44 <MissPiggy> umf gtg
21:09:51 <alise> MissPiggy: rjg spg
21:09:56 <alise> well i look forward to your implementation
21:10:02 <alise> and i'm going to play around with this as a language feature now
21:10:02 <alise> bye
21:10:46 <Sgeo> Well, when I said messages, I meant conversations >.>
21:11:05 <alise> lawl
21:12:59 <Sgeo> Ah
21:13:05 <Sgeo> My Gmail account looks so clean now
21:14:12 <alise> After what?
21:14:38 <alise> MissPiggy: http://pastie.org/812719.txt?key=yvxcfkcsixjpvfijd5gug
21:14:41 <alise> It looks slick as a language feature
21:14:52 <Sgeo> Marking everything as read
21:15:01 <alise> Ah.
21:15:24 <MissPiggy> mmmm
21:15:41 * Sgeo goes to mark all 30398 conversations as unread for no good reason
21:15:44 <alise> http://pastie.org/812720.txt?key=p9mayakdi0z2wka3vzwtq
21:15:48 <alise> MissPiggy: More consistent syntax
21:15:54 <MissPiggy> I guess the natural thing to do now is generalize it to infinite dimensions
21:16:04 <alise> What would that help? :P
21:16:23 <alise> MissPiggy: one thing I don't like is
21:16:34 <alise> if you have a function that's the composition of two columns, it doesn't need to be a column
21:16:39 <alise> in fact it shouldn't be
21:16:40 <alise> but
21:16:52 <alise> in functional programming you don't have to distinguish columnular and non-columnular functions
21:16:57 <alise> it seems a bit awkward to have to do so, in fact
21:17:11 <MissPiggy> well I should say something here,
21:17:21 <MissPiggy> suppose we defined t1 = []`snoc`... a bunch of stuff...
21:17:31 <MissPiggy> and t2 = t1`snoc`... some more stuff...
21:17:50 <alise> (note: in mine, since tables would be compile-time, they would "mutate")
21:17:54 <alise> (so no need to make new names)
21:18:13 <MissPiggy> so t1's type would express that it defines N-functions over some (M-constructor'd) datatype
21:18:22 <alise> MissPiggy: your system is a vulnerability
21:18:27 <MissPiggy> and t2 would define more functions over a data type that is an extension
21:18:44 <alise> you can define a new row, and when defining the columns for that row, put in some evil code that breaks the assumptions, and the abstraction, of code using the column
21:18:47 <alise> easy fix though:
21:18:52 <MissPiggy> suppose that x is a value, and you wanted to apply it
21:18:55 <alise> just add constraints requiring proofs
21:18:57 <alise> voila, security
21:19:07 <MissPiggy> you would need to PROJECT and EVALUATE the function out of the table
21:19:08 <alise> MissPiggy: apply it?
21:19:11 <alise> right
21:19:20 <MissPiggy> like projeval t1 "f2" x
21:19:32 <alise> in mine, just f2 x
21:19:33 <alise> :P
21:19:46 <MissPiggy> yeah
21:20:26 <MissPiggy> I don't think there is any vulnerability though
21:20:31 <alise> I do think http://pastie.org/812720.txt?key=p9mayakdi0z2wka3vzwtq is remarkably elegant though
21:20:42 <alise> MissPiggy: not if you make sure you have constraints on the functions
21:20:46 <MissPiggy> yeah
21:20:49 <alise> like any good dependent programmer will
21:20:58 <alise> plus you'd have to inject code into the system anyway
21:20:58 <MissPiggy> s/programmer/type system/
21:20:59 <MissPiggy> :p
21:21:00 <alise> and if you can do that, well...
21:21:02 <alise> MissPiggy: touche
21:21:17 <alise> maybe we've discovered the Nth major paradigm
21:21:24 <alise> table-oriented programming
21:21:28 <alise> (not to be confused with SQL :P)
21:21:33 <MissPiggy> lol
21:21:59 <MissPiggy> maybe I should use agda :/
21:22:27 <MissPiggy> ohhh I just thought of somethingn
21:22:30 * alise tries to translate http://pastie.org/812720.txt?key=p9mayakdi0z2wka3vzwtq into Haskell, through whatever tricks necessary
21:22:32 <alise> MissPiggy: wut
21:22:44 <MissPiggy> haha I don't think you can turn that into haskell
21:22:51 <alise> worth a try
21:22:56 <MissPiggy> this this good plugin for Coq I can try out
21:22:59 <alise> its type-system is TC with GHC extensions you know
21:23:13 -!- tombom has joined.
21:25:31 * MissPiggy doesn't know what a TC type system is for
21:25:47 <alise> Point is, it has type-level functions and a whole lot of other trickery.
21:25:52 <alise> It's everything apart from dependent, pretty much.
21:25:55 <MissPiggy> TC or not, it still doesn't have lambda
21:26:04 <MissPiggy> oh well you can do everything in SK
21:26:18 <pikhq> TC means it is equivalent to lambda in computational power, though.
21:26:33 <alise> MissPiggy: it does have lambda
21:26:37 <alise> you just have to define them elsewhere
21:26:41 <pikhq> And compiling lambda to SK is trivial. Annoying, but trivial...
21:26:41 <alise> okay, so it doesn't have lambda
21:26:46 <alise> but it has first-class functions (types)
21:31:54 <AnMaster> internet archive is really slow today it seems
21:32:07 <AnMaster> even more than usually
21:32:38 <AnMaster> (theory: it takes as long to go back in time as it took to get to the current point from then originally)
21:32:43 <alise> heh
21:33:14 -!- cheater2 has quit (Ping timeout: 252 seconds).
21:33:40 -!- cheater2 has joined.
21:35:06 <Sgeo> What good alternatives are there to C++?
21:35:57 <Sgeo> C-like alternatives, I mean. Not talking about Haskell here
21:36:05 <AnMaster> Sgeo, C?
21:36:17 <Sgeo> With OOP, preferably
21:36:21 <AnMaster> objective c then
21:36:27 <MissPiggy> why not haskell?
21:36:57 <MissPiggy> a lot of people that got fed up with C++ because they couldn't push template metahacking it far enough moved to haskell
21:37:23 <alise> a lot of people that got fed up with Haskell because they couldn't push type-system metahacking it far enough moved to Epigram
21:38:35 * Sgeo wikis
21:38:45 <pikhq> Sgeo: C, Objective C, D...
21:38:49 <MissPiggy> yeah Objective C
21:38:54 <alise> Objective D++
21:38:58 <MissPiggy> lol
21:39:00 <alise> the language with literally every feature
21:39:04 <pikhq> Objective C++ is a real thing.
21:39:15 <alise> AND SO IS OBJECTIVE D++
21:39:38 <pikhq> Just not implemented.
21:39:55 <alise> yes it is
21:39:57 <alise> apple implement it
21:40:04 <alise> and so does gcc because of that
21:40:05 <MissPiggy> ummm lol
21:40:08 <Sgeo> Hm, I shoulld probably learn D
21:40:13 <alise> don't. it's shit
21:40:20 <Sgeo> How so?
21:40:34 <alise> first of all, the toolchain situation is hopeless; really terribly hopeless. you have no idea how hard it is just to get a working D compiler. D2 with all the fancy features? Forget it.
21:40:41 <alise> It's been like this for years, and I mean years.
21:40:44 <alise> Secondly, it is not a designed language.
21:40:51 <alise> It is a pile of features, shat on each other.
21:45:01 * Sgeo wonders what it would be like to take a computer course where he's not guaranteed an A
21:45:40 <alise> Probably much like being in a different building.
21:47:13 <MissPiggy> hm?
21:48:14 <Sgeo> MissPiggy, I _think_ alise is saying I should switch schools in order to actually get challenging classes
21:48:21 <MissPiggy> oh
21:48:51 <alise> Well, if you're basically guaranteed an A in every class you're either a really excellent programmer or in a bad school.
21:48:59 <alise> Or have done the classes before. :P
21:49:16 <alise> You may be a really excellent programmer, but the probabilities are weighted in the direction of bad school.
21:49:43 <Sgeo> I know the other students think I'm an excellent programmer..
21:49:44 <alise> MissPiggy: I'm getting the example translated, slowly
21:49:53 <alise> Sgeo: They could just be realy bad programmers, though. :P
21:49:59 <Sgeo> alise, I think that that's the case
21:50:02 <alise> I'm not dissing you, just being all probabilitying.
21:50:37 <MissPiggy> you're so bayesian!
21:53:10 <alise> totally mon
21:54:34 <alise> MissPiggy: do you have any idea how many times i've seen the word "kind mismatch" in the past few minutes
21:55:36 <MissPiggy> hahaha
21:55:46 <Sgeo> Kinds are basically the type of tyoes? Maybe is * -> *?
21:56:02 <MissPiggy> Sgeo you are correct
21:56:27 <alise> yar
21:56:39 <alise> *words
21:56:50 <alise> {-# LANGUAGE KindSignatures, RankNTypes, GADTs, FlexibleContexts #-}
21:56:52 <alise> a sure sign of madness
21:58:24 <alise> ffff
21:58:27 <alise> ohh
22:04:09 * Sgeo tries to make a website that doesn't support Chrome work in Chrome
22:05:19 <Sgeo> Does Chrome not support getElementById?
22:06:56 <alise> ...
22:06:57 <alise> haha
22:07:59 <Sgeo> It looks like it should
22:08:06 <Sgeo> Some googling suggests it doesn't
22:09:03 <Sgeo> It's supported
22:10:18 <Sgeo> Ugh
22:10:26 <Sgeo> Does it have something to do with the fact that it's in a table?
22:11:45 <oklopol> Sgeo: my average in math is still A (called 5 here), recently thought i'd failed my first exam (apparently i just failed by my own standards), and it mostly felt nice to know the pressure to succeed every time was lifted.
22:12:26 <oklopol> i don't know if you actually wanna get A's, if you do, that might be relevant.
22:13:22 <alise> i think he means more "a programming class that isn't really easy"
22:13:52 <oklopol> yeah, probably, that's why i hastily added the second line :P
22:13:57 <oklopol> i'll reread what he said
22:14:27 <oklopol> hmm yeah
22:14:45 <oklopol> then it'd probably feel nice, since taking trivial courses feels is a waste of time
22:14:53 <oklopol> ...
22:14:57 <oklopol> another great sentence
22:15:16 <oklopol> i should stop trying, i clearly haven't woken up yet
22:15:51 <Sgeo> They're trivial for me
22:15:58 <Sgeo> I don't know if they're trivial for most people
22:16:47 <oklopol> well i mean taking courses that are trivial for you is a waste of time.
22:17:13 <Sgeo> I do need to get a degree
22:17:38 <oklopol> i suppose, i prefer to live in the moment
22:18:05 <alise> a degree from a bad school sounds exciting
22:18:52 <alise> MissPiggy: btw if you separate classes from their methods, and make methods functions, you almost get the table solution
22:19:23 -!- coppro has joined.
22:19:27 <MissPiggy> almost?
22:21:16 <alise> well if you make a subclass you're not obligated to extend the previous functions to handle it unless you explicitly specify that
22:21:19 <alise> so you need to add that rule
22:21:22 <alise> hi coppro
22:21:27 <coppro> hi
22:21:27 * alise (ehird)
22:21:44 <coppro> any particular reason?
22:22:11 <oklopol> i think he just likes you
22:22:15 <alise> lol
22:22:19 <coppro> :P
22:22:29 <alise> I decided to see if people would treat me differently if they believed I had ovaries
22:22:41 <oklopol> i was like oooh want summa that
22:22:53 <oklopol> but then i realized you were a guy
22:22:57 <alise> since this is basically the only channel I go in and #haskell is very noisy, this is not such a successful experiment
22:23:01 <oklopol> after reading a few of your lines
22:23:03 <coppro> lol
22:23:04 <alise> xD
22:23:13 <alise> MY TALKINGS ARE VERY FEMININE
22:23:25 <coppro> I don't think I behave any different towards women on the internet
22:23:35 <MissPiggy> did I just PM alise?
22:23:48 <MissPiggy> this stupid client thinks // means /
22:24:09 <coppro> real life is a different story :P
22:25:29 <oklopol> i want to have sex with every girl i see both online and irl (necessary and sufficient condition for being male), but usually i only show it on irc, because as we all know it's really funny.
22:25:44 <alise> MissPiggy: do any existing dependent langs have isa :: a -> Set -> Bool
22:25:46 <alise> probably
22:26:00 <MissPiggy> isa??
22:26:08 <MissPiggy> you mean like equality check?
22:26:28 <coppro> oklopol: I suspect the LGBT community has some pitchforks ready for you
22:27:00 <oklopol> :P
22:27:23 <oklopol> i've been known to raise people's pitchforks
22:27:38 <coppro> ...
22:27:47 <oklopol> "..."?
22:27:49 <oklopol> pervert
22:27:53 <coppro> there we go
22:28:44 <oklopol> i wish i had water
22:28:46 <oklopol> ->
22:29:32 <alise> MissPiggy: anyway do you think Complex :: Set; Complex = {_+i_ m n | m ← Real, n ← Real} is good notation for set construction?
22:29:41 <alise> i dunno, I think:
22:29:45 <alise> data Complex :: Set where
22:29:48 <MissPiggy> alise I think isa is probably inconsistent
22:29:56 <alise> _+i_ :: Real -> Real -> Complex
22:30:00 <alise> is easier to understand
22:30:06 <alise> but it's also "specialer"
22:30:07 <coppro> _+_i?
22:30:09 <MissPiggy> that {} stuff is horrid
22:31:17 * coppro has chem homework... should probably do it
22:34:35 -!- alise has quit (Ping timeout: 248 seconds).
22:35:08 * MissPiggy should DEFINITELY do LOTS of work right now
22:35:11 <MissPiggy> but I am doing stuff instead
22:35:23 <MissPiggy> hm this is not a very wise thing to do
22:37:21 -!- tombom has quit (Ping timeout: 260 seconds).
22:38:19 -!- oerjan has joined.
22:40:42 -!- Gregor has quit (Ping timeout: 258 seconds).
22:41:05 -!- madbr has joined.
22:41:56 -!- bsmntbombdood has quit (Read error: Operation timed out).
22:43:10 -!- Gregor has joined.
22:43:14 -!- ehird has joined.
22:43:17 <ehird> 14:30:09 <MissPiggy> that {} stuff is horrid
22:43:18 <ehird> you're horrid.
22:43:21 <ehird> 14:30:07 <coppro> _+_i?
22:43:22 <ehird> nice
22:43:25 <ehird> alas, both are ambiguous
22:43:29 -!- bsmntbombdood has joined.
22:43:30 <ehird> 3 +i 4 could be 3+(i 4)
22:43:42 <ehird> 3 + 4 i could be 3 + (4 i)
22:44:05 <coppro> then make i the Imaginary operator
22:44:08 <ehird> 14:29:48 <MissPiggy> alise I think isa is probably inconsistent
22:44:09 <ehird> why
22:44:13 <ehird> it's just type checking
22:44:24 <ehird> 14:23:48 <MissPiggy> this stupid client thinks // means /
22:44:25 <coppro> _ + _ :: Real -> Imaginary -> Complex
22:44:29 <ehird> i didn't see it, my connection went wonky
22:44:32 <ehird> coppro: no way.
22:44:33 <ehird> :P
22:44:49 <ehird> 14:23:25 <coppro> I don't think I behave any different towards women on the internet
22:44:56 <ehird> you probably do, sexism is incredibly ingrained in society.
22:46:12 <ehird> coppro: then again ambiguous operators are all the rage
22:46:17 <ehird> if_then_ plus if_then_else_
22:46:29 <ehird> (if x then y else z) could be (if x then (y else z))
22:46:32 <ehird> where else is a variable name
22:46:46 <ehird> not that if_then_ makes any sense without an else clause but still
22:46:57 <Deewiant> What about an else by itself
22:47:12 <MissPiggy> ehird, oh nevermind, since it returns Bool it doesn't matter
22:47:15 <ehird> Deewiant: that's a name.
22:47:21 <ehird> MissPiggy: as opposed to?
22:47:24 <MissPiggy> if it gave some evidence then it might cause a problem
22:47:36 <ehird> ah
22:47:48 <ehird> yeah i was wondering whether to make it give evidence, decided against it
22:48:18 <ehird> _::_ :: a -> (a::Set) -> a
22:48:28 <ehird> MissPiggy: also I was thinking about:
22:48:40 <ehird> how to do quantification
22:48:46 <ehird> id :: λa. a -> a
22:48:46 <ehird> or
22:48:53 <ehird> id :: {a::Set} -> a -> a
22:48:54 <ehird> or even
22:49:14 <ehird> id :: λ(a::Set). λ(_::a). a
22:49:19 <ehird> the last one isn't feasible unfortunately
22:49:23 <ehird> because you can't say λInteger.
22:49:26 <MissPiggy> use capital lambda instead of small lambda
22:49:36 <ehird> to be sugar for?
22:49:37 <MissPiggy> hm
22:49:42 <MissPiggy> no wait I'm wrong
22:50:07 <ehird> eh?
22:51:10 <Sgeo> Why does a legitimate script feel a need to obfuscate its strings?
22:51:40 <Sgeo> I see no good reason to say "\x75n\x64\x65fined"
22:52:52 <ehird> undfined?
22:52:56 <ehird> oh
22:52:56 <ehird> undefined
22:53:00 <ehird> Sgeo: filtering of something
22:53:10 <Sgeo> hm?
22:55:40 <ehird> maybe undefined is filtered by something
22:58:29 <Sgeo> They do the same thing elsewhere in the code
22:58:32 <Sgeo> Including error strings
22:58:42 <Sgeo> "\x41jax\x20\x63allba\x63\x6b er\x72\157\x72\x3a s\x6f\x75rce\x20url n\x6ft foun\x64\041\x20\012\x0d\012\x0dPlea\x73e ver\x69fy i\x66 y\x6fu ar\x65 usi\x6eg an\x79 URL\x2drew\x72itin\x67 co\x64e a\x6ed s\x65t \x74he \x41jax\x55rl\x20pro\x70er\x74y t\x6f m\x61t\x63h\x20th\x65 U\x52L \x79ou\x20ne\x65d."
22:59:07 <ehird> I don't know; I'm not psychic.
22:59:33 <ehird> MissPiggy: so do you think quantified types should make the type of the function a type-level function from a set to a set, or have it be an implicit parameter of the function?
22:59:37 <ehird> probably the latter i guess
23:00:31 <MissPiggy> I don't even know what that means
23:00:40 <MissPiggy> which function?
23:01:07 <ehird> id :: λa. a -> a
23:01:08 <ehird> or
23:01:13 <ehird> id :: (a::Set) -> a -> a
23:02:28 <ehird> erm
23:02:28 <ehird> or
23:02:32 <ehird> id :: {a::Set} -> a -> a
23:03:06 <MissPiggy> oh okay
23:03:07 <MissPiggy> and ?
23:08:20 <coppro> [15:44:32]<ehird>you probably do, sexism is incredibly ingrained in society.
23:09:20 <oerjan> it's in your genes, pal
23:09:26 <coppro> I should clarify; I will treat someone I am familiar with differently depending on their personality, including sex and gender. By default, however, I don't make any attempt to distinguish between the two.
23:09:32 <coppro> of course it is
23:09:57 <coppro> I certainly treat women differently in person
23:13:02 <ehird> mm
23:13:03 <ehird> maybe.
23:13:09 <coppro> but unless I have a particular reason to do so, I don't associate gender with someone over the internet
23:13:20 <coppro> likewise for other traits, such as age and race
23:14:24 -!- sshc has quit (Quit: leaving).
23:14:27 <ehird> Right, but if you know someone's female you'll probably treat them differently.
23:15:01 <coppro> Depends on the context
23:15:13 <coppro> but yes
23:19:21 <oklopol> i usually treat women differently because they are completely different
23:20:07 <oerjan> it's those venusian antennas
23:20:37 <oklopol> ISN'T IT THE GUYS WHO HAVE... nm
23:20:45 <coppro> ...
23:20:52 -!- kar8nga has quit (Remote host closed the connection).
23:21:41 <ehird> you know what annoys me
23:21:53 <pikhq> Stupidity?
23:21:54 <ehird> the hardest part of doing lambda calculus and stuff is the variable renaming
23:21:58 <ehird> it's fucking bullshit
23:22:01 <ehird> nobody wants to rename variables
23:22:05 <ehird> stop using a shitty representation
23:22:06 <ehird> ugh
23:22:49 * coppro ponders a bit of psychology
23:23:23 <oklopol> psychology is too hard
23:23:34 <oklopol> have i mentioned i just love wolframalpha?
23:23:38 <oerjan> that's just what you _think_
23:23:46 <MissPiggy> why do you love wolframalpah
23:24:08 <oklopol> because i can write things like "integrate (-1/(e^(a-t+i*pi)-1)) with respect to t" and just know it understands what i mean
23:24:51 <oklopol> i don't think it's ever misinterpreted me, even though i just write like i would to a human
23:25:07 <MissPiggy> cool
23:25:07 <coppro> It's misinterpreted me :(
23:25:10 <coppro> especially with set stuff
23:25:13 <oklopol> i'm not saying it's actually that great a parser, it's just others are incredibly stupid.
23:25:19 <coppro> yeah
23:25:22 <coppro> agree with that
23:25:29 <oklopol> well i just use it for integrals, because i hate them (suck at them)
23:25:52 <oklopol> what kind of set stuff have you asked it?
23:26:23 <oerjan> hm i definitely had to rephrase things a bit when solving equations/graphing
23:26:39 <oklopol> you solved equations?
23:26:46 <oklopol> may i ask why?
23:27:25 <oklopol> (have you been doing math behind my back! :''()
23:27:45 <MissPiggy> so how does wolfram alpha work?
23:28:11 <oklopol> fancy parser, then stick the result into mathematica, prolly
23:28:21 <oerjan> it was just something trivial about population growth
23:28:44 <ehird> it's 1.5 million lines of mathematica, so i assume it's just a list of hardcoded query * response pairs.
23:29:23 <oklopol> it's mostly the i and pi sort of simple stuff that i love i don't always have to explain to it, "(-1/(e^(a-t+ipi)-1))" works as well
23:30:06 <oklopol> heh
23:30:15 <oklopol> oerjan: okay, that's fine then
23:30:18 <oklopol> i was getting jealous
23:31:08 -!- FireFly has quit (Quit: Leaving).
23:31:51 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:34:27 * Sgeo seems to still have an active imagination
23:34:59 <oerjan> no that's not imagination. those raptors you see coming toward you are _real_.
23:35:16 <Sgeo> lol
23:37:19 <Sgeo> The worlds that I create in my head
23:37:34 <Sgeo> Although both the major one and this one have me as a major Mary Sue
23:37:56 <Sgeo> In the major one, I'm essentially God
23:38:02 <Sgeo> and in this recent one, I'm fighting God
23:39:09 <oerjan> stop stealing my ideas!
23:56:42 -!- MizardX has quit (Ping timeout: 248 seconds).
23:59:10 -!- gm|lap has joined.
2010-02-07
00:00:34 <Sgeo> I just put Eliezer in charge
00:00:37 <ehird> dependent types are so sexy
00:01:03 * Sgeo returns to reality
00:01:19 <Sgeo> intuitionalistic type theory? o.O
00:02:05 <MissPiggy> what about it??
00:03:01 <Sgeo> Since when is intuition valid in math? (note: I haven't actually read the article)
00:03:08 <MissPiggy> haha
00:03:11 <coppro> intuition leads to valid math
00:03:22 <MissPiggy> well you can apply lots of common sense arguments
00:06:10 <oerjan> intuitionism is more about rejecting the parts of math that are _not_ intuitive, like the axiom of choice
00:06:16 <oerjan> afaiu
00:07:23 <oerjan> and the law of excluded middle
00:08:28 -!- MigoMipo has quit (Remote host closed the connection).
00:09:55 <ehird> [00:00] <Sgeo> intuitionalistic type theory? o.O [00:02] <Sgeo> Since when is intuition valid in math? (note: I haven't actually read the article)
00:09:57 * ehird facepalms
00:11:48 <coppro> The law of the excluded middle is usually intuitively correct
00:12:50 <ehird> excluded middle seems incredibly intuitive to me
00:12:54 <MissPiggy> yeah you can prove it for anything that has decidibility
00:12:55 <ehird> either something's right, or it isn't
00:12:57 <MissPiggy> lol
00:13:03 <ehird> in our brains there isn't any
00:13:10 <ehird> "god doesn't exist, but god doesn't not exist!"
00:13:26 <pikhq> oerjan: I think it's just axiom of choice that gets people.
00:16:34 <MissPiggy> P \/ ~P is consistent but it's not really true
00:19:37 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
00:19:41 <ehird> MissPiggy: why not?
00:19:49 <ehird> what is neither true nor false?
00:20:01 <MissPiggy> any independent axiom
00:20:46 <ehird> what do you mean by that?
00:20:57 <ehird> they're false if you don't include them
00:21:12 <pikhq> They're true if you do include them.
00:21:24 <pikhq> (defined to be true, in fact)
00:22:25 <ehird> of course
00:22:27 <MissPiggy> if you don't include an (independent) axiom it's not provable but neither is it's negation
00:22:38 <ehird> MissPiggy: well yes, but provable != true
00:22:52 <ehird> the axiom is one of either true or false, you just can't know which
00:23:02 <ehird> and so it doesn't matter
00:23:03 <MissPiggy> I agree that provability is a subset of truth
00:23:27 <MissPiggy> but if you cannot prove something, then it is not acceptable to conclude that it is false
00:23:40 -!- coppro has joined.
00:24:12 <ehird> yes, I wasn't thinking properly
00:24:26 <MissPiggy> an idependent axiom is not necessarily true or false, because you can negate some of them -- such as the continuum hypothesis
00:24:32 <ehird> anyway, the axiom is either true or false; however, it is literally unknowable which it is, and since it never matters if it's true or false, it can be ignored entirely
00:24:36 <MissPiggy> or even that well founded set one (I think)
00:24:41 <MissPiggy> which gives you infinitely deep sets
00:24:52 <MissPiggy> which axiom?
00:25:07 <ehird> any non-included independent one
00:25:15 <ehird> anyway i'm just arguing that excluded middle is intuitive
00:25:16 <ehird> not that it's true
00:25:23 <ehird> i <3 constructivism
00:25:38 <ehird> and good look with forall a. Either a (a -> Void)
00:25:39 <MissPiggy> if we work in a theory T and there is an independent axiom A, then T+A and T+~A are both stronger than T
00:25:41 <ehird> *luck
00:26:12 <pikhq> ehird: Yeah, it is quite intuitive.
00:26:20 <ehird> axiomatic :: a; axiomatic = error "Axioms are unquestionable"
00:26:37 <ehird> excludedMiddle :: forall a. Either a (a -> Void)
00:26:39 <ehird> excludedMiddle = axiomatic
00:26:53 <pikhq> To the point that it's such an obvious axiom for mathematic discussion that it's almost forgotten. :P
00:27:23 * MissPiggy still doesn't follow what ehird was saying
00:28:01 <MissPiggy> statements low on the arithmetic heirachy can be independent but /actually/ true
00:28:13 <ehird> let A be an independent axiom not in system S
00:28:33 <ehird> in S, either A or ~A; however, in S, one cannot know which it is, and it never matters
00:28:40 <ehird> therefore, the excluded middle stands
00:28:51 <MissPiggy> I don't know how you conclude this "in S, either A or ~A"?
00:28:57 <ehird> (in reality *whispers* you couldn't prove it to be either because it isn't, but it never ends up contradicting the excluded middle)
00:29:05 <ehird> (so it's effectively either in a nebulous way)
00:29:07 <MissPiggy> what if both S+A and S+~A are (equally) consistent?
00:29:09 <ehird> MissPiggy: given excluded middle
00:29:18 <ehird> S+A and S+~A are irrelevant in S
00:29:25 <MissPiggy> oh you're basicalyl arguing that assuming excluded middle then excluded middle? I agree with this
00:29:31 <ehird> well, no
00:29:39 <ehird> you said excluded middle is consistent but not really true
00:29:44 <MissPiggy> yes
00:29:52 <ehird> i'm arguing that it is "true" even from outside the system, when considering that system
00:31:16 -!- ehird has changed nick to alise.
00:31:25 <alise> forgot to change nick on reconnect :P
00:31:53 * alise tries modelling the dependent lambda calculus; she's helping me.
00:33:52 <coppro> first person in an ACTION?
00:34:14 <MissPiggy> lol
00:34:21 <MissPiggy> She is a haskell enhancement
00:34:37 <alise> She's lovely.
00:34:59 <alise> She does all the work for you, and makes it just like you've got dependent types - almost.
00:35:05 <alise> She really does well to Haskell.
00:35:38 <alise> MissPiggy: isn't it awful that basically syntactic parts are holding up the representation of this? :(
00:35:48 <alise> we need some sort of awesome semanticity in the language of semanticity.
00:36:08 <coppro> now /me is really confused
00:36:18 <MissPiggy> alise everything is syntax :P
00:36:22 <MissPiggy> everything you write down anyway
00:36:37 <MissPiggy> it's utterly confusing when you start to think about everything as syntax..
00:36:46 <alise> coppro: She would help you not be confused. She is the one you should accept; she'd help.
00:37:04 <coppro> who is the 'she'?
00:37:07 <alise> She's the Strathclyde Haskell Enhancement, don't you know?
00:37:17 <alise> She has a homepage at http://personal.cis.strath.ac.uk/~conor/pub/she/.
00:37:34 <alise> MissPiggy: yeah, but I mean things like representing forall a. b
00:37:35 <coppro> ah
00:37:52 <alise> that's the thing that fucks up nice GADT representations of things
00:37:56 <alise> having to bind things to names then use them
00:38:07 <coppro> new rule: lower-case acronyms spelled the same as a pronoun should be banned
00:38:08 <MissPiggy> oh I'm not sure what you mean
00:38:26 <MissPiggy> not having lambda in haskell is quite awful
00:38:35 <MissPiggy> lambda *in the type level* in haskell
00:39:04 <alise> coppro: She hates you for saying that.
00:39:08 <pikhq> MissPiggy: That's simple enough to fix.
00:39:14 <MissPiggy> is it?
00:39:15 <alise> I should name something "and".
00:39:21 <pikhq> Write a Template Haskell compiler from lambda to SK.
00:39:25 <pikhq> And define type-level SK.
00:39:29 <pikhq> Voila.
00:39:30 <MissPiggy> hmm
00:39:36 <alise> We should use the best tool, and... And: it's the best way to get things done.
00:39:47 <alise> MissPiggy: yeah i *really* want type-level lambda
00:39:51 <alise> it'd be so easy to do this
00:39:52 <pikhq> The power of compile-time execution.
00:39:57 <alise> she should just let me do {\x -> ...} :(
00:40:30 <MissPiggy> alise do it! based on pikhqs idea
00:40:44 <MissPiggy> oh
00:40:53 <MissPiggy> we also need higher order unification though...
00:41:09 <alise> lol
00:43:32 <oerjan> a unified world order
00:43:43 <alise> MissPiggy: basically what I want to write is
00:43:52 <alise> Forall :: (Type -> Type) -> Type
00:43:56 <alise> which works at the value-level
00:43:59 <alise> but at type-level? nope.
00:44:27 * alise wonders what she lifts that to
00:45:14 <alise> data SheSingType :: * -> * where{-# LINE 0 "Dunno.lhs" #-} SheWitForAll :: forall sha0. (SheChecks ((Type -> Type) ) sha0) => SheSingleton ((Type -> Type) ) sha0 -> SheSingType (SheTyForAll sha0){-# LINE 0 "Dunno.lhs" #-}
00:45:15 <alise> yikes
00:45:22 <alise> but uh
00:45:24 <alise> data SheTyArrow x1 x2 = SheTyArrow x1 x2{-# LINE 4 "foo.hs" #-}
00:45:26 <alise> pretty benign that
00:45:33 <alise> (shitty arrow)
00:48:10 * Sgeo is watching Early Edition
00:49:15 <alise> MissPiggy: alas, she does not transmogrify (a -> b) into (* -> *)
00:50:26 <alise> a dependently-typed lambda calculus with names and some small sugar + optimisations for numbers and tuples and extracting the latter would make an excellent language to compile to
00:50:36 <alise> since you could just translate your types into its types, rather than check them yourself
00:52:35 <MissPiggy> yeah
00:52:42 <MissPiggy> a bit difficult to get good error messages though
00:52:59 <MissPiggy> oh I bet you could have some fun with Ziggeraut and that idea
00:54:21 <alise> MissPiggy: well it would have a feature where you would tag arbitrary expressions with strings
00:54:51 <alise> So you'd tag each atomic type in your lang to the composite type in the underlang, and if you have fancy composites that you compile away tag those too
00:55:00 <alise> (it'd give error reports in a convenient format to extract this stuff from)
00:55:05 <alise> some sexp-like thing
00:55:24 <alise> ugh, if I can't get this working very soon I'm doing it in agda
00:56:00 <alise> she doesn't really let you say (foo::Bar)
00:56:07 <alise> you can do pi (foo::Bar). but I think that's different in some way
00:56:08 <MissPiggy> why the fuck doesn't zsh read .profiele
00:56:17 <alise> it does but not if you have .zsh_profile
00:59:23 * alise writes what she wants to write then tries to coerce it so that she likes it (i'm going to call myself she because one, it'll result in even more being-named-she ambiguity and two, fuck you english language, I'll do what I want)
00:59:37 <alise> i'm fighting sexism in language or something
00:59:47 <MissPiggy> linguistics!
00:59:49 <oerjan> MissPiggy: speeling?
01:00:01 <alise> http://www.cs.virginia.edu/~evans/cs655/readings/purity.html is genius btw
01:00:47 <alise> I hate you, gedit. I WANT A NEW WINDOW, NOT A TAB
01:00:49 <alise> I HAVE A WINDOWING SYSTEM!
01:03:08 <alise> data Type where ForAll :: (Type -> Type) -> Type Arrow :: (a::Type) -> ID a -> ID TyTy -> Type -> Type TyVar :: ID a -> a TyTy :: Type
01:03:12 <alise> I want to write that.
01:03:22 <alise> data Term :: {Type} -> * where ID :: Term {Forall (\a -> Arrow a a)}
01:03:24 <alise> I want to be able to write that.
01:04:14 <MissPiggy> the problem with ForAll is that you can't unify it against anything nontrivial
01:04:21 <MissPiggy> because of haskell being very careful...
01:04:35 <alise> TyVar :: ID {a} -> {a}
01:04:39 <alise> is that actually valid in a GADT, I wonder?
01:04:43 <MissPiggy> (I've tried to do a non-She version of this before)
01:04:43 <alise> (desugars to just ID a -> a)
01:04:50 <alise> er, wait
01:04:53 <alise> same thing as ID Type -> Type, heh
01:05:16 <MissPiggy> wow I have Coq Epigram and urweb installed
01:05:22 <alise> QUICK INSTALL AGDA
01:05:31 <MissPiggy> heh I should do
01:05:38 <MissPiggy> hmm maybe cabal will install agda for me
01:06:56 <alise> it does
01:06:58 <alise> you actually do your type checking and evaluating and filling in and everything from inside emacs, feels very alive
01:07:05 <alise> http://pastie.org/812913.txt?key=7bkzz7vxkuiclztxsdof9q
01:07:07 <alise> note that you need to set it up with emacs
01:07:09 <alise> Here's what I want to be able to write.
01:07:10 <alise> it depends entirely on it
01:07:24 <alise> *ID {TyTy} -> Type
01:07:46 <alise> To do this with she, I need to figure out how to say (a::T).
01:08:17 -!- SimonRC has quit (Ping timeout: 246 seconds).
01:09:05 <alise> I don't think she lets you do pi (a :: T) from inside T :(
01:09:20 <alise> instance (SheChecks (pi (a :: Type). ID {a} ) sha0, SheChecks ( ID {TyTy} ) sha1, SheChecks ( Type ) sha2) => SheChecks (Type ) (SheTyArrow sha0 sha1 sha2) where sheTypes _ = SheWitArrow (sheTypes (SheProxy :: SheProxy (pi (a :: Type). ID {a} ) (sha0))) (sheTypes (SheProxy :: SheProxy ( ID {TyTy} ) (sha1))) (sheTypes (SheProxy :: SheProxy ( Type ) (sha2))){-# LINE 4 "foo.hs" #-}
01:09:21 <alise> sigh
01:09:45 <alise> Arrow :: forall a . SheSingleton ( Type) a -> ID (a) -> ID (SheTyTyTy) -> Type -> Type{-# LINE 16 "foo.hs" #-}
01:09:47 <alise> the problem is
01:09:58 <alise> I want a bona-fide Type value at the value level
01:10:04 <alise> but I want it reflected in the type system too
01:10:08 <alise> and this is crossing the colon
01:10:09 <alise> which isn't allowed
01:11:36 -!- SimonRC has joined.
01:12:02 <oerjan> cross-colonization is dangerous
01:12:28 <MissPiggy> :D
01:12:30 <alise> I think oerjan just renamed dependent types to a far more awesome name
01:13:00 <oerjan> it's apparently a medical term
01:13:46 <MissPiggy> is that when your colon gets angry
01:13:52 <alise> >_<
01:13:58 <alise> Maybe I should name my language Alise, it's a nice name
01:14:49 <alise> MissPiggy: is conor mcbride on irc?
01:16:14 <alise> SheTyTyTy
01:16:16 <alise> shitty titty
01:19:12 <MissPiggy> alise no
01:19:44 <MissPiggy> which is good because he'd probably not get much done if he was
01:19:46 <alise> heh
01:19:53 <alise> okay, I've decided that it's totally fruitless using haskell for this
01:19:58 <alise> agda time????
01:20:03 <MissPiggy> he reads the dependent_types reddit though
01:20:32 * MissPiggy doesn't have agda installed yet because of an error
01:22:06 -!- cheater3 has joined.
01:22:41 <alise> what error?
01:22:59 <alise> now calling my language alise leads to the problem that the channel would be #alise but that's my nick and that would be strange,.
01:23:02 <alise> *strange.
01:23:31 <coppro> the solution is to stop pretending to be a girl
01:23:44 <alise> who said i'm doing that now eh
01:23:51 <alise> PERHAPS MY MOTIVATION CHANGED, perhaps i just like this name
01:23:55 <coppro> also stop pretending to be Canadian
01:24:22 <MissPiggy> oooooooooooooo
01:24:35 <alise> ??
01:24:42 <alise> oh
01:24:42 <alise> eh
01:24:43 <alise> har har
01:25:06 <alise> http://en.wikipedia.org/wiki/Alice_(programming_language) ok, alise would not be a good name for the language
01:25:07 <oklopol> i don't get it
01:25:19 <alise> oklopol: canadians say eh, eh
01:25:24 -!- cheater2 has quit (Ping timeout: 276 seconds).
01:25:28 <oklopol> oh.
01:25:39 <alise> MissPiggy: what error did you get?
01:25:53 <MissPiggy> cabal: cannot configure QuickCheck-2.1.0.3. It requires ghc -any
01:25:53 <MissPiggy> There is no available version of ghc that satisfies -any
01:26:48 <alise> pigworker = conor right?
01:26:52 <MissPiggy> yeah
01:26:57 <alise> MissPiggy: just checking. you have ghc right :D
01:27:02 <MissPiggy> yes I have ghc lol
01:27:15 <alise> ehh, ask #haskell
01:29:42 <alise> cabal: cannot configure Agda-2.2.6. It requires base ==4.2.* && ==4.2.* For the dependency on base ==4.2.* && ==4.2.* there are these packages: base-4.2.0.0. However none of them are available. base-4.2.0.0 was excluded because of the top level dependency base -any
01:29:43 <alise> asdfghjkl;
01:31:32 <MissPiggy> huh
01:31:36 <MissPiggy> that's odd
01:33:00 <alise> maybe i'll upgrade cabal-install
01:33:42 * Sgeo needs an ST monad tutorial
01:33:50 <alise> it's like io but only has iorefs
01:33:51 <alise> fin
01:34:00 <Sgeo> Or something along the lines of how to hold onto state in Haskell
01:34:23 <MissPiggy> dude ST is awesome
01:34:38 <MissPiggy> what do you mean hold onto State though?
01:34:40 <MissPiggy> ST is about mutation
01:34:47 <MissPiggy> mutable reference with O(1) update
01:34:57 <MissPiggy> so might be the wrong thing
01:36:35 <oerjan> Sgeo: ST is for temporarily using (real) mutable state inside a theoretically pure computation
01:37:59 <oerjan> if you want permanent mutable state you must use IO with IORef, MVar (thread safe) or maybe that TVar thing which i'm not sure about
01:38:03 -!- alise has quit (Ping timeout: 248 seconds).
01:38:17 <oerjan> iirc
01:38:41 <oerjan> and if you just want to _simulate_ state using pure computations, use State / StateT
01:39:22 <Sgeo> I want a nice tutorial on all of these
01:39:28 <oerjan> hm
01:39:44 <MissPiggy> haskell is learned by word-of-IRC
01:40:25 <oerjan> indeed, never seen a tutorial in my life </gross exaggeration>
01:42:14 -!- alise has joined.
01:42:37 <Gregor> Tutorials are just lies that the MAN uses to keep us down.
01:42:48 <MissPiggy> yeah!
01:42:51 <oerjan> seems this one only has State of those, but it has many other monads: http://www.haskell.org/all_about_monads/html/index.html
01:43:51 <alise> Antecedent
01:44:13 <oerjan> huh?
01:46:17 * Sgeo bookmarks
01:47:12 * coppro <3 LaTeX
01:57:17 <alise> MissPiggy: instead of a partial monad, would it be possible to have just an "infinite computation" monad?
01:57:25 <alise> dunno
01:57:26 <alise> just a thought
01:57:47 <MissPiggy> what's the difference
01:57:52 <MissPiggy> same thing no?
01:58:20 <alise> well, partial lets you have things in-between
01:58:24 <alise> few-steps-delayed
01:59:03 <alise> data Inf a = Further a (Inf a); bottom = Further bottom bottom -- I think
01:59:13 <augur> MissPiggy!
01:59:47 <oerjan> an infinite computation monad is just a partial monad where you cannot distinguish Further . Further from Further
01:59:52 <oerjan> i think
02:00:06 <alise> oerjan: it's a partial monad where Later has some not-fully-computed value, and there is no Now
02:00:24 <oerjan> oh right no Now either
02:00:27 <MissPiggy> hey augur :)
02:00:56 <oerjan> it's essentially opaque outside of runtime, then, like IO...
02:00:59 <augur> have you clarified your sex and/or gender to ehird?
02:01:13 <MissPiggy> clarified butter
02:01:18 <MissPiggy> melted and seived
02:01:34 <augur> i'd clarify your butter
02:01:38 <MissPiggy> lol
02:01:40 <oerjan> until you clarify we shall have to refer to you by the generic pronoun (s)h/it
02:01:57 <alise> :D
02:02:11 <alise> oerjan: not opaque
02:02:18 <alise> with a definition of the naturals you'd get
02:02:29 <alise> Further [] $ Further [1] $ Further [1,2] $ Futher [1,2,3] etc
02:02:37 <alise> Bottom would be Further ? $ Further ? $ Further ?
02:02:39 <alise> for some ?
02:03:03 <alise> Length of an infinite list would be Further 0 $ Further 1 $ Further 2 $ ...
02:03:09 <oerjan> argh the question mark, my old nemesis
02:03:19 <oerjan> aka fake unicode
02:03:26 <alise> It's an actual question mark.
02:03:34 <oerjan> i know, i checked the logs
02:03:37 <alise> You *could* designate one value as the end valuie and leave the rest as placeholders to emulate Now/Later, so it's definitely equivalent.
02:03:49 <alise> With IO, for instance, you'd have an EndProgram event, and then just Nop, Nop, Nop forever,
02:03:51 <alise> *forever.
02:03:55 <alise> (they'd never be looked at)
02:04:07 <alise> i.e. main_ = main >> exitSuccess
02:04:10 <alise> erm
02:04:16 <alise> main_ = main >> exitSuccess >> main_
02:05:49 <alise> as alise I am getting speedier help in #haskell!
02:06:55 <oerjan> alise: hm this is possibly isomorphic to Reader Natural
02:07:21 <alise> right but not in a total language
02:07:41 <alise> MissPiggy: btw does agda allow something like foo :: Void -> a; foo _ = bottom?
02:07:47 <MissPiggy> yes
02:07:49 <alise> if you have a Void you have bottom anyway, so you're not making anything worse
02:08:11 <MissPiggy> you can do
02:08:13 <MissPiggy> foo :: Void
02:08:15 <MissPiggy> foo = foo
02:08:19 <MissPiggy> if you turn off the termination checker
02:09:15 <oerjan> data Void where bottom :: Void -> a
02:09:31 <oerjan> oh wait
02:09:32 <alise> no, data Void
02:10:05 <MissPiggy> foo :: Void -> a
02:10:07 <MissPiggy> foo ()
02:10:13 <oerjan> alise: foo x = case x of { }
02:10:24 <MissPiggy> that's the syntax to define it by "pattern match" on an empty type
02:11:07 <oerjan> that's intuitively correct, at least
02:11:38 <oerjan> MissPiggy: um you mean that foo () means the same thing?
02:11:46 <alise> Fun with the list monad: (| return ({[1..2]}, {[3..4]}) |)
02:11:53 <MissPiggy> oerjan same as what?
02:12:01 <oerjan> MissPiggy: as my case
02:12:18 <MissPiggy> oerjan, yeah (except that agda doesn't have case)
02:12:23 <oerjan> ok
02:12:32 <MissPiggy> oh wait this isn't agda is it?
02:12:36 <MissPiggy> oh it is..
02:12:37 -!- Asztal has quit (Ping timeout: 265 seconds).
02:16:11 <alise> hmm... (| f {x} |) -> f <$> x, (| f {x} y |) -> join (f <$> x <*> return y)
02:18:01 <alise> (| f {g x} y {foo (| mab {z} |)} |) -> join (return f <*> g x <*> return y <*> foo (join (return mab <*> z)))
02:19:41 -!- SimonRC has quit (Ping timeout: 246 seconds).
02:20:06 <alise> oh, and (| x; y |) -> do (| x |); (| y |)
02:23:33 <alise> cat = (| putStr {getContents} |)
02:23:50 <alise> catLines = (| putStrLn {getLine}; catLines |)
02:24:19 <alise> MissPiggy: I wonder if you could make that table thing into the actual data type system of a functional lang
02:24:34 <alise> a gadt is shorthand for creating a table and adding some rows
02:24:43 <alise> functions are automatically turned into columns
02:25:04 <alise> (if they pattern match on the constructors; otherwise, they must be compositions of existing functions that do)
02:25:10 <alise> (and so don't need to be columns)
02:25:27 <alise> add some syntax for adding rows and voila
02:27:02 -!- SimonRC has joined.
02:27:04 <MissPiggy> yeah it could work
02:27:06 <MissPiggy> I think!
02:27:20 <MissPiggy> but well it only defines a small class of functions
02:27:26 <MissPiggy> (one that are folds)
02:27:35 <alise> I don't see what you mean
02:28:01 <alise> also, it's ridiculous how much low hanging fruit there is in abstraction design
02:28:21 <alise> dependent types. a powerful module system ala ML. these tables. etc.
02:28:31 <alise> Yet nobody is putting them into their languages.
02:29:13 <MissPiggy> about time to start doing it I think :)
02:29:23 <alise> i'm on it
02:29:56 <alise> i'm so gonna have to hire some phds to write the compiler, though
02:30:18 <alise> proving the type system sound with all this stuff will be *way* out of my league for one :P
02:31:07 <MissPiggy> why not make a really simple dependent type core that has already been proved, and implement all your high language constructs in terms of it?
02:31:14 <MissPiggy> then you don't have to worry about consistency
02:31:32 <MissPiggy> this is the approach Coq takes (And the one Agda doesn't)
02:31:39 <alise> well, that's my plan, but some of the features would be really, really convoluted to compile
02:31:43 <alise> so need to be in the base language
02:31:46 <alise> and thus complicate things
02:31:53 <MissPiggy> ah I see what you mean
02:31:58 <alise> also, because all the existing core systems suck, so i'd need to make a new one anyway :) :D
02:32:49 * alise gets another feature idea
02:32:51 <alise> literal brackets
02:33:01 <alise> a pair of brackets whose contents is interpreted according to a separate, extensible syntax
02:33:03 <alise> why?
02:33:29 <alise> Well, you could have [[ /...regexp.../options ]], you could have [[ foo@bar.com ]], etc. etc. without polluting and worrying about clashes with the main syntax.
02:33:42 <alise> template haskell comes close to that, but not quite
02:35:45 <alise> (in one of its features)
02:36:44 <alise> (| email <penguinofthegods@gmail.com> {fileContents <~/message.txt>} |)
02:42:11 <alise> It'd be nice if there was a way to do symbolic computation without writing a parser in the lang
02:43:28 <coppro> just have a Symbolic type
02:43:34 <coppro> and use expression templates
02:43:52 <alise> whatever that is, it's probably a C++ abomination.
02:44:28 <coppro> Expression templates are when overloading is used to build up expressions in data
02:44:57 <coppro> e.g. x^2 might give some value which represents "x^2", which is exactly what you want in symbolic computation.
02:45:02 <alise> It's more the "any undefined value just sits there" thing.
02:45:46 <coppro> what about transcendental constants? For accurate math, they must be treated very much like unknowns
02:48:11 <alise> What I mean is, you need to coerce the language into, upon seeing "ilikebigbuttsandicannotlieyouothercreaturescantdeny", give it some value instead of barfing that it's not bound.
02:59:54 <Gregor> Time for GREGOR'S LANGUAGE CHALLENGE
03:00:07 <Gregor> Write a language with the following name:
03:00:11 <Gregor> ATTACK OF THE FLYING MONADS
03:01:10 <coppro> alise: That seems like a pretty easy feature to add
03:03:56 <alise> Adding arbitrary features is bad. Adding general constructs is good./
03:03:57 <alise> *good.
03:14:39 <alise> MissPiggy: would you believe i'm still at the "install agda" step in my dependent lc plan... >_<
03:14:40 <alise> i hate software
03:14:53 <MissPiggy> me too it sucks
03:15:19 <alise> and _this_ is why i have a grand os vision >:|
03:16:30 <alise> how to get agda in my lovely dream world: on their website, click a fancy link. it traces all the dependencies across the web, using things that basically amount to a set of type signatures to find dependencies that can be satisfied by multiple packages, and automatically integrating the latest versions, from decentralised sources, updatable, into the current value ecosystem.
03:18:00 <coppro> it's called Debian
03:18:26 <alise> yeah everything's called something else if you ignore pertinent words like decentralised, type signatures, and value ecosystem
03:18:49 <coppro> Debian supports decentralisation
03:19:03 <alise> if you believe your statement, you are not using the word i meant.
03:19:07 <coppro> don't even know what you mean by type signatures and value ecosystem
03:19:35 <alise> then perhaps you shouldn't make snarky comments about debian
03:19:44 <coppro> no, I just assume you're insane
03:19:51 <coppro> :P
03:19:57 <coppro> actually, you know what? I retract that
03:19:58 <coppro> it wasn't funny
03:20:10 <alise> bitbucket :: a -> ()
03:20:13 <alise> bitbucket _ = ()
03:20:15 <alise> > bitbucket coppro
03:20:35 <alise> coppro: perhaps slightly inappropriate given my current situation :P
03:20:43 <alise> retraction accepted, but i don't really mind
03:20:47 <oerjan> wait, we cannot claim we're all mad here any more? damn doctors.
03:20:59 <coppro> alise: "value ecosystem" turns up 0 relevant hits
03:21:13 <alise> so does your face.
03:21:21 <coppro> as for type signatures, I have no clue how that relates to packages
03:22:05 <alise> if you understood "value ecosystem" it would make more sense :P
03:22:25 <coppro> then explain it, because apparently you're the only one who does
03:23:00 <pikhq> Gregor: Attack of the Flying Monads, eh?
03:23:03 <alise> i'm sure others could infer it based on the component words, but imagine a smalltalk system; a living environment of objects, and that is all there is; there is no "running a file"
03:23:15 <alise> like that, but with functional-programming values instead of objects.
03:23:18 <coppro> ah
03:23:21 <Gregor> pikhq: No, ATTACK OF THE FLYING MONADS
03:23:27 <pikhq> Gregor: Definitely needs to use the function instance for monads as the only way to be Turing-complete.
03:23:36 <coppro> alise: I retract my retraction :P
03:23:39 <Sgeo> That (except for the functional bits) sounds like Unununium
03:23:48 <pikhq> (>>= is S, return is K)
03:23:49 <alise> coppro: yeah my system isn't unusable, i must be crazy
03:24:03 <pikhq> (... Erm, no. >>= is not S. XD.)
03:24:08 <alise> Grog XD.
03:24:16 <oerjan> S is ap
03:24:22 <coppro> Sgeo: Roentgenium
03:24:24 <pikhq> Yes.
03:24:39 <pikhq> And ap is defined in terms of return and >>=...
03:24:50 <oerjan> hm lessee
03:24:58 <pikhq> So, >>= and return suffice for combinator calculus.
03:25:00 <coppro> alise: It's a pipe dream.
03:25:06 <alise> coppro: the os is called unununium
03:25:09 <alise> also, it's very much not
03:25:17 <alise> these techniques are actually simpler to implement than a traditional unix system
03:25:19 <oerjan> (f >>= g) x = g (f x) x
03:25:24 <alise> it's not one additional layer, it's one _less_ layer of separation
03:25:29 <pikhq> Yes, I know.
03:25:43 <pikhq> I just had a bit of a thinko.
03:25:49 <alise> the labelling of anything that is substantially different from the norm as a "pipe dream" is a very common technique to dismiss ideas for no reason whatsoever
03:25:52 <coppro> But it's one layer trying to abstract toom uch
03:25:56 <coppro> *too much
03:25:59 <alise> you are wrong, and do not understand it
03:26:04 <coppro> occasionally pipe dreams work out
03:26:07 <alise> for one, smalltalk has existed since the 70s, and its implementation was _very_ simple
03:26:10 <alise> for two, run Squeak right now
03:26:13 <coppro> sure
03:26:15 <alise> you're using the exact thing I'm describing
03:26:22 <coppro> but as an OS?
03:26:23 <alise> for three, see Oberon OS. it fits on a floppy and does just this.
03:26:26 <alise> Squeak is an OS in a box
03:26:27 <alise> smalltalk is an os
03:26:29 <alise> it was an os
03:26:31 <alise> it booted up the computer
03:26:34 <alise> squeak is descended from it
03:26:38 <alise> it's just in a window now
03:26:42 <pikhq> Smalltalk is one of the simpler OSes.
03:27:05 <pikhq> Since all that the "OS" is is a language runtime...
03:27:11 * Sgeo searches for Smalltalk.NET
03:27:16 <coppro> ah, I think I am misunderstanding
03:27:19 <pikhq> Everything else is just your library.
03:27:27 <alise> coppro: How did you interpret it?
03:28:09 <coppro> eh, I'm not really sure
03:28:18 * coppro tries to think it through
03:29:03 <alise> Believe me, I've thought about this at length; the bits you need to get an automatically persistent, typed, living ecosystem of values is actually incredibly minimal.
03:29:30 <oerjan> pikhq: >>= and return won't give you everything if you use haskell's type system though... no way to type the Y combinator
03:29:33 <alise> A living ecosystem of values is just a running program (ok, with the type information, etc. retained). Persistence? Orthogonal persistence takes a few hundred lines for a dumb version. A version ready for regular OS use? A few thousand lines.
03:29:42 <alise> And... well, that's it.
03:29:53 * coppro needs sleep, he thinks
03:30:02 <alise> The computer's memory becomes a disk cache, and the disk is full of values.
03:30:05 <alise> With types.
03:31:01 <coppro> okay, pretend I wasn't a part of this conversation. I think I was insane.
03:31:08 <alise> A lot of insanity.
03:31:13 <alise> what were you thinking? :P
03:31:33 <pikhq> oerjan: Just discussing ideas for ATTACK OF THE FLYING MONADS.
03:31:41 <pikhq> oerjan: Don't necessarily need Haskell's type system.
03:31:51 <coppro> alise: I'm not sure what I was thinking. Which is why I think I was insane.
03:32:25 <oerjan> pikhq: note that it says MONAD_S_. you cannot use just one ;D
03:32:36 <pikhq> oerjan: Yes, I know.
03:32:49 <pikhq> oerjan: I'm just saying the function instance should be the only thing making it TC. :P
03:33:25 <coppro> there's no reason we have to use the programming concept
03:33:29 <oerjan> hm maybe that reverse state monad would be something for getting fix-points...
03:33:59 <oerjan> then it can still be well-typed
03:34:13 <alise> i <3 the reverse state monad
03:34:38 <coppro> clearly we should be designing this off of music without resorting to chords
03:36:43 * coppro votes for Bach's rendition of the Ode to Joy
03:37:22 <oerjan> bach did that?
03:37:28 <coppro> err
03:37:30 <coppro> Beethoven
03:37:32 * coppro whistles
03:37:44 <alise> Bachovenzart
03:38:53 <oerjan> that would require some reverse state indeed, bach died before schiller was born (1750 vs. 1759)
03:40:42 <oerjan> hm a language based on time travelling anachronisms...
03:41:23 <oerjan> to quit the program, you need to get hitler eaten by a dinosaur.
03:41:50 <coppro> without causing an alternate world war to take its pace
03:41:51 <coppro> *place
03:42:16 <oerjan> _may be_
03:42:22 <alise> yes!
03:42:24 <alise> wikihistory esolang
03:42:47 <alise> you have to do something in germany way back when to compute, but if anything stops hitler becoming an ebil nazi, the program is invalid
03:42:51 <cheater3> is anyone here on vista?
03:42:54 <cheater3> :x
03:42:59 <cheater3> or win 7?
03:43:08 <alise> No, but I do have erectile dysfunction.
03:43:09 * Sgeo is on WinXP
03:43:14 <alise> We all have our issues.
03:45:10 <Sgeo> Me: My email address is ********@gmail.com
03:45:16 <Sgeo> Other person: thats yahoo?
03:45:51 <coppro> alise: you're pulling off the female thing really badly
03:46:51 <alise> Sgeo: Just send the $500,000 so we can complete the transaction.
03:46:56 <alise> coppro: i know rite
03:47:04 <alise> coppro: well everyone knows i'm male in here so there's hardly any point
03:47:08 <alise> and the only other place i dwell is #haskell!
03:47:09 <coppro> true
03:47:13 <coppro> but that's your own fault!
03:47:19 <Sgeo> Talking to someone who randomly came to a nearly dead chat
03:47:27 <alise> so the only affect of this is that i'm referring to myself as "she". well, when i remember.
03:47:46 <oerjan> alise: no wait, erectile dysfunction means you cannot be male, right
03:48:04 * alise scratches head
03:48:05 <Sgeo> o.O
03:48:10 <Sgeo> The person invited me to private chat
03:48:19 <Sgeo> I was in another tab, but I accepted
03:48:19 <alise> SEXY TIME
03:48:24 <Sgeo> THat meant I couldn't see the main chat
03:48:53 <Sgeo> Just closed out of private chat... and apparently before I went into private chat, e said "Let's have sex"
03:49:19 <alise> Ha! I was RIGHT!
03:51:43 <madbr> sex chat... usually that's hard because there's not many girls on IRC
03:52:02 <alise> it was probably in one of sgeo's endless obsessions^Wshitty 3d virtual-reality games from years ago.
03:52:13 <Sgeo> alise, you're psychic
03:52:40 <alise> actually the universe has shown a disturbing tendency to shape what i experience according to me recently
03:53:54 <pikhq> madbr: Though, if you're gay you shouldn't have *too* much trouble.
03:54:21 <pikhq> At least insofar as I can tell, there's more gay men than there are females on IRC. (in general)
03:54:21 <alise> Or botsexual.
03:54:37 <pikhq> If you're botsexual, then it's trivial.
03:55:06 <madbr> pikhq: yes
03:55:16 <alise> Or silensexual.
03:55:26 <coppro> /ignore *@*
03:55:49 <alise> coppro: i'm not ready for that kind of commitment.
03:55:56 <coppro> :P
03:56:01 <pikhq> coppro: /join #brainfuck
03:56:15 <coppro> why?
03:56:26 <pikhq> Silent.
03:56:36 <coppro> ah
03:58:30 <Gregor> Sex chat is easy so long as you're not so damn picky :P
03:59:08 <alise> He knows this from extensive ... research,.
03:59:10 <alise> *research.
03:59:39 -!- Sgeo has quit (Ping timeout: 256 seconds).
03:59:57 <Gregor> If you can get off to chatting with what you assume is a sexy woman online, and some guy in Alabama can get off to pretending to be a sexy woman and chatting with you, then who's really harmed? :P
04:00:03 <pikhq> Clearly, everyone should only have sex chat with Egobot.
04:00:20 <Gregor> `echo I put on my robe and wizard's hat.
04:00:21 <HackEgo> I put on my robe and wizard's hat.
04:00:23 <alise> Gregor: THE IRC SERVER INBETWEEN
04:00:26 <alise> It knows everything
04:00:27 <alise> EVERYTHING
04:00:29 <alise> OH GOD THE HORROR
04:00:49 <madbr> ah, it has probably seen much worse
04:01:20 <alise> "I fling my dung-covered vomit into your urethra."
04:01:28 <Gregor> HOT
04:01:44 <Gregor> Urinal tract infections are SO SEXY.
04:02:46 <oerjan> urinalot of trouble
04:04:54 <madbr> seen worse
04:06:19 <madbr> there was some guy in whatever other channel that had, like, all the fetishes
04:07:41 -!- alise_ has joined.
04:07:50 * coppro picks up the channel and sets it back on the rails
04:07:52 <alise_> I have a fetish...
04:07:53 <alise_> for LOVE
04:07:55 -!- alise has quit (Ping timeout: 248 seconds).
04:07:58 -!- alise_ has changed nick to alise.
04:08:03 <coppro> 'tis a good thing
04:08:11 -!- Sgeo has joined.
04:08:44 <Sgeo> That was screwed ip
04:09:00 <coppro> ip ip ip
04:09:06 <alise> SCREWED, ey?
04:09:35 <coppro> look, I already told you to stop being Canadian. Switching to a y doesn't count.
04:10:58 <alise> uhh
04:11:00 <alise> maple syrup
04:11:00 <alise> eh
04:11:01 <alise> eh
04:11:02 <alise> eh
04:11:02 <alise> eh
04:11:03 <alise> eh
04:11:03 <alise> eh
04:11:03 <alise> eh
04:11:04 <alise> eh
04:11:04 <alise> eh
04:11:04 <alise> eh
04:11:09 <alise> ^ canadians
04:11:37 <madbr> There's no canada like french canada
04:12:52 <coppro> maple syrup is indeed delicious
04:13:21 <Sgeo> So is chapstick >.>
04:14:21 <alise> I'm beginning to suspect that chapstick is an euphemism for something else
04:14:38 <coppro> I'm going to assume it isn't
04:14:43 <madbr> everything in english is an euphemism for sex
04:16:16 <oerjan> i'm afreud so
04:16:26 <alise> madbr: including "english"?
04:16:34 <alise> Or how about ... discombobulated
04:16:43 <madbr> I'll give you english lessons
04:16:48 <oerjan> ooh, look at those bobules
04:17:03 <pikhq> madbr: No, just everything written by Shakespeare.
04:18:02 <alise> Country matters.
04:18:49 <Sgeo> http://tvtropes.org/pmwiki/pmwiki.php/Main/CountryMatters
04:19:47 <alise> I love that Ulysses quote.
04:22:07 <madbr> sgeo: heh, eventually we'll wear out "fuck" and have to switch to "cunt
04:22:08 <madbr> "
04:27:44 <alise> g
04:27:59 <alise> i keep reading my name as aisle
04:28:17 <Sgeo> Pick up the phone booth and aisle?
04:28:44 <madbr> actually that might be a plan if you're a rapper that sells disks to 11 year olds by saying obscenities
04:47:19 <alise> amasses of obulence
04:49:29 <Gregor> I just want to pop open that stick of chapstick, pull out its fleshy inner core and rub it all over my lips.
04:49:34 <Gregor> Chapstick, folks. Chapstick.
04:51:06 <alise> My chapstick is tingling.
04:55:09 <oerjan> freud was wrong. all those people talking about penises are secretly thinking about chapsticks.
05:38:03 -!- Pthing has joined.
05:44:01 -!- jcp has quit (Ping timeout: 264 seconds).
05:45:19 -!- jcp has joined.
06:15:10 -!- oerjan has quit (Quit: Good night).
06:23:58 -!- madbr has quit (Quit: Radiateur).
06:39:27 <Sgeo> HM
06:39:41 <Sgeo> Most examples of using this particular SDK are C. This example is C++
06:40:06 <Sgeo> Wait, no
06:40:08 <Sgeo> Wait, yes
06:41:23 <coppro> O_o
06:41:27 <coppro> link?
06:41:34 <Sgeo> http://wiki.activeworlds.com/index.php?title=Aw_laser_beam
06:42:40 <coppro> which is C++?
06:42:43 <coppro> oh
06:42:45 <coppro> yeah, I see
06:42:46 <coppro> hah
06:43:37 <Sgeo> At first, I forgot that C had structs, so I thought the whole Line thing wouldn't make sense
06:43:56 <Sgeo> Then I realized it does.. but it doesn't have the & pass-by-reference thing.. I think
06:44:38 <coppro> yeah
06:44:41 <pikhq> Only pointers.
06:45:14 <Sgeo> The & stuff is somewhat confusing, tbh
06:45:32 <Sgeo> I don't know why people think pointers are complicated. IMO, they make more sense
06:47:32 <coppro> References are used because operator overloading doesn't work with pointers
07:08:42 -!- coppro has quit (Ping timeout: 240 seconds).
07:11:14 -!- coppro has joined.
07:32:50 <coppro> alise: neat fact: I just discovered that a large portion of another online community thought I was female. No noticeable difference from my side.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:30 -!- jcp has quit (Remote host closed the connection).
08:34:33 -!- jcp has joined.
08:57:27 -!- MigoMipo has joined.
09:07:31 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:18:06 -!- MissPiggy has quit (Quit: Lost terminal).
09:21:39 -!- kar8nga has joined.
09:28:22 -!- BeholdMyGlory has joined.
09:29:03 -!- tombom has joined.
09:49:07 -!- jcp has quit (Remote host closed the connection).
09:54:37 <cheater3> sup guys
10:35:02 -!- MigoMipo has quit (Remote host closed the connection).
10:37:19 -!- tombom_ has joined.
10:39:10 -!- tombom has quit (Ping timeout: 272 seconds).
11:10:49 * SimonRC just got a rather good fortune:
11:10:53 <SimonRC> To converse at the distance of the Indes by means of sympathetic contrivances
11:10:53 <SimonRC> may be as natural to future times as to us is a literary correspondence. -- Joseph Glanvill, 1661
11:24:30 -!- FireFly has joined.
11:58:08 -!- MizardX has joined.
12:20:31 -!- MigoMipo has joined.
13:35:04 -!- Pthing has quit (Remote host closed the connection).
13:48:43 -!- pax has joined.
13:53:02 -!- pax has quit (Ping timeout: 246 seconds).
13:57:29 -!- MizardX- has joined.
13:59:45 -!- MizardX has quit (Ping timeout: 256 seconds).
13:59:58 -!- MizardX- has changed nick to MizardX.
14:08:42 <alise> [07:32] <coppro> alise: neat fact: I just discovered that a large portion of another online community thought I was female. No noticeable difference from my side.
14:08:52 <alise> coppro: remember what I said about me seeming to shape the universe?
14:08:56 <alise> it's getting ridiculous lately.
14:09:30 <alise> i'm *almost* a multiverse solipsist (everyone has their own universe... except, I guess other people in it are "alive" just not the main alive guy for that person)
14:13:49 -!- kar8nga has quit (Remote host closed the connection).
14:18:23 -!- oerjan has joined.
14:20:02 <alise> oerjan: whatever curse you've put on me, stop it
14:20:58 <oerjan> wait, what? i was trying to put a curse on your doctors, not you. must have missed slightly.
14:23:37 <oerjan> also i was pondering more scientific plans. unfortunately they all involve first inventing a working teleport device.
14:28:13 <alise> the universe has been freaking me out since before that :p
14:28:48 <oerjan> also, synchronicities are supposed to increase drastically for _everyone_ as we approach 2012. don't you read the relevant new age literature, sheesh.
14:30:14 <alise> yes, but there's simply not enough space in the non-synchronicitious day for other people to have all theirs, too
14:30:36 <alise> if everyone was having these (I mean, assuming they're not just my imagination), mine wouldn't be so important as to affect the actual TV news
14:30:54 <oerjan> wait, you are affecting the TV news?
14:31:49 <oerjan> unless the TV news are mentioning you, note that the same news could easily be part of several people's synchronicities.
14:32:22 * Sgeo is curious as to what the news is
14:32:24 <alise> well, not as much recently but they *did* have a tendency to talk about things i'd recently thought about (not necessarily heard about; that would be Baader-Meinhof, but thought)
14:32:42 * oerjan has pondered this before, when _he_ felt the news were eerily coincident
14:33:30 -!- cheater3 has quit (Ping timeout: 248 seconds).
14:33:40 <alise> I'm pretty sure it's just the Baader-Meinhof phenomenon and a handful of everyday coincidences (it's not as if they're synchronicities about really obscure stuff)
14:36:29 <oerjan> well in my experience there are only a very few "big" synchronicities, and a tremendous onslaught of small ones, the frequency of which is affected by my personal mood.
14:37:20 <alise> In my experience, you're experiencing a rationality failure due to the tendency of the human mind to notice things that it has recently noticed and ignore those things it hasn't. :)
14:41:08 -!- Pthing has joined.
14:44:23 <oerjan> btw may i recommend the book "The Luck Factor"? it's investigating some of these things from a more scientific point of view.
14:44:55 <alise> from a 1-second google it's actually postulating that luck exists and some have it more than others?
14:45:08 <alise> so much for "scientific"
14:45:14 <oerjan> (well it's more in a popular science form)
14:45:32 <alise> "In this book Richard Wiseman, former magician turned"
14:45:42 <alise> james randi is the only one who can pull off that :P
14:46:54 <oerjan> it actually is not anywhere as non-scientific as it sounds. in fact it basically has your kind of outlook, but then notices (through scientific investigations) that you can _still_ affect your luck.
14:47:24 <oerjan> i.e. even _if_ it's all about perception, you can still affect your luck by changing it.
14:48:04 <alise> Only through working harder to do better (in ways that minutely change seemingly "random" outcomes) because you think you will...
14:48:24 <alise> Which isn't really changing your luck at all, luck would be affecting things you have no control over.
14:49:11 <oerjan> perhaps. this book is about the part you can control though, and why it's still important.
14:49:47 <alise> Well, I don't call things like that chance.
14:50:35 <oerjan> _i_ think there's more than that, of course.
14:51:03 <oerjan> but that book imho goes as far as you can _without_ leaving the scientific worldview
14:51:06 <alise> Many mathematicians seem to believe in the orbiting teapots, though I can't fathom why them specifically.
14:51:14 <oerjan> it was sort of gateway drug for me really
14:51:21 <alise> Maybe because their rational system doesn't say anything about the world.
14:51:28 <alise> So they don't make the connection...
14:52:58 <oerjan> whatever. i'll just have to wait for you to change your opinion ;D
14:55:39 <alise> That's unlikely; I've spent so much time - and in my formative years, too - thinking about this. I never was religious or superstitious - I identified as Christian but only because everyone else did, and *never* thought about it. Then I became an agnostic when I stopped telling people that, then, after much thought, a complete atheist. Then, a few years later, I took a long, hard look at it and concluded that rationality was the b
14:55:50 <alise> Although I'm a lazy slob and don't tend to follow my utilitarian aspirations.
14:56:56 <oerjan> i do not mean that you will change your opinion because you change your basic rationality. i don't think _i_ did, after all.
14:57:09 <alise> You believe in something entirely unfalsifiable.
14:57:22 <alise> That is irrational by definition.
14:57:40 * oerjan sets fire to alise's strawman
14:57:55 <alise> Then what do you believe?
14:58:37 <Pthing> godchat
14:59:10 <oerjan> i believe in synchronicities, the biggest of which have a strange tendency to show up when it is _really_ important that they do so.
14:59:46 <alise> Define synchronicities.
14:59:47 <Pthing> how do you spot a time when it's important to happen
14:59:56 <alise> Pthing: because it happened, obviously! :P
14:59:57 <oerjan> i guess _you_ have never been followed home by a three-legged black kitten when in a particularly self-destructive mood.
15:00:08 <alise> a kitten deciding to follow you
15:00:15 <alise> and it lost a leg because of some happening?
15:00:21 <alise> man, that's spoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooky
15:01:26 <oerjan> whatever.
15:01:33 <Pthing> i mean it
15:01:36 <Pthing> how do you tell
15:01:52 <Pthing> surely there are instances where it could be really important one happens but it doesn't
15:01:52 <alise> if you say "whatever" as a response to something that's a pretty good indicator you're not able to make a rational argument about it
15:02:03 <oerjan> yes, yes.
15:02:10 <oerjan> ok so i'm not rational.
15:02:42 <alise> That sure was easier to convince you of thaan it is for most. Are you sure you didn't already believe that?
15:02:46 <alise> *than
15:02:58 <oerjan> heh
15:03:01 <Pthing> jesus christ, you weren't convincing
15:03:14 <oerjan> i am not _intending_ to be convincing.
15:03:20 <Pthing> i meant alise
15:03:43 <alise> a second ago he was claiming he was rational.
15:03:49 <alise> anyway i didn't say i was convincing
15:03:53 <alise> that was not the word i used
15:04:06 <Pthing> "convince" is the word
15:07:35 <oerjan> ok i'm uncomfortable continuing this conversation. if it's because i'm irrational, so be it.
15:08:13 <oerjan> now iwc.
15:11:30 <oerjan> don't worry martians, the froghurt is cursed anyhow
15:13:42 <AnMaster> anyone know of a tool (for *nix) that renders a pdf (or ps file) and outputs it as one image per page
15:14:34 <AnMaster> alternative: anyone know of a tool to split up a multipage pdf into one file per page (I think ps2eps can be used then, and after that it would be easy to convert to a bitmap format)
15:19:54 -!- cheater2 has joined.
15:20:14 -!- oerjan has quit (Quit: Later).
15:30:11 <AnMaster> hm played with ghostscript's image backends
15:30:16 <AnMaster> they give ugly results
15:30:21 <AnMaster> non-antialiased
15:33:09 -!- MissPiggy has joined.
15:33:22 <alise> hi MissPiggy!
15:34:07 <MissPiggy> hey
15:34:16 <MissPiggy> what's happening
15:34:24 <alise> stuffs
15:38:17 <AnMaster> oh hm you don't need to convert to ps for ghostscript it seems. Not that it is documented in man page that it accepts pdf (at least in the version I have here)
15:38:24 <AnMaster> and that gives antialiased output
15:44:16 <alise> MissPiggy: is the function Set -> Set reasonable that means "the set of all values not in the argument"? seems straying close to russell somehow, but it would be a cool function
15:45:41 <Ilari> alise: Either such function is relative to some universe (and then it would equivalent to set complement) or AFAIK the output will not be a set.
15:46:18 <fizzie> AnMaster: Well, it's a GNU thing; those aren't known for sensible man pages. The actual official documentation is pretty clear on PDF files.
15:46:27 <alise> Ilari: Well, it's relative to the type (∃a.a).
15:46:30 <MissPiggy> alise that sonuds insane
15:46:38 <MissPiggy> can you even compute that?
15:47:01 <alise> MissPiggy: well for the typechecker it's easy
15:47:12 <alise> if the value is in the set we complemented, go all beepy like
15:47:14 <alise> otherwise, smile
15:47:27 <alise> you could construct a type of "everything you cannot `show` (as in Haskell show)" :D
15:47:40 <MissPiggy> hah
15:47:58 * Sgeo is learning the joy of watching TED talks
15:47:59 <fizzie> AnMaster: And in general you have to say something like "-dTextAlphaBits=4 -dGraphicsAlphaBits=4" to get subsample antialiasing. (Can't say offhand why it'd happen by default if you pass in a PDF file.)
15:48:52 <alise> MissPiggy: i guess it's more useful to have complements
15:49:07 <alise> then you can just do (∃a.a) - foo
15:49:10 <fizzie> AnMaster: (And incidentally, my version of the man page does mention the PDF support; starts with "-- Ghostscript, an interpreter of Adobe Systems' PostScript(tm) and Portable Document Format (PDF) languages."
15:49:13 <Ilari> alise: Any value not in set when invoked on empty set is truly everything. And that's proper class, not a set.
15:49:21 <alise> hmm, what uber-general concept can we apply to - to let us define it on sets? :-)
15:49:24 <MissPiggy> sounds a bit SET THEORY to me
15:49:27 <alise> hmm... maybe sets are haskell-ish Nums
15:49:27 * MissPiggy pitchforks
15:49:34 <alise> (+) :: Set -> Set -> Set, yes
15:49:49 <Sgeo> Hm
15:49:52 <alise> (-) :: Set -> Set -> Set, yar
15:50:03 <Sgeo> In my Data Structures class, we made a fraction calculator in C++
15:50:05 <alise> (*) :: Set -> Set -> Set, that'd be a tuple
15:50:12 <Sgeo> Maybe I should make a similar calculator in Haskell
15:50:25 <alise> MissPiggy: Quick, what's set `div` set?!
15:50:27 <alise> :P
15:50:34 <alise> (Not required for Num, but amusing to think about anyway.)
15:51:18 <Ilari> One property of sets is that for any set, there is strictly larger set.
15:53:03 <Ilari> More construcively: All sets have powerset, and that powerset is always strictly larger than the set itself.
15:53:48 <alise> There's no bigger set than (∃a.a).
15:53:50 <MissPiggy> is that a property of sets hm
15:53:57 <alise> After all, it contains every single value...
15:54:33 * Sgeo guesses that the character he can't see is forall [inverted A]
15:54:39 <MissPiggy> it's exists :P
15:54:44 <alise> Sgeo: It's flipped E.
15:54:46 <alise> (exists)
15:54:52 <Ilari> alise: If there isn't anything bigger than it, it can't be a set, it is proper class.
15:54:54 <Sgeo> oh
15:55:07 <alise> In haskell, you would write it (forall a. a) because it overloads forall for existential quantification.
15:55:17 <alise> Ilari: Yes, but type theorists poop on set theory for breakfast.
15:57:09 <Ilari> Another funky feature: Sets with cardinality above Aleph-0 include undescribable elements.
15:57:57 <alise> Such is the strange world of the Curry-Howard isomorphism.
15:59:22 <alise> Hmm.
15:59:44 -!- kar8nga has joined.
15:59:47 <alise> (\(x::T). ...) -> (\x. (\x'. ...) (x::T)) if you have ::.
16:00:17 -!- Asztal has joined.
16:00:48 <alise> OTOH, (x::T) -> (\(x'::T). x') x if you have that. :P
16:05:02 -!- MissPigg1 has joined.
16:05:27 -!- MissPiggy has quit (Disconnected by services).
16:05:30 -!- MissPigg1 has changed nick to MissPiggy.
16:05:44 <alise> *Main> L (TyTy :-> (\(T a) -> a :-> (\_ -> a))) <interactive>:1:0: No instance for (Show (ID -> Term -> Term))
16:05:53 <alise> Woot
16:06:16 <alise> (That's (\...) :: (a::Set) -> a -> a)
16:08:14 <alise> Hmm.
16:08:19 <alise> I don't actually need to have separate Term and Set types.
16:08:49 <alise> L :: Term -> (Term -> Term) -> Term
16:08:51 <alise> (:->) :: Term -> (Term -> Term) -> Term
16:09:01 <alise> Whenever I see two things of the same type, I feel this intense urge to unify them.
16:09:11 <alise> But they're not the same :p
16:09:12 <alise> *:P
16:10:26 <alise> Starting to think that that function idea isn't so great, though, because then I can't, you know, show lambdas.
16:12:48 <alise> idL = L (A SetSet (A (N Top) (N (Dip Top)))) (N Top)
16:12:49 <alise> That's better.
16:14:56 * Sgeo drinks a Red Bull shot
16:15:02 * alise drinks a horse
16:15:18 <Sgeo> It came free with a few hundred dollars worth of books
16:15:42 <alise> Let me guess, it's awful and terrible for you.
16:15:55 <Sgeo> My dad says that I better not buy this, because it's exactly the same as a cup of coffe, but more expensive
16:16:02 <alise> Don't let Ilari hear about this or you'll never stop hearing about sugar :-)
16:16:07 <alise> *coffee, also.
16:16:52 <Sgeo> He says if I want something convenient, there are pills
16:17:33 <alise> Or how about sleeping better and not needing things like that.
16:17:36 <alise> *Main> idL \((*) -> (t) -> dt). t
16:17:37 <alise> Woot
16:19:05 <Sgeo> If sugar's main issue is that it causes obesity or something, I don't see a problem
16:19:29 <alise> Destroys your liver
16:19:49 <Sgeo> Oh
16:21:20 -!- jcp has joined.
16:26:37 <alise> Uh oh, my dependently-typed lambda calculus seems to require an infinite loop in typechecking.
16:29:18 * Sgeo does like the taste
16:29:24 <Sgeo> And I hate the taste of coffee
16:29:38 <alise> Drink tea. It has more caffeine.
16:30:14 <Sgeo> Drinking tea takes time
16:31:16 <alise> MissPiggy: HALP http://pastie.org/813531.txt?key=ahcwvmgdprki24beyw5gq
16:31:24 <alise> Sgeo: So does coffee
16:31:35 <Sgeo> alise, indeed
16:31:45 <alise> Anyway if you want a cheap boost the expense of your health feel free.
16:31:46 <MissPiggy> whatos :.?
16:31:50 <Sgeo> Drinking this Red Bull shot took maybe a few seconds
16:31:50 <alise> , he said, while drinking cola.
16:31:55 <alise> MissPiggy: application
16:32:03 <alise> I would call it :$ but it's left-associative As God Intended
16:32:23 <alise> rT is
16:32:23 <alise> uh
16:32:24 <alise> in
16:32:27 <alise> (x::T) -> ...
16:32:32 <alise> rT is the ...
16:32:38 <MissPiggy> f : (a : A) -> B[a],
16:32:43 <MissPiggy> x : a |-
16:32:45 <alise> wait, rT isn't actually a function
16:32:46 <MissPiggy> f x : B[x]
16:32:52 <alise> so i can't do that
16:33:00 <alise> L :: Term -> Term -> Term A :: Term -> Term -> Term
16:33:08 <alise> maybe the second Term _should_ be a lambda
16:33:13 <alise> so that it's expressed as T -> (\x -> ...)
16:33:19 <MissPiggy> yeah you could try that
16:33:24 <MissPiggy> is that haskell though?
16:33:36 <alise> yeah but it'd actually be written as
16:33:38 <alise> not with a real lambda
16:33:40 <alise> but with an L term
16:33:41 <MissPiggy> you can't do HOAS in agda
16:33:44 <MissPiggy> oh oky
16:33:55 <alise> like
16:33:59 <alise> idL = L (A SetSet (A (N Top) (N (Dip Top)))) (N Top)
16:34:03 <alise> (N is the variable stuff)
16:34:18 <alise> A, arrow, pushes a new variable and runs the code
16:34:26 <alise> so does L, so maybe A's second argument should be an L
16:37:14 <alise> In fact, I think I meant it to be an L.
16:37:39 <alise> MissPiggy: but the problem is, when I check the L in the A to make sure that it takes the right type of argument, and to make sure its result type is a Set, we run into the exact same code path
16:39:32 <MissPiggy> hmm
16:40:31 <alise> i was thinking i could rely on glorious laziness to bottom out in the end but i don't think so
16:41:22 <MissPiggy> for a well typed program you don't need to worry about evaluation order
16:42:37 <alise> yeah but my typechecker is sequential not lazy
16:42:40 <alise> maybe monad
16:43:05 <alise> the problem is that every type is, I think, infinite
16:43:11 <alise> every type has a type of the type and the typey type type
16:45:39 <MissPiggy> infinite O_O
16:45:46 <MissPiggy> well you can just stop at Set
16:45:48 <alise> INFINITE DIMENSIONS OF THE COSMIC SOUL
16:45:50 <MissPiggy> Set is well formed
16:45:54 <alise> yeah but
16:45:57 <alise> ok lemme give you an example
16:46:40 <alise> note: a->b pushes the value of the a-typed value on the variable stack; top of var stack is t, second is dt, third ddt, etc
16:46:50 <alise> (\(* -> t -> dt) -> t) whatever
16:46:54 <alise> erm
16:46:57 <alise> right
16:46:57 <alise> so
16:47:05 <alise> first we get the function's type
16:47:07 <alise> simple enough
16:47:12 <alise> then whatever's typef
16:47:14 <alise> *type
16:47:21 <alise> then we check the types match
16:47:22 <alise> but now
16:47:27 <alise> we have to pass whatever to the (t -> dt) bit
16:47:36 <alise> which is a function, it needs to be typeofwhatever -> set
16:47:41 <alise> so we need to check it
16:47:45 <alise> check (that bit :. whatever)
16:47:50 <alise> ...but we're in the clause for (f :. x)
16:47:52 <alise> so we go forever
16:47:54 <alise> get it?
16:48:00 <MissPiggy> no
16:48:25 <alise> why not
16:48:35 <alise> oh wait
16:48:39 <alise> A's argument can't be an L
16:48:45 <alise> because that would cause an infinite nestingness
16:48:45 <alise> okay
16:48:48 <alise> i may be able to solve this with my genius
16:48:52 <alise> i'm terribly clever
16:48:55 <MissPiggy> lol
16:49:09 <alise> heh, to write my typechecker i need to write eval :/
16:49:25 <MissPiggy> yes you do
16:49:31 <alise> yep.
16:49:36 <MissPiggy> that's expectet
16:49:44 <alise> yeah, still :P
16:49:45 <alise> fuck, at the end of this I'm going to write Term -> String
16:49:48 <alise> its name?
16:49:49 <MissPiggy> by the way
16:49:49 <alise> toC
16:49:58 <alise> if there's one thing i'm getting out of this hellhole of coding
16:49:58 <MissPiggy> eval is pretty easy to write
16:50:03 <alise> i'm gonna get some half-efficient code
16:50:05 <alise> yeah i know
16:50:13 <MissPiggy> http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=95
16:50:16 <MissPiggy> this technique
16:50:17 <alise> using `data ID = Top | Dip ID` for my names will make renaming and shit really terribly easy
16:50:18 <MissPiggy> NbE
16:50:39 <alise> well, that type is just de bruijn
16:50:43 <alise> it's just nat
16:50:47 <alise> maybe i should just use ints
16:50:53 <alise> MissPiggy: i can't use that technique, can't use haskell funcs
16:50:57 <alise> want to be able to `show` things nicely
16:50:58 <MissPiggy> why not?
16:51:08 <MissPiggy> you can quote it and show the quoted form
16:51:14 <MissPiggy> ro you could implement show on the functions
16:51:17 <alise> ?
16:51:21 <MissPiggy> just apply them to a gensym
16:51:25 <alise> hmm
16:51:26 <alise> good idea, maybe
16:51:31 <alise> yeah ok
16:51:38 <alise> so wait.
16:51:44 <alise> why do i need de bruijn stuff
16:51:47 <alise> if i have it as functions
16:52:06 <MissPiggy> or the syntax :P
16:52:13 <alise> ?
16:52:29 <alise> i'm confused
16:52:50 <MissPiggy> well the syntax should be de bruijn, and the semantics is haskell functions
16:53:11 <MissPiggy> hmmm, does it even need to be de bruijn
16:53:18 <MissPiggy> maybe you are right and it doesn't matter
16:53:36 <MissPiggy> i'm not sure anymore
16:54:00 <alise> well
16:54:04 <alise> I need some sort of name to do the "pass the gensym"
16:54:21 <alise> so i guess it's best to keep it like that
16:54:43 <alise> you know what, I'm gonna write my evaluator first
16:54:45 <alise> then my typechecker
16:58:16 -!- MigoMipo has quit (Remote host closed the connection).
16:59:58 <alise> MissPiggy: that post confuses me
17:00:05 <alise> why does it have a separate type for evaluation?
17:00:58 <MissPiggy> let me explain a simpler version
17:01:23 <MissPiggy> suppose you have a syntax like: data Exp = Num Int | Var Ref | Add Exp Exp,
17:01:43 <alise> ya
17:01:51 <MissPiggy> hmmmmmm that was a bad example
17:01:57 <alise> no variable binding :P
17:02:33 <MissPiggy> well the point is this, you have a type Syntax and another type Semantics,
17:02:44 <MissPiggy> eval :: Syntax -> Semantics, quote :: Semantics -> Syntax
17:02:51 <MissPiggy> now normalize = quote . eval :: Syntax -> Syntax,
17:03:20 <MissPiggy> the reason it gives you a normal form is because factoring through Semantics quotients out anything you don't care about
17:03:34 <alise> tell you what i'll just do it how the article says
17:03:45 <MissPiggy> for example if you have an associative binary operator (i.e. trees of a), you can use [a] as semantics, to quotient out associativity
17:03:46 <alise> but as far as i can tell Syntax = Semantics if I use haskell functions in the actual data types
17:04:08 <MissPiggy> then normalize ((p * q) * x * (y * z)) = p * (q * (x * (y * z)))
17:04:30 <MissPiggy> now if we use the semantic domain Sem = Sem -> Sem, we have a model of lambda calculus
17:04:41 <MissPiggy> and thats why it does beta normalization
17:05:22 <MissPiggy> (it's actually omre like data Sem = Sem (Sem -> Sem), oh and you need to be able to quote back out of it, so Sem = Sem (Sem -> Sem) | Var Ref)
17:05:54 <MissPiggy> if you use HOAS, syntax might be: data Syn = F (Syn -> Syn) | App Syn Syn | ...,
17:05:59 <MissPiggy> Sem doesn't have App
17:07:12 <alise> ok, so Sem is the untyped lambdas
17:07:19 <alise> and Syn is my dependently-typed language in its entirety
17:07:31 <alise> why Var Ref
17:07:36 <alise> why not just keep track of vars with haskell arguments
17:07:55 <MissPiggy> well you could I dunno
17:08:19 <MissPiggy> the reason that I like ints for bound variables is you can do eval context (Var ref) = context ! ref
17:08:34 <MissPiggy> oh that should be !!
17:09:20 <alise> what i mean is
17:09:23 <alise> you don't need variable bindings
17:09:25 <alise> because Sem -> Sem
17:09:27 <alise> the first Sem gets a name
17:09:28 <alise> voila
17:11:26 <alise> no?
17:19:57 <alise> MissPiggy: :/
17:20:00 <alise> this is confusing
17:20:57 <MissPiggy> eyeah it
17:20:58 <MissPiggy> is
17:21:03 <MissPiggy> I'll help
17:21:46 <alise> yaay<3
17:25:41 <MissPiggy> look at this trivial example
17:25:53 <MissPiggy> data Syn = N Int | Add Syn Syn
17:25:57 <MissPiggy> data Sem = Sem Int
17:26:16 <MissPiggy> eval (N i) = Sem i ; eval (Add x y) = eval x <+> eval y
17:26:21 <MissPiggy> quote (Sem i) = N i
17:26:51 <alise> yah
17:26:59 <MissPiggy> nf = quote . eval, now if x, y :: Syn are equal (like 1 + 4 is equal to 2 + 2 + 1 for example), so the property is:
17:27:18 <MissPiggy> x === y --> nf x == nf y
17:27:27 <MissPiggy> === is extensional equality, and == is syntactic
17:27:57 <MissPiggy> so you can also do something like monoid simplification,
17:28:16 <MissPiggy> data Syn = Id | Var V | Op Syn Syn
17:28:26 <MissPiggy> data Sem = Sem [V]
17:28:37 <alise> ok, can i tell you the "issue" i'm having in code?
17:28:42 <MissPiggy> eval (Id) = [] ; eval (Var v) = [v] ; eval (Op x y) = eval x ++ eval y
17:28:47 <MissPiggy> oops
17:28:51 <MissPiggy> should be <++>
17:29:08 <alise> data Syn = Lam (Syn -> Syn) | App Syn Syn
17:29:13 <MissPiggy> quote (Sem []) = Id ; quote (Sem (x:xs)) = Op x (quote (Sem xs))
17:29:16 <alise> one, what's the Sem for this? and two, when I quote it, how would I stringify it?
17:29:21 <alise> there's no "dummy gensyms" to pass
17:29:34 <MissPiggy> and you have nf = quote . eval, and nf normalizes out identity and associativity
17:29:37 <MissPiggy> !!!!!!!!!!
17:30:08 <MissPiggy> yes Syn is a bit harder, we can build it up in two stages
17:30:24 <MissPiggy> data Sem = Sem (Sem -> Sem)
17:30:38 <MissPiggy> eval (Lam f) = Sem (\x -> eval (f x))
17:30:47 <MissPiggy> eval (App f x) = eval f <$> eval x
17:30:59 <MissPiggy> Sem f <$> x = f x
17:31:07 <MissPiggy> now of course you can't quote this yet,
17:31:35 <MissPiggy> so we can add
17:31:42 <MissPiggy> data Sem = ... | Neutral N
17:31:56 <MissPiggy> data N = NVar Var | NApp N Sem
17:32:04 * Sgeo looks at some old Haskell code he wrote to try to get a taste for Haskell again
17:32:19 <alise> MissPiggy: that confuses me
17:32:59 <Sgeo> I can't believe I actually wrote
17:32:59 <MissPiggy> What exactly happened here is that we generalized the problem - in order to make recursion work on it
17:32:59 <Sgeo> show $ uncurry quad $ (\(x:y:[]) -> (x,y)) $ map read $ words line
17:33:06 * Sgeo should attempt to understand that
17:33:17 <MissPiggy> this is pretty much always a magic step, but it'll becme obvious in retrospect
17:33:19 <alise> MissPiggy: I'll have to think about this
17:33:24 <alise> maybe I should write the typechecker first :P
17:33:27 <MissPiggy> (same with induction proofs, when you do a magic generalization)
17:33:36 <alise> typechecker is Syn -> Maybe Syn (Syn includes types), not Sem right?
17:33:41 <alise> even though it involves evaluation at some point
17:33:45 <MissPiggy> anyway, the idea is that we generalized from CLOSED terms, to OPEN terms with N free vars,
17:33:49 <MissPiggy> clearly CLOSE = OPEN 0
17:33:57 <MissPiggy> but now we have OPEN n (any n)
17:34:03 <alise> i must be really dumb today :)
17:34:38 <MissPiggy> so if we have an term like OPEN 3, suppose the context is [oa, ob, oc]
17:34:39 <Sgeo> Ok, I understand what it does now :D
17:34:47 <Sgeo> I don't know if I could ever write it again though
17:34:53 <Sgeo> Plus, there's probably a more elegant way
17:35:02 <MissPiggy> and the term is maybe Sem (\x -> oa <$> x <$> ob)
17:35:54 <MissPiggy> well
17:36:42 <MissPiggy> the term is Sem (\x -> Neutral (NVar oa) <$> x <$> Neutral (NVar ob))
17:36:42 <MissPiggy> anyway,
17:36:42 <MissPiggy> the recursion steps inside the binder and operates on "Neutral (NVar oa) <$> x <$> Neutral (NVar ob)" which is an open term with N+1 variables
17:36:48 <MissPiggy> of course you substitute x into say Neutral (NVar od)
17:37:29 <MissPiggy> once the lambda body is quoted you abstract it back out to get a syntax lambda term
17:38:25 <MissPiggy> ^ this is one bit where de bruijn syntax is slightly easier/nicer than HOAS I guess
17:41:13 <MissPiggy> You can also make quote type directed, so that it eta-expands
17:41:21 <MissPiggy> but that's just more tricky details :D
17:42:18 -!- MissPiggy has quit (Changing host).
17:42:18 -!- MissPiggy has joined.
17:43:53 * uorygl attempts to read Sgeo's code.
17:44:02 <uorygl> Kind of annoying how you have to read it from right to left.
17:44:19 <Sgeo> Probably I should paste the whole thing
17:44:26 <uorygl> Well, what does quad do?
17:44:49 <Sgeo> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=17242
17:44:58 <alise> MissPiggy: isn't this more complicated than a syn->syn reductor :P
17:45:24 <MissPiggy> hm I don't know
17:46:01 <alise> i've always wrote reducers like that and they seem "simple enough", perhaps slightly longer code but less semantic overhead i think
17:46:25 <uorygl> I guess that looks pretty simple.
17:47:07 <MissPiggy> I think the semantic domain way has better theoretical properties
17:47:59 <alise> but if you don't need them...
17:48:20 <uorygl> `translate Suomen kieli eli suomi kuuluu uralilaiseen kielikuntaan ja sen suomalais-ugrilaisen haaran itämerensuomalaisiin kieliin.
17:48:23 <HackEgo> The Finnish language, ie Finnish belongs to Uralic language family, and the Finno-Ugric branch of the Baltic-Finnish languages.
17:48:35 <alise> That's a very good automatic translation!
17:48:48 <uorygl> `translatefromto fi en eli
17:48:49 <HackEgo> ie
17:49:02 <uorygl> I guess ie is an English word now. :)
17:49:28 <uorygl> Yeah, I think that translation is pretty much perfect.
17:49:56 <uorygl> `translate kielikuntaan
17:49:58 <HackEgo> var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var
17:50:12 <uorygl> `translatefromto fi en kielikuntaan
17:50:13 <HackEgo> language family
17:50:51 <uorygl> `translatefromto fi en haaran
17:50:53 <HackEgo> branch
17:52:38 <uorygl> Okay, now that I mostly know what the individual words mean, I just have to re-read that sentence until it makes sense.
17:52:41 <pikhq> It would seem that my SKI interpreter, though much slower, does not have the severe memory leaks of the Lazy K interpreter.
17:52:55 <MissPiggy> thats's good!!
17:53:20 <pikhq> In lazyk.cpp, rot13 takes gobs of memory.
17:53:28 <Deewiant> `translatefromto fi en kielikuntaankin
17:53:29 <HackEgo> Language Board in
17:53:34 <pikhq> In my SKI interpreter, rot13 runs in constant space.
17:53:45 <pikhq> The power of garbage collection.
17:53:54 <Deewiant> `translatefromto fi en haarankin
17:53:56 <HackEgo> branch in
17:54:17 <Gregor> `translate haarankin
17:54:19 <HackEgo> var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var
17:54:23 <Gregor> Sweet :P
17:54:59 <uorygl> `translateto he Oy, this has a lovely bunch of coconuts in it!
17:55:01 <HackEgo> אוי, זו חבורה מקסימה של קוקוסים בו!
17:55:08 <uorygl> `translateto he in it
17:55:10 <HackEgo> αδ
17:55:23 <uorygl> That looks like 'ad' in Greek.
17:55:44 <MissPiggy> :D
17:56:33 <uorygl> `translateto he in it in it in it in it in it
17:56:34 <HackEgo> αδ αδ αδ αδ αδ
17:57:26 <uorygl> `translatefromto fi en puhujia
17:57:27 <HackEgo> speakers
17:57:39 <uorygl> `translatefromto fi en miljoonaa
17:57:39 <Deewiant> That was accurate
17:57:41 <HackEgo> million
17:58:00 <uorygl> `translatefromto fi en on noin viisi miljoonaa
17:58:02 <HackEgo> is around five million
17:59:14 <Deewiant> `translatefromto fi en ei ole noin viittä miljoonaakaan
17:59:15 <HackEgo> not even about five million
18:00:07 <uorygl> Does "Suomen kielen puhujia on noin viisi miljoonaa" literally mean "Finnish speakers are around five million"?
18:00:44 <uorygl> The way that you might say "We outnumber you: we are five, and you are only two", in a language other than English.
18:00:47 <Deewiant> As a literal translation, something like that, yeah.
18:00:53 <Deewiant> "There are around five million Finnish speakers"
18:01:22 <Deewiant> But no, it's not like that
18:01:51 <Deewiant> If you want the nonsense "Finnish speakers are around five million" literally translated: "Suomen kielen puhujat ovat noin viisi miljoonaa"
18:02:47 <uorygl> "Puhujia on" and "puhujat ovat" seem to be too many words for what they mean.
18:03:20 <uorygl> Not that I knew any Finnish at all before coming into this.
18:03:39 <uorygl> `translatefromto fi en puhujia on
18:03:41 <Deewiant> "Puhujia on x" == "there are x speakers"; "puhujat ovat x" == "[the?] speakers are x"
18:03:41 <HackEgo> speakers
18:03:53 <Deewiant> That's not too helpful :-P
18:03:56 <Deewiant> `translatefromto fi en puhujia
18:03:58 <HackEgo> speakers
18:03:59 <Deewiant> `translatefromto fi en puhujat
18:04:00 <HackEgo> speakers
18:04:01 <Deewiant> `translatefromto fi en puhujia on
18:04:03 <HackEgo> speakers
18:04:03 <uorygl> Quite.
18:04:04 <Deewiant> `translatefromto fi en puhujat ovat
18:04:05 <HackEgo> speakers
18:04:09 <Deewiant> `translatefromto fi en kaiuttimet
18:04:10 <HackEgo> Speakers
18:04:13 <Deewiant> heh
18:04:31 <uorygl> Are those the electric kind?
18:04:35 <Deewiant> Yep
18:05:01 <uorygl> Anyway, yeah, I was forgetting that "puhuj-" is "speakers".
18:05:11 <uorygl> What's the citation form of that?
18:05:16 <Deewiant> Citation form?
18:05:32 <uorygl> The form you would find in a dictionary.
18:05:54 <Deewiant> You'd probably find the singular, "puhuja".
18:05:59 * uorygl nods.
18:06:01 <Deewiant> I'm still not quite sure what you're after.
18:06:12 <uorygl> Probably that.
18:06:18 <Deewiant> You might not even find that, you'd only find "to speak", "puhua".
18:06:29 <Deewiant> I'm not sure how dictionaries deal with this kind of thing.
18:06:40 <Deewiant> "Puhuja" is probably common enough by itself that you'd find it as well.
18:06:44 <uorygl> What case is "puhuja"? Nominative?
18:07:04 <Deewiant> Yeah, nominative
18:07:10 <Deewiant> You might like http://www.ling.helsinki.fi/~fkarlsso/genkau2.html
18:08:39 * uorygl looks up each of those words in a dictionary and memorizes their meanings individually. :P
18:09:37 <Deewiant> See, you'd only find the first in a dictionary :-P
18:10:25 <Deewiant> A verb equivalent, though the body text here is in Finnish as well: http://koti.mbnet.fi/henrihe/tiede/verbikaava.html
18:11:21 <uorygl> `translate Heistä suurin osa asuu Suomessa, mutta vanhoja suomenkielisiä väestöryhmiä on Pohjois-Ruotsissa (meänkielen puhujat eli tornionlaaksolaiset), Norjassa (kveenit) sekä Inkerissä, jossa suomen kieli on 1900-luvun mittaan suurimmaksi osaksi hävinnyt.
18:11:22 <Sgeo> "Why learning Haskell/Python makes you a worse programmer"
18:11:23 <HackEgo> The majority of them live in Finland, but the old Finnish-speaking population groups in northern Sweden (ie speakers Meänkieli Torne Valley people), Norway (Kvens) and Ingria, where the Finnish language is over the 1900s for the most part disappeared.
18:11:46 <pikhq> Sgeo: "Oh no it lets you write things more easily!"
18:11:47 <uorygl> Well, that translation doesn't really make sense.
18:12:08 <Sgeo> pikhq, it seems to be more that you get spoiled
18:12:10 <Sgeo> http://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/
18:12:29 <Deewiant> Seems fairly understandable to me
18:13:09 <MissPiggy> haskell-python?
18:13:12 <MissPiggy> is that the new C/C++?
18:13:20 <uorygl> "The majority of them live in Finland, but the old groups where the Finnish language is over the 1900s for the most part disappeared."
18:13:27 <uorygl> Doesn't make much sense to me.
18:13:51 <Deewiant> You need to insert an "are" after "groups"
18:14:29 <Deewiant> And the thing at the end is trying to say that they have disappeared over the 1900s
18:14:38 * uorygl nods.
18:14:48 <pikhq> Sgeo: So...
18:14:55 <Deewiant> It's mostly the former issue that's confusing, IMO.
18:15:07 <pikhq> "Oh no it lets the computer focus on the trivial stuff"
18:16:15 <Sgeo> pikhq, it's "Oh no, I love Python and Haskell so much that I can't write C# code without getting depressed"
18:16:25 <uorygl> `translatefromto fi en vanhoja
18:16:27 <HackEgo> old
18:16:54 <pikhq> Sgeo: So, he sucks at programming, and languages aren't going to change that.
18:16:54 <pikhq> Got it.
18:16:57 <Deewiant> Finnish->English is so non-injective :-)
18:20:13 <uorygl> It's so convenient how no matter what channel I'm in, there are always suomen puhujia close at hand. :P
18:23:07 <Deewiant> Yeah, Finland's population is actually 5.5 billion, not million; we just like to stay undercover that way
18:40:38 <AnMaster> back
18:40:54 <AnMaster> <fizzie> AnMaster: Well, it's a GNU thing; those aren't known for sensible man pages. The actual official documentation is pretty clear on PDF files. <-- well yes, that was how I found out about it
18:41:03 <alise> Sgeo: Ah yes, Luke Plant.
18:41:21 <AnMaster> <fizzie> AnMaster: And in general you have to say something like "-dTextAlphaBits=4 -dGraphicsAlphaBits=4" to get subsample antialiasing. (Can't say offhand why it'd happen by default if you pass in a PDF file.) <-- "not mentioned in man page" ;)
18:41:24 <alise> A creationist Christian.
18:41:33 <alise> Not someone to rely on to be anything other than a blithering moron.
18:41:57 <alise> I've read some of the drivel on his blog occasionally, and it's all that.
18:42:14 <Sgeo> I've found myself demotivated when writing C# >.>
18:42:23 <alise> So don't use shitty languages
18:44:21 <pikhq> C# is good at that.
18:44:34 <pikhq> It's not all that unique.
18:44:47 <pikhq> It's just an imperative language with objects.
18:45:59 <coppro> And we've got plenty of those
18:46:14 <alise> Too many.
18:46:19 <MissPiggy> 0
18:46:20 <MissPiggy> woops
18:46:37 <MissPiggy> sorry guys I didn't mean to!!!!
18:46:41 <coppro> In this case, alise is probably right
18:46:42 <alise> The Expression Problem may have solutions handling both rows and columns, but adding columns is far more valuable than rows.
18:46:49 <alise> So to hell with OOP.
18:46:56 <MissPiggy> oh still on the expression problem??
18:47:07 <MissPiggy> alise you know you can do BOTH in haskell?
18:47:09 <MissPiggy> errr
18:47:11 -!- jcp has quit (Read error: Connection reset by peer).
18:47:15 <MissPiggy> EITHER*
18:47:29 <MissPiggy> like, data Exp = Num Int | Add Exp Exp | ..., then write functions on it
18:47:43 <alise> Okay: I WILL finish this dependent typer.
18:47:52 <alise> At least, before tomorrow; then I won't be able to.
18:47:54 <MissPiggy> or data Exp = Exp { eval :: Exp -> Int ; show :: Exp -> String, ... }, then write constructors for it
18:48:00 <MissPiggy> hmm
18:48:16 <MissPiggy> I got my record syntax wrong but just delete the "Exp ->"'s
18:48:23 -!- jcp has joined.
18:48:57 <coppro> alise won't be happy until he can make functional circuitry
18:50:47 <MissPiggy> alise I wrote a dependent type checkr once but the type system was inconsistent
18:51:03 <MissPiggy> well not inconsisent
18:51:11 <MissPiggy> but it didn't have subject reduction
18:51:20 <MissPiggy> anyway I realized that eventually, so that was fine
18:52:11 -!- alise has quit (Ping timeout: 248 seconds).
18:57:13 -!- alise has joined.
18:57:18 <alise> [18:56] * alise realises that infer x == specifiedType won't work if he has dependent types
18:57:28 * alise realises she has no idea how else to do this
18:57:38 <alise> i'm wayyy out of my league :D
18:57:48 <coppro> at least you got the pronoun right
18:58:13 <alise> 10:48:57 <coppro> alise won't be happy until he can make functional circuitry
18:58:19 <alise> no, the reduceron is fine :P
18:58:28 <alise> circuitry is functional
18:58:29 <alise> event based
18:58:33 <alise> this sparks -> other thing
18:59:13 <alise> check' vs (L t _) = return t
18:59:14 <alise> it'll do for now
18:59:21 <alise> after all, you wouldn't lie to me, would you?
18:59:23 <Sgeo> Hm
18:59:31 <Sgeo> Why were my Chrome extensions all uninstalled?
18:59:38 <alise> Because you touch yourself at night.
19:02:03 <alise> Oh, dear.
19:02:12 <alise> Inferring variables will be hard, as in I haven't accounted for this.
19:02:23 <MissPiggy> don't infer anything :P
19:02:25 <MissPiggy> it's too difficult
19:02:35 <alise> Well, not infer.
19:02:39 <alise> But I have to keep track of variable's types.
19:02:52 <MissPiggy> yes that's the type context
19:02:59 <alise> Yes, and I'm not doing that, you see.
19:03:04 <alise> Wait, yes I am.
19:03:07 <alise> Uh.
19:03:08 <alise> Sort of.
19:03:26 <alise> (A aT rT) <- check' vs f
19:03:31 <alise> okay, so I need to do it in the lambda-checking clause
19:04:00 <alise> check' vs (N x) = Nothing
19:04:02 <alise> shouldn't matter for now!
19:04:21 <alise> *Main> check SetSet
19:04:22 <alise> Just *
19:04:23 <alise> ^_^
19:04:28 <MissPiggy> *_*
19:05:28 <alise> *Main> check idL Just (*) -> (t) -> dt *Main> check (idL :. idL) Nothing
19:05:30 <alise> Spot why I can't do that
19:07:17 <alise> fff
19:07:19 <alise> so many interdependencies
19:07:53 <MissPiggy> (idL :. (* --> *)) :. idL ?
19:08:12 <alise> no, idL :. typeofidL :. idL
19:08:15 <MissPiggy> what's dt?
19:08:29 <alise> de bruijn; t = 0, dt = 1, ddt = 2, etc
19:08:30 <alise> t = top
19:08:30 <MissPiggy> oh hehe you are right
19:08:32 <alise> d = dip
19:08:44 <alise> the value of the argument of that type is pushed for the RHS of ->
19:08:58 <alise> which incidentally means that evaluating your whole program in the typechecker is trivial :)
19:09:10 <alise> there's no IO so it doesn't matter
19:12:33 <alise> 10:47:29 <MissPiggy> like, data Exp = Num Int | Add Exp Exp | ..., then write functions on it
19:12:34 <alise> 10:47:54 <MissPiggy> or data Exp = Exp { eval :: Exp -> Int ; show :: Exp -> String, ... }, then write constructors for it
19:12:40 <alise> this + typeclasses might allow for both?
19:14:44 <MissPiggy> alise I don't want to say no but I dont see it
19:14:57 <alise> yeah i was just thinking that typeclasses solve... most problems
19:15:02 <alise> anyway your dependent solution doesn't require dependentness
19:15:07 <alise> type families = type-level functions, i bet you could do it with those
19:15:24 <MissPiggy> I am sure that my way make essential use of full spectrum dependent types
19:15:33 <alise> what was Snoc again?
19:15:47 <MissPiggy> Snoc was just an explanative device
19:16:06 <MissPiggy> you don't have to implement it that way, infact I think I realized a slightly better form
19:16:26 <MissPiggy> but it's all the same idea
19:16:44 <alise> what was the better form?
19:16:47 <alise> also, I just meant the definition :P
19:17:08 -!- tombom__ has joined.
19:18:11 -!- Pthing has quit (Remote host closed the connection).
19:18:18 -!- tombom_ has quit (Ping timeout: 248 seconds).
19:19:51 <alise> MissPiggy: you know how the f gets the rest of the list?
19:19:57 <MissPiggy> f??
19:19:57 <alise> what information does it need to make the ROW/COL decision?
19:20:01 <alise> the number of rows and the number of cols, right?
19:20:03 <alise> f in Snoc f
19:20:25 <alise> plus the types of the cols
19:20:30 <alise> and the rows
19:20:32 <MissPiggy> well if you just have a matrix n m, then functions row : matrix n m -> vector n -> matrix n (S m)
19:20:42 <MissPiggy> and col : matrix n m -> vector m -> matrix (S n) m
19:20:50 <MissPiggy> I wonder if I got my n/m row/col right way around
19:20:59 <alise> I've forgotten the definition of snoc :(
19:21:02 <alise> meh
19:21:07 <MissPiggy> yeah you can forget about snow
19:21:19 <alise> Snow!
19:21:20 <MissPiggy> snoc*
19:22:31 <augur> PIGGEHHHHH
19:23:31 <MissPiggy> "matrix : nat -> nat -> *" is a simplification though.. the real thing would be a bit more involved
19:23:45 <alise> so what would a table tarpit be, I wonder
19:23:47 <alise> hmm
19:23:50 <alise> do nested tables make sense?
19:24:27 <alise> if so, then obviously the whole program is one table, and there are columns that operate on the rows, which are tables; and the only atomic value is the empty table
19:25:30 -!- adam_d has joined.
19:26:40 <MissPiggy> well
19:26:48 <MissPiggy> nested table doesn't really mean anything
19:26:56 <MissPiggy> the only reason you'd need to think about multiple tables is:
19:27:03 <MissPiggy> either you have more than a 2D programming problems
19:27:04 <augur> MissPiggy: how been
19:27:20 <MissPiggy> or you have some kind of mututally recursive system of 2D programming problems
19:27:24 <MissPiggy> (or both!)
19:27:38 <MissPiggy> mutualy recursive infinite dimensional progarmming sounds hard thuogh
19:27:49 <MissPiggy> hey augur I was listening to the space flight remix
19:28:00 <augur> WOSSAT :O
19:28:00 <MissPiggy> live mission was on soma
19:28:11 <MissPiggy> hows it going with ?
19:28:13 <MissPiggy> you
19:28:15 <augur> oooh right! the launch this morning
19:28:27 <augur> is good with me
19:29:17 <MissPiggy> :)
19:29:42 <MissPiggy> augur me and ehird solved the exeprssion problem using deptypes
19:29:48 <MissPiggy> once and forall!
19:29:53 <augur> been reading a bunch of some interesting grammar formalisms. improved the wikipages http://en.wikipedia.org/wiki/Indexed_grammar http://en.wikipedia.org/wiki/Combinatory_categorial_grammar http://en.wikipedia.org/wiki/Tree-adjoining_grammar and http://en.wikipedia.org/wiki/Weak_equivalence
19:30:05 <augur> AND i created the page http://en.wikipedia.org/wiki/Head_grammar
19:30:11 <MissPiggy> augur, I still need to get back to CCGs...
19:30:26 <MissPiggy> oh you edited them
19:30:36 <augur> whats the expression problem?
19:30:38 <MissPiggy> cool I will reread
19:31:05 <MissPiggy> augur you've done really good with these!!
19:31:25 <augur> well for all but the CCG one all i did was add the equivalency note, and some examples for LIG
19:31:30 <augur> the head grammar page is all new tho
19:33:13 <Sgeo> Wait, there's a new version of Haskell?
19:34:01 <augur> Sgeo: what
19:34:07 <Sgeo> Haskell 2010
19:34:23 <augur> oh, yeah.
19:34:28 <augur> new spec
19:35:17 <alise> MissPiggy: link augur to my pastie about the expression problem
19:35:18 <alise> OR I WILL
19:35:31 <augur> D:
19:35:34 <alise> http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w
19:35:59 <MissPiggy> lol
19:37:56 <pikhq> Yeah; GHC doesn't implement it yet, though.
19:38:07 <pikhq> (won't be too long -- most of what's not done is syntax tweaks)
19:39:07 <augur> alise: interesting problem!
19:39:26 <alise> yeah MissPiggy came up with a nice solution
19:39:57 <augur> my solution would be, do like haskell does, but allow discontinuous definitions of function alternatives.
19:40:15 <augur> preprocess it to all be continuous, if desired.
19:41:08 <alise> She does that.
19:41:24 <alise> augur: Anyway, that still doesn't let you add constructors to a data type.
19:41:35 <augur> true
19:42:07 <augur> but your link doesnt specify that as necessary, does it?
19:42:16 <alise> Yes, it does.
19:42:18 <alise> That's what adding a row is.
19:42:28 <augur> oh, right, because for haskell you'd have to have them all the same datatype
19:42:32 <alise> Anyway, here's the syntax I came up with: http://pastie.org/812720.txt?key=p9mayakdi0z2wka3vzwtq It would be implemented at compile-time; MissPiggy's solution is runtime.
19:42:33 <augur> union types!
19:42:44 <alise> The whole point is that they're the same type
19:42:59 <augur> type classes!
19:48:04 -!- znerc has joined.
19:49:18 <augur> btw, guys, if anyone wants papers from JSTOR or ACM let me know
19:52:49 <augur> im also off to target. BYE
19:55:35 <MissPiggy> bye
20:02:43 <alise> asd
20:03:31 <alise> MissPiggy: you'd think that typechecking and evaluating the dependently-typed lambda calculus would be really simple...
20:03:45 <alise> it seems like one of those "inherent" concepts that should be really simple to express
20:03:50 <MissPiggy> no I wouldn't
20:03:54 <MissPiggy> well
20:03:54 <alise> i would
20:04:14 <MissPiggy> there is a simple (dependently typed) lambda calculus, and that's quite easy to implement
20:04:20 <MissPiggy> but it's not quite good enough
20:04:35 <alise> howso
20:05:41 <MissPiggy> well you know how types are equal if they are definitionally equal
20:05:55 <MissPiggy> like: Vector (1 + 1) = Vector 2
20:06:13 <MissPiggy> one annoying thing is if you don't have eta conversion, then stuff like
20:06:29 <MissPiggy> exists Nat (\x -> P x) is not convertible with exists Nat P
20:06:34 <alise> yeah
20:06:37 <alise> x :: Set(x)
20:06:38 <alise> f x :: Set(f) = (y::T) -> S, Set(x) = T, y = x, S
20:06:38 <MissPiggy> now that's just a minor annoyance,
20:06:42 <alise> \(x::T) -> ... :: S :: (x::T) -> S
20:06:43 -!- gm|lap has joined.
20:06:44 <alise> (x::T) -> T :: *
20:06:47 <alise> * :: *
20:06:53 <alise> ^ the dependent lambda calculus i'm trying to implement
20:07:27 <MissPiggy> but there's more to be said about this which is sort of detailed
20:07:44 <MissPiggy> I assume
20:07:45 <MissPiggy> (x::T) -> T :: *
20:07:47 <MissPiggy> actually means,
20:07:56 <alise> it's syntax :: type
20:07:58 <MissPiggy> T :: *, T' :: * |- (x::T) -> T' :: *
20:08:22 <MissPiggy> well that's nto quite right still
20:08:25 <MissPiggy> but it's closer :P
20:08:38 <alise> (x::T) -> S :: Set(T) = *, Set(x) = T, Set(S) = *, *
20:09:31 <MissPiggy> Gamma |- x :: T <=> Gamma(x) = T
20:10:11 <alise> yeh i was just writing it quickly in the form it came into my head
20:11:13 <alise> data Syntax = Var Integer | App Syntax Syntax | Lambda Syntax Syntax | Arrow Syntax Syntax | Set
20:11:23 <alise> the semantics is just (Semantics -> Semantics), right?
20:11:29 <alise> or does it have Var Integer too
20:12:56 <alise> hmm
20:13:00 <alise> can my thingy type \x->x x?
20:13:05 <alise> i don't think so
20:13:07 <alise> there's no a = a -> b
20:13:31 <MissPiggy> Semantics = Semantics -> Semantics is a good first approximation
20:13:42 <MissPiggy> but to implement quote it needs to be fudged around a bit, nothing major
20:16:43 <alise> cons ∈ (α ∈ ★) → (β ∈ ★) → (γ ∈ ★) → (α → β → γ) → γ
20:17:17 <alise> cons ∷ (α∷★) → (β∷★) → (γ∷★) → (α → β → γ) → γ
20:17:21 <alise> Still think the latter looks nicer
20:17:35 <alise> cons : (α:★) → (β:★) → (γ:★) → (α → β → γ) → γ
20:17:37 <alise> looks good too, though
20:17:40 <alise> I think the last is best
20:17:45 <alise> brb
20:20:02 <MissPiggy> lol those stars look awful in irssi
20:23:01 -!- oklopol has quit (Ping timeout: 264 seconds).
20:32:09 -!- MigoMipo has joined.
20:36:11 <gm|lap> eww. eww. eww. what kind of language is that
20:36:23 <gm|lap> GREEKS DID NOT MAKE THE MODERN COMPUTER
20:37:04 -!- MissPiggy has quit (Quit: Lost terminal).
20:41:07 -!- oerjan has joined.
20:45:43 -!- oklopol has joined.
20:45:56 <oerjan> it's oklo the pol!
20:46:21 <oerjan> almost no relation to prozac the bear
20:48:12 -!- MissPiggy has joined.
20:55:09 <alise> gm|lap: functional, bitch
20:55:34 <gm|lap> not very functional when you don't have loonycode
20:55:44 <oerjan> also, some mathematicians definitely were involved.
20:55:49 <alise> gm|lap: the 90s called
20:55:56 <alise> they want you to stop using windows
20:56:42 <gm|lap> it really depends on the situation as to whether using unicode is a good idea or not.
20:57:11 <gm|lap> here... uh, you'd have to whip up some special functions to deal with unicode chars like they were bytes or something
20:57:25 <gm|lap> as in, an fread of some sort.
20:57:26 <alise> gm|lap: Ah, you still think a string is a char *.
20:57:33 <alise> You still think C defines the world.
20:57:37 <gm|lap> here you'd use an int *
20:57:43 <alise> You still think stone-age computing rules over mathematics.
20:57:51 <oerjan> if C was good enough for the romans...
20:57:56 <alise> In short, you're the computer-science equivalent of a dinosaur.
20:58:12 <gm|lap> hey, at least i know how to code stuff which runs fast
20:58:20 <gm|lap> i usually don't, but nevertheless i can.
20:58:25 <alise> Except considering how fast computing changes, you're especially Ludditish.
20:58:29 <alise> Surely you've noticed the change?
20:58:31 * gm|lap opens up a can of ASM and spills it on your shirt
20:58:39 <oerjan> as in wildly successful, and survived for > 200 million years
20:58:54 <alise> Ha! You think hand-written asm written by _anyone_ other than a genius can beat modern C compilers?
20:58:57 <gm|lap> ASM will always be "potentially faster", by the way.
20:59:01 <alise> I thought you'd at least stop at C, a vaguely defensible position.
20:59:28 <alise> And apparently you think all the world's an imperative R/CISC architecture of the usual sort. Pay no attention to the Lisp Machines and Reducerons behind the curtain.
20:59:44 <gm|lap> i haven't seen ASM from many "modern C compilers" but usually they're bashing at memory
20:59:48 <gm|lap> well
20:59:52 <alise> This may in fact end up being the most tedious two-way about computing I've ever seen.
20:59:54 <gm|lap> from the code I've seen
20:59:58 <alise> gm|lap: you are clearly ignorant of modern optimisation techniques
21:00:16 <alise> Good luck manually performing intense intraprocedural optimisation
21:00:54 <MissPiggy> what!!!!!!!!!!!!!!!
21:01:02 <alise> I might be more polite if I didn't know there were so many like you.
21:01:06 <gm|lap> technically i'm someone who's kinda pissed at the fact that everyone's using 3D hardware in their demos, not because it's 3D hardware but because it's all closed and requires the use of specific libraries and stuff
21:01:22 <alise> Did I just miss some conversation or was that a non-sequitur?
21:01:30 <alise> MissPiggy: All your base is cool again?
21:01:34 <alise> EXCELLENT
21:01:37 <gm|lap> well, it may help you understand my thinking
21:01:50 <alise> No, not really.
21:01:57 <alise> I like open things too.
21:02:18 <gm|lap> a 4KB demo using libraries to run itself is technically cheating
21:02:23 <alise> oerjan: should I read Triangle and Robert?
21:02:35 <oerjan> but of course!
21:02:39 <gm|lap> although if you want to be pedantic, i could whip up some code to turn 80x25 into mode 13
21:02:45 <gm|lap> w/o INT 0x10
21:02:53 <alise> oerjan: but. so many comics
21:03:14 <oerjan> sure, but you're planning to live forever, aren't you
21:03:50 <alise> i'd like to, that doesn't mean i think it's going to happen :P
21:04:07 <gm|lap> you seem to be "oh yeah well this is futuristic so we'll just use it because it's the future". well, you wonder why people refer to "the good old days".
21:04:08 <MissPiggy> my base
21:04:33 <alise> gm|lap: HA! You think functional programming, which is literally identical to mathematics and logic, is some new-fangled thing?
21:04:43 <alise> It's imperative programming that was the unfortunate blip in the history of calculation.
21:05:15 <gm|lap> i know that functional programming isn't insanely recent at all
21:05:32 <gm|lap> UTF-8 is definitely more recent than functional programming, though
21:05:39 <gm|lap> heck, you can even do OOP in ASM
21:05:48 <alise> But the symbols I am using are ancient.
21:05:50 <MissPiggy> can functional programming be liberated from the von noymann parradime?
21:05:56 <alise> Ugh, you know what, this really is the most tedious conversation I've had.
21:06:15 <oerjan> imperatives aren't new-fangled either, see kant
21:06:20 <alise> Especially as I'm returning to hell tomorrow, I don't feel the need to continue to perpetrate irritated boredom on myself.
21:06:24 <alise> oerjan: Har.
21:07:03 <gm|lap> i know that the greek alphabet is ancient, but the current usual implementation requires you to either work on unicode chars or use a weird encoding
21:07:33 <alise> [21:07] == IGNORE Unknown command
21:07:36 <alise> Damn you, webchat.freenode.net.
21:08:46 <alise> So, I guess the answer to "will this ordeal soften me or harden me" is the latter, at least while it's still going on.
21:08:54 <alise> I'm being a wonderful asshole.
21:09:05 <gm|lap> yes, and my ignore list is wonderfully persistent.
21:09:22 <MissPiggy> who is gm??
21:09:25 <MissPiggy> are you new
21:09:27 <alise> GreaseMonkey.
21:09:27 * gm|lap == Greasemonkey
21:09:29 <gm|lap> erm
21:09:29 <MissPiggy> ohh
21:09:31 <gm|lap> GreaseMonkey
21:09:32 <alise> He's been irritating for a few years now.
21:09:43 <gm|lap> alise: i don't remember you
21:09:47 <MissPiggy> it does feel like years, doesn't it?
21:09:50 <gm|lap> except from, ooh, a few days ago
21:09:51 <oerjan> always greasing up the place
21:09:51 <MissPiggy> lol
21:09:59 <alise> gm|lap: i've been here a long while.
21:10:18 <alise> MissPiggy: it has been years; 2006, according to the wiki
21:10:32 <alise> oerjan: why did you fuck with it!
21:10:54 <gm|lap> what other names would you have used?
21:11:11 <oerjan> alise: wait, what?
21:11:16 <alise> Johnathan, Omaha, Harpsichord, Robotic Overloard #3.9, Bob.
21:12:13 <gm|lap> ... don't really ring a bell
21:12:46 <oerjan> alise: see history
21:12:51 <alise> Also ᚠᚡᚢᚣᚤᚥᚦᚧᚨ.
21:15:10 <gm|lap> when i have a piece of paper, i deal with numbers.
21:15:17 <gm|lap> when i have a piece of code, i deal with bytes.
21:15:38 <alise> I thought you were using your wonderful ignore list.
21:15:50 <alise> Please do, I'm uninterested in your drivel and if it would stop you talking to me that would be great.
21:15:55 <gm|lap> yes, even though i code in languages which deal with all sorts of numbers, with and without decimal points
21:16:08 <gm|lap> hmm, i actually have some power here...
21:17:23 <alise> In a world... where one man... must face his demons...
21:17:25 <alise> For he has...
21:17:30 <alise> THE POWER TO ANNOY
21:17:36 <alise> In cinemas feb 14
21:18:31 <gm|lap> on the other hand you have the power to be condescending
21:18:41 <pikhq> Wait, you deal with *bytes* in your programs?
21:18:46 <pikhq> I deal with *values*.
21:18:52 <alise> Maybe if my life was any better and you were any less idiotic I would not be trolling you. :)
21:18:52 <MissPiggy> I deal with *stars*
21:19:06 <pikhq> Oh, and morphisms in the category Hask.
21:19:20 <gm|lap> i do actually deal with values, but when it comes to files, i have to deal with bytes
21:19:33 <alise> Files! Another wonderfully retarded blip in history.
21:19:48 <MissPiggy> what's wrong with files?
21:19:55 <MissPiggy> I want to try plan 9
21:20:02 <alise> a bunch; maybe i'll explain sometime when I'm not having fun with an idiot
21:20:03 <pikhq> MissPiggy: Made perfect sense when C was unusually high-level.
21:20:07 <gm|lap> i tried it, it's easy to break the GUI
21:20:11 <pikhq> That's been a few decades now.
21:20:13 <alise> MissPiggy: plan 9 is the closest to making files bearable
21:20:21 <alise> it basically makes them universal identifiers in tuple-space
21:20:33 <alise> Review of Plan 9
21:20:36 <gm|lap> don't you mean plan 9 is the closes to making all bearables files?
21:20:36 <alise> It's easy to break the GUI.
21:20:36 <alise> -
21:20:41 <MissPiggy> LOL
21:20:46 <alise> Hey, now that was actually funny.
21:21:32 <pikhq> The thing is, files have no structure other than being a series of bytes. Implementing data structures in them is like manually implementing C semantics with an array and indices
21:21:41 <pikhq> That is to say, tedious and pointless.
21:21:57 <MissPiggy> oh okay
21:22:06 <gm|lap> there's quite a difference between english and japanese, so to speak.
21:22:07 <MissPiggy> so like
21:22:27 <MissPiggy> you want a "filesystem" that's actually storing data structures instead of just files in a tree
21:22:43 <MissPiggy> so it would be like a tree of trees instead of a tree of files?
21:22:45 <gm|lap> something like that
21:22:46 <alise> even if files had no negatives I would oppose them for the simple fact that an orthogonally-persisted ecosystem of values is simply superior
21:22:51 <gm|lap> well...
21:22:57 <pikhq> I want a "filesystem" to just mean data structures that are persistent.
21:23:00 <alise> and allows you hierarchical, non-hierarchical, tagged, searched and everything organisation simply through creating data structures
21:23:19 <pikhq> I'd love for my IO to consist of "persist(foo)".
21:23:19 <alise> pikhq: Persistent data structures? Why, what redundancy!
21:23:27 <MissPiggy> it sounds very difficult to organize
21:23:32 <coppro> alise: what happened to amend?
21:23:41 <alise> MissPiggy: If you want a tree structure, like a symlinkless filesystem, just create it.
21:23:42 <alise> No harder.
21:23:49 <alise> If you want symlinks, use references.
21:23:55 <alise> If you want a searchable pool, do it.
21:23:58 <gm|lap> alise: it's not going to make itself
21:24:11 <alise> gm|lap: That's why my main field of study is focused on making it.
21:24:16 <gm|lap> right.
21:24:36 <pikhq> MissPiggy: Are you familiar with Smalltalk?
21:24:46 <alise> An apology for the rather harsh bluntness, by the way; I'm grumpy right now.
21:26:24 <alise> I tend to confuse ignorance with wilful stupidity because I forget that not everyone really knows how possible, easy and flexible the superior system is, or even knows of the superior system.
21:27:13 <gm|lap> the question is, what am i confusing arrogance with?
21:27:26 <gm|lap> ugh
21:27:57 <alise> Someone trying to distract himself.
21:28:00 -!- tombom_ has joined.
21:29:34 -!- MissPiggy has quit (Remote host closed the connection).
21:30:45 -!- alise has quit (Quit: Page closed).
21:31:05 <gm|lap> hmm... i think ruby 1.9.1 is comparable in speed with python 2.6.4
21:31:13 -!- tombom__ has quit (Ping timeout: 258 seconds).
21:31:14 <gm|lap> wait... silly me
21:31:21 <gm|lap> roughly half-speed ._>
21:31:27 <gm|lap> didn't notice the mixing rate
21:31:47 <gm|lap> 1.9.0 is pretty slow though
21:35:30 -!- MissPiggy has joined.
21:40:38 <gm|lap> there's a package in ubuntu called "sl"
21:40:52 <gm|lap> if you type sl accidentally, it suggests that you install it
21:41:03 <gm|lap> apt-cache search sl | grep ^sl gives us this:
21:41:04 <gm|lap> sl - Correct you if you type `sl' by mistake
21:41:22 <gm|lap> 25.3kB apparently
21:41:26 <oerjan> *facepalm*
21:41:50 <gm|lap> dude you should totally install it, it's awesome
21:42:00 <gm|lap> it makes an ascii train go across the screen
21:44:11 -!- alise has joined.
21:44:24 -!- adam_d has quit (Ping timeout: 256 seconds).
21:46:02 <alise> Testing, testing, one two three.
21:46:34 <alise> sl is just annoying IMO.
21:46:37 <alise> I never make that typo anyway.
21:47:00 <alise> The fact that there's no way to kill it without opening a new terminal makes it more of a life-ruiner rather than a stick.
21:47:18 <alise> Maybe there should be a carrot, getting ls right speeds up your system for a few minutes or something.
21:48:09 <gm|lap> apparently sl is short for "steam locomotive"
21:48:43 <alise> Yes; it's a rather terrible pun.
21:48:59 <alise> Damn, my XChat looks civilised.
21:51:12 <alise> http://imgur.com/CQv7v.png
21:51:20 <alise> I'd show the window borders, but apparently gnome-screenshot and scrot fail at compiz.
21:52:13 <alise> DejaVu Serif is actually a pretty nice serif.
21:56:35 <oerjan> well dejavu is nice but we've seen it all before
21:57:23 <Sgeo> Tabs??
21:57:31 <Sgeo> Erm, button-tabs?
21:58:25 <alise> Beats a huge tree with only two lines.
21:59:29 <alise> URW Palladio L is also a nice font.
22:04:19 <alise> So, value-level (∀a.b) is (λa.b). What's value-level (∃a.b)?
22:04:37 <MissPiggy> a*b
22:04:47 <MissPiggy> (a,b)
22:04:49 <MissPiggy> anything like that
22:05:10 <alise> Really?
22:05:21 <alise> Hmm.
22:05:23 <alise> I guess you are right.
22:05:54 <alise> MissPiggy: What about the literal (∃a.a)?
22:06:19 <MissPiggy> what about it??
22:06:35 <alise> What does that translate to as a value?
22:06:40 <alise> If you replace exists with forall, that's id in value-land.
22:07:07 <MissPiggy> (a,a) sholud work, but also (a,a')
22:07:22 <MissPiggy> it doesn't have to be the same a
22:07:42 <alise> Right, but those would be specific as.
22:08:11 <alise> Perhaps my question simply makes no sense :P
22:11:44 <oerjan> well i understand that ghc implements exists a. TypeClass a => Whatever a as a tuple containing the typeclass instance and the value
22:12:28 <oerjan> or something close to that
22:12:58 <oerjan> but if there is no typeclass, only the value is necessary
22:13:14 <alise> Actually, (exists a. a) is 0 bits...
22:13:28 <oerjan> really?
22:13:28 <alise> You don't need to store the value because the only information you can extract from it is that it exists.
22:13:46 <oerjan> um no
22:13:50 <alise> No?
22:13:50 <oerjan> seq, remember
22:13:54 <alise> Oh.
22:14:03 <alise> Well, seq and unsafePerformIO are not "really Haskell". :)
22:14:10 <alise> "Really Haskell" is defined as the subset of Haskell that makes sense.
22:14:11 <oerjan> seq is official
22:14:20 <alise> The committee is wrong.
22:14:50 <pikhq> alise: unsafePerformIO, FWIW, only exists as part of the FFI.
22:15:45 <oerjan> i think the new 2010 revision modifies that though
22:15:47 <alise> http://bennyhillifier.com/?id=mwDKMiAfxFE
22:16:00 <alise> Top of the two bots in the Google Tron AI competition, fighting.
22:16:01 <Sgeo> Where can I see the changes in 2010?
22:16:02 <alise> To Benny Hill.
22:16:17 <alise> http://hackage.haskell.org/trac/haskell-prime/
22:16:57 <alise> *Two of the top
22:17:12 <Sgeo> The link on that page seems broken
22:17:14 <MissPiggy> data Exists (T : *) (P : T -> *) where
22:17:23 <MissPiggy> Witness : (t : T) -> P t -> Exists T P
22:17:33 <alise> MissPiggy: Ah, dependent typists. Always writing everything in the language.
22:17:46 <MissPiggy> dependent typists :D
22:17:48 -!- tombom_ has quit (Quit: Leaving).
22:18:11 <alise> The Cult of Dependent Typists & their Honourable Languages Thereof, est. 1980
22:18:19 <alise> (I don't really know how old dependent types are.)
22:18:20 <MissPiggy> :P
22:18:28 <alise> I wonder if dependent types have a nicer solution to the typeclass problem than typeclasses.
22:19:04 -!- MigoMipo has quit (Ping timeout: 240 seconds).
22:19:10 <oerjan> doesn't Agda supposedly have both?
22:19:29 <alise> I don't think there's any issue with having both.
22:19:33 <alise> I just don't really like typeclasses all that much.
22:19:49 <MissPiggy> agda doesn't have typeclasses
22:19:50 <alise> I know that Ur does it with implicit module parameters matching a certain signature.
22:19:55 <alise> That's a nice solution.
22:20:03 <MissPiggy> it's sort of weird because I'm not sure if you can actually add typeclasses
22:20:25 <MissPiggy> I mean you can pass them explicitly but that probably doesn't count
22:20:26 <oerjan> oh right didn't oleg do something proving the equivalence of modules and type classes.
22:20:31 <alise> _+_ : {a:Set} -> {Num a} -> a -> a -> a
22:20:44 <alise> Num : Set -> ModuleSignatureThingy
22:20:51 <alise> Or something like that.
22:20:53 * MissPiggy has been playing with Ur today
22:20:58 <oerjan> (functorial modules, presumably)
22:20:59 <alise> And the implementation:
22:21:25 <alise> _+_ {_} {n} x y = n._+_ x y
22:21:27 <alise> Or something.
22:21:29 <alise> You get the idea.
22:21:49 <Sgeo> alise, working link please?
22:21:57 -!- kar8nga has quit (Remote host closed the connection).
22:21:57 <MissPiggy> the problem with that is you still need the compiler to choose (ARBITRARITLY!!) a Num instance for a
22:21:59 <alise> To what? http://bennyhillifier.com/?id=mwDKMiAfxFE?
22:22:15 <alise> MissPiggy: same with values that belong to multiple sets in foralls!
22:22:18 <alise> It has to pick one!
22:22:26 <alise> Sgeo: http://bennyhillifier.com/?id=mwDKMiAfxFE
22:22:29 <alise> the final ? breaks it
22:22:33 <MissPiggy> yeah
22:22:35 <Sgeo> I do not consider "ou can see the list of [query:?status=new&status=assigned&status=reopened&state=accepted&milestone=Haskell+2010&order=priority changes in Haskell 2010]." to be helpful
22:22:38 <MissPiggy> it's scary stuff
22:22:49 <alise> Sgeo: oh.
22:22:52 <alise> just google haskell prime or w/e
22:23:08 <alise> MissPiggy: Well, it picks the most specific type it can infer, right?
22:23:14 <alise> Most specific set.
22:23:14 <alise> Of a value.
22:23:16 <alise> For a forall.
22:23:33 <alise> So all we need to define is how a Num-implementing module can be "more specific" than another and we're set.
22:23:48 <alise> Perhaps more functions explicitly implemented.
22:23:58 <alise> Or more concrete types.
22:24:06 <alise> If there are two equally-specific ones, you must manually specify one.
22:25:18 <MissPiggy> basically
22:25:21 * oerjan finds a picture of oleg. i never thought of him as that old!
22:25:24 <MissPiggy> the whole thing about typeclasses is SYNTAx
22:25:34 <alise> oerjan: link
22:25:36 <MissPiggy> and you can't add them without hacking the compiler
22:25:37 <alise> I imagine him as a 30-something guy
22:25:41 <alise> just being so fucking cool
22:25:49 <alise> no employer, he just has money, buys stuff, you know
22:25:50 <MissPiggy> and what's so good about them anyway, modules are probably better
22:25:53 <alise> but mostly just sits around, publishing
22:26:10 <oerjan> oh wait, that's another guy with the same!
22:26:10 <alise> MissPiggy: cayenne has no modules because its products (records) are powerful enough to serve as it
22:26:12 <alise> as one
22:26:14 <alise> oerjan: :)
22:26:17 <alise> oerjan: I think he's a private fello
22:26:20 <alise> s/$/w/
22:26:27 <oerjan> ("Oleg Kiselyov, director of Influenza Research Institute")
22:26:34 <alise> MissPiggy: so if modules are better than typeclasses
22:26:40 <alise> maybe we just need cayenne records and that's it!
22:27:02 <MissPiggy> hehe
22:27:12 <MissPiggy> so how you implement records? :)
22:27:22 <MissPiggy> ohh
22:27:22 * Sgeo is now an Early Edition addict
22:27:31 <MissPiggy> I like that idea
22:27:35 <alise> http://www.cs.chalmers.se/~augustss/cayenne/
22:27:36 <alise> ask them
22:27:40 <alise> hey, it's augustss
22:27:45 <alise> didn't know he did cayenne!!
22:27:49 <MissPiggy> Oleg works for the navy
22:28:00 <MissPiggy> doesn't he ? some kind of waterry thing
22:28:28 <alise> http://www.cs.chalmers.se/~augustss/cayenne/examples.html
22:28:32 <alise> cayenne's printf implementation is slick
22:28:34 <oerjan> heck wikipedia? "Oleg Kiselyov (born 11 January 1967) is a Russian handball player."
22:28:41 <MissPiggy> HAND EGG
22:29:22 <olsner> egghand?
22:30:40 <alise> MissPiggy: I think cayenne records are basically haskell records
22:30:42 <alise> except automatically typed
22:30:57 <alise> like the type of {foo=3,bar=\a->a} is {foo::Int,bar::a->a} or whatever
22:31:10 <alise> also I realised something
22:31:16 <alise> my dependent LC doesn't have any way to extract an arrow
22:31:19 <alise> (the only composite type)
22:32:14 <alise> think I should add it? Maybe it could be a built-in function
22:32:36 <alise> destarr : * -> c -> (a -> b -> c) -> c
22:32:51 <MissPiggy> what does extract an arrow mean though?
22:33:02 <alise> (a -> b) => (a,b)
22:33:27 <alise> I could add pattern matching, but that'd be the only thing it'd be useful for
22:34:53 <oerjan> hm this _might_ be him, http://www.flickr.com/photos/eelcovisser/283343950/ (it is in a computer scientists set)
22:35:21 <alise> Personal home page: Paul Kelly
22:35:21 <alise> Paul H J Kelly. Professor of Software Technology, Group Leader, Software Performance Optimisation Department of Computing (map); Imperial College London ...
22:35:22 <alise> same guy?
22:35:30 <MissPiggy> oleg is the one in blue
22:35:33 <MissPiggy> btw
22:36:14 <oerjan> ok so you're sure? it was the only plausible picture on the first page of google hits for "oleg kiselyov"
22:36:19 <MissPiggy> it's his only t-shirt http://video.google.com/videoplay?docid=-7990603720514207956&ei=OkBvS7SkMovL-AbZwtHjBg&q=oleg+# :)
22:36:27 <oerjan> (picture search)
22:37:33 <oerjan> i guess that crushes my theory he is trying to keep his real appearance secret
22:38:12 <olsner> oerjan: do keep in mind that the pictures and videos are not necessarily of the actual oleg
22:38:25 <MissPiggy> olsner hah it's just a puppet!
22:38:25 <oerjan> hm?
22:38:37 <olsner> MissPiggy: indeed, just a puppet
22:38:43 <oerjan> ah
22:39:26 <alise> ((λ:(★ → 0 → 1). 0) (λ:(★ → 0 → 1). 0)) (λ:(★ → 0 → 1). 0)
22:39:31 <MissPiggy> there's another picture of Oleg on this http://www.angelfire.com/tx4/cus/people/index.html
22:39:50 <alise> xD
22:40:11 <alise> Guy Steele
22:40:12 <alise> Scheme / CL / Fortress
22:40:15 <alise> yeah, just ignore the whole Java thing
22:40:21 <MissPiggy> hehee
22:40:41 <oerjan> MissPiggy: i already knew about that one
22:40:42 <alise> MissPiggy:
22:40:43 <alise> ((λ:(★ → 0 → 1). 0) (λ:(★ → 0 → 1). 0)) (λ:(★ → 0 → 1). 0)
22:40:46 <alise> does that make sense to you?
22:41:12 <oerjan> it was part of what started my conspiracy theory, after all
22:41:17 <MissPiggy> it's id id id?
22:41:20 <alise> yeah
22:41:21 <MissPiggy> but it wouldn't typecheck
22:41:24 <alise> why not
22:41:30 <alise> oh
22:41:31 <alise> the types
22:41:31 <alise> yeah
22:41:50 <alise> i can't do implicit arguments without full inferring can i :(
22:41:59 <MissPiggy> there is no 'full inferring'
22:42:07 <MissPiggy> it's undecidible
22:42:12 <alise> i know
22:42:13 <alise> but i mean
22:42:17 <alise> "lots" of work inferring
22:42:24 <alise> as opposed to some cheap trick
22:42:25 -!- adam_d has joined.
22:42:26 <MissPiggy> the best you can do is make a powerful algorithm that works well in normal situations
22:42:35 <alise> well, check does return the type
22:42:36 <alise> but ehhh
22:42:42 <MissPiggy> well there are some small classes of inference you can do in a principled way
22:42:56 <alise> all i care about is inferring type arguments :)
22:42:57 <MissPiggy> but it's very hard work.. and I think you probably need HOU to even get started
22:43:04 <MissPiggy> maybe that's easier still
22:43:11 <alise> I think I could fake that since my typechecker returns a type it knows it is
22:43:14 <alise> but eh
22:43:36 <alise> ((((λ:(★ → 0 → 1). 0) (★ → 0 → 1)) (λ:(★ → 0 → 1). 0)) (★ → 0 → 1)) (λ:(★ → 0 → 1). 0)
22:43:36 <alise> There.
22:43:38 <alise> id id id
22:44:03 * alise writes cons out of sheer insanity
22:44:32 <alise> a:* -> b:* -> a -> b -> c:* -> (a -> b -> c) -> c
22:45:50 <alise> consL :: Syntax
22:45:50 <alise> consL =
22:45:50 <alise> Lambda (Arrow Set (Arrow Set (Arrow (Var 1) (Arrow (Var 1) ...)))) $
22:45:50 <alise> Lambda (Arrow Set (Arrow (Var 1) (Arrow (Var 1) ...))) $
22:45:51 <alise> Lambda (Arrow (Var 1) (Arrow (Var 1) ...)) $
22:45:52 <alise> Lambda (Arrow (Var 1) ...) $
22:45:54 <alise> this is getting boring fast :P
22:46:17 <alise> not to mention confusing
22:46:17 <MissPiggy> hm
22:46:23 <MissPiggy> yeah it's pretty confusing
22:46:44 <alise> okay so after c:*... what the fuck number is a
22:46:48 <alise> 4
22:46:52 <alise> b is 3
22:46:53 <alise> c is 0
22:47:02 <alise> of course that'll change with the arguments of the function :D
22:47:05 <alise> (just add one)
22:50:06 <alise> foo3.hs:29:132: parse error on input `)'
22:50:07 <alise> AIEEEEEEEEEEEEe
22:50:42 <alise> λ:(★ → ★ → 1 → 1 → ★ → 4 → 4 → 2 → 2). λ:(★ → 1 → 1 → ★ → 4 → 4 → 2 → 2). λ:(1 → 1 → ★ → 4 → 4 → 2 → 2). λ:(1 → ★ → 4 → 4 → 2 → 2). λ:(★ → 4 → 4 → 2 → 2). λ:(4 → 4 → 2 → 2). ((0) (3)) (2)
22:50:43 <alise> MissPiggy: ^
22:50:55 <MissPiggy> im not debugging that :P
22:51:01 <alise> i need more parens
22:51:08 <MissPiggy> write a function called --> that turns names into indices
22:51:18 <alise> and the opposite way, too
22:51:19 <Sgeo> Stupid broken A/V sync on this YouTube video
22:51:22 <alise> so I can see what the fuck will happen
22:51:26 <MissPiggy> so you can write ("x", T) --> "x" instead of T -> #0
22:51:32 <alise> λ:((★) → (★) → (1) → (1) → (★) → ((4) → (4) → 2) → 2). λ:((★) → (1) → (1) → (★) → ((4) → (4) → 2) → 2). λ:((1) → (1) → (★) → ((4) → (4) → 2) → 2). λ:((1) → (★) → ((4) → (4) → 2) → 2). λ:((★) → ((4) → (4) → 2) → 2). λ:(((4) → (4) → 2) → 2). ((0) (3)) (2)
22:51:40 <alise> that's cons
22:51:48 <alise> now in the sugar language I wrote over this, here's what it'll look like
22:53:03 <alise> cons : (α:★) → (β:★) → α → β → (γ:★) → (α → β → γ) → γ
22:53:12 <alise> cons _ _ x y _ f = f x y
22:53:32 <alise> MissPiggy: actually, if I define some standard representation for a tuple
22:53:47 <alise> then I can trivially infer an ((α:★),α) given an α
22:53:56 <alise> simply because I must know the type already, since I'm doing typechecking
22:54:50 <alise> no?
22:55:27 <alise> http://pastie.org/813947.txt?key=s3kxmqh9xb0pvxoycdqzpw
22:55:31 <alise> May I never have to write such a thing again
22:55:52 <MissPiggy> cons ??
22:56:17 <alise> \x y f. f x y
22:56:22 <alise> The pair-creator.
22:56:24 <MissPiggy> yikes O_O
22:56:29 <alise> Dependently typed!
22:56:33 <MissPiggy> why is it so typed
22:56:38 <alise> Pretty-printed (ha), it's
22:56:38 <MissPiggy> jusst make it simple :P
22:56:39 <alise> λ:((★) → (★) → (1) → (1) → (★) → ((4) → (4) → 2) → 2). λ:((★) → (1) → (1) → (★) → ((4) → (4) → 2) → 2). λ:((1) → (1) → (★) → ((4) → (4) → 2) → 2). λ:((1) → (★) → ((4) → (4) → 2) → 2). λ:((★) → ((4) → (4) → 2) → 2). λ:(((4) → (4) → 2) → 2). ((0) (3)) (2)
22:56:43 <alise> MissPiggy: Because I have no other choice.
22:56:47 <alise> I have to curry because this is the LC.
22:56:50 * MissPiggy almost spat tea out
22:57:00 <alise> But I have to specify the type of every function, because this is no-inferring, typed LC.
22:57:02 <MissPiggy> through whoms nose
22:57:13 <alise> And I have to have additional Set arguments because this is the dependently-typed LC.
22:59:44 -!- adam_d_ has joined.
23:02:36 -!- adam_d has quit (Ping timeout: 256 seconds).
23:05:26 <alise> My variable names: αβγδεζηθικμνξοπρστυφχψω
23:05:40 <MissPiggy> they are hot
23:05:50 <alise> I love the Greek alphabet. It's beautiful.
23:06:00 <MissPiggy> I should set it up so that alt-shift types greek
23:06:52 <alise> IMAL (In My Awesome Language), typing abcdefg... will automatically convert. :-)
23:07:44 <pikhq> alise: You and your derived-from-Egyptian scripts.
23:08:07 <alise> Unicode has up to quadruple prime :D
23:08:48 <alise> they don't compose together well, though
23:08:52 <alise> different numbers of primes
23:11:43 * MissPiggy thinks unicode is a bit stupid
23:12:54 <alise> Why?
23:13:08 <alise> It has some stupidities, like the super/subscripts; it shouldn't be trying for a formatting vehicle.
23:13:13 <alise> Anyway, behold:
23:13:14 <alise> *Main> System.IO.UTF8.putStrLn $ pretty idL
23:13:14 <alise> (λ:((α:★) → (β:α) → α))) α. α)
23:13:33 <alise> *Main> System.IO.UTF8.putStrLn $ pretty consL
23:13:33 <alise> (λ:((α:★) → (β:★) → (γ:α) → (δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ))))))) α. (λ:((β:★) → (γ:α) → (δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ)))))) β. (λ:((γ:α) → (δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ))))) γ. (λ:((δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ)))) δ. (λ:((ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ))) ε
23:13:34 <alise> . (λ:((ζ:(ζ:α) → (η:β) → ε))) → δ)) ζ. ζ γ δ))))))
23:13:38 <alise> MissPiggy: I hope that clears things up for you.
23:14:03 <alise> "(ζ:(ζ:α)" - bug or just plain awesomeness?
23:14:08 <alise> I'll go with bug.
23:14:12 <MissPiggy> PLAIN AWESOME
23:14:24 <MissPiggy> ζ:ζζζζζζζζ
23:14:26 -!- SimonRC has quit (Ping timeout: 246 seconds).
23:14:38 <alise> It's because since you can't technically reference it from inside itself, it's free. :-)
23:16:04 <alise> MissPiggy: think I should change the type signatures to (λ(var:type):(result type). )? Not sure if that's actually any better :P
23:16:36 * alise wonders why
23:16:41 <alise> let v = ident vs
23:16:42 <alise> vs' = v:vs
23:16:45 <alise> complains about v not being defined
23:17:43 <alise> *Main> System.IO.UTF8.putStrLn $ pretty consL
23:17:43 <alise> (λ:((β:★) → (γ:★) → (δ:γ) → (ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε))))))) α. (λ:((γ:★) → (δ:γ) → (ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε)))))) β. (λ:((δ:γ) → (ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε))))) γ. (λ:((ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε)))) δ. (λ:((ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε))) ε
23:17:43 <alise> . (λ:((η:(θ:δ) → (ι:ε) → η))) → ε)) ζ. ζ γ δ))))))
23:17:48 <alise> MissPiggy: It's simple, really.
23:17:59 <alise> I pity the foo that has to debug their code generator for this
23:19:12 <alise> MissPiggy: it would probably help if I didn't try and avoid types and variables clashing (same list) :)
23:21:05 -!- MizardX- has joined.
23:21:44 <alise> *Main> System.IO.UTF8.putStrLn $ pretty (Arrow (Arrow Set Set) (Arrow Set Set))
23:21:45 <alise> (α : (β : ★) → ★) → (β : ★) → ★
23:21:49 <alise> I should probably retain used variables
23:22:14 <alise> hmm
23:22:18 <alise> this could do with becoming monadic
23:23:10 <oerjan> you mean to make it even more incomprehensible?
23:23:19 * oerjan ducks
23:24:37 -!- MizardX has quit (Ping timeout: 260 seconds).
23:24:38 -!- SimonRC has joined.
23:25:04 -!- MizardX- has changed nick to MizardX.
23:25:16 -!- znerc has quit (Remote host closed the connection).
23:28:58 <MissPiggy> alise
23:29:10 <MissPiggy> have you raed peter morris' work on universe of strictly positive typs
23:34:21 <alise> back
23:34:27 <alise> no
23:34:46 * alise will implement a new feature in the prettifier
23:34:56 <alise> arguments whose values are ignored in the type will be just shown as their type
23:36:32 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
23:45:19 -!- FireFly has quit (Quit: Leaving).
23:51:54 <alise> *Main> System.IO.UTF8.putStrLn $ pretty idL
23:51:54 <alise> (λ(α:★) : (α : α) → *** Exception: List.genericIndex: index too large.
23:52:53 <alise> :/
23:57:57 -!- jcp has joined.
2010-02-08
00:00:21 <alise> *Main> System.IO.UTF8.putStrLn $ pretty idL
00:00:21 <alise> (λα : (α : ★) → (β : α) → α. α)
00:00:30 <alise> *Main> System.IO.UTF8.putStrLn $ pretty consL
00:00:31 <alise> (λα : (α : ★) → (β : ★) → (γ : α) → (δ : β) → (ε : ★) → (θ : (ζ : α) → (η : β) → ε) → ζ. (λβ : (ι : ★) → (κ : θ) → (μ : ι) → (ν : ★) → (π : (ξ : θ) → (ο : ι) → ν) → ξ. (λγ : (ρ : ο) → (σ : π) → (τ : ★) → (χ : (υ : ο) → (φ : π) → τ) → υ. (λδ : (ψ : φ) → (ω : ★) → (γ′ : (α′ : υ) → (β′ : φ) → ω) → α′. (λε : (δ′ : ★) → (η
00:00:31 <alise> ′ : (ε′ : ω) → (ζ′ : α′) → δ′) → ε′. (λζ : (κ′ : (θ′ : γ′) → (ι′ : δ′) → η′) → θ′. ζ γ δ))))))
00:00:34 -!- MizardX- has joined.
00:01:51 -!- adam_d_ has quit (Quit: Leaving).
00:03:14 -!- MizardX has quit (Ping timeout: 276 seconds).
00:03:33 -!- MizardX- has changed nick to MizardX.
00:07:05 <alise> MissPiggy: in a dependent lang the function arguments to church numerals don't have to be a->a do they
00:07:12 <Sgeo> pretty?
00:07:13 <alise> they just have to be (something which includes b)->b
00:07:24 <alise> Sgeo: prettifies a dependently-typed lambda calculus AST
00:07:38 * Sgeo is already confused
00:08:46 <coppro> Sgeo: just go along with him
00:08:50 <coppro> *her
00:09:29 <oerjan> well that's a subtype of b->b isn't it
00:10:28 <oerjan> hïrm
00:11:00 <alise> oerjan: right
00:11:04 <alise> *Main> System.IO.UTF8.putStrLn $ pretty (church 0)
00:11:04 <alise> (λα : (α : ★) → (γ : (β : α) → α) → (δ : α) → α. (λβ : (ζ : (ε : δ) → δ) → (η : δ) → δ. (λγ : (θ : ε) → ε. γ)))
00:15:11 <alise> Something's broken...
00:18:22 <alise> *Main> System.IO.UTF8.putStrLn $ pretty (church 50)
00:18:22 <alise> (λα : (α : ★) → (γ : (β : α) → α) → (δ : α) → α. (λβ : (ζ : (ε : δ) → δ) → (η : δ) → δ. (λγ : (θ : ε) → ε. (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β γ)))))))))))))))))))))))))))))))))))))))))))))))))))))
00:21:21 <alise> *Main> System.IO.UTF8.putStrLn $ pretty trueL
00:21:21 <alise> (λα : (α : ★) → (β : α) → (γ : α) → α. (λβ : (δ : γ) → (ε : γ) → γ. (λγ : (ζ : δ) → δ. β)))
00:21:21 <alise> *Main> System.IO.UTF8.putStrLn $ pretty falseL
00:21:21 <alise> (λα : (α : ★) → (β : α) → (γ : α) → α. (λβ : (δ : γ) → (ε : γ) → γ. (λγ : (ζ : δ) → δ. γ)))
00:22:01 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
00:22:25 <alise> "As an alternative to the encoding using Church pairs, a list can be encoded by identifying it with its right fold function."
00:22:26 <alise> Me likey.
00:22:40 <alise> can you define foldl with foldr?
00:24:17 <oerjan> yes
00:24:31 <MissPiggy> alise but why would you...
00:24:55 <oerjan> MissPiggy: if a list is defined as its foldr...
00:25:01 <alise> what oerjan said
00:25:10 <alise> defining things as their natural functions is a nice thing
00:25:20 <alise> like Maybe a is b -> (a -> b) -> b
00:25:28 <alise> Either a b is (a -> c) -> (b -> c) -> c
00:25:33 <alise> (a,b) is (a -> b -> c) -> c
00:25:34 <alise> etc
00:25:40 <oerjan> it's one of those anamorphism or catamorphism things
00:25:43 <alise> oerjan: what's the definition btw?
00:25:51 * oerjan cannot remember which is which
00:26:02 <oerjan> hm lessee
00:26:26 <alise> foldl' f b0 as = foldr (\a k b -> k (f b a)) id as b0
00:26:27 <alise> apparently
00:26:45 <oerjan> why the ' ?
00:26:51 <alise> that's what the LtU person called it
00:26:53 <alise> just not to clash
00:26:55 <alise> not for strictness afaik
00:26:58 <oerjan> oh
00:26:59 <alise> they failed :P
00:27:01 <alise> (at not clashing)
00:27:07 <oerjan> heh
00:27:39 <alise> i'm beginning to realise why nobody uses the dependently-typed lambda calculus as a core language
00:27:44 <alise> (it's frickin' verbose and opaque!)
00:28:01 <MissPiggy> um
00:28:09 <MissPiggy> you cant encode data types by the folds
00:28:20 <alise> you can represent a list as its foldr
00:28:28 <MissPiggy> it doesnt' work
00:28:31 <alise> yes, it does
00:28:42 <oerjan> sure you can. it's how it's done in System F iirc
00:28:48 <alise> map, foldl, head, tail, ... can all be implemented with juts foldr
00:28:50 <alise> *just
00:29:03 <alise> also: http://en.wikipedia.org/wiki/Church_encoding#Higher-order_function
00:29:50 <alise> MissPiggy: also is it just me or does prolog solve the expression problem?
00:29:51 <alise> maybe
00:30:10 <oerjan> prolog has no static types.
00:30:20 <oerjan> without which, it is much easier
00:30:24 <oerjan> iiuc
00:30:50 <MissPiggy> I don't think there's any point me linking to a research problem that proves what I am saying if you already know that I am wrong
00:31:23 <alise> MissPiggy: well, do link
00:31:34 <alise> but i'm fairly sure oerjan and wikipedia, and facts back me up on this
00:32:13 <MissPiggy> http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.4355
00:32:45 <oerjan> note that this foldr encoding of lists applies to when lists have all elements the same type, like in haskell
00:32:50 <alise> MissPiggy: i'm just talking about lists
00:33:04 <MissPiggy> yeah I knew it was pointless
00:33:10 <alise> sigh
00:33:20 <alise> i don't think you understand what i'm saying
00:33:21 <MissPiggy> data Nat : * where
00:33:22 <MissPiggy> Z : Nat
00:33:25 <MissPiggy> S : Nat -> Nat
00:33:28 <MissPiggy> data List : * where
00:33:30 <MissPiggy> nil : List
00:33:37 <MissPiggy> cons : a -> List -> List
00:33:41 <MissPiggy> same thing
00:34:03 * coppro knows how to bug alise... hehehe
00:34:12 <alise> How?
00:34:31 <alise> MissPiggy: so, are you saying that map isn't implementable with just foldr? what about foldl? head? tail?
00:34:41 <coppro> by insisting that C# solves the Expression Problem
00:34:49 <MissPiggy> you can do whatever the fuck you want in haskell or untyped lambda calculus or wikipedia
00:34:57 <MissPiggy> what does that have to do with it
00:35:41 <alise> coppro: >_<
00:35:51 <coppro> it comes close
00:35:53 <alise> MissPiggy: because you are being opaque about what you are actually trying to state to me
00:36:07 <alise> coppro: can you add new methods and have them work on existing members of a type hierarchy?
00:36:20 <coppro> alise: Yes, they're called extension methods
00:36:27 <MissPiggy> I think it's more a case of you already have your mind made up
00:36:32 <alise> they're just glorified functions, but okay
00:36:38 <alise> that doesn't really count :P
00:36:47 <alise> MissPiggy: I haven't and I'm trying to get the information out of you, dammit
00:37:02 <coppro> they are
00:37:02 <MissPiggy> and you seemed to read an entire research paper in the amount of time it takes to read its title
00:37:13 <oerjan> MissPiggy: um so whether you can define a data type using a foldr might depend on your type system. what does that have to do with what we are saying?
00:37:22 <coppro> but does the semantic difference of what is and isn't a member of a type matter?
00:37:23 <alise> MissPiggy: i read the abstract
00:37:29 <alise> usually that summarises what the paper concludes.
00:37:35 <coppro> other than the verbosity
00:37:39 <alise> coppro: yes
00:37:49 <coppro> alise: explain
00:37:56 <alise> coppro: access to private fields
00:38:02 <alise> QED
00:38:24 <oerjan> it's equally clear that in the System F type system people _have_ defined list types as their corresponding fold types
00:38:33 <MissPiggy> this thread of discussion has got murky and clouded with assumptions so lets clear it and we can start again
00:39:00 <coppro> alise: that isn't required
00:39:09 <alise> coppro: well nothing is required
00:39:17 <alise> the expression problem doesn't reduce a language's power
00:39:21 <alise> it reduces its expressivity
00:39:45 * coppro wonders why the idiot decided to refer to it as being solved, when it really isn't
00:39:59 <coppro> I'd argue prototype systems come closest to solving it
00:40:01 <alise> What idiot?
00:40:09 <alise> The author of the .txt file?
00:40:10 <coppro> alise: Wadler
00:40:13 <alise> O_O
00:40:16 <alise> You just called Wadler an idiot.
00:40:50 <alise> Firstly, Wadler is a great computer scientist who came up with using monads in programming and many aspects of Haskell's design.
00:40:51 <coppro> he was an idiot when he decided to refer to it as being solved
00:40:54 <coppro> or solvable
00:41:00 <alise> Secondly, he didn't. He presented *one solution*.
00:41:11 <alise> It allowed you to add both rows and columns.
00:41:13 <alise> That is a solution of the problem.
00:41:21 <alise> It may not be the best or even a good solution, but it is a solution.
00:41:40 <coppro> in that case I contend that C# has solved it
00:42:05 <alise> No.
00:42:06 <alise> Private fields.
00:42:53 <coppro> I contend that those do not matter
00:43:28 <alise> Nothing matters.
00:43:34 <alise> It is a problem of convenience and expressivity, not power.
00:43:43 <alise> So either obey all the rules or obey none.
00:43:54 <alise> If it wasn't about private fields, *every* OOP language would solve it.
00:44:04 <alise> (In an awful, kludgey way, of course.)
00:44:21 <coppro> you have to "add new cases to the datatype and new functions over the datatype"
00:44:24 <MissPiggy> Summary: In lambda caculus you can define data types (including higher order ones like the syntax of lambda caclculus itsself using the Scott encoding, in Haskell you can't use this because it doesn't typecheck but data types are isomorphic to the folds (but the algorithmic complexity of functions you define on the fold version is limited), in dependently typed calculus you can't use the fold encoding because you can't do induction on these types.
00:44:28 <alise> coppro: Anyway, if you add an extension method to a subclass, do you have to add it to all superclasses too?
00:44:43 <MissPiggy> Summray: In untyped lambda caculus****
00:44:45 <alise> If you add an extension method to a superclass, do you have to make separate definitions for each subclass? If not, then it is not solved.
00:44:48 <coppro> alise: Actually, that I'm not sure about, and would be fatal to the Expression Problem
00:44:52 <MissPiggy> alise, oerjan ^
00:44:54 <coppro> but access to private members is not fatal
00:45:30 <coppro> Interestingly enough, prototype systems take it one step further
00:45:55 <augur> i just spent about half an hour to an hour shoveling snow
00:46:11 <coppro> par for the course
00:46:22 <augur> GRAR UPPER BODY STRENGTH
00:46:26 <augur> HULK SMASH SNOW
00:46:58 <alise> MissPiggy: kay :P
00:47:03 <cheater2> you are the snow shovelar!
00:47:11 <alise> coppro: But yes, I just realised that's why it doesn't solve it.
00:47:13 <coppro> prototype systems let you define new functions over individual objects
00:47:20 -!- Wareya has quit (Read error: Operation timed out).
00:47:22 <alise> coppro: In a real-life table of numbers,
00:47:24 <augur> i'd shover your snow ;o
00:47:28 <MissPiggy> I typed that all out and you're not even going to read it?
00:47:31 <alise> you can't just add a column, put one number in, and pretend all the rest are that number
00:47:37 <alise> You have to fill in each separately, considering each row
00:47:59 <alise> MissPiggy: I read it
00:48:10 <alise> MissPiggy: why do you assume I did not?
00:48:16 <coppro> ah, true
00:48:32 * coppro motions quietly in the direction of Python
00:48:33 <alise> coppro: admittedly, normal OOP systems fail at this with rows too by inheriting methods; but that's less bad, since it's just one row being affected
00:48:41 <alise> rather than a nuclear holocaust of oppression as in adding a column
00:49:16 <coppro> alise: why does inheriting methods screw it up?
00:49:25 <alise> wait, it doesn't
00:49:36 <alise> with the column fuckup you enter one and it magics into the other rows
00:49:41 <alise> but with method inheritance, there's no entering+copying
00:49:44 <alise> it's just regular inheritance
00:49:45 <alise> ok
00:50:10 <alise> Incidentally, language implementations with a solution of the expression problem are godly in their ease-of-organisation.
00:50:25 <coppro> ok, here's a fun one
00:50:37 <coppro> Erlang
00:50:41 <alise> Adding a new construct? You can do it in one module: add a row to the AST type, implement all the columns (like "compile", "prettyprint"), add it to the parser, and you're done.
00:50:44 <MissPiggy> oerjan?
00:50:47 <coppro> (note: I know it doesn't solve it. I'm asking you to describe why ont)
00:50:47 -!- Wareya has joined.
00:50:48 <coppro> *not
00:50:58 <MissPiggy> alise because you didn't even argue
00:51:00 <alise> It becomes organised by feature, not by phase.
00:51:09 <alise> MissPiggy: because you're probably right :P
00:51:18 <alise> coppro: Erlang isn't strongly-typed; mu
00:51:30 <alise> well. you can't add pattern-matching cases to a function in erlang, too
00:51:41 <alise> so even if you arbitrarily said {foo,2} is your new row, you can't fill in the columns
00:51:47 <coppro> yeah, it fails pretty hard
00:51:54 <coppro> funny for a functional language though
00:52:04 <coppro> adding new types is the easy bit
00:52:13 <alise> well, since it's not statically typed you can think of it as being able to add rows
00:52:18 <alise> it's just that you don't have to declare the rows you add :)
00:52:19 <oerjan> MissPiggy: well as i said it means it doesn't work in all type systems. perhaps it's a general problem for all dependent ones, i don't know.
00:52:27 <alise> er
00:52:28 <alise> wait
00:52:28 <alise> no
00:52:30 <alise> it can add columns
00:52:32 <alise> but definitely not rows
00:52:33 <alise> right
00:52:35 <alise> like most functional languages
00:52:56 <alise> the expression problem only really makes sense with static typing
00:53:26 <alise> coppro: i was expecting you to be more "coool" at my thing about language implementation organisation :(
00:53:45 <coppro> sorry
00:53:53 <augur> ehird
00:53:53 <alise> :P
00:53:57 <augur> alise*
00:54:02 <alise> ha, i was just about to
00:54:32 <augur> are you considering designing a language which has a very easy solution to the expression problem?
00:54:39 <oerjan> food ->
00:55:04 <alise> augur: i'm considering including my nice syntax for my solution in my language
00:55:08 <alise> and making _all_ types tables
00:55:17 <alise> (although of course you have to export the table part to get it extensible by others etc)
00:55:34 <alise> all ADTs that is
00:55:46 <coppro> I wonder if the ability to subclass could be considered a requirement
00:55:58 <alise> no, just extend the type
00:55:59 <augur> hm
00:56:10 <alise> subtyping in OOP extends the parent type, because you can use the subclasses as their parents
00:56:11 <coppro> or have type extensions of some sort
00:56:16 <coppro> yeah
00:56:18 <alise> yes
00:56:19 <alise> that's adding rows
00:56:22 <alise> well
00:56:26 <alise> adding row = extending type + filling in columns
00:56:35 <alise> adding column = making function + filling in rows
00:56:40 <coppro> with covariance or contravariance?
00:56:49 <augur> COMONADS AND CONTRAMONADS
00:56:57 <alise> coppro: I don't see why?
00:57:04 <coppro> alise: no, I mean which
00:57:09 <alise> er I was thinking of the wrong meaning of covariance :D
00:57:21 <alise> coppro: no, all the extensions are considered equal
00:57:29 <alise> subtyping in OOP just happens to do this, it isn't the optimal way
00:57:36 <alise> the optimal way is simply adding constructors to an existing data type
00:57:37 <coppro> subtyping in OOP is covariant
00:57:41 <coppro> (usually)
00:57:50 <alise> yes, but it doesn't matter for the expression problem
00:57:56 <coppro> but it does
00:57:58 <alise> subtyping is a more general operation than what you need for the expression problem
00:58:05 <alise> with the expression problem, all are =
00:58:27 <coppro> what does one define as "adding new cases to the datatype"?
00:58:57 <alise> data Foo a = Abc Int a
00:59:01 <alise> data Foo a = Abc Int a | Bar a a
00:59:04 <alise> data Foo a = Abc Int a | Bar a a | Quux Int String
00:59:32 * alise realises something
00:59:43 <coppro> alise: Why doesn't simple composition not qualify?
00:59:46 <alise> my language probably has almost as many features that almost all other languages don't have, as common features
00:59:48 <coppro> *does
00:59:55 <alise> coppro: it does i think?
01:00:14 <coppro> well you just said that extension was necessary
01:00:22 <alise> well it has to extend the original type
01:00:23 <coppro> unless we were talking about different definitions of extension
01:00:28 <alise> because you fill in the columns
01:00:30 <MissPiggy> people in haskell are mean
01:00:32 <alise> and you can't change the type of the columns
01:00:34 <MissPiggy> #haskell
01:00:35 <coppro> it's an overloaded word I think
01:00:39 <alise> dependent types, mixfix operators, extensible syntax, partiality as an effect, heavy unicode usage,
01:00:47 <alise> solution to the expression problem,
01:00:48 <alise> ...
01:01:05 <coppro> alise: what do you mean "fill in the columns"?
01:01:17 <alise> when you add a new row
01:01:24 <alise> you have to implement all the functions (columns)
01:01:25 <alise> for that row
01:01:40 <alise> again, think of a real table of numbers
01:01:49 <coppro> I don't think that's a requirement
01:01:49 <alise> if you add a row, you have to fill in the values for its columns
01:01:55 <coppro> since many functions can't be implemented
01:01:59 <alise> if you add a column, you have to fill in the values for its rows
01:02:03 <alise> coppro: all the functions previously added
01:02:04 <alise> the columns
01:02:12 * alise is beginning to suspect you don't understand the problem...
01:02:14 -!- coppro has left (?).
01:02:20 <alise> uh, bye.
01:02:21 -!- coppro has joined.
01:02:23 <alise> wb
01:02:27 <alise> did you miss anything?
01:02:29 <coppro> alise: I do understand it
01:02:30 <coppro> no
01:02:34 <alise> wait
01:02:39 <alise> do you have the link to my explanation?
01:02:41 <alise> I'll show what I mean
01:02:44 <coppro> no
01:02:45 <coppro> I don't
01:02:54 <coppro> ok
01:03:14 <coppro> AFAICT, we're currently arguing over the specification of the problem
01:03:17 <alise> i need the explanation though :P
01:03:22 <alise> i could search the logs I guess
01:03:34 <alise> coppro: well, I'm 99.9% sure I've described the problem correctly
01:03:48 <coppro> alise: I'll wait on your explanation before saying more
01:03:55 <alise> just to check
01:03:59 <alise> you have read http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w right?
01:04:06 <alise> might be good to read it again :P
01:04:12 <alise> (I wrote it)
01:05:00 <alise> slight hinting + greyscale antialiasing makes linux typography okay, yay.
01:05:49 <coppro> alise: yes, I agree
01:05:59 <alise> with the antialiasing thing?
01:06:05 <coppro> no, your explanation
01:06:08 <alise> ah :P
01:06:15 <coppro> however, I also see our disagreement
01:06:28 <coppro> you're considering it as an isolated case; I'm considering every function and type as a whole
01:07:06 <alise> ?
01:07:10 <alise> add more jargon to that
01:07:13 <alise> it's too vague
01:07:14 <coppro> e.g. there is an comparison function which is defined for numbers, but not for lists
01:07:30 <coppro> whereas there is a function to get the first element of a list that is not defined for numbers
01:08:05 <alise> a table is a type, by the way
01:08:10 <alise> rows = members of that type
01:08:13 <alise> columns = functions on that type
01:08:15 <coppro> ah
01:08:20 <coppro> okay, that's what I was missing
01:08:23 <alise> rows are data, columns are functions
01:08:24 <alise> tables are types
01:09:54 <coppro> now things make more sense :)
01:10:36 <alise> yeah the "some functions aren't implementable" thing was confusing me
01:11:02 <alise> also, note that not every function on a type needs to be a column; if it doesn't access the data directly and is just a composition of columns and other non-column functions, it doesn't change definition depending on the row
01:11:14 <MissPiggy> hey alise, will you be on next week?
01:11:21 <MissPiggy> wend
01:11:25 <alise> MissPiggy: End, yes; why?
01:11:35 <MissPiggy> well just wondering like if you aren't
01:11:39 <MissPiggy> then ?
01:11:48 <alise> coppro: this adds slight awkwardness to the typical functional style because you have to declare column functions specifically; I'm considering inferring it
01:12:00 <alise> (pattern match = Damn nigga, you sum columnic function)
01:12:15 <alise> MissPiggy: Then what? You mean if they find out and imprison me in a fortress for 100 years?
01:12:52 <MissPiggy> okay so you're not worried
01:13:41 <alise> Not particularly. They know I can program and like being on the computer (which I wave away with "talking on IM? yeah, yeah, that. no, not Facebook") but I don't think they know I have any sort of web prescense, so them googling for me is unlikely
01:14:00 <alise> If they don't do that, how will they find out? The incriminating thoughts have been in my head since the first few days and they don't seem to have read them yet.
01:14:34 <alise> If I'm not on this week or next week, well... what can you do? Nothing, really.
01:14:42 <alise> Rest assured I won't be personally giving up, so...
01:15:52 <coppro> We'll just assume your Finnish internet connection isn't set up :P
01:16:27 <alise> Internet connection is the only thing going for Finland over Sweden and Norway.
01:16:37 <alise> I'm adamant about not working for the military, so it's out :P
01:16:52 <alise> (Even though by 18 I'll be a senior professor of awesome at MIT.)
01:17:21 <coppro> I thought you weren't going to the USA? :P
01:18:34 <alise> All the excellent CS universities are in America. I could, at least, stand Massachusetts. :-P
01:18:48 <alise> Also note that I may have been joking a wee bit, what with the senior professor of awesome thing.
01:18:56 <oerjan> *gasp*
01:19:12 <coppro> clearly this is the difference between male and female ehird
01:19:38 <oerjan> yeah the male one never joked
01:19:39 <alise> Yes; female alise would never be promoted to Senior Professor of Awesome because of SEXISM
01:19:56 <alise> Also, hey, who says I'm female! Just because I'm referring to myself with female pronouns!
01:20:10 <alise> It's sexism to mandate that only one sex can use one set of pronouns.
01:20:20 <oerjan> it's the (s)h/it, man
01:25:37 <alise> Why did classic Clearlooks become modern Clearlooks?
01:25:40 <alise> Old Clearlooks is far prettier.
01:33:40 <augur> alise: they'll have to create that professor for you, i think
01:34:47 <alise> Professor. Ingredients: 50 bananas/day. 25 cups of coffee/day. 1 Ph.D. Mix until of a frazzled and messy consistency. Cook for 30 minutes at 30 Celsius.
01:35:15 <coppro> or, if a physicist, at 300 K
01:36:35 <alise> yes physicists are cold, horrible people
01:36:37 <alise> is that what you meant?
01:36:49 <alise> 3.15 degrees make all the difference
01:37:02 <alise> hmm, so the difference between a physicist and a mathematician is ~pi
01:37:07 <alise> makes sense.
01:37:20 -!- Asztal has quit (Ping timeout: 258 seconds).
01:38:31 * coppro cackles
01:38:50 <alise> wat.
01:39:07 <coppro> I'm trying to freeze the physicists
01:39:50 <alise> xD
01:40:07 <alise> yeah 26.85 degrees is freeeeeeeezing
01:40:13 <coppro> I know I'll never get rid of their energy entirely, but I'll get rid of what I can
01:40:27 <alise> coppropy
01:40:50 <coppro> then I shall design a mysterious and inexplicable device with their zero-point energy
01:42:28 <coppro> hmm... in what language should I write my text visualizer?
01:45:07 <alise> Haskell.
01:45:18 <augur> cobol
01:45:19 <MissPiggy> "text visualizer"?
01:45:20 <coppro> Already had your reply written down
01:45:26 <MissPiggy> I already have one of those
01:45:31 <alise> The whole program essentially boils down to "vis s = map tile s", after all.
01:45:43 <alise> Indeed, with FRP, you could write literally that.
01:45:46 <coppro> to start, yeah
01:46:04 <alise> Okay then, "vis tiles s = map (tile tiles) s".
01:46:50 <coppro> yes, I get it :P
01:46:59 <coppro> I'm strongly considering Haskell
01:47:00 <alise> Well, it's not "to start with", it's pretty close to all you need.
01:47:09 <coppro> alise: I intend to add more features
01:47:15 <alise> Of course, but the actual tiling part.
01:47:17 <coppro> screw Unix
01:47:29 <alise> coppro: If you do, please do consider using an FRP toolkit.
01:47:37 <alise> You don't have to worry about updating the rendering on its changing or anything.
01:47:42 <coppro> alise: Yes, that seems like a good idea :)
01:47:43 <alise> (FRP is basically event-based programming, but functional)
01:48:10 <alise> coppro: Unfortunately, most FRP implementations suck. :-)
01:48:28 <alise> I don't know if GuiTV lets you do arbitrary graphics, but look at http://www.haskell.org/haskellwiki/TV for the sort of thing that would help updating
01:48:58 <alise> (TV is conal's plaything, and conal is one of the main FRP dudes; he was writing papers about it from the start)
01:49:16 <alise> coppro: So what kind of features are you considering?
01:49:20 <alise> Here's something that would be cool:
01:49:47 <coppro> alise: changing tile images based on surroundings, possibly editing
01:49:53 <alise> You could tell it to run the command "nethack", with a definition file that says the area of the screen (coords of the map) is to use tileset foo, and the rest is to use tileset (a simple bitmap font).
01:50:02 <alise> It'd interpret the vt100 codes and send your keypresses, and voila!
01:50:06 <coppro> yeah, that was on the 'lofty goal' bit
01:50:09 <alise> Graphical nethack in a few lines and some drawing!
01:50:14 <alise> vt100 codes are very simple, so
01:50:18 <coppro> yep
01:50:23 <coppro> was thinking that /exact/ thing, actually
01:50:23 <alise> you could even use termcap/whatever to make them send ones easier for you
01:50:33 <coppro> not that I'd actually use it for nethack
01:50:50 <alise> writing apl :P
01:50:56 <coppro> :P
01:51:06 <alise> given a program that compiles ascii characters to apl chars
01:51:19 <alise> you could arrange the apl chars to the alphabet etc on your keyboard to your liking like the old apl keyboards, and just type away
01:51:47 <MissPiggy> I like APL
01:51:51 <coppro> where should I start with actually learning Haskell Syntax?
01:52:04 <alise> coppro: You should learn Haskell in one go. :-)
01:52:06 <MissPiggy> coppro, f x y z is what you'd normall write like f(x,y,z)
01:52:11 <coppro> alise: yes, but where
01:52:14 <alise> http://learnyouahaskell.com/ is an excellent starting point.
01:52:14 <MissPiggy> except that its ACTUALLY (((f x) y) z)
01:52:25 <coppro> thank you for telling me what currying is
01:52:29 <alise> It's practical, simple to understand and amusing.
01:52:36 <coppro> I like the elephant
01:52:37 <alise> MissPiggy: coppro is rather beyond that stage
01:52:42 <MissPiggy> coppro thank you for learning the first thing about haskell syntax
01:53:02 <coppro> I also happen to sort-of understand monads
01:53:06 <alise> coppro: learn you a haskell doesn't actually explain monads yet, but surely you've picked up what a monad is by now?
01:53:08 <alise> ha
01:53:15 <coppro> ESP too :P
01:53:20 <MissPiggy> what I wrote has nothing to do with monads
01:53:26 <coppro> I know that
01:53:28 <alise> that was the reverse state monad
01:53:33 <alise> http://lukepalmer.wordpress.com/2008/08/10/mindfuck-the-reverse-state-monad/
01:53:36 <alise> (it passes state backwards in time)
01:54:07 <coppro> hmm... LYAH says it's aimed at someone who hasn't done functional programming
01:54:16 <alise> doesn't matter
01:54:19 <alise> it works for someone who has too
01:54:20 <coppro> ok
01:54:31 <alise> it just might be a little easy at first :P
01:54:39 <alise> remember that style is important in haskell, though
01:54:49 <alise> it's easy to write bad haskell code, and it often looks like good code in other languages.
01:54:55 <alise> (because they're less expressive)
01:55:00 <MissPiggy> if coppro doesn't like reading things he already knows he should just learn Haskell from the Report
01:55:02 <alise> so paying attention to what it does is probably a good idea
01:55:22 <alise> I think A Gentle Introduction is harder to read than the Report :-)
01:55:25 <MissPiggy> the highest signal ratio you will get is from the report
01:55:35 <MissPiggy> yeah it is but he flipped out when I mentioned currying
01:55:38 <coppro> alise is right though; style is everything
01:55:48 <alise> MissPiggy: he didn't
01:55:56 <MissPiggy> so he probably wont be able to handle LYAH
01:55:59 <alise> he was just pointing out, sardonically, that he was rather beyond that stage
01:56:05 <alise> chill :P
01:56:38 <coppro> "Haskell was made by some really smart guys (with PhDs)" <-- excellent. An important feature to any language.
01:56:48 <alise> Hey, I don't have a Ph.D.
01:56:55 <alise> :P
01:57:35 <MissPiggy> just steal ideas from PhDs then, that's what I do
01:57:39 <alise> ditto
01:57:42 <MissPiggy> lol
01:57:52 <alise> later, I'll pay them to make a proof of soundness for me to steal.
01:57:55 <coppro> like TeX
01:58:07 <alise> wat
01:58:12 <coppro> TeX is pure genius. And it was made by a guy with a Ph.D. Coincedence?
01:58:25 <alise> Ehh, TeX has flaws :P
01:58:32 <MissPiggy> how TeX is pure genius?
01:58:40 <alise> it's good though, just not "pure genius"
01:58:42 <uorygl> Objective-C. /me yawns.
01:58:45 <MissPiggy> I thought it was pretty much just a good tool that needed to be made
01:58:48 <alise> coppro: you do realise you can get a Ph.D. in theology, right? :D
02:00:42 -!- MissPiggy has quit (Quit: Lost terminal).
02:01:20 <alise> the top two things missing from haskell:
02:01:25 <alise> 1. Dependent types
02:01:31 <alise> 2. A powerful (ML-style) module system
02:01:50 <alise> 1 would in fact remove the need for many other features (like foralls and typeclasses) and even go a long way to solving 2 :P
02:02:00 <coppro> doit
02:02:09 <alise> I'm no dolt!
02:02:19 <alise> (http://folklore.org/StoryView.py?story=Do_It.txt)
02:02:23 <alise> but, err, what
02:02:48 <coppro> go fix Haskell :P
02:03:06 <alise> I'm doing that! Sort of.
02:03:13 <alise> By making an entirely new language with lots of things from Haskell.
02:03:34 <coppro> quick, someone explain why negative numbers must be in parens
02:04:01 <uorygl> Haskell needs typeclasses?
02:04:14 <alise> coppro: because f -3 is f - 3
02:04:23 <coppro> ok
02:04:24 <uorygl> I've pondered emulating typeclasses in Agda and decided that Agda without typeclasses would be superior to Agda with typeclasses.
02:04:28 <alise> that's haskell's first dirty little secret :)
02:04:34 <alise> uorygl: haskell doesn't "need" them
02:04:48 <Sgeo> alise, DoIt
02:04:48 <alise> implicit arguments + records/modules > typeclasses
02:04:58 <alise> the former almost always comes with dependent types.
02:05:15 <coppro> alise: knowing nothing, I'm going to guess that operators are just identifiers and arithmetic is a curried expression template?
02:05:16 <uorygl> data Monad m = Monad {return :: forall a. a -> m a; . . .}
02:05:26 <alise> coppro: (symbols) is an infix operator
02:05:28 <alise> (+) :: ...
02:05:36 <coppro> aw, I'm wrong :(
02:05:43 <alise> arithmetic is just a function :P
02:05:51 <alise> uorygl: yes, but you have to specify that every time :)
02:05:55 <alise> but yes, that + implicit arguments = tada
02:05:58 <Sgeo> if/then/else is more than just a function :(
02:06:00 <coppro> yeah, but I was thinking it would be smalltalkish
02:06:03 <alise> Sgeo: not in agda!
02:06:05 <alise> coppro: howso
02:06:08 <coppro> ((1 +) 2)
02:06:17 <alise> (1 +) works, so does (+ 2)
02:06:22 <alise> you can think of (1 + 2) like that if you want.
02:06:22 <Sgeo> coppro, you can do that in Haskell
02:06:39 <coppro> I guess I'll read a bit more before adding additional comment
02:06:45 <alise> coppro: there's also "infix[lr] symbols N" which defines associativity and precedence
02:07:44 <coppro> ok
02:08:06 <alise> agda does operators far better
02:08:16 <alise> if_then_else_ is how you define the conditional operator (syntax in haskell)
02:08:21 <alise> _+_ is addition, etc
02:08:59 <coppro> yeah, I know, I read that bit of Agda
02:09:10 <coppro> languages that modify their own syntax always scare me though
02:09:48 <alise> it isn't modifying syntax
02:09:51 <alise> not really
02:10:15 <alise> you could view it as agda parsing to a very linear form at first
02:10:20 <alise> and the rest being semantics, not syntax
02:10:30 <alise> anyway, it isn't full syntax modification
02:10:57 <coppro> still makes me squeamish
02:11:20 <alise> I find syntax modification slightly creepy but I just see mixfix as a generalisation of prefix, infix and postfix operators
02:11:30 <alise> after all, you can emulate if a then b else c with if a then (b else c)
02:11:45 <alise> so the only "big" change is allowing non-symbols in operator names, which means you can't know for sure what's an operator at parse-time
02:11:59 <coppro> right
02:12:50 <Sgeo> We should make a language where syntax modification is critical to use, or something
02:12:55 <alise> No :P
02:13:09 <alise> coppro: I might have to be up at 8, but probably not. Probably more like 9-10.
02:13:13 <coppro> it's called Perl
02:13:18 <alise> I should probably think about bed sometime.
02:13:23 <coppro> probably
02:13:25 <alise> But I'm stupid, so I won't :D
02:13:26 <coppro> see you Friday
02:13:42 <Sgeo> Bleh. LYAH's code samples have invisible _
02:14:16 <alise> http://esolangs.org/wiki/Defcalc
02:14:19 <alise> I like this language
02:14:21 <alise> Sgeo: invisible?
02:14:29 <Sgeo> alise, I can't see them
02:14:33 <Sgeo> For some reason
02:14:38 <alise> Get some glasses
02:14:48 <Sgeo> They look like spaces
02:14:58 <alise> line height or sth probably
02:16:18 <Sgeo> http://i.imgur.com/sMKlv.png
02:18:23 <coppro> There's supposed to be underscores there?
02:18:41 <alise> Ah.
02:18:41 <alise> Yes.
02:18:43 <coppro> I love the wiggler diagram of the list
02:18:51 <alise> (Underscore means "ignore this argument".)
02:19:08 <alise> coppro: link?
02:19:11 <Sgeo> Nothing <*> _ = Nothing
02:19:18 <coppro> alise: http://learnyouahaskell.com/listmonster.png
02:19:25 <Sgeo> Not space, like it appears in the screenshot
02:19:36 <alise> coppro: ah yes
02:19:38 <alise> i think that's new since I read it
02:20:10 <pikhq> A list is a curious monster.
02:20:24 <coppro> why is == [] bad?
02:20:49 <oerjan> coppro: requires the content type to be comparable with ==
02:20:49 <alise> because it's "null xs"
02:20:54 <alise> also that
02:21:00 <alise> (Eq a) => Eq [a]
02:21:10 <alise> so you can't compare two lists of incomparable elements, so you can't do == [] on them
02:21:16 <alise> null, otoh, uses pattern matching, and so is fine
02:21:38 <coppro> [1] == [] works fine for me
02:21:48 <alise> that's because you can compare numbers.
02:21:55 <oerjan> sure, but try [sin] == [] ...
02:22:04 <coppro> ah
02:24:18 <alise> "Mapping and filtering is the bread and butter of every functional programmer's toolbox. Uh." --LYAH
02:24:48 <oerjan> that "Uh." in the actual quote?
02:24:54 <alise> yes
02:24:59 <alise> :D
02:25:08 <alise> (if you're confused, whoosh)
02:25:11 <pikhq> Ah, B0NUS' writing.
02:25:24 <alise> *BONUS
02:25:26 <alise> His name is BONUS.
02:25:31 <pikhq> One of the better language tutorials I've read in general.
02:25:34 <alise> never mind his writing, take a look at his twitter
02:25:35 <alise> http://twitter.com/bonus500
02:25:53 <oerjan> alise: well i read that as a possible sarcasm tag...
02:26:03 <alise> oerjan: "bread and butter" "tool box"
02:26:26 <oerjan> well ok i did notice that too
02:26:39 <pikhq> alise: That is one of the more amusing Twitters.
02:26:50 <alise> He emits twats on a daily occasion.
02:26:58 <alise> Tee hee hee, twat. Ahem.
02:27:32 <oerjan> twit is destined to become a strong verb
02:27:53 <alise> Twit, twit your twat's twat.
02:27:59 <alise> TRANSLATION
02:28:13 <alise> Idiot, post (your vagina's posting to Twitter) to Twitter.
02:29:08 <oerjan> i'll call 't wit
02:29:30 <alise> I will sleep soon, I will sleep soon, I will sleep argh
02:29:53 <oerjan> any ops here? we should ban alise for hïrs own good
02:30:17 <alise> hrs own good? What sort of grammar is that?
02:30:25 <alise> also, I'm only going to be affecting my performance in Hell.
02:30:43 <alise> might need to wake up at 8am, it's 2:30. but more likely 9 or 10
02:30:44 <oerjan> you might still want to show up on time...
02:31:13 <pikhq> If Elliot is anything like I, mobility and consciousness are detached.
02:31:17 <oerjan> i'm just trying to make neutral pronouns by merging...
02:31:19 <alise> *Elliott
02:31:22 <alise> pikhq: only partly. :P
02:31:28 <pikhq> And I presume that he merely needs mobility, and doesn't *desire* consciousness.
02:31:29 <alise> oerjan: Show up on time? They come for you.
02:31:36 <alise> I would just have to do without much sleep.
02:31:37 <oerjan> oh dear
02:31:49 <alise> pikhq: oh, I can't be mobile without consciousness
02:32:00 <alise> I find my mind sparks a lot while I'm sitting barely able to move my hands on the keyboard, though
02:32:06 <pikhq> alise: Sounds like mobility isn't needed, either.
02:32:18 <alise> I am expected to walk around and go to classes when I get there...
02:32:28 <pikhq> Alas.
02:34:03 <alise> I wonder if this chocolate will make me sleepy.
02:36:04 <Sgeo> alise, they have classes there?
02:36:21 <pikhq> Sgeo: It is, nominally, a school.
02:36:31 <alise> I would hardly be sane if I wasn't pumped with the idiotic national curriculum, would I?
02:36:37 <alise> pikhq: Actually, it's a "hospital" containing a school.
02:36:47 <alise> Or rather, a branch of a metaschool with no physical location.
02:36:56 <alise> (schools various newcastle hospitals.)
02:37:03 <coppro> For the most part, the idiotic national curriculum is a good thing.
02:37:11 <alise> No. Hell no.
02:37:13 <alise> Double hell no.
02:37:19 <alise> Quadruple hell no.
02:37:27 <coppro> O_O
02:37:42 <Sgeo> Remind me again how this is a bad thing? You're forced to stay nights, I think? I guess that makes it bad
02:37:45 -!- MizardX has quit (Ping timeout: 248 seconds).
02:38:04 <alise> The national curriculum of almost all - (all?) - countries actively inhibits learning for the intelligent.
02:38:12 <coppro> alise: Oh, I agree
02:38:30 <coppro> unfortunately, the majority of people are not 'the intelligent'
02:38:40 <pikhq> Sgeo: He was homeschooled. They believe he is in some manner or another mentally deficient. They are threatening to institutionalise him.
02:38:48 <alise> Homeschooled, I object to that word.
02:39:06 <pikhq> alise: 'Tis the word, though.
02:39:08 <alise> I was not in a "school" at "home" nor was I taught by my parents as the word evokes.
02:39:15 <pikhq> Ah.
02:39:23 <alise> I did, however, learn a crapload more than I ever learned beforehand and stopped hating life.
02:39:37 <pikhq> So, then, your education more consisted of "Learn."
02:39:43 <uorygl> The thing about the public school system is that it inhibits teaching kids stuff like magic and religion.
02:39:50 <alise> Sgeo: Why it's bad: one, it is not voluntary, although it pretends to be, for I am under grave threat of institutionalisation; two, I should not be drinking the "nutritional supplement" I am; three, blah blah blah
02:40:15 <coppro> I'm in a gifted program, which is all that kept me sane. Since I hit high school it's not as necessary for a number of reasons, though I'm still in the program
02:40:19 <alise> uorygl: Well, that is true. I don't think parents should teach their children; on average, people are pretty dumb, including parents.
02:40:30 <pikhq> alise: I'd like to comment that I managed to get through "normal" education just fine.
02:40:42 <pikhq> *Granted*, I spent most of that time learning things for myself...
02:40:47 <Gregor> I somehow survived public schools.
02:40:52 <alise> pikhq: the fact that I was also bullied intensely for almost my entire school career did not help.
02:40:53 <uorygl> Hum, alise = ehird?
02:40:55 <alise> uorygl: Yes.
02:40:59 * uorygl nods.
02:41:05 <Gregor> He got a sex change.
02:41:12 <coppro> what, you don't whois everyone who joins the channel?
02:41:16 <pikhq> alise: Oh. That hinders greatly.
02:41:18 <alise> I can use a feminine name and pronouns while still identifying as male if I want to!
02:41:28 <uorygl> I whoised alise after I suspected e was ehird.
02:41:34 <alise> coppro: I don't have ehird or anything in my whois :P
02:41:35 <pikhq> Such was my life in elementary school.
02:41:39 <uorygl> I did not recognize eir IP address.
02:42:03 <coppro> uorygl: it says "identified as ehird"
02:42:08 <coppro> oh, no it doesn't
02:42:12 <coppro> e must have dropped that
02:42:12 <alise> I suppose I seriously must bed myself soon; something like 5:20 hours of sleep if I sleep now and have to wake at 8.
02:42:16 <alise> 9 or 10, maybe, probably.
02:42:23 <alise> But still. Perhaps 8.
02:42:29 <alise> So, very soon. Very very soon.
02:42:29 <uorygl> alise: so, you're made to stay nights at whatever this place is for the sole purpose of forcing you to drink whatever this thingy is?
02:42:31 <coppro> I was bullied a lot before I switched into this program
02:42:38 <alise> Uh, anyone have the link to the pastie?
02:42:44 <coppro> Since then, I've learned that bullies are idiots
02:42:47 <alise> Eh. I'll summarise.
02:42:53 <uorygl> If so, that's simply inefficient. Write the papers.
02:43:11 <alise> uorygl: I am mainly there because they believe I could not function in normal society because I am a recluse; they believe I am on the autistic spectrum, leaning to Asperger's, and probably have OCD.
02:43:24 <alise> They are, however, doing nothing to "fix" these things even if you accept them as diagnoses.
02:43:29 <uorygl> Or, to use a less oddly ambiguous phrase, inform the media.
02:43:38 <Gregor> "His only crime was being born delicious!"
02:43:48 <uorygl> Okay, that's more... understandable.
02:43:53 <alise> Instead, based on the junk science of BMI and the fact that I'm quite below-average weight, just as my father was,
02:44:00 <alise> that's why they're doing the drink thing.
02:44:08 <alise> It's intended for people with disease-related malnutrition, so... yeah.
02:44:13 <alise> I eat perfectly fine.
02:44:18 <alise> They're crazy.
02:44:18 <pikhq> I thought everyone knew that BMI was little more than a guideline...
02:44:25 <alise> It's not even that!
02:44:29 <coppro> a bad one at that
02:44:32 <alise> It was invented by a mathematician in the 1800s and was fudged to fit the data!
02:44:36 <pikhq> A poor one, though.
02:44:44 <alise> In the 1800s people barely exercised! Body mass was totally different!
02:44:45 <alise> Aaaaaaaaaargh
02:44:54 <uorygl> Have you seen a doctor about whether you're underweight or not?
02:45:00 <alise> Anyway, I'd write to the papers but if it gets to the courts there's a chance I'll be sectioned there and then.
02:45:01 <coppro> uorygl: it's all "doctors"
02:45:15 <alise> uorygl: I am "underweight" as in below average weight.
02:45:23 <alise> So was my dad at the same age until quite later on in his life. He ate fine too.
02:45:37 <uorygl> Have you seen a GP about whether you're underweight or not?
02:45:51 <alise> No, but undoubtedly they had.
02:45:57 <alise> But nutrition science is bullshit.
02:46:06 <pikhq> uorygl: Pretty hard to when he's held there on weekdays.
02:46:09 <alise> (Just ask Ilari, if you have a few hours. Fudged data for political reasons, outright ignored conclusions, ...)
02:46:28 <alise> Anyway, since the media carries a risk of court which carries a risk of sectioning, the more foolproof option, moving country, is the one currently being persued.
02:46:29 <uorygl> You mean that if the courts find out that you wrote to the papers, they could use that as a reason for... whatever sectioning is?
02:46:36 <alise> Sectioning = institutionalisation.
02:46:39 * uorygl nods.
02:46:47 <alise> The court could notice the case, examine it, and conclude I should be sectioned.
02:46:50 <alise> *courts
02:46:58 <coppro> they can actually do that?
02:47:07 <coppro> without being referred to?
02:47:09 <Sgeo> alise, how long could it take to prepare? Shouldn't you have been doing that this weekend?
02:47:13 <alise> Well, if the courts don't notice or do anything with the case, why contact the media?
02:47:18 <alise> What would it accomplish?
02:47:20 <alise> Sgeo: What, moving?
02:47:22 <Sgeo> yes
02:47:24 <pikhq> Sgeo: He needs a passport.
02:47:35 <alise> We have the forms, I just didn't get round to getting my picture for the passport this weekend, oops.
02:47:38 <alise> Next weekend we'll do it.
02:47:40 <uorygl> Well, maybe you should go see a GP.
02:47:42 <alise> As far as planning, we don't need to do much.
02:47:45 <alise> uorygl: Why?
02:48:00 <pikhq> alise: Issues with employment or anything?
02:48:06 <uorygl> To get a sympathetic viewpoint or something.
02:48:31 <alise> uorygl: Why? The mainstream opinion on stuff like this is bullshit that doesn't even consider family history, your frame or anything.
02:48:40 <Sgeo> Next weekend, shall I remind you to get your picture?
02:48:42 <alise> BMI has not been widely discredited, even though doing so could be done by an infant.
02:48:47 <alise> Sgeo: That would be good. :P
02:49:41 <pikhq> alise: Believe it or not, this is less of a fucked up situation than some other things I've heard... There's been a few parents in the UK who were termed "unfit" to be parents for the sole purpose of meeting adoption quotas.
02:49:44 <uorygl> Go see a GP because I'm curious whether the GP you see will be a real person or not?
02:49:47 * Sgeo goes to Google Calendar
02:49:56 <alise> uorygl: "Real person"?
02:50:00 <alise> I am confused by your terminology.
02:50:13 <uorygl> The sort of person who would look at overwhelming evidence and not disagree with it.
02:50:31 <alise> Ah.
02:50:58 <alise> I'd much rather not waste any time and enact the plan ASAP; it's a soul-sucking place and I can't take much more.
02:51:15 * uorygl nods.
02:51:26 <alise> But, uhh, I'm afraid my expectations of the health service are basically 0 after this.
02:51:45 <uorygl> How much time do you spend in this place?
02:51:49 <alise> Monday to Friday.
02:52:13 * Sgeo writes stuff in Google Calendar that looks like vacation planning
02:52:14 <alise> It's not a place you go to in the week so much as home is a place you go to on the weekends.
02:52:20 * uorygl nods.
02:53:11 <uorygl> Indeed, the world is full of injustice and strangeness. Especially if you have Asperger's.
02:53:30 <pikhq> uorygl: The UK's handling of it is full-on retarded.
02:53:49 <alise> uorygl: I don't really believe Asperger's is a real mental condition in any form, especially in its modern, over-vagueised form.
02:53:59 <alise> Maybe a silly synonym for "intelligent nerd".
02:54:26 <uorygl> I think I concluded at some point that if three things are mutually correlated, you can call them one thing.
02:54:36 <uorygl> I mean, I think the definition of a syndrome is a set of traits that tend to occur together.
02:54:39 <alise> Maybe. But it's certainly not a mental illness.
02:54:53 <uorygl> Well, it causes problems.
02:54:58 <alise> Or even "worse" than allism (the opposite of autism; http://www.fysh.org/~zefram/allism/allism_intro.txt), I'd say it's better.
02:54:59 <Sgeo> It's a mental difference :D
02:55:09 <alise> Empathy is spooky emotion at a distance. :-)
02:55:10 <pikhq> alise: It is, at most, a very mild form of disability.
02:55:24 <alise> (mild) autism is certainly a more rational state than allism
02:55:44 <uorygl> In the past couple of days, I've felt significantly, perhaps severely, handicapped by Asperger's.
02:55:53 <alise> Why?
02:56:28 <pikhq> Social interaction is very, very hard...
02:56:39 <alise> Only allistic social interaction.
02:56:45 <pikhq> With most basic reactions basically learned by rote.
02:56:46 <pikhq> Well, yes.
02:56:51 <alise> It wouldn't be a disability if most people were autistic.
02:56:56 <pikhq> Autistic social interaction is the most trivial thing in the world.
02:56:57 <alise> So it isn't a disability.
02:57:06 <alise> If you had a society full of retards, on the other hand...
02:57:09 <alise> That wouldn't work.
02:57:21 <alise> Anyway, I may be biased by the fact that psychological conditions are defined by consensus among psychologists, not evidence.
02:57:28 <alise> Which makes me go rawr and :(.
02:58:05 <uorygl> I've heard (ahem) that Asperger's causes akrasia to a degree much higher than that suffered by other people.
02:58:14 <Sgeo> If we lived in a society where most people had wings and could fly, would not having wings be considered a disability?
02:58:19 <alise> Howso?
02:58:23 <Sgeo> Hm, imperfect analogy
02:58:26 <alise> You can't be vague, uorygl, and expect everyone else to know exactly what you mean.
02:58:31 <alise> Especially if it's based on personal experience.
02:58:32 <uorygl> Where "akrasia" is stuff like addiction, procrastination, and generally acting against one's better judgement.
02:58:52 <pikhq> uorygl: Alas.
02:58:53 * uorygl hugs Sgeo.
02:58:58 <alise> I'd call an autistic person's obsession dedication or specialisation, not addiction.
02:59:10 <alise> Is procrastination more prevalent in autistics? Prove it.
02:59:17 <Sgeo> Wings confer benefits even in a world where only one person has wings.
02:59:28 <alise> Sgeo: but autism/allism aren't utilities
02:59:33 <alise> they're different configurations
02:59:36 <pikhq> alise: "Addiction" is, indeed, the wrong term...
02:59:54 <alise> is being a rabbit, not a snake, a disability?
03:00:10 <uorygl> Addiction is something I don't really suffer from.
03:00:25 <Sgeo> My dad thinks I'm addicted to the computer
03:00:31 <alise> I'm addicted to the computers and the internet. Which just makes my weekdays stay in Hell all the more pleasant.
03:00:50 <alise> Computers and the internet? Yeah, we have those. The computers are for schoolwork only and the internet censored.
03:01:04 <alise> The closest I get to programming is on paper.
03:01:09 <uorygl> Procrastination, I do. I've only been able to complete three classes this year.
03:01:20 <pikhq> alise: I've done some of my best golfing on paper.
03:01:23 <uorygl> Assuming that I can finish the one class I have this semester. I probably can.
03:01:29 <alise> pikhq: You can't evaluate paper.
03:01:33 <uorygl> Heh heh, "addicted to the computer".
03:01:36 <alise> You can't do exploratory programming on paper.
03:01:43 <pikhq> Sorry, *Brainfuck* golfing.
03:01:43 <alise> uorygl: Why the hehs?
03:02:03 <pikhq> Which is exceptionally easy to evaluate, even with just a piece of paper and a pencil.
03:02:09 <alise> pikhq: I do have to wonder if they'd allow a laptop without an internet connection, but it'd have to be a pretty damn cheap laptop to make that worthwhile.
03:02:10 <uorygl> "The computer" is not an activity; saying "addicted to the computer" is like saying "addicted to the exterior of one's house".
03:02:16 <alise> uorygl: Oh I agree.
03:02:24 <alise> I've tried to explain to people that the computer is composite, not atomic.
03:02:42 <pikhq> How can people *not* understand that?
03:02:43 <alise> But the fact is that I don't really like to do X much, where X is most things that are not contained within the computer.
03:02:58 <alise> pikhq: Because they see you sitting in front of a screen typing and mousing in much the same way as you ever do.
03:02:59 <pikhq> I mean, really. My computer gets used for a hell of a lot of things...
03:03:02 <alise> Thus, it's one activity.
03:03:05 <Sgeo> I once helped someone by showing them the recent files in the File menu in Word
03:03:08 <alise> (Yes, I know they don't see *you* mousing.)
03:03:14 <pikhq> I read books, I read magazines, I read comics, I write programs, I chat...
03:03:17 <Sgeo> She proceeded to refer someone who was having programming troubles to me
03:03:18 <pikhq> I play video games...
03:03:21 <pikhq> (mmm, emulator)
03:03:52 <alise> you forgot pornography
03:03:53 <pikhq> Watch movies, watch TV, listen to music...
03:04:00 <pikhq> alise: Heheh.
03:04:06 <alise> Sgeo: Computer = one activity. You're good at programming = fix my computer.
03:04:24 <pikhq> It's like the magic "Do everything" machine!
03:04:30 <alise> You're family/friend = I don't understand how it works, but I know how to use a keyboard and a mouse, so it's easy.
03:04:43 <alise> Compare with painting: Most people don't know how to paint a picture of any real sort of caliber.
03:04:51 <alise> But you can easily tell a "real" painting, so they don't do that.
03:05:00 <alise> With computers, everything looks alike. To inexperienced users, that is.
03:05:48 <pikhq> It's amazing how few people are even competent with computers, even today.
03:06:36 <pikhq> And I don't even mean "have a concept of how it works", but even just "learn the basic working concepts of the UI or UIs they commonly use, so that they can readily figure things out."
03:06:39 <Sgeo> pikhq, I love it.
03:06:40 <alise> i can't wait until we're all uploaded minds experiencing totally configurable virtual realities of our design
03:06:45 <alise> it will be freakin' SWEET
03:06:47 <Sgeo> It means I can show off without using my brain!
03:07:16 <pikhq> Sgeo: Hahahah.
03:07:32 <alise> I'm shutting things down to leave...
03:07:36 <Sgeo> Bye
03:07:36 <alise> You have a few minutes, tops.
03:07:37 <alise> :P
03:07:54 <pikhq> alise: Gxis la revido, mia bonega amiko.
03:08:01 <alise> pikhq: Poo.
03:08:04 <Sgeo> "la" revido?
03:08:17 <Sgeo> Also, what's -ega?
03:08:27 <Sgeo> It's been a while
03:08:37 <pikhq> "Very".
03:08:40 <Sgeo> Ah
03:08:41 <alise> Anyone have anything to say to me before I disappear for five days?
03:08:51 <oerjan> alise: good luck
03:08:56 <alise> oerjan: Thanks.
03:08:58 <pikhq> alise: Retain thy sanity.
03:09:01 <Sgeo> alise, may you retain your sanity
03:09:05 -!- jcp has quit (Ping timeout: 260 seconds).
03:09:07 <alise> pikhq: Sgeo: EXPOSED AT LAST
03:09:20 <alise> Which one is the one created to fuck with me, pikhq or Sgeo?
03:09:23 <alise> :D
03:09:36 <pikhq> Sgeo.
03:09:41 <oerjan> wait which sense of "fuck" is this?
03:09:45 <alise> I KNEW IT
03:09:49 <uorygl> Bye, alise. :(
03:09:50 <pikhq> He doth not use the common tongue correctly.
03:09:57 <pikhq> oerjan: "to mess with".
03:10:02 <alise> oerjan: The sexy sense! By which I mean the sense in which someone is created to confuse me.
03:10:08 <alise> uorygl: Aww. Bye.
03:10:14 <alise> So long, suckers. If you don't keep the missing counter updated in the topic, I'll know you don't truly love me.
03:10:16 <alise> :)
03:10:30 <alise> Alise/ehird/Lord Bob Bobbington Bobbingson the Third, out.
03:10:35 -!- alise has quit (Quit: Leaving).
03:10:58 -!- pikhq has set topic: RIP sun.com | 2 days since last ehird sighting | 0 days since last alise sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
03:11:20 <oerjan> *facepalm*
03:11:46 <pikhq> oerjan: ;)
03:16:54 <oerjan> argh, a dripping sound
03:21:47 <Gracenotes> okay, I'm just submitting my applied algebra homework with rendered latex and not caring that everyone else is using pencil+paper
03:21:55 <Gracenotes> so much easier to type it out
03:22:32 -!- jcp has joined.
03:23:04 <oerjan> always add some commutative diagrams for good measure
03:23:16 * oerjan cackles evilly
03:24:52 <uorygl> I wonder if I have any homework that's due tomorrow.
03:25:02 <Gracenotes> sadly nothing too abstract yet, just coding theory over binary n-tuples
03:25:22 <uorygl> My professor wants us to both submit the problems online and hand in a paper copy. So far, I think I've consistently done exactly one.
03:25:23 <Gracenotes> not too many structures to commute over
03:25:39 <oerjan> you and oklopol and your coding theory
03:26:10 * Sgeo should learn LaTeX
03:26:17 <Gracenotes> also, I really need to write a Haskell module that autogenerates tabular based on a function
03:28:27 <oerjan> Gracenotes: maybe http://hackage.haskell.org/packages/archive/tabular/0.1/doc/html/Text-Tabular-Latex.html ?
03:28:54 * oerjan cackles evilly again
03:29:09 <Gracenotes> eh. that would involve using the table AST-y thing they provide
03:29:43 <oerjan> oh
03:29:50 * oerjan just googled anyhow
03:29:59 <coppro> Sgeo: you should
03:43:55 <Gracenotes> hurrah, Visual Studio 2008 Professional Edition has been installed on my recently partitioned Windows 7 install
03:43:58 * Gracenotes shoots himself
03:44:29 <Gracenotes> but if it's for computer game programming class... I might be able to forgive myself
03:44:42 <Gracenotes> also apparently recent versions aren't that bad at all
03:44:47 <coppro> they aren't
03:45:42 -!- jcp has quit (Read error: Connection reset by peer).
03:46:59 -!- jcp has joined.
03:47:03 <Gracenotes> here is the site for it: http://mysbfiles.stonybrook.edu/~mgruen/cse380/project.html
03:47:42 <coppro> is that the assignment?
03:48:20 <coppro> :( DirectX
03:48:32 <Gracenotes> the individual project, spanning the next month or so
03:49:51 <coppro> neat
03:51:30 <Gracenotes> it all relies on the delay idea being enjoyable
03:51:39 <augur> heyo Gracenotes
03:51:41 <Gracenotes> I've been idly thinking of puzzle ideas these last few days
03:52:43 <Gracenotes> AUGUR
03:54:31 <augur> sup bitch
04:05:48 <Gracenotes> the identity matrix where n = 1 is just 1, right
04:05:58 <Gracenotes> yeah, of course it would be
04:06:38 <oerjan> DUH
04:06:53 <oerjan> diagonal unity, hurr
04:08:36 <Gracenotes> muahaha, latex is so pretty. I feel evil making such good-looking documents.
04:11:04 <coppro> I know
04:11:19 <coppro> I feel the same way
04:11:52 <oerjan> oh dear, it's all an evil overlord plot isn't it
04:12:01 <coppro> all hail Knuth
05:00:13 <coppro> question: In Haskell, some pattern matches must be in parens. Why?
05:00:36 <coppro> e.g. (x:xs) rather than x:xs
05:07:33 <oerjan> precedence. : has fixity 6 iirc
05:07:48 <coppro> and -> has higher precedence?
05:08:04 <coppro> err, =
05:08:12 <oerjan> -> and = is syntax. : is an operator
05:08:32 <coppro> oh, I get it
05:08:34 <coppro> ok
05:08:37 <oerjan> more importantly, function application has higher precedence.
05:08:41 <coppro> right
05:13:33 <oerjan> coppro: http://www.haskell.org/onlinereport/syntax-iso.html
05:13:50 <coppro> thanks
05:17:05 <oerjan> xkcd XD
05:17:33 * coppro is going to go buy a lab coat
05:21:22 -!- jcp has quit (Read error: Connection reset by peer).
05:23:12 -!- jcp has joined.
05:30:38 -!- sshc has joined.
05:39:09 -!- Gracenotes has changed nick to Floor_Feline.
05:57:02 -!- oerjan has quit (Quit: Good night).
06:02:52 -!- zzo38 has joined.
06:11:59 <zzo38> Hello, I was writing a program today, and when using the GNU debugger I noticed that uninitialized values will be 0xBAADF00D and helps a bit
06:12:19 <pikhq> That's rather nice, actually.
06:12:59 <coppro> probably a compiler setting
06:13:31 <zzo38> Do you mean the -ggdb compiler setting?
06:13:46 <coppro> I don't know
06:13:57 <coppro> I should do my homework
06:15:17 <zzo38> Also, how do you figure out what numbers you need to use in the weather forecast URL http://xml.weather.yahoo.com/forecastrss?p=AYXX0008&u=f
06:15:18 <coppro> hm... it occurs to me that functional programming is just a big pun
06:15:27 <zzo38> What do you mean by that?
06:15:34 <zzo38> In what way is it just a big pun?
06:15:49 <coppro> Haskell Curries
06:16:10 <zzo38> OK
06:16:27 <coppro> do you get it?
06:16:33 <zzo38> Not quite.
06:17:00 <coppro> Haskell is a language that curries functions
06:17:09 <coppro> Haskell is named for Haskell Curry
06:17:15 <coppro> currying is named for Haskell Curry
06:17:22 <coppro> coincedence?
06:17:39 <zzo38> OK, now I can see it
06:18:20 <coppro> IT'S ALL A CONSPIRACY
06:18:43 <zzo38> Do you think it is really a conspiracy? Some things might be conspiracies, but I'm not sure about this one.
06:21:39 <zzo38> I also noticed that converting the game "Escape from Planet Delta" from OASYS to TAVSYS, that the TAVSYS binary is smaller than the OASYS binary even though TAVSYS doesn't know about OASYS runtime, so it is built in to the TAVSYS story file instead. (Maybe it is because the TAVSYS file stores string using Baudot?)
06:26:43 <zzo38> Why can't I use the setenv function in gcc on MinGW?
06:27:47 -!- Floor_Feline has changed nick to Gracenotes.
06:28:17 <pikhq> zzo38: Because Windows doesn't support that.
06:28:42 <zzo38> pikhq: OK, but why? getenv works, though
06:29:08 <zzo38> Does it work on gcc on Linux and on FreeBSD?
06:33:08 <zzo38> I also have another question, too. I modified the Glk.dll for my program, by modifying the accelerator table using a resource editor program. How should I mention that?
06:33:52 <zzo38> Like, in the about box (I can edit that with the resource editor, too), or something else, based on the license of the file, how is the good way to make it done?
06:40:53 <pikhq> zzo38: Windows sucks.
06:40:55 <pikhq> That's why.
06:42:48 <zzo38> OK, that I can understand. Of course I know Windows sucks already, but, I still didn't put Linux, yet. But do you know the another question?
06:43:06 <coppro> zzo38: Windows does not have POSIX
06:43:06 <pikhq> No, I don't.
06:43:13 <coppro> you must use the Win32 API to mess with that stuff
06:43:48 <zzo38> But then the program won't work on cross-platform
06:44:14 <zzo38> But at least getenv works, I can do without setenv, for now, I guess. So getenv should work on cross-platform.
06:44:14 <pikhq> Conditional compilation.
06:44:32 <pikhq> You have to do it a *lot*, simply because Windows likes to be petty.
06:44:38 <coppro> getenv is a C standard function
06:44:55 <coppro> or find a nice cross-platform library that does the conditional compilation for you
06:45:07 <coppro> or use Winelib (not recommended)
06:45:52 <zzo38> For now, I can just make it not compile in the part the uses setenv if it is Windows.
06:46:15 <zzo38> Because, it can be work-around manually
06:47:52 <coppro> what are you using the environment variables for?
06:49:46 <zzo38> But do you know the proper way to indicate somewhere that the Glk.dll is changed (if it is even necessary), to the user of the software? (I don't have the source-codes, I just changed it using resource editor, but source is available)
06:50:09 <zzo38> I am using environment variables to check the directory for include files. If there is no environment variable, it will use the current directory.
06:50:22 <coppro> why do you need setenv then?
06:50:36 <coppro> also, what do you mean "indicate somewhere that the Glk.dll is changed"?
06:50:53 <pikhq> coppro: Indicate that he hex edited it, in essence.
06:51:07 <coppro> why would he need to indicate that?
06:51:17 <pikhq> Decency.
06:51:30 <zzo38> I don't really need setenv, it just makes the program a bit simpler to set the include path on the command-line by using the same variable instead of creating a new one. But, I still can create a new one, if I needed to.
06:51:59 <zzo38> Well, I didn't really use a hex editor, I used XN Resource Editor, and that is a bit different.
06:52:01 <coppro> I don't get it
06:52:06 <coppro> why does it matter?
06:52:19 <zzo38> I want to indicate it so that you can know that it is not the official file.
06:52:34 <coppro> change its signature
06:52:50 <zzo38> What signature?
06:52:51 <coppro> note: I have no clue how to do this. All I know is that they have magic GUIDs or the like
06:53:10 <coppro> I think you will also need to update the .lib
06:53:16 <coppro> that you compile against
06:53:25 * coppro curses the Windows dynamic loader
06:53:36 * coppro curses all dynamic loaders
06:56:59 -!- tombom has joined.
06:58:11 <pikhq> Windows doesn't have much in the way of dynamic linking.
06:58:21 <pikhq> Merely just-in-time static linking.
06:58:21 <pikhq> :P
06:58:33 <coppro> yeah
06:59:29 <zzo38> The program can compile in two mode, in COMPILE_TIME mode (which is cross-platform) and in RUN_TIME mode (which currently works only on Windows with Glk, but anyone that can fix this, to make it work on other operating systems with Glk, or without Glk, to please do so)
07:01:18 <zzo38> And the reason I needed to change the accelerators table is so that I can add special functions for the function keys even in line-input mode. WinGlk has command to add menus and toolbars, but they won't have accelerator keys and also won't work if menu/toolbars is turned off. So, I did like this instead, and it worked.
07:01:18 <coppro> O_o
07:02:07 -!- FireFly has joined.
07:06:18 -!- kar8nga has joined.
07:16:38 <zzo38> I added the ID numbers 1 to 12 for the keys F1 to F12, but currently this program uses only F1 and F2 and F3 keys. I also added CTRL+K for the Glk options window (which is built-in to Glk.dll).
07:16:57 <zzo38> Maybe you could look to see if the program is good or if there is something that you think could be improved and what it is.
07:18:28 <olsner> hmm, I'm considering making an easier thue variant by introducing some kind of control flow (and making it sequential rather than nondeterministic), what kind do you need? goto-if-last-line-replaced-something?
07:18:58 <zzo38> I'm not sure, but I guess maybe you can try goto-if-last-line-replaced-something and then see if it can work
07:22:11 <olsner> by writing your replacements in the right way, should be possible to write a program where the last line replaces something iff one of a number of previous replacements replaced something
07:22:29 -!- Pthing has joined.
07:22:30 <olsner> then you can at least translate normal thue programs into it
07:26:41 <olsner> one of the problems here is that I have a fixed input and output format, it seems a bit difficult to work on that with thue, where you seem to often need end/start/position markers to drive the program
07:32:28 <zzo38> I once was on some weblog site that if you wrote "Anonymous" as your name, it shows a error message that you solved the CAPTCHA wrong. (I tried many times and this is what it did, until I put in a different name, such as "A. Nonymous")
07:37:21 -!- zzo38 has quit (Quit: NO CARRIER!!!!!).
07:49:06 -!- tombom has quit (Quit: Leaving).
07:49:55 -!- kar8nga has quit (Remote host closed the connection).
07:52:37 -!- FireFly has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:16:24 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
08:37:00 -!- Slereah has joined.
08:52:19 <oklopol> "oerjan: it's the (s)h/it, man" you're a genius, have i mentioned
09:02:08 <oklopol> http://esolangs.org/wiki/Defcalc <<< this is just tree rewriting
09:02:28 <Slereah> Whatcha got against trees
09:02:56 <oklopol> i just mean that's an incredibly old idea
09:03:10 <oklopol> "pattern recognition"
09:03:13 <oklopol> :P
09:05:04 <Slereah> So are logic combinators and yet there's a bunch of esolang about it!
09:05:49 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
09:11:53 <oklopol> i'm just grumpy because i've made more advanced tree rewriters, but never made a language about them
09:14:59 <fizzie> You're just grumpy because you're crabbed, crabby, cross, fussy, grouchy, bad-tempered, ill-tempered, annoyed and irritable.
09:16:55 -!- Kori has joined.
09:16:55 <Kori> You fucking niggers!
09:16:55 -!- Kori has left (?).
09:17:24 <Slereah> We sure are
09:18:17 <fizzie> Speak for yourself there.
09:23:47 <oklopol> i've never fucked a nigger
09:24:02 <oklopol> but kori means "basket" in finnish
09:25:03 -!- SimonRC has quit (Ping timeout: 265 seconds).
09:30:56 <fizzie> It was also the monetary unit of Kutch prior to 1947, divided into 24 dokda.
09:31:51 -!- SimonRC has joined.
09:45:42 <Slereah> It is also a combinator program!
09:45:49 <Slereah> I wonder what it would do
09:45:58 <Slereah> ```kori
09:46:02 <HackEgo> No output.
09:46:18 <Slereah> Well, not unlambda
09:51:17 -!- scarf has joined.
09:56:04 -!- Pthing has quit (Remote host closed the connection).
09:56:26 -!- adam_d has joined.
10:24:53 -!- MizardX has joined.
10:26:01 -!- Asztal has joined.
10:33:24 -!- Pthing has joined.
11:20:57 -!- Asztal has quit (Ping timeout: 248 seconds).
12:28:31 -!- Pthing has quit (Remote host closed the connection).
12:52:55 -!- FireFly has joined.
13:12:42 -!- Asztal has joined.
14:48:51 -!- scarf_ has joined.
14:48:59 -!- scarf_ has changed nick to ais523.
14:49:16 <ais523> forgot I was already connected...
14:50:04 <ais523> hi from inside my marking-Java session
14:57:08 -!- oerjan has joined.
14:59:48 <oerjan> 22:17:09 <coppro> Haskell is named for Haskell Curry
14:59:48 <oerjan> 22:17:15 <coppro> currying is named for Haskell Curry
14:59:48 <oerjan> 22:17:22 <coppro> coincedence?
15:00:35 <oerjan> actually, official haskell history says that the reason they used his first name was to _avoid_ the obvious puns.
15:01:21 <Slereah> That's not a pun
15:01:38 <oerjan> Slereah: read the log
15:02:36 <oerjan> of course those obvious puns probably did not have to do with the CS meaning of curry, anyhow.
15:03:35 <oerjan> also of course it's not a coincidence, the work that HC did involving combinatory logic lead to both
15:04:31 <oerjan> although currying was not really his invention. there's another joke that we should be happy it's not called schonfinkeling.
15:05:56 <Slereah> oerjan : I did
15:06:02 <Slereah> Currying Curry?
15:06:09 <Slereah> That ain't no pun
15:07:37 <oerjan> um i didn't see anyone mentioning "currying curry". admittedly i'm still on yesterday's log.
15:08:18 <Slereah> What is the pun then
15:08:36 <oerjan> "haskell curries", apparently
15:08:43 <oerjan> hey i didn't make it
15:08:58 <Slereah> You are excused then.
15:09:27 <oerjan> until the next time i make one even worse
15:10:38 -!- coppro has quit (Ping timeout: 265 seconds).
15:10:51 * Sgeo made a Haskell pun once
15:11:16 <oerjan> well was it functional?
15:11:32 <Sgeo> lol
15:11:53 <Deewiant> `translatefromto fi en pito
15:11:54 <HackEgo> maintenance
15:12:02 <Deewiant> `translatefromto fi en kengän pito
15:12:04 <HackEgo> Shoe grip
15:12:21 <oerjan> finnish, the concise language
15:12:27 -!- coppro has joined.
15:12:56 -!- coppro has quit (Client Quit).
15:18:05 -!- cpressey has joined.
15:18:30 <oerjan> <oklopol> "oerjan: it's the (s)h/it, man" you're a genius, have i mentioned <-- embarassingly often
15:18:44 <oerjan> a puny genius, at any rate
15:24:07 <Slereah> !swedish test
15:24:10 <Slereah> `swedish test
15:24:11 <HackEgo> test
15:24:11 <EgoBot> test
15:24:27 <Slereah> `swedish The Feynman Checkerboard or Relativistic Chessboard model was Richard Feynman’s sum-over-paths formulation of the kernel for a free spin ½ particle moving in one spatial dimension.
15:24:28 <HackEgo> Zee Feynmun Checkerbuerd oor Releteefistic Chessbuerd mudel ves Reecherd Feynmun’s soom-oofer-peths furmooleshun ooff zee kernel fur a free-a speen ½ perteecle-a mufeeng in oone-a speteeel deemunsiun. \ Bork Bork Bork!
15:25:26 <oerjan> that was just before he was chased by a fermionic chicken.
15:25:51 <Slereah> `swedish bork
15:25:52 <HackEgo> bork
15:25:54 <Slereah> `swedish bork
15:25:55 <HackEgo> bork
15:25:56 <Slereah> `swedish bork
15:25:57 <HackEgo> bork
15:26:03 <Slereah> BORK HARDER DAMN YOU
15:26:13 <Deewiant> `swedish Bork.
15:26:13 <HackEgo> Bork. \ Bork Bork Bork!
15:26:20 <oerjan> `swedish bjorkbarkburk
15:26:21 <HackEgo> bjurkberkboork
15:26:35 <oerjan> wait
15:26:40 <oerjan> `swedish björkbarkburk
15:26:41 <HackEgo> björkberkboork
15:26:52 <oerjan> my accent key is hung up
15:27:16 <Slereah> `swedish test.
15:27:17 <HackEgo> test. \ Bork Bork Bork!
15:27:25 <Slereah> Ah, it looks for stops
15:35:37 -!- Slereah has quit (Quit: Leaving).
15:35:53 <oerjan> pull out all the stops
15:37:43 <cpressey> ....a pipe oerjan?
15:37:58 <oerjan> huh?
15:38:34 <cpressey> referring to where the idiom "pull out all the stops" comes from
15:38:37 <cpressey> and making an even worse pun
15:39:18 * oerjan swats cpressey for having him google to find out the meaning of his own pun -----###
15:44:39 <cpressey> I have now lost all my faith in inheritance. Not that I ever had any.
15:45:10 <oerjan> yeah those kids never turn out like you want
16:00:18 -!- oerjan has quit (Quit: Later).
16:10:13 -!- MissPiggy has joined.
16:30:59 -!- Pthing has joined.
16:58:40 -!- MigoMipo has joined.
17:02:27 <cpressey> An object-oriented esolang where you can only override a single term in a single expression every time you declare a subclass.
17:02:50 <cpressey> I like tall inheritance hierarchies.
17:06:03 <ais523> hmm, that sounds like a good idea to add to my work-in-progress esolang whose concept is "almost a normal language, but has a huge number of arbitrary restrictions which make it a pain to write"
17:06:13 <ais523> it's not a particularly interesting concept, though, so I might just abandon it
17:06:26 -!- ais523 has quit (Quit: Page closed).
17:10:00 <MissPiggy> I thought that was what INTERCAL was
17:10:21 <scarf> not really, it has a completely different way of doing expressions, and a relatively different way of doing statements
17:10:30 <scarf> INTERCAL's more like a regular imperative language based on different primitives
17:10:45 <MissPiggy> oh okay
17:10:48 <scarf> it does have the PLEASE thing and the 16-bit restriction for constants, but that's about it
17:11:02 <MissPiggy> I was thinking about a language that could compile to every major high level language
17:11:08 <MissPiggy> it's not really eso though
17:11:16 <scarf> MissPiggy: Underlambda!
17:11:32 <scarf> hopefully that'll compile to every major low level language too
17:11:39 <scarf> and pretty much every minor language that's powerful enough
17:11:59 <MissPiggy> grrr esolangs is always down
17:12:07 -!- BeholdMyGlory has joined.
17:12:13 <MissPiggy> how can I read about underlambda?
17:12:18 <scarf> http://esoteric.voxelperfect.net/wiki/Main_Page works for me
17:12:27 <scarf> but underlambda isn't published yet, it's something I'm working on
17:12:41 <cpressey> scarf: I have a similar idea, but rather than "a huge number", I'm just trying to incorporate some of the most annoying ones.
17:12:44 <scarf> an intuitive view of it is "purely functional underload"
17:12:48 <scarf> cpressey: ah
17:13:00 <MissPiggy> oh okay it's on the wiki then
17:13:05 <MissPiggy> so tell me about it? :)
17:13:14 <scarf> here's one I thought up: operator precedence is fixed but follows no pattern (originally determined at random), and parens aren't allowed
17:13:16 * MissPiggy rereads the underload page
17:13:33 <scarf> MissPiggy: basically, the idea's that you have a low-level core, and implement a higher-level language on top of it
17:13:34 <MissPiggy> scarf that sounds like tough love
17:13:48 * MissPiggy had a buggy program the other day because ops were precd wrong :(
17:13:57 <scarf> and the core is based on most of the same concepts as Underload: S works differently, but the rest of the commands are the same
17:14:53 <cpressey> Infix is fun to play with just because of that whole precedence thing.
17:15:16 <scarf> yep
17:20:25 -!- MizardX- has joined.
17:22:33 -!- MizardX has quit (Ping timeout: 248 seconds).
17:22:53 -!- MizardX- has changed nick to MizardX.
17:24:41 -!- adam_d has quit (Ping timeout: 248 seconds).
17:28:32 -!- kar8nga has joined.
17:40:04 <AnMaster> cpressey, isn't there an algorithm for converting it to RPN?
17:42:49 <AnMaster> as in, a specific name, named after someone or such
17:44:27 <cpressey> AnMaster: "it" = ?
17:44:47 <cpressey> Infix?
17:44:55 <cpressey> Yes, probably.
17:46:40 <cpressey> I mean, it's fairly standard (at least for me) to parse infix based on a table and write out postfix opcodes, in a compiler. That would be pretty close to such an algorithm.
17:53:53 <Deewiant> Converting it to RPN isn't much of an algorithm: just do a postorder traversal of the AST
17:54:12 <scarf> Deewiant: there are algorithms that don't involve ASTs
17:54:26 <cpressey> Most of the work is done by the parser (precedence and associativity), before the AST is created.
17:54:27 <scarf> apparently they were used in early compiler design; they'd compile infix to RPN and then build the AST from that
17:54:49 <cpressey> back when people thought in fortran and recursion was scary
17:55:19 <scarf> that's quite possibly the reason
17:55:20 <Deewiant> scarf: O_o
17:55:47 <cpressey> and memory was scarce, and ASTs were rare...
17:56:08 <Deewiant> Well of course you can modify the AST-generating algorithm to print out RPN directly
17:56:14 <Deewiant> Like for shunting-yard
17:56:36 <cpressey> I don't know what that is, but yes. Like for a Pascal compiler.
17:56:43 -!- tombom has joined.
17:56:48 <Deewiant> http://en.wikipedia.org/wiki/Shunting-yard_algorithm
17:57:03 <cpressey> Oh
17:57:17 <cpressey> AnMaster: I might guess that's the specific name you're looking for?
18:02:43 <MissPiggy> shunting yard is pretty lol
18:02:59 <MissPiggy> it's unsound on invalid inputs
18:03:14 <MissPiggy> of course it's correct on correct inputs
18:03:23 <cpressey> I've seen it several times before, but never knew its name and origin
18:03:46 <MissPiggy> on wiki there's a great snippet "alternative to Dijkstras algorithm"
18:03:58 <MissPiggy> basically regex + into )+( and * into ))*(( etc
18:04:09 <MissPiggy> then you can forget about precedence and just read it with the parens
18:04:44 <MissPiggy> well I got that wrong ))+(( and )*(
18:17:03 <Deewiant> MissPiggy: Which is again unsound on invalid inputs, as that creates mismatched brackets so you don't know whether there were any in the original.
18:17:48 <AnMaster> cpressey, indeed
18:18:51 <MissPiggy> Deewiant: huh are you sure
18:19:16 <Deewiant> 1+2 -> 1))+((2
18:19:26 <MissPiggy> you also add (((((( )))))) around the whole thing
18:20:04 <Deewiant> Ah right, that probably works.
18:20:20 <AnMaster> also why couldn't you do error detection in shunting yard?
18:20:41 <cpressey> [1))+((2] <-- variant of that old Scheme syntax
18:21:02 <AnMaster> cpressey, hm?
18:21:13 <AnMaster> do you mean lisp or scheme there?
18:21:14 <scarf> does square bracket mean "unlimited number of parens, so long as it matches"?
18:21:20 <cpressey> Maybe LISP, I don't remember.
18:21:25 <scarf> I can see why lispers would like that
18:21:30 <AnMaster> cpressey, is it those m-expression thingies?
18:21:33 <cpressey> It actually seems very un-Scheme-like somehow, so maybe yeah.
18:21:38 <AnMaster> or whatever their name were
18:21:54 * MissPiggy hates that scheme syntax
18:22:00 <cpressey> scarf: Yes, ] closes all currently open brackets. (There was no corresponding [ in LISP or whatever though.)
18:22:08 * MissPiggy actually hates all [] {} crap in lisps
18:22:28 <cpressey> No idea about the name of it. And yes, I'm not a fan of it either, except as an ugly eso-adoptable thing maybe.
18:22:37 <MissPiggy> people just use ] on IRC
18:22:50 <AnMaster> cpressey, is it related to http://en.wikipedia.org/wiki/M-expression ?
18:22:54 <MissPiggy> that's where it comes from anyway, some crazy person decided to implement it after seeing it on IRC
18:23:20 <cpressey> AnMaster: gack.
18:23:29 <cpressey> I don't think so.
18:23:39 <AnMaster> cpressey, "gack"?
18:24:01 <cpressey> Sorry, I meant: Gack!!
18:24:07 <AnMaster> cpressey, why
18:24:31 <AnMaster> and what is it supposed to express
18:25:19 <cpressey> Surprise and alarm at unearthing of historical computer science artefacts.
18:25:27 <AnMaster> ah
18:25:55 <AnMaster> I thought it was well known that the S-Expressions weren't intended to be used for coding in lisp originally
18:26:12 <cpressey> MissPiggy: btw, the mixing of brackets and parens is one reason I'm not so keen on Clojure
18:26:39 <MissPiggy> cpressey, well .......... when it has a semantic meaning that's a BIT better, like [] for vectors
18:26:43 <MissPiggy> but what I really hate is fucking
18:26:51 <MissPiggy> (let [(x ...)
18:26:56 <MissPiggy> as if that is any easier to read
18:27:09 <MissPiggy> it's like people that write sh*t as if that is somehow less offensive than shit
18:27:24 <Deewiant> No, actually it's completely different :-P
18:27:43 * MissPiggy takes my similes and goes home
18:27:56 <cpressey> Point taken. But it is probably a bit easier for your editor to highlight. I get into "just keep typing ) until you see the matched-paren-color move to the right place"
18:27:59 <AnMaster> also I found lisp without an editor that highlights the matching bracket to be very painful
18:28:25 <MissPiggy> AnMaster, just write it without any parens?
18:28:37 <AnMaster> MissPiggy, if it is lisp: wtf?
18:28:50 <AnMaster> lisp without parens... All comments?
18:28:55 <MissPiggy> read it like natural language, figuring out the ambiguity yourself
18:29:07 <MissPiggy> let x 3 map + x 3 foo
18:29:11 <cpressey> LISP without parens would be Logo :)
18:29:14 <AnMaster> MissPiggy, doesn't help the interpreter or compiler actually compile it
18:29:18 <MissPiggy> ??
18:29:20 <AnMaster> (or interpret it)
18:29:29 <AnMaster> MissPiggy, I meant it is painful when coding lisp
18:29:30 <MissPiggy> why would you NOT use an editor to write lisp on a computer?
18:29:40 <AnMaster> not for reading
18:29:41 <MissPiggy> well your situation is just ridiculous so there's no solution to it
18:29:47 <AnMaster> what are you talking about
18:29:48 <MissPiggy> I thought you were talking about on paper
18:29:48 <cpressey> LISP without parens would actually be fine, if all S-expressions started with an atom which determined the arity exactly
18:30:01 <AnMaster> MissPiggy, you must somehow have misread my comment
18:30:12 -!- scarf has quit (Remote host closed the connection).
18:30:31 <AnMaster> cpressey, hm I can think of a syntax for that. +/5 or such. for 5 parameters
18:31:03 <cpressey> AnMaster: ah, you mean encode the arity in the atom? Interesting, but probably a bit cumbersome.
18:31:04 <AnMaster> but really, I think in many cases it would be more irritating
18:31:11 <MissPiggy> very much so
18:31:13 <AnMaster> cpressey, well, wasn't that what you meant?
18:31:38 <cpressey> I was just thinking to store it in an internal table when the atom is defined
18:31:48 <AnMaster> or did you mean something like + 2 5 4 would be the same as (+ 5 4)
18:31:57 <AnMaster> cpressey, you forgot that some are n-ary, like +
18:31:59 <AnMaster> and *
18:32:34 <AnMaster> also any non-painful way to create lists
18:32:35 <cpressey> AnMaster: like that's necessary? Have them take 1 list as an argument. Or fix them at 2 arguments and apply them multiple times, like + 2 + 3 5
18:32:41 <AnMaster> sure, you could use lots of cons
18:32:45 <AnMaster> but would you really want that
18:32:57 <Deewiant> Would you really want to use LISP without brackets?
18:33:19 <Deewiant> If the answer to the above question is no: it doesn't matter. If it is yes: seek help.
18:33:22 <AnMaster> Deewiant, in some cases I think you can get too many brackets
18:33:34 <AnMaster> typically cond constructs comes to mind
18:33:44 <AnMaster> especially if it is at the end of a define or lambda or similar
18:33:56 <AnMaster> you often end up with ))))))) or so
18:34:08 <Deewiant> If you're going to make it optional, then you can just disallow it for the n-ary stuff.
18:34:20 <AnMaster> Deewiant, well, you could use indention to decide level
18:34:27 <cpressey> The beauty of the parens in LISP/Scheme is their regularity. The pain of the parens in LISP/Scheme is their regularity.
18:34:33 <AnMaster> still have parens for some cases
18:34:42 <AnMaster> like on one line where it makes more sense
18:35:04 <AnMaster> so you get a lisp/python indention mix
18:35:14 <AnMaster> not sure how good this idea would be in practise
18:35:31 <cpressey> I think I would prefer to define multiple syntaxes for a language: one which is "irregular but humane", like yr avg scripting language, and one which is "regular but inhumane" like Scheme or XML
18:35:34 <AnMaster> it doesn't sound too bad to allow the high level structure without parens
18:36:03 <AnMaster> cpressey, "average scripting language" isn't really humane
18:36:17 <AnMaster> because perl offsets the average so much
18:36:18 <AnMaster> ;P
18:36:25 <AnMaster> median might be better
18:36:59 <cpressey> AnMaster: ha! Well, let's just say Perl is such an exceptional language, it's an outlier, and thus disregarded.
18:37:15 <cpressey> I should have said, "a decent scripting language"
18:37:16 <AnMaster> cpressey, a simple average wouldn't do that.
18:37:19 <AnMaster> okay
18:37:23 <AnMaster> cpressey, escript?
18:37:27 <Deewiant> The mode scripting language: Perl or PHP?
18:37:30 <cpressey> Never seen it.
18:37:40 <AnMaster> cpressey, hint: it is run by beam
18:37:41 <cpressey> Unless you mean Erlang
18:37:55 <AnMaster> and yes erlang has escript
18:38:12 <cpressey> Erlang's not exactly my favourite for scripting
18:38:27 <AnMaster> (btw, erl -man escript)
18:38:53 <cpressey> Yes, I've used it before, I've even built something to try to reduce the startup time
18:38:57 <AnMaster> cpressey, and yeah, the shutdown time is quite horrible for erlang in general. iirc it is less for escript though
18:39:53 <cpressey> Last I used escript it was just a simple wrapper that knew about hashbang lines
18:39:58 <AnMaster> cpressey, I never found startup time to be any issue for erlang. The issue is instead that it takes about half a second from q() in the repl to getting back to prompt
18:40:42 <AnMaster> cpressey, I tend to use a shell script wrapper usually for erlang programs. Since escript isn't suitable to directly invoke the main program, you would have to start a new erlang anyway
18:40:50 <AnMaster> at least if you need anything like sasl
18:41:14 <cpressey> I remember shutdown time being bad too, but startup was not great. The Erlang/OTP implementation was really meant for long-running systems, I concluded.
18:41:42 <AnMaster> cpressey, that is true. Idea: attach to existing erlang process
18:41:45 <AnMaster> with a new repl
18:41:47 <AnMaster> it is possible
18:42:00 <cpressey> AnMaster: that was what I did -- search my site for erlaunch if you like :)
18:42:03 <AnMaster> however it has to be distributed.
18:42:04 <AnMaster> iirc
18:42:15 <cpressey> erlaunch doesn't require it to be distributed.
18:42:58 <AnMaster> If erlang is in disk cache, the launch time is maybe 1/10 second? It isn't instantaneous, but I wouldn't call it slow
18:43:02 <AnMaster> the shutdown time however is slow
18:44:12 <AnMaster> hm, what is the hardest bit in implementing intercal? My guess is parsing it.
18:44:40 <AnMaster> once you have it in some nice AST or similar, it doesn't look too hard
18:45:35 <AnMaster> (not easy either, but compared to parsing it...)
19:05:42 <cpressey> Hm, I just realized, if you define a "humane" syntax on top of a Scheme-like syntax, you lose one of the nicest things about Scheme -- hygenic macros. Unless you have a predictable mapping between the 2 syntaxes. In which case, the argument for having 2 syntaxes at all is weakened.
19:06:11 <AnMaster> cpressey, what about those parser thingies in erlang?
19:06:25 <AnMaster> cpressey, you know, liked used for the mnesia query thingies
19:06:26 <cpressey> parse transforms?
19:06:34 <AnMaster> yeah
19:06:59 <cpressey> You have to know about the internal representation (AST) iirc, which is subject to change iirc
19:07:20 <AnMaster> then why is it documented iirc?
19:07:56 <cpressey> Because Ericsson is perfect in every way.
19:08:00 <AnMaster> XD
19:09:38 <AnMaster> cpressey, then why the way they handle floating point NaN and +/- inf?
19:19:37 <cpressey> ...Because they're trying to be "humane" by application of inconsistency?
19:20:09 <AnMaster> heh
19:21:11 <cpressey> I am eternally tempted to design a "real" language which "gets everything right". It's a bad temptation. It's better to stick to these weird little languages that intentionally get things "wrong"...
19:22:58 <olsner> just filter by features not present in any of your languages
19:23:09 <olsner> and the remaining features will make up the ultimate one
19:38:33 -!- gm|lap has joined.
19:39:02 <gm|lap> pikhq: you could do with a bot which tracks users' "sightings"
19:41:34 <cpressey> olsner: How about I just design a language which contains every possible feature, and let users decide.
19:42:50 <olsner> I think that has been tried and failed before
19:43:39 <cpressey> You think? :)
19:47:46 <cpressey> Well, here's one peeve anyway. Access to stack traces always seems to be such an afterthought. I want first-class stack traces.
19:48:59 <olsner> now there's an interesting idea
19:49:27 <oklopol> wouldn't that be sorta like continuations
19:49:53 <cpressey> Yes, it would. A lot like continuations, actually.
19:50:36 <cpressey> I could live with them being slightly less than first-class, for efficiency. But still, it's so rare to be able to handle them like normal objects.
19:51:53 <cpressey> Hm, maybe Ruby does something like that though -- I wouldn't put it past it.
19:53:04 -!- pikhq has set topic: RIP sun.com | 3 days since last ehird sighting | 1 days since last alise sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:58:48 <pikhq> cpressey: That would actually be continuations with transparency, really.
20:00:03 <cpressey> pikhq: Yes.
20:01:07 <Deewiant> Doesn't Java provide that?
20:03:13 -!- augur has quit (Ping timeout: 264 seconds).
20:05:21 <oklopol> why not check the logs for when tusho was last seen
20:05:54 <pikhq> Heheheh.
20:06:26 <cpressey> Deewiant: yes, and it's interface is passable I suppose, but I still consider it an afterthought.
20:06:45 <cpressey> So's Python's.
20:08:13 <cpressey> In both, it looks like you can only get a stack trace after an exception is caught, for example.
20:18:40 <pikhq> C, arguably, has them more first-class. "Getcontext" lets you start accessing the stack. From there, enjoy non-portable code. :P
20:20:19 <fizzie> Can you in Java just make any Throwable object and call .fillInStackTrace() to get access to it even without any throw-trickery? The method looks publicky.
20:20:31 <Deewiant> new Throwable.getStackTrace()
20:20:46 <fizzie> And, yes, the constructor says it calls fillInStackTrace automagically.
20:26:24 * cpressey raises eyebrow
20:27:09 * cpressey is very susprised Throwable isn't abstract
20:29:39 <cpressey> I still think the interface is kind of ugly, but it gets points for setStackTrace.
20:38:13 <FireFly> It seems there's a limit of how long the stack trace may be, though
20:38:22 <FireFly> In Java, that is
20:38:26 <FireFly> At least it stops at 1024 here
20:49:42 <fizzie> I have... acquired this bigram language model built out of song lyrics; can't quite decide whether I want to go through the hassle of converting it into fungot's format. (It's in HTK's special graph-like lattice format, and the existing tools don't quite seem to do the conversion backwards from that to something simpler; but I can run it through HTK's random-sentence-generation tool to get a feel to what fungot'd make of it.)
20:49:43 <fungot> fizzie: you can get the consumer to just wait there, rather than character-port?, to keep the ai in certain circumstances.
20:49:52 -!- Pthing has quit (Remote host closed the connection).
20:50:29 <fizzie> Since it's just bigrams, the lyrics don't seem to make that much sense... but then again, neither do all supposedly serious songs I've heard.
20:50:46 <fizzie> "so long as their eyes / the ocean we'll see it's so i left now / and i want kiss my heaven on love comes to be free / sound of lonely voice is that / i could be it to the one so get married go / still no turning on take the new york new to save / just can't we had a troubled water what i fall / if there watching to the floor na na / mind lover / flip can't stop myself anymore"
20:50:47 <fizzie> "come on the weather / so / i've got to work / i can see you believe in your nightmares me / that / cuz i hate me you see / but on"
21:12:06 -!- MigoMipo has changed nick to MigoMipo_Zwei.
21:12:22 -!- MigoMipo_Zwei has changed nick to MigoMipo.
21:41:25 -!- augur has joined.
21:41:37 <MissPiggy> hi augur!
21:42:22 <augur> heyo
21:44:28 <uorygl> In my client, relatively many people have five-character amber-colored nicks.
21:44:45 <uorygl> augur, scarf, alise.
21:44:53 <augur> uorygl
21:45:32 <uorygl> Two five-letter all-lowercase amber nicks starting with A is far too many.
21:46:35 <augur> why am i amber
21:47:03 <uorygl> Probably because my client randomly assigned you that color.
21:47:13 <augur> oh i see
21:47:54 <fizzie> I get different colors for augur, scarf, alise all; but augur and uorygl get the same pinkish color. XChat's color assignment is not random, though, or even pseudorandom: it's just the sum of the bytes in the nickname, modulo the number of available nick colors (9).
21:49:01 <augur> i have no colors for people
21:49:20 <uorygl> Isn't XChat graphical?
21:49:33 <fizzie> Yes, it is graphical.
21:49:38 <uorygl> It ought to have about 16,777,216 possible nick colors.
21:49:51 <fizzie> There's a predefined list of 9 that should be sufficiently distinguishable, though.
21:50:14 <Asztal> it should use ColorMatch™
21:50:18 <uorygl> The problem with that is that you can't distinguish between two of them if they're identical.
21:51:37 <fizzie> It should use my gcolor.pm. (Do a google image search for a word, fetch the thumbnails for first 100 or so results, compute the HSV histograms and pick a suitable maximum, convert to a single color; that's able to even give colors of abstract concepts.)
21:55:30 <fizzie> #a3ba55 is the color of "irregularity", for example. (Based on irc logs; I have lost the code and the web-page about it, but it wouldn't be that tricky to reimplement if necessary.)
21:56:27 * uorygl ponders what color that is.
21:57:05 <MissPiggy> a
21:57:06 <MissPiggy> wtf is this
21:57:06 <MissPiggy> http://projectfortress.sun.com/Projects/Community/blog/ConditionalExpressions
21:57:06 <MissPiggy> I happen to favor Knuth's version, for four reasons:
21:57:06 <MissPiggy> 4. He's Knuth.
21:57:07 <Asztal> data:text/html,<body bgcolor=a3ba55> :)
21:57:16 <uorygl> Light green-yellow.
21:59:25 <uorygl> You know, it would make slightly more (or perhaps much less) sense to give colors as brightness, redness, blueness.
21:59:55 <fizzie> That's what video formats do.
22:00:11 <fizzie> Sort-of.
22:00:25 <fizzie> "YCbCr or Y′CbCr is a family of color spaces used as a part of the color image pipeline in video and digital photography systems. Y′ is the luma component and CB and CR are the blue-difference and red-difference chroma components."
22:01:43 <fizzie> Admittedly that might be mostly because they can then use different resolutions for luminance and the chroma components.
22:02:04 <uorygl> Call those w, r, b. Then R = 2wr(1 - b), G = 2w(1 - r)(1 - b), and B = wb. Or something like that, anyway.
22:03:03 <uorygl> Hmm, let's forget those 2s.
22:03:45 <uorygl> No, let's leave those 2s.
22:04:21 <uorygl> Quick, someone implement that formula so we can see what happens.
22:04:49 <cpressey> MissPiggy: That page talks about encoding truth values as 0/1 as if it's something, uh... esoteric.
22:05:26 <MissPiggy> I'm going to make an esolang that uses 1 for true and 0 for false :D
22:08:47 <uorygl> The operators are addition, multiplication, and subtraction. It is an error for an operator to return a result other than 0, 1, or 2, or for it to take a 2 and also return a 2.
22:12:57 <cpressey> A quick game of boolean ring toss, anyone?
22:34:23 -!- kar8nga has quit (Remote host closed the connection).
22:35:16 -!- tombom has quit (Quit: Leaving).
22:37:23 -!- oerjan has joined.
22:39:54 <oerjan> <scarf> an intuitive view of it is "purely functional underload"
22:40:04 <oerjan> underload is pretty purely functional
22:40:27 <oerjan> you could consider the program result just a lazy string
22:41:12 <cpressey> MissPiggy, AnMaster: how about, when the first value of a list is an atom, and that atom has a value recorded in the "fixed arities" table, then parentheses can be (at your option) omitted. Otherwise they are required. It's not a great rule maybe, but it's relatively simple.
22:42:13 <cpressey> Of course, there's still special forms. Like let.
22:42:16 <MissPiggy> cpressey I prefer my idea :P
22:42:21 <MissPiggy> where you never write any parens
22:54:30 <AnMaster> cpressey, hm let takes a list doesn't it?
22:54:39 <augur> MissPiggy!
22:54:44 <AnMaster> like: let ((name value)... )
22:54:57 <augur> can i teach you about lecomte's categorial minimalism? :D
22:55:20 -!- MigoMipo has quit (Remote host closed the connection).
22:55:54 <MissPiggy> yes please do!
22:59:48 <cpressey> AnMaster: Yeah, and I've never liked that syntax much. But it's a special form, so I'm not sure what could be done with it.
23:00:17 <cpressey> You can leave out the parens around the let itself
23:00:25 <cpressey> But the bindings list still needs them
23:01:22 <oerjan> <cpressey> AnMaster: ha! Well, let's just say Perl is such an exceptional language, it's an outlier, and thus disregarded.
23:01:32 <oerjan> median _is_ a way to remove outliers, you know
23:01:45 <cpressey> Maybe introduce an arity-3 form called = that just does one binding. Then you can say: = name value = name2 value2 expr
23:02:55 <cpressey> Then let* becomes a problem, but whatever
23:03:28 <cpressey> s/let*/letrec/
23:04:07 <oerjan> <cpressey> I am eternally tempted to design a "real" language which "gets everything right". It's a bad temptation. It's better to stick to these weird little languages that intentionally get things "wrong"...
23:04:23 <oerjan> obviously the problem is that the everythings contradict each other
23:05:36 <oerjan> or become undecidable, like when trying to make a type system that has every feature
23:05:56 <oerjan> *desirable feature
23:06:29 <cpressey> oerjan: I'm sure that's not the only problem.
23:06:53 <oerjan> ok but it's an obvious one
23:07:38 <oerjan> (well obvious after a few people have tried anyhow)
23:08:09 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:08:29 <cpressey> I fail to see how much more wrong it is to having an undecidable type system, than to have an undecidable execution model, which is essentially a given.
23:08:45 <cpressey> s/having/have/
23:08:51 -!- FireFly has quit (Quit: Leaving).
23:09:15 <cpressey> Maybe it shouldn't be a given, but at least in the modern world, it is.
23:09:30 <oerjan> because an undecidable type system won't even get through the compilation stage
23:10:27 <cpressey> I know. But so what? We just blame that on the programmer, like C++ templates, and move on.
23:10:39 <oerjan> hm...
23:10:57 <cpressey> Unless you mean, won't *ever* get through the compilation stage. Then I suppose we have a problem.
23:11:23 <oerjan> with enough features that should be easy enough to achieve :D
23:12:14 <pikhq> cpressey: C++'s type system makes C++ *parsing* undecidable.
23:12:29 <pikhq> Because you have to know the types of things to parse C++.
23:12:35 <cpressey> pikhq: Yes, I know.
23:12:45 <pikhq> (the same is true of C, *but* C typing is trivial...)
23:13:06 <oerjan> <oklopol> why not check the logs for when tusho was last seen <-- he calls himself uorygl these days
23:14:13 <Sgeo> oerjan, no
23:14:18 <Sgeo> tusho == ehird
23:14:23 <Sgeo> Warrigal == uorygl
23:14:24 <cpressey> Maybe in 50 years we'll have advanced to the point where we laugh at the fact that we once did everything in Turing-complete languages, like we now laugh at the fact that we once did everything in assembly.
23:14:36 <AnMaster> <pikhq> (the same is true of C, *but* C typing is trivial...) <--- also, iirc the ramifications of it are less in C than C++
23:14:47 <oerjan> Sgeo: whoops, i was sure tusho was one of ihope's
23:15:10 <oerjan> oh i'm thinking of kerlo
23:15:20 <pikhq> AnMaster: Slightly.
23:15:21 <AnMaster> pikhq, you don't have anything close to that example in the C++ FQA for C.
23:15:40 <pikhq> AnMaster: foo(bar) can *only* be a function call in C, after all.
23:15:48 <AnMaster> fizzie, http://yosefk.com/c++fqa/web-vs-c++.html#misfeature-2
23:15:50 <AnMaster> err
23:15:51 <AnMaster> pikhq, ^
23:15:57 <AnMaster> weird tab typo
23:16:11 <Sgeo> Everyone should program in C--!
23:16:16 <oerjan> unless i'm wrong about that one too
23:16:28 <Sgeo> I think kerlo == Warrigal
23:16:36 <AnMaster> pikhq, and yes, variables can be one of three types basically: scalars, pointers, arrays.
23:16:37 <Sgeo> And Warrigal == ihope
23:16:51 <oerjan> the last one is certain at least
23:17:02 <pikhq> AnMaster: Scalars, pointers, arrays, collections of variables.
23:17:20 <AnMaster> pikhq, oh structs on the stack
23:17:22 <AnMaster> forgot that
23:17:35 <AnMaster> or, well, global vars
23:18:24 <AnMaster> pikhq, still, fairly trivial to figure out what things can be
23:19:03 <AnMaster> pikhq, like * for multiplication can never look * for deref (or the reverse)
23:19:13 <AnMaster> even if you don't know the types
23:19:18 <cpressey> AnMaster: Nice site at that link, thanks.
23:19:26 <AnMaster> cpressey, you didn't know about it?
23:19:27 <AnMaster> heh
23:20:26 <Sgeo> fnord
23:20:30 <cpressey> AnMaster: nope.
23:20:46 <AnMaster> heh
23:21:15 <pikhq> AnMaster: Yeah; you only need to know context for a few very specific things.
23:21:21 <pikhq> (basically, whether or not something is a type or variable)
23:21:31 <AnMaster> pikhq, example?
23:22:18 <AnMaster> hm actually:
23:22:21 <AnMaster> int * foo;
23:22:26 <AnMaster> what if you have:
23:22:30 <AnMaster> x * foo;
23:22:49 <AnMaster> different results if x is a type or a variable
23:22:57 <pikhq> Yeah, foo * bar changes based on whether or not foo is a type.
23:22:59 <AnMaster> but that is, if there is nothing in wrong of x
23:23:17 <AnMaster> it doesn't apply if it happens anywhere but at the start of a statement
23:23:30 <pikhq> Also, "const foo".
23:23:31 <AnMaster> and in C89, only at the first statements in a given function
23:23:42 <AnMaster> pikhq, that only makes sense if foo is a type?
23:23:55 <pikhq> Yes.
23:24:06 <oerjan> foo * bar looks like a useless expression statement though, even if legal...
23:24:24 <AnMaster> oerjan, depends on if foo and bar have side effects ;P
23:24:29 <AnMaster> but yeah, why multiply them
23:24:47 <pikhq> AnMaster: Actually, "const foo" might be equivalent to "const int foo". :P
23:24:48 <oerjan> still not particularly useful
23:24:49 <AnMaster> oerjan, it is however legal. GCC at least will issue a warning about unused value or something like that
23:25:04 <AnMaster> pikhq, isn't that deprecated?
23:25:19 <pikhq> AnMaster: Still syntax.
23:25:19 <AnMaster> pikhq, pretty sure it isn't even allowed nowdays?
23:25:34 <oerjan> well it's obviously legal since it would need a specific exception to make it not so...
23:25:39 <pikhq> C99 requires a note that it's deprecated.
23:25:44 <AnMaster> ah
23:25:54 <AnMaster> <oerjan> well it's obviously legal since it would need a specific exception to make it not so... <-- ?
23:26:09 <pikhq> And it's an error if used for a function declaration.
23:26:52 <AnMaster> anyway, the situations are rare. x * y = z; for example isn't ambiguous at all
23:27:23 <oerjan> AnMaster: all expressions are statements, it would be messy to except only those that are apparently useless
23:27:25 <AnMaster> nor is x * y, z;
23:27:29 <AnMaster> oh wait
23:27:33 <AnMaster> that latter one might be
23:27:40 <AnMaster> if it could be the comma operator
23:27:53 <AnMaster> oerjan, heh
23:28:12 <pikhq> AnMaster: That's either x times y, then z, or an x pointer named y and an x named z.
23:28:42 <AnMaster> oerjan, "This language prohibits useless statements and programs"?
23:28:45 <cpressey> I, Gcc the Great and Terrible, have judged your entire program to be apparently useless, and refuse to compile it.
23:28:45 <oerjan> for example && and || could obviously be useful with statements
23:29:38 <oerjan> AnMaster: not particularly well-defined, that...
23:29:40 <AnMaster> pikhq, x * y, * z should be non-ambig though
23:29:47 <AnMaster> oerjan, it was a joke
23:29:57 <oerjan> *gasp*
23:31:02 <oerjan> AnMaster: actually x * y = z could be a declaration with initialization, couldn't it
23:31:10 <pikhq> AnMaster: x times y, then dereference z, or x pointer y, x pointer z.
23:32:12 <AnMaster> pikhq, oh ffs right
23:32:39 <AnMaster> <oerjan> AnMaster: actually x * y = z could be a declaration with initialization, couldn't it <-- well, yes that is the only thing it could be afaik?
23:33:04 <AnMaster> oerjan, what else could it be?
23:33:04 <oerjan> oh wait right x * y isn't an lvalue
23:33:24 * oerjan thought that backwards
23:33:28 <cpressey> yeah! What do you think this is, C++?
23:33:33 <AnMaster> the term "lvalue" and such always confuse me
23:33:56 <AnMaster> I mean, it much clearer if you just think about it at another level
23:34:06 <oerjan> AnMaster: actually took me a moment to remember the term.
23:34:17 <cpressey> Actually, I'm not sure you could make operator* return a reference in C++. But it sounds like the kind of thing C++ will let you do.
23:35:04 <AnMaster> cpressey, I avoid C++
23:35:30 <AnMaster> pikhq, care to link you lambda header file for C again?
23:35:33 <cpressey> AnMaster: Very wise.
23:35:46 <cpressey> I avoid it now, too, thankfully.
23:36:05 <cpressey> No matter how much Python bugs me, I look back and my C++ days, and I don't look back.
23:36:27 <AnMaster> cpressey, why not erlang :)
23:36:27 <cpressey> Ach, and I've never used C++ for a personal project. That would be Wrong.
23:36:56 <AnMaster> if it wasn't that parsing intercal is such a pain I would probably try to write a bignum intercal interpreter in erlang
23:36:58 <cpressey> AnMaster: Only sometimes :)
23:37:40 <AnMaster> but looking at the lengths c-intercal goes to for parsing... I doubt I even want to try that
23:38:42 <pikhq> cpressey: C++ operators are only required to return a value and be appropriately adic.
23:40:11 <AnMaster> cpressey, why not make the operator* return a pointer?
23:40:16 <AnMaster> to itself
23:40:33 <AnMaster> that way you could make a pointer class you could never dereference
23:41:03 <AnMaster> if you can override & too, then you could make a class you can never take the address of!
23:41:57 <cpressey> AnMaster: given the various attempts to build "smart pointers" to work around the language's primitive memory model, I wouldn't be surprised if it has been done.
23:42:18 <cpressey> pikhq: Great!
23:42:28 -!- coppro has joined.
23:42:30 <AnMaster> hm I want a circle of pointers in C
23:42:30 <fizzie> AnMaster, cpressey: That sort of stuff is done in the actual FAQ, at http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.25
23:42:39 <cpressey> Then we can x * y = z to our hearts' content.
23:42:41 <AnMaster> would only work for void*
23:47:49 <pikhq> void *x = &x;
23:48:12 * uorygl = ihope = kerlo = Warrigal = Tanner Swett
23:48:22 <uorygl> ehird = tusho = alise = Elliott Hird
23:49:35 <fizzie> union p { union p *p; } p = { &p }; ... but maybe that doesn't quite count.
23:49:52 <Sgeo> Is it really a good idea to talk real names in this channel
23:50:05 <coppro> it doesn't really matter
23:50:32 <pikhq> Sgeo: Josiah 'pikhq' Worcester.
23:50:47 <pikhq> Oooh, aaah.
23:50:49 <coppro> /whois coppro
23:51:11 <pikhq> coppro: ZOMG
23:51:25 <coppro> INORITE?
23:52:27 <oerjan> uorygl: um Tanner Swett is your real name?
23:54:04 <Sgeo> As far as anyone knows
23:55:44 * oerjan didn't know tanner was a first name
23:56:41 * coppro knows two Tanners in real life
23:57:30 <oerjan> hm i found a Tanner Swett on linkedin, but i doubt uorygl has joined university yet
23:57:37 <fizzie> oerjan: Maybe it was a honorific, in this case.
23:58:03 -!- pikhq has quit (Read error: Connection reset by peer).
23:58:10 <oerjan> you mean he's very bronze-colored?
23:59:03 <fizzie> oerjan: Yes; it's the penultimate step before graduating to Tannest.
23:59:14 <oerjan> ok then
23:59:57 <fizzie> There are three Tanner Swetts visible in the book of faces.
2010-02-09
00:00:15 <fizzie> And one Lindsay Tanner Swett, but I daresay that's not it.
00:00:26 <AnMaster> night
00:00:41 <oerjan> oh wait it _is_ warrigal
00:01:26 <oerjan> uorygl: darn i thought it was just a moment ago you were 14 :D
00:02:58 <oerjan> well i guess you're at least old enough to reveal your real name then
00:04:24 * Sgeo didn't reveal his real name until he was 17
00:05:08 -!- pikhq has joined.
00:05:22 <fizzie> Misread that as "Sgeo didn't learn his real name until he was 17"; that sounds like a funny environment to grow up in.
00:06:06 <oerjan> well _i_ thought about how surprised his parents must have been when he revealed it
00:06:33 -!- pikhq has quit (Read error: Connection reset by peer).
00:14:57 -!- cpressey has left (?).
00:21:09 -!- pikhq has joined.
00:22:48 -!- pikhq has quit (Read error: Connection reset by peer).
00:37:08 -!- pikhq has joined.
00:38:07 -!- pikhq has quit (Read error: Connection reset by peer).
00:41:55 -!- pikhq has joined.
01:14:22 -!- jcp has joined.
01:25:01 -!- MissPiggy has quit (Quit: Lost terminal).
01:28:48 -!- pikhq has quit (Read error: Connection reset by peer).
01:35:20 -!- pikhq has joined.
01:35:59 -!- pikhq has quit (Read error: Connection reset by peer).
01:40:35 -!- pikhq has joined.
01:41:57 -!- pikhq has quit (Read error: Connection reset by peer).
01:46:06 -!- pikhq has joined.
01:46:55 -!- pikhq has quit (Read error: Connection reset by peer).
01:50:31 -!- pikhq has joined.
02:06:21 -!- pikhq has quit (Read error: Connection reset by peer).
02:12:02 -!- pikhq has joined.
02:12:30 -!- pikhq has quit (Read error: Connection reset by peer).
02:22:22 -!- pikhq has joined.
02:23:25 -!- pikhq has quit (Read error: Connection reset by peer).
02:25:29 -!- Asztal has quit (Ping timeout: 248 seconds).
02:28:07 -!- pikhq has joined.
02:29:23 -!- pikhq has quit (Read error: Connection reset by peer).
02:32:45 <uorygl> oerjan: indeed, I have joined university.
02:32:56 <uorygl> fizzie: there are three of me? Darn, what happened to my monopoly?
02:33:29 <oerjan> i think you failed to show up to your anti-trust proceedings, so there was a default judgement
02:33:52 <uorygl> Aww. And I never even got the letter. It must have gotten lost in the mail.
02:33:59 -!- pikhq has joined.
02:34:02 <oerjan> probably in your spam folder somewhere
02:34:22 -!- pikhq has quit (Read error: Connection reset by peer).
02:35:05 <uorygl> Anyway, I'm the white, fuzzy one.
02:35:35 <uorygl> Standing on a solar panel in outer space.
02:35:58 <oerjan> ah
02:38:24 -!- pikhq has joined.
02:38:48 -!- pikhq has quit (Read error: Connection reset by peer).
02:43:23 -!- pikhq has joined.
02:54:14 -!- iamcal has quit.
03:01:10 -!- cal153 has joined.
03:08:13 <augur> uorygl: which university?
03:10:00 -!- cheater2 has quit (Ping timeout: 252 seconds).
03:22:44 -!- zzo38 has joined.
03:25:47 -!- olsner has quit (Ping timeout: 265 seconds).
03:29:52 -!- zzo38 has quit (Quit: Washizu Mahjong...:F:ALKSF:LAKSF:KJSDMCP#RC)I(UM@!$X<)!U@$#).
03:33:58 -!- pikhq has quit (Read error: Connection reset by peer).
03:40:05 -!- olsner has joined.
03:40:18 -!- pikhq has joined.
03:41:08 -!- pikhq has quit (Read error: Connection reset by peer).
03:47:30 <uorygl> augur: Grand Valley State.
03:47:42 -!- pikhq has joined.
03:47:57 <augur> what
03:48:20 <uorygl> Grand Valley State Universirty.
03:48:23 <uorygl> s/r//
03:48:44 <pikhq> Univesirty?
03:51:19 <oerjan> very gud speeling progarm
04:09:02 <augur> wheres that ey
04:23:39 -!- zzo38 has joined.
04:24:34 <Gregor> I DONE GONE TUH UNIVERSIRTY
04:26:59 <zzo38> Can you please review my program to see if it is good?
04:27:10 <zzo38> Can you please review my program to see if it is good enough?
04:27:45 <zzo38> Also, did you read that: http://notalwaysright.com/its-difficult-to-make-it-any-simpler/4160
04:38:19 -!- zzo38 has quit (Remote host closed the connection).
04:56:56 -!- augur has quit (Ping timeout: 272 seconds).
05:36:36 -!- puzzlet has quit (Changing host).
05:36:36 -!- puzzlet has joined.
05:54:23 <coppro> I hate my school board's internet connection
05:54:45 <coppro> 51 packets transmitted, 0 received, 100% packet loss, time 50254ms
05:59:06 <coppro> It's amazing I can connect at all
06:01:24 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:06:17 -!- MizardX has quit (Ping timeout: 240 seconds).
06:21:13 -!- augur has joined.
06:21:31 <augur> o hai
06:22:15 <coppro> hi
06:22:53 <oerjan> hai ku
06:41:52 -!- Pthing has joined.
06:52:57 <coppro> http://www.haskell.org/haskellwiki/Do_notation_considered_harmful is about LYAH
07:00:07 -!- tombom has joined.
07:04:06 -!- oerjan has quit (Quit: Good night).
07:09:55 -!- dbc has quit (Quit: Seeeeeya).
07:14:27 -!- dbc has joined.
07:46:46 -!- FireFly has joined.
07:49:51 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:15:40 -!- cheater2 has joined.
08:17:21 -!- FireFly has quit (Quit: Leaving).
08:24:21 -!- Gracenotes has quit (Ping timeout: 252 seconds).
08:39:37 -!- Slereah has joined.
08:49:18 -!- Lageron has joined.
08:52:36 <Lageron> Hi!
09:14:18 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:26:47 -!- Gracenotes has joined.
09:30:28 -!- adam_d has joined.
09:51:42 -!- adam_d has quit (Quit: Leaving).
09:56:44 -!- Lageron has quit (Read error: Connection reset by peer).
10:41:07 -!- ais523 has joined.
10:50:47 -!- mosasaur1 has joined.
11:00:03 -!- mosasaur1 has quit (Ping timeout: 252 seconds).
11:07:57 -!- coppro has quit (Ping timeout: 256 seconds).
12:12:51 -!- kernel51 has joined.
12:13:02 <kernel51> Greetings
13:05:15 <ais523> hi
13:05:23 <ais523> hmm, that was a bit slow
13:05:25 <ais523> hi kernel51
13:06:46 -!- ais523 has quit (Changing host).
13:06:46 -!- ais523 has joined.
13:06:46 -!- ais523 has quit (Changing host).
13:06:46 -!- ais523 has joined.
13:12:35 -!- ais523 has quit (Quit: Page closed).
13:16:58 -!- kernel51 has left (?).
13:17:45 -!- Pthing has quit (Remote host closed the connection).
13:18:42 -!- MizardX has joined.
13:19:38 -!- scarf has joined.
13:19:51 -!- scarf has changed nick to ais523.
13:41:14 -!- FireFly has joined.
13:44:49 -!- MizardX has quit (Ping timeout: 260 seconds).
13:51:43 -!- ais523 has quit (Remote host closed the connection).
14:03:22 -!- Sgeo_ has joined.
14:06:02 -!- Sgeo has quit (Ping timeout: 272 seconds).
14:09:37 -!- Pthing has joined.
14:20:01 -!- Slereah has left (?).
14:49:48 -!- scarf has joined.
14:49:57 -!- scarf has changed nick to ais523.
15:00:37 -!- MizardX has joined.
15:22:06 -!- kar8nga has joined.
15:29:44 <oklopol> 7.0.0.5.770.5.8.7.0.0.5.4...1...
15:34:07 -!- cpressey has joined.
15:37:35 -!- oerjan has joined.
15:40:11 <oerjan> <oklopol> 7.0.0.5.770.5.8.7.0.0.5.4...1... <-- i think version numbering has got out of hand
15:57:10 <fizzie> That looks like an OID, except not quite.
15:59:37 <fizzie> For example, SNMP request for the uptime of a system will end up looking for object 1.3.6.1.2.1.1.3, or (with the symbolic names) iso.org.dod.internet.mgmt.mib-2.system.sysUpTime. And that's among the simple ones.
16:01:45 <fizzie> A sample OID given elsewhere is 1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3: iso.org.dod.internet.private.transition.products.chassis.card.slotCps.cpsSlotSummary.cpsModuleTable.cpsModuleEntry.cpsModuleModel.3562.3 -- they haven't even bothered to invent symbolic names for the last two levels of the hierarchy.
16:02:32 <fizzie> Have to say I like that all those standard SNMP MIB objects are hierarchically speaking under United States Department of Defense.
16:06:18 -!- BeholdMyGlory has joined.
16:06:40 <oerjan> well, to me that looks pretty out of hand too.
16:31:10 -!- MissPiggy has joined.
16:31:15 <AnMaster> oerjan, that version number, what is it for?
16:32:32 <oerjan> a joke, AnMaster, a joke
16:32:45 -!- MissPiggy has quit (Changing host).
16:32:45 -!- MissPiggy has joined.
16:32:46 <oerjan> or alternatively, ask oklopol not me
16:41:04 <AnMaster> oerjan, ah wrong nick
16:41:11 <AnMaster> oklopol, what is that version number for?
16:41:47 <AnMaster> fizzie, what do you actually use snmp for. Just status info?
16:43:50 <oklopol> it's not a version number
16:43:53 <fizzie> I don't use it, I just know these things. (To the bus now →)
16:43:58 <oklopol> sry
16:44:04 <oklopol> merry bus
16:44:19 <oerjan> it's busmas!
16:48:08 <oklopol> my back is killing me
16:49:36 <fizzie> The ADSL modem I have does traffic counters over SNMP, I used to have a mrtg-based traffic graph, but it was boring.
16:52:57 <fizzie> I'd be more interested in the negotiated line speeds (to monitor I'm getting my money's worth) but annoyingly that datum is not reported over SNMP, just a lot of useless junk.
16:55:36 -!- oerjan has quit (Quit: Later).
16:56:03 -!- lament has joined.
17:08:40 -!- tombom has joined.
17:10:38 -!- MigoMipo has joined.
17:49:54 <AnMaster> fizzie, can you do any setting changes over snmp?
18:27:59 <AnMaster> ais523, hi there, back in your old nick I see
18:28:10 <AnMaster> about strange courses and other university issues
18:28:17 <ais523> oh, I'm helping some people play NetHack
18:28:20 <ais523> changing nick would confuse them
18:28:34 <Gracenotes> new nick? :o
18:29:06 <AnMaster> ais523, I currently have a "module" in math that consists two sub-modules. Submodule two comes before submodule 1
18:29:11 <AnMaster> I mean, in scheduling
18:29:12 <ais523> heh
18:30:19 <AnMaster> ais523, reason: they switched order of them before, but the confusing when trying to renumber them was too great. People taking a "omtenta" (not sure what it is in English, it is what you do when you fail at a test for a module, and have to do it again) ended up taking it for the wrong submodule and such
18:30:31 <ais523> "retake" in english
18:30:43 <AnMaster> of course, having module 2 before module 1 also causes all sorts of confusion for *new* students
18:31:29 <AnMaster> apparently they are considering renaming them to A and B instead of 2 and 1, hoping that might cause less confusion
18:33:12 <AnMaster> ais523, btw, know anyway to make that gvfs thing not claim the cd? It causes all sorts of issues when it mounts audio cds. At to moment the only way to eject an audio cd is sudo eject /dev/sr0
18:33:26 <AnMaster> brb
18:33:34 <ais523> AnMaster: no
19:04:35 -!- kar8nga has quit (Remote host closed the connection).
19:22:37 <cpressey> I have a question about Turing-completeness proofs.
19:24:17 -!- cheater2 has quit (Ping timeout: 240 seconds).
19:24:25 <cpressey> Let's say I have a language, let's call it L. L is based on some indisputably Turing-complete language, say Scheme, except it has a huge number of arbitrary constraints and restrictions placed on it.
19:24:34 <lament> cpressey!
19:24:35 <lament> hi
19:24:49 <cpressey> Hi lament :)
19:28:21 <cpressey> So anyway, L has a huge number of constraints on it. So many, in fact, that it's only possible to write 3 programs in L: Ackermann's function, Hunt the Wumpus, and a Kipple interpreter.
19:28:29 <cpressey> Is L Turing-complete?
19:29:21 <pikhq> Is Kipple?
19:29:37 <cpressey> Let's assume Kipple is TC.
19:29:45 <pikhq> Then yes.
19:29:59 <lament> er
19:30:06 <lament> of course it's not turing-complete
19:30:32 <pikhq> lament: Sure it is. It is evaluating a TC language, and therefore must be Turing-complete.
19:30:39 <lament> what therefore?
19:30:49 <cpressey> So you see why I asked :)
19:30:55 <fizzie> AnMaster: I think the ADSL box's SNMP bit is completely read-only, so no. Unless you're asking about the protocol in general, which does allow making configuration changes.
19:31:31 <lament> pikhq: that's like saying a box with an apple inside is an apple.
19:31:47 <pikhq> lament: No. It's like saying a box with an apple possesses an apple.
19:31:54 <lament> no.
19:32:51 <pikhq> Turing-complete means that it can evaluate a UTM and that a UTM can evaluate it.
19:33:02 <pikhq> A Kipple interpreter can be considered a UTM.
19:33:24 <pikhq> And I presume that L can be implemented on a TC system.
19:33:47 <AnMaster> fizzie, it was in general
19:33:49 <cpressey> L is a subset of Scheme, and Scheme can be implemented on a TC system, so yes
19:34:06 <pikhq> cpressey: Then clearly L must be Turing-complete.
19:34:14 <cpressey> Scheme and Kipple of course just being concrete examples of TC languages, you could pick any you liked.
19:34:36 <lament> pikhq: a Kipple interpreter cannot be considered an UTM because it isn't.
19:34:46 <AnMaster> well
19:34:59 <cpressey> pikhq: I might agree. But then, I would still have to say that there is still a sense in which L is not 'universal', because I can't write arbitrary programs in L.
19:35:06 <pikhq> lament: Is Kipple Turing-complete?
19:35:15 <lament> let's assume it is.
19:35:21 <cpressey> I can only write them in Kipple-interpreted-by-L.
19:35:25 <pikhq> lament: Then it is equivalent to a UTM.
19:35:27 <AnMaster> isn't this like asking if HQ9+ extended with something like "b - interpret the rest of the code as brainfuck" is TC
19:35:29 <AnMaster> I'm not sure it is
19:35:41 <pikhq> AnMaster: Sure it is.
19:35:47 <lament> AnMaster: sure, it is
19:35:53 <AnMaster> hm
19:35:53 <lament> unlike L
19:35:59 <AnMaster> why isn't L that then?
19:36:16 <cpressey> Sure, L could be that if you like.
19:36:19 <lament> because you can write arbitrary programs in HQ9+b but not in L
19:36:32 <cpressey> lament: You can?
19:36:35 <pikhq> lament: But you certainly can.
19:36:49 <lament> cpressey: "interpret the rest of the *code* as brainfuck"? Sure you can
19:36:52 <cpressey> I thought the point of HQ9+ was that you couldn't. If you can, it doesn't count.
19:37:03 <AnMaster> lament, what about changing it to "interpret a file given as a command line argument to the HQ9+b interpreter as brainfuck"
19:37:07 <AnMaster> rather than having it in the same file
19:37:09 <cpressey> lament: Ah, OK.
19:37:10 <AnMaster> is it still tc?
19:37:12 <lament> AnMaster: right, then it's not TC
19:37:24 <pikhq> Sure it is.
19:37:39 <pikhq> It's just got two inputs for code.
19:37:46 <AnMaster> true
19:37:56 <lament> you're confusing levels of abstraction
19:38:07 <lament> and that's bad
19:38:12 -!- Pthing has quit (Remote host closed the connection).
19:38:31 <pikhq> No, you're pretending there's a difference between a seperate file and an arbitrary string in the program.
19:38:32 <cpressey> I might agree that L is not TC, too, but then i'd still have to say that there is still a sense in which is it 'universal', because it can 'host' a single UTM (and that UTM could host any other UTM).
19:38:36 <lament> on the level of L, the kipple interpreter is just a single object; it doesn't have any properties since there're no operations on it
19:38:42 <lament> therefore, L is not TC
19:39:18 <lament> pikhq: well, either we're talking about L
19:39:27 <pikhq> lament: It's like having a TM with two tapes -- one of which is attached to a machine that can only pretend to be a specific UTM, the other is the tape for that machine.
19:39:31 <lament> or we're talking about Unix machine which has L in it, and you can also run the Kipple interpreter it produces
19:39:46 <AnMaster> lament, what then if a language requires each command to be in a separate file. Lets say bf but you can only have one char in each file and it reads the files sequentially (according to file name in C locale sorting) to get the program
19:39:48 <lament> in the latter case, the device we're questioning the TCness of is not L, it's your Unix machine
19:39:49 <AnMaster> is that then TC
19:39:54 <lament> and yes, your unix machine is TC
19:40:17 <pikhq> lament: ...
19:40:36 <cpressey> Here's another thing to consider: "For some input x, and some L program p, does p halt on x?" is undecidable (even though there are only 3 possibilities for p)
19:40:38 <lament> AnMaster: then the system comprised of the interpreter and a filesystem is TC
19:40:44 <pikhq> lament: But the L interpreter is simply reading a different tape for actually being universal rather than from the *same* tape.
19:40:54 <lament> pikhq: idgi
19:41:52 <AnMaster> isn't there a multi-tape bf
19:42:06 <AnMaster> with limited length of tapes but infinite number of tapes
19:42:19 <pikhq> There exists an interpreter for a Turing-complete language in L, therefore *L is Turing complete*. Quod erat demonstrandum.
19:43:10 <cpressey> One reason I brought this up is because there are lots of proofs of Turing-completeness out there that have the form "I wrote a UTM in this language, therefore this language is TC." If L isn't TC, then all those proofs are invalid.
19:43:28 <MissPiggy> ???????
19:43:37 <cpressey> You would instead have to show that *any* UTM has a mapping to a program in the language.
19:43:38 <lament> cpressey: we need to look at the spirit of TC definition
19:43:46 <lament> where's it?
19:43:57 <pikhq> lament: Math doesn't have "spirt".
19:44:00 <pikhq> Spirit, even
19:44:01 <lament> is the rationale for def-n of TC being able to run any program?
19:44:05 <MissPiggy> pikhq yeah it does
19:44:16 <lament> pikhq: er, of course it does
19:44:55 <pikhq> Anyways.
19:44:55 <lament> I would say that this is the spirit of TCness (quoting Wikipedia):
19:44:56 <pikhq> "Two computers P and Q are called Turing equivalent if P can simulate Q and Q can simulate P."
19:44:58 <lament> "Church–Turing thesis states that if an algorithm (a procedure that terminates) exists then there is an equivalent Turing machine, recursively-definable function, or applicable λ-function, for that algorithm."
19:45:15 <lament> the reason turing machines are interesting is because they can run any algorithm
19:45:36 <pikhq> And L can run any algorithm.
19:45:43 <lament> sure it can't
19:45:49 <lament> *Kipple* can run any algorithm.
19:45:56 <pikhq> But Kipple can, and it can run any Kipple algorithm.
19:45:57 <cpressey> L can run any algorithm written in Kipple.
19:46:10 <cpressey> That statement was absurd, no? :)
19:46:21 <lament> i think so.
19:46:40 <pikhq> The computer L can simulate Kipple. And the computer Kipple (by merit of being TC) can simulate Scheme, a superset of L.
19:46:46 <pikhq> So L and Kipple are Turing-equivalent.
19:47:09 <lament> "The computer L" cannot print a list of primes
19:47:10 <pikhq> Since Kipple and any TC language are *also* Turing-equivalent... L is TC.
19:47:11 <MissPiggy> have anyone proved church turing thesis??
19:47:17 <pikhq> lament: Yes it can.
19:47:22 <cpressey> lament: Well, it can, but only on the right input.
19:47:22 <MissPiggy> quantum physics is evidence for church turing isn't it
19:47:24 <lament> there exists an algorithm to print a list of primes, L cannot do it, therefore L is not TC
19:47:33 <pikhq> lament: But L can do it.
19:47:45 <lament> fine. L is TC then.
19:47:45 <cpressey> The computer L, given no input, cannot print a list of primes.
19:48:03 <lament> ok you win L is TC
19:48:04 <MissPiggy> lament you have be careful there because imagine a language that always printed HELLO when it started
19:48:21 <MissPiggy> it's cannot print hte list of primes without first printing HELLO, but it could still be TC
19:48:26 <cpressey> I have no problem saying L is TC, but then I have to think of TC as not telling you as much about a language as you might like to know.
19:48:34 <MissPiggy> in general... you have to worry about input/output interpretations
19:48:34 -!- Asztal has joined.
19:48:59 <AnMaster> cpressey, either way this results in some issues for the esolang community as far as I can tell
19:49:02 <pikhq> MissPiggy: Church-Turing thesis is trivially proven.
19:49:02 <lament> cpressey: I agree with pikhq
19:49:07 <MissPiggy> what
19:49:12 <lament> cpressey: we just consider the input to be part of the program code
19:49:23 <AnMaster> either TC doesn't really mean much, or a lot of the proofs are invalid
19:49:23 <pikhq> MissPiggy: See compilers.
19:49:26 <lament> cpressey: because what else can we consider it as? turing machines don't have IO
19:49:28 <MissPiggy> you might be thinking of a different theorem than me pikhq
19:49:37 <lament> cpressey: with that clarification, L is obviously TC
19:49:58 <pikhq> lament: Yes they do -- Tape. :P
19:50:07 <MissPiggy> what's your statement of it?
19:50:17 <lament> well yeah.
19:50:27 <MissPiggy> code = data ..
19:50:37 <pikhq> MissPiggy: If an algorithm exists, there exists an equivalent Turing machine for it.
19:50:47 <MissPiggy> pikhq and you know how to prove it??
19:50:54 <AnMaster> hm
19:51:08 <AnMaster> it should be possible to write a brainfuck compiler in befunge93 btw
19:51:16 <pikhq> I have several algorithms for converting algorithms to Turing-complete languages.
19:51:22 <MissPiggy> :/
19:51:23 <AnMaster> I mean, it is trivial to compile it to unoptimised C
19:52:09 <MissPiggy> are you reading it as: if a turing machin exists, there exists an equivalent turing machine for it?
19:52:15 <MissPiggy> because that's now how I read it
19:54:11 <pikhq> MissPiggy: Turing machines aren't algorithms.
19:54:27 <pikhq> Though by the Church-Turing thesis, they can be equivalent to them.
19:54:40 <MissPiggy> okay I can't see what you mean really
19:54:42 <cpressey> Algorithms always halt, by many definitions.
19:57:41 <MissPiggy> what about
19:57:41 <MissPiggy> http://plato.stanford.edu/entries/church-turing/
19:57:41 <MissPiggy> "Misunderstandings of the Thesis"
19:59:58 <cpressey> If an algorithm can be described, it can be described with a Turing machine, is how I take pikhq's statement.
20:00:31 <AnMaster> <cpressey> Algorithms always halt, by many definitions. <-- oh? So anything that may go on forever (say, an algorithm over the natural numbers) wouldn't be an algorithm
20:00:36 <AnMaster> that is, over all of them
20:01:09 <pikhq> AnMaster: Quite.
20:01:19 <AnMaster> what do you can it then
20:01:32 <pikhq> ... English?
20:01:37 <pikhq> Please, speak English?
20:01:37 <MissPiggy> lol
20:02:43 <AnMaster> har
20:02:45 <cpressey> AnMaster: Well, people seem to abuse the word "algorithm" a lot too. To me a heuristic is not an algorithm
20:03:12 <cpressey> Maybe there is an "algorithm" for interpreting brainfuck, even though it may never halt
20:03:19 <MissPiggy> eople abuse church turing
20:03:32 <cpressey> But I think someone famous (Knuth?) wrote a definition of algorithm, and "always halt" was in it.
20:03:49 <AnMaster> cpressey, what about an algorithm for parsing a stream of unknown length, it would depend on the length of the stream
20:04:03 <MissPiggy> productive
20:04:09 <lament> if you define algorithms as processes that can be described by a turing-machine, then church-turing is trivially true
20:04:21 <lament> but that's not really how they're defined for the purposes of the thesis itself
20:04:28 <MissPiggy> lament yeah which is why I don't think that's a correct interpretation of church-turng
20:04:30 <pikhq> lament: More of a tautology, really.
20:04:31 <MissPiggy> yes
20:04:38 <lament> pikhq: right
20:04:42 <MissPiggy> the link I have given goes into this in some detail
20:04:46 <lament> now church and turing were pretty smart guys
20:04:51 <MissPiggy> ^^^^^^^^^^^^^^
20:04:52 <lament> and they didn't think this was a tautology
20:05:02 <MissPiggy> lament you are really good at explaining
20:05:10 <AnMaster> <pikhq> lament: More of a tautology, really. <-- a tautology is trivially true though
20:05:13 -!- gm|lap has joined.
20:05:13 <lament> ty
20:05:19 <MissPiggy> AnMasterXD
20:05:19 <pikhq> AnMaster: Well, of course.
20:05:32 <pikhq> AnMaster: That's a tautology right there. ;)
20:05:42 <AnMaster> pikhq, quite
20:06:32 <MissPiggy> haha
20:06:35 <cpressey> I think the operative word in the Church-Turing stuff is "effective", which AFAICT has a specific meaning in the philosophy of mathematics. I think of it as close to "can be described." But that implies that the person doing the describing is using a particular language to describe it in, etc etc
20:06:48 <MissPiggy> '"a tautology is trivially true" is trivially true is a tautology' is trivially true
20:07:21 <MissPiggy> yeah like what if you happend upon a HALTING ORACLE one day
20:07:25 <MissPiggy> and you made a computer out of it
20:07:31 <MissPiggy> then turing machines aren't enough
20:07:38 <cpressey> MissPiggy, exactly
20:07:50 <MissPiggy> quantum computation IS turing equivalent though
20:07:56 <pikhq> MissPiggy: By merit of having a halting oracle, you're out of the realm of Turing machines. ;)
20:08:04 <MissPiggy> (in terms of /what/, but not in terms of algorithmic complexity)
20:08:13 <cpressey> And the halting oracle is like Bigfoot. No one's caught one, but they can't prove it's not out there somewhere.
20:08:13 <MissPiggy> so I think that gives EVIDENCE for Church-Turing
20:08:58 <pikhq> This is *math*, not science!
20:09:30 <cpressey> Church-Turing is philosophy, not math.
20:09:45 <cpressey> Turing-*complete* is math :)
20:10:13 <MissPiggy> I thought Church-Turing Thesis was philosophy
20:10:15 <MissPiggy> not really math ?
20:10:29 <pikhq> Somewhere in the math/philosophy overlap.
20:12:44 <cpressey> So if L is TC, what do we call the other property -- "I can express any algorithm directly in L, without relying on a particular input"?
20:13:50 <cpressey> Or "For each unique TM x, there is a unique L-program y, where x and y compute the same function." I think you have to say unique, otherwise you could just map all TMs to the same L program.
20:13:51 -!- oklopol has left (?).
20:13:58 -!- oklopol has joined.
20:14:06 <oklopol> argh
20:15:50 <AnMaster> cpressey, hm... for the latter, if L allows some variable names to be changed or other such trivial things, then that isn't enough
20:16:07 <cpressey> AnMaster: Damn, you're right.
20:16:16 <cpressey> That would be rather humorous.
20:16:42 <oklopol> "cpressey: Is L Turing-complete?" <<< turing completeness doesn't have a definition, people disagree on cases like this; well, if you can make the kipple interpreter, make it run an arbitrary program, and redirect IO to it, then "obviously" you have a tc language, but i'm assuming you can just say interpret input as kipple or something.
20:16:48 <AnMaster> cpressey, well yes, it could allow the function name and variable names to be changed, plus maybe the order of statements that doesn't depend on each other
20:17:48 <AnMaster> oklopol, I think the known "sufficient" isn't equal to the known "necessary" for defining TC. At least that is my impression
20:17:57 <AnMaster> thus the resulting disagreement
20:18:15 <oklopol> can you elaborate on that?
20:18:35 <AnMaster> oklopol, I'm sure you are familiar with the phrase "necessary and sufficient"?
20:18:44 <oklopol> sure
20:19:04 <AnMaster> well, we know some things are necessary for TC, everyone agrees on some minimums.
20:19:07 <oklopol> but what are the known necessaries and sufficients here
20:19:09 <oklopol> hmm
20:19:16 <oklopol> yeah i suppose
20:19:16 <AnMaster> Also, we know some sufficient examples of them
20:19:25 <AnMaster> it is just that we don't know the minimum sufficient set
20:19:54 <AnMaster> oklopol, did that make it clearer?
20:20:20 <oklopol> yep
20:21:08 <cpressey> I get the impression Turing-complete had a good definition back when it was established in "recursive set theory" -- unfortunately, no one thinks in terms of recursive sets much anymore.
20:21:25 <cpressey> At least, not outside ivory towers.
20:21:36 <oklopol> cpressey: no, it really didn't
20:21:44 <AnMaster> cpressey, oh? Also what exactly is recursive sets. It sounds like something that allows Russell's paradox
20:22:36 <oklopol> AnMaster: it means the set of languages that are recursive, the sets aren't recursive in any way
20:22:40 <oklopol> R
20:22:55 -!- ais523 has changed nick to scarf.
20:22:55 <cpressey> http://www.amazon.com/Recursively-Enumerable-Sets-Degrees-Perspectives/dp/0387152997
20:22:58 -!- scarf has changed nick to ais523.
20:23:05 <AnMaster> oklopol, ah well, as long as we avoid mathematical barbers I'm happy ;)
20:23:06 -!- ais523 has changed nick to scarf.
20:23:09 -!- scarf has changed nick to ais523.
20:23:10 -!- ais523 has changed nick to scarf.
20:23:15 <AnMaster> scarf, stop it
20:23:22 <scarf> AnMaster: not deliberate, client bug
20:23:24 <AnMaster> well freenode rate limits it
20:23:28 <AnMaster> thank god for that
20:23:37 <cpressey> Yeah, "recursive set" is kind of a misnomer - the sets of values defined by recursive functions, is where i think it comes from
20:23:40 <MissPiggy> wow anmaster calm down
20:24:07 <AnMaster> scarf, good
20:24:38 <cpressey> oklopol: I'd be surprised if it didn't have a fairly good definition w.r.t. sets.
20:24:52 <oklopol> R is the set of languages for which there it a tm that accepts them and always halts
20:25:02 <oklopol> RE is the set of languages for which there is a tm that accepts them
20:25:16 <oklopol> (halts on trues)
20:25:21 <AnMaster> a language = a set of inputs?
20:25:38 <cpressey> Yes
20:25:46 <AnMaster> as in a FSA?
20:26:08 <AnMaster> cpressey, ^
20:26:19 <oklopol> AnMaster: the language of such words that if you put them on the tape and run the tm, ...
20:26:28 <cpressey> As in, FSA accept certain languages (= sets of strings), yes.
20:26:38 <AnMaster> ah same meaning of "language" then
20:26:39 <AnMaster> right
20:27:37 <AnMaster> why do you have to tell vlc what sort of disc you want to play? I mean, can't it check the reader and see "oops, that wasn't an audio cd, lets try a dvd..."
20:28:08 <cpressey> I thought in this context your set was "Turing-complete" if there was a surjection from your set onto RE
20:28:12 <cpressey> Or something like that
20:28:26 <oklopol> from what set?
20:28:28 <AnMaster> uhu
20:28:59 <oklopol> is it a set that is turing complete, or a computational model?
20:29:31 <oklopol> (i've never heard the term in recursion theory context.d)
20:29:33 <oklopol> *-d
20:29:36 <cpressey> In recursive function theory, it's a set. But it can be the set of strings (= language) accepted by a computer.
20:30:30 <cpressey> In what I've read, it's only sets that can be TC. Through convenient abuse of terminology, computers "are" TC because they accept a TC set.
20:30:38 <AnMaster> anyway, I would be interested in a good definition of this def that L is not a part in but languages like brainfuck, befunge98, and an UTM *are* part of
20:30:39 <oklopol> so, what kind of surjection exactly? there's a surjection from the naturals to RE.
20:30:43 <oklopol> err
20:30:49 <oklopol> well reals at laest
20:30:53 <cpressey> oklopol: I have no idea. I only half-remember this stuff. But it's in that book.
20:30:56 <oklopol> *reals
20:31:01 <oklopol> i see
20:31:19 <AnMaster> cpressey, hm is L just TC or is it actually equivalent to an UTM or to lambda calculus or such?
20:31:30 <cpressey> I might have surjection wrong. But I don't think it's an isomorphism. It's very possible for an (uncomputable) set to be "more than" TC.
20:31:32 <AnMaster> that might be the key to this (word trickery that is)
20:32:02 <cpressey> And of course, you'd never find the idea that TC applies to sets on TC's wikipedia page, because wikipedia doesn't work that way. :)
20:32:19 <oklopol> in any case, the original (turing's?) definition from what i've heard was that the inputs to the machine need to be finite + infinite amount of zeroes, that's another thing people disagree about (and much harder to fix)
20:32:21 <AnMaster> cpressey, by the way, I don't think I ever seen any example of an uncomputable problem
20:32:47 <cpressey> AnMaster: um. Halting problem?
20:32:50 <oklopol> cpressey: i have no idea what an isomorphism is in this context
20:32:52 <MissPiggy> AnMaster, rendering the mandelbrot set
20:32:56 <AnMaster> cpressey, oh duh
20:32:56 <MissPiggy> it's uncomputable
20:33:06 <cpressey> oklopol: one-to-one and onto?
20:33:12 <AnMaster> MissPiggy, err?
20:33:12 <oklopol> that's a bijection
20:33:15 <AnMaster> MissPiggy, how so?
20:33:21 <cpressey> AnMaster: but still semi-decidable :)
20:33:30 <oklopol> still that's just a question of cardinality, i don't see how that helps
20:33:31 <AnMaster> MissPiggy, I mean, isn't that fractable one of the most popular ones arround
20:33:31 <cpressey> oklopol: Sorry, that was what I meant.
20:33:33 <AnMaster> around*
20:33:38 <AnMaster> cpressey, true
20:33:38 <MissPiggy> yes that's why I mentioned it
20:33:48 <AnMaster> MissPiggy, so how can it then be uncomputable?
20:34:01 <MissPiggy> another thing that's uncomputable is solomonoff inductioon
20:34:12 <oklopol> cpressey: no worries, it's the isomorphism of the category Set
20:34:34 <AnMaster> MissPiggy, "solomonoff inductioon"?
20:34:39 <AnMaster> sure about that spelling?
20:35:19 <MissPiggy> :/
20:35:20 <MissPiggy> what the fuck
20:35:28 <MissPiggy> that was obviously a typo
20:35:50 <AnMaster> MissPiggy, right, I wasn't sure about the first being correctly spelt either
20:35:55 <cpressey> AnMaster: I'm not sure I've ever seen a non-contrived problem that wasn't even semi-decidable, although there are sets that aren't (but you can just construct those with intersection etc)
20:36:13 <AnMaster> cpressey, hrrm
20:36:59 <AnMaster> also I thought the halting problem was *undecidable* not *uncomputable*
20:36:59 <cpressey> There's a name for "not even semi-decidable" but I don't remember it. They start getting into capital greek letters with superscript numerals and stuff.
20:37:05 <AnMaster> but maybe they are the same thing?
20:37:10 <oklopol> AnMaster: whether a tm does not halt with a given input is not in RE and therefore not in R either (it's obviously in co-RE though), whether it accepts everything is neither in RE nor co-RE
20:37:13 <cpressey> AnMaster: I think they are more or less the same thing.
20:37:46 <AnMaster> hm okay
20:37:57 <cpressey> RE intersect co-RE, that's the "completely undecidable" set I was thinking of
20:38:06 <cpressey> It's been a while though.
20:38:29 <oklopol> cpressey: it's pretty non-contrived to check if a given first-order arithmetic formula if true
20:38:45 <cpressey> oklopol: But isn't that RE?
20:38:55 <oklopol> you can implement tm's in that easily, and obviously it's in RE iff it's in co-RE
20:39:03 <oklopol> so it can't be in either.
20:39:20 <oklopol> for a very non-obvious meaning of obvious, i suppose
20:39:53 <AnMaster> hm
20:39:58 <oklopol> "cpressey: RE intersect co-RE, that's the "completely undecidable" set I was thinking of" <<< no that's R
20:40:05 <oklopol> the completely decidable set
20:40:14 <cpressey> oklopol: Indeed.
20:40:51 <cpressey> Still, I don't see how "check if a given first-order arithmetic formula is true" isn't in RE
20:41:00 <cpressey> Can't I enumerate them?
20:41:11 <cpressey> Check each one, if it's true, spit it out?
20:41:12 <AnMaster> it sounds like equation solving? Or maybe I completely misread that
20:41:24 <oklopol> how do you check one?
20:41:24 <cpressey> If it runs forever, so be it?
20:41:37 <oklopol> the arithmetic formulas are first-order, they can quantify over integers
20:42:10 <cpressey> oklopol: Try all possible proofs of its truth nondeterministically?
20:42:31 <oklopol> and who says everything has a proof?
20:42:38 <AnMaster> what exactly is a "first-order arithmetic formula"
20:42:42 <oklopol> in fact, this is one proof that there is no proof for everything
20:43:02 <cpressey> oklopol: Granted.
20:43:34 <oklopol> AnMaster: you have universal and existential quantification over integers, addition, multiplication and equality check, and then boolean operators.
20:43:57 <cpressey> AnMaster: For example: For all integers x, x * 1 = x.
20:44:19 <AnMaster> oklopol, you mean like Exists x ( x * 2 = 4 ) ?
20:44:24 <oklopol> yes
20:44:25 <cpressey> I had forgotten how slippery those were :)
20:44:42 <AnMaster> oklopol, well that is easy to prove. equation solving
20:44:50 <AnMaster> and even it can
20:44:56 <cpressey> Still seems like you could enumerate the ones that do have proofs.
20:44:57 <oklopol> yeah, that one is easy to prove
20:45:05 <AnMaster> can't* be solved exactly you can often solve them numerically afaik
20:45:12 <AnMaster> at least for first order ones
20:45:15 <oklopol> numerically, huh
20:45:24 <oklopol> you did hear these are integers, right?
20:45:35 <AnMaster> oklopol, is that first order as in "no differentiation"?
20:45:39 <oklopol> no
20:45:49 <oklopol> it's as in no quantification over more complicated things than numbers
20:46:33 <oklopol> differentiation is not very sensible with integers
20:48:20 <MissPiggy> differentation no foobars
20:48:24 <cpressey> oklopol: At any rate, I thought the definition of a set S being TC was that there was a mapping from every member of S onto every member of (I guess) RE.
20:48:52 <oklopol> do you realize that's just a matter of cardinalities?
20:49:02 <cpressey> Now that I typed it out, yes :)
20:49:06 <oklopol> i mean you can just take an arbitrary set that has the same amount of elements
20:49:26 <oklopol> so, i think we need a slightly different definition
20:49:41 <cpressey> So I'm misremembering it. Maybe it was "computable mapping", for some definition of "computable".
20:49:54 <cpressey> Turing-machine computable would be most likely
20:51:44 <AnMaster> oklopol, ah okay
20:54:01 <AnMaster> what is the cardinality of Q but with all the roots for each one appended. I guess it wouldn't be aleph_0 any more?
20:54:19 <cpressey> http://en.wikipedia.org/wiki/Turing_degree
20:54:22 <MissPiggy> all the roots?
20:54:39 <AnMaster> MissPiggy, well yes, if you just had square root it would be trivial to match it up to Q
20:54:46 <cpressey> Turing complete = Turing degree 0'
20:54:52 <AnMaster> with cube root and so on
20:55:00 <AnMaster> then it would be much larger I suspect
20:55:03 <MissPiggy> oh well it's Q x N I guess
20:55:08 <MissPiggy> which is countable again
20:55:12 <AnMaster> MissPiggy, oh? really?
20:55:23 <MissPiggy> Q x N because you can represent the n'th root of q as a pair: (q,n)
20:55:24 <AnMaster> how would it be countable
20:55:43 <MissPiggy> because countable x countable is countable (cantors zig-zagonalization theorem)
20:55:44 <AnMaster> MissPiggy, true, But do show where you would begin counting
20:55:52 <AnMaster> hm
20:55:54 <AnMaster> oh right
20:55:57 <AnMaster> you could go like that
20:55:59 <AnMaster> indeed
20:56:03 <AnMaster> duh
20:57:35 <oklopol> "cpressey: But I think someone famous (Knuth?) wrote a definition of algorithm, and "always halt" was in it." <<< aocp starts with a definition of algorithm, then "of course we can never give an exact definition of an algorithm", then a description of a string rewriting system as a formal model.
20:58:17 <oklopol> (so first problem set has you writing stuff in thue, you gotta love aocp)
20:58:39 <MissPiggy> wow
20:58:44 <MissPiggy> I can't do ANYTHING with thue
20:58:50 <MissPiggy> I should get this book
20:59:14 <Ilari> Isn't set of algebraic numbers also countably infinite (and set of all integer roots of all rationals is strict subset)?
20:59:48 <cpressey> 4. He's *Knuth*.
21:00:11 <MissPiggy> :(
21:00:24 <oklopol> Ilari: sure
21:00:48 <oklopol> well i don't get the part in parens
21:01:12 -!- pikhq has set topic: RIP sun.com | 4 days since last ehird sighting | 2 days since last alise sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:01:23 <oklopol> unless by rationals you mean rational polynomials or something
21:01:29 <AnMaster> oklopol, "aocp"? did you mean "taocp"?
21:01:35 <oklopol> i've heard aocp more
21:01:38 <oklopol> used to call it taocp
21:01:52 <pikhq> I call it The Art of Computer Programming.
21:02:58 <AnMaster> oklopol, aocp took me a few seconds to figure out what it meant. And only managed it because Knuth was mentioned in there
21:02:59 <oklopol> fancy
21:03:26 <oklopol> AnMaster: i've used taocp and being told it's usually called aocp.
21:03:31 <oklopol> been
21:03:42 <AnMaster> oklopol, I never heard aocp before. Often heard taocp though
21:04:11 <oklopol> well fuck
21:04:30 <Ilari> Actually, there are strict supersets of even algebraic numbers that are countably infinite (and those sets contain infinite number of numbers that are not algebraic).
21:04:50 <MissPiggy> computable reals are countable too
21:04:52 <oklopol> Ilari: no that's not true
21:05:13 <MissPiggy> and that set is equivalent wrt all first order theorems, I think (?)
21:05:14 <oklopol> you can just take say pi, and have a countable superset that does not contain an infinite number of numbers that are not algebraic
21:05:17 <AnMaster> oklopol, googling: taocp gives relevant hits. aocp doesn't give any relevant hits
21:05:19 <oklopol> now if you want to to be a field...
21:05:27 <AnMaster> only checked first result page for each
21:05:45 <pikhq> MissPiggy: Sure, sure; G"odel numbering of programs to compute them.
21:05:50 <cpressey> oklopol: Going over that Turing degree page, I do believe it was "a mapping computable by TM" (Turing-reducible) now.
21:05:53 <AnMaster> pikhq, what was that?
21:05:53 <oklopol> AnMaster: okay, then maybe whoever told me to say aocp was a weird-ass weirdo.
21:05:57 <AnMaster> pikhq, "o ?
21:06:10 <AnMaster> at least it looked like that here
21:06:27 <pikhq> AnMaster: My attempt to type an umlaut. And didn't compose.
21:06:52 <AnMaster> pikhq, also you don't need to compose, it has it's own letter in unicode
21:06:58 <Ilari> In fact, any field that is countably infinite and is strict superfield of algebraic numbers has infinite amount of numbers that are not algebraic.
21:07:07 <pikhq> AnMaster: The compose *key*.
21:07:09 <oklopol> Ilari: sure
21:07:20 <AnMaster> pikhq, oh
21:07:30 <AnMaster> pikhq, try: ö
21:07:32 <oklopol> that's obvious really, you can just take all its integer multiples or something
21:07:35 <pikhq> Type it and an appropriate sequence and it generates Unicode.
21:07:36 <AnMaster> any sane keyboard layout has it
21:07:37 <AnMaster> ;P
21:07:45 <oklopol> if one of them was an algebraic number, then the original would've been too
21:07:48 <pikhq> AnMaster: US-QWERTY doesn't.
21:07:56 <AnMaster> pikhq, I know what compose is, I have it on my menu key
21:08:00 <AnMaster> pikhq, I said sane
21:08:05 <AnMaster> you don't even have altgr...
21:08:14 <pikhq> I've got compose on the Win key.
21:08:26 <AnMaster> pikhq, don't mess with my super!
21:08:33 <pikhq> AnMaster: UNIX can treat the right AltGr just fine.
21:08:41 <AnMaster> pikhq, well yes
21:08:41 <pikhq> Erm. Right Alt as AltGR.
21:09:23 <AnMaster> interesting btw, tell me if you find a compose for ö
21:09:35 <AnMaster> ah found it
21:09:37 <pikhq> "o
21:09:41 <AnMaster> pikhq, just reverse the order of them
21:09:43 <AnMaster> and it works
21:09:48 <AnMaster> as in o"
21:10:05 <pikhq> AnMaster: I just didn't realise that my compose key doesn't work at all. :P
21:10:16 <Ilari> Take some TC language, add true real number datatype, infinite sum operator and polynomial root operator to it and one can compute all manners of numbers.
21:10:21 <AnMaster> pikhq, oh? well then it isn't mapped there any more I guess ;P
21:10:30 <pikhq> I guess.
21:10:58 <oklopol> i do like the idea of "infinite sum operator"
21:11:12 <oklopol> maybe you could just have the "limit" keyword
21:11:18 <AnMaster> Ilari, sounds like a CAS?
21:11:52 <Ilari> Just polynomial root operator plus fixed constants can be used to compute any algebraic number. Infinite sum operator can compute e, pi and those, etc...
21:12:15 <oklopol> Ilari: you are joking right?
21:12:20 <AnMaster> Ilari, Taylor series?
21:12:29 <MissPiggy> infinite sum operator?
21:12:39 <MissPiggy> I don't beleive we've met
21:13:07 <oklopol> also obviously an infinite sum operator can compute also the algebraic numbers, you don't need the polynomial root operator
21:13:10 <AnMaster> well, it makes perfect sense. It is just that it would be impossible to run any program in it I think
21:13:24 <oklopol> also does it take an infinite amount of rationals and sum them or what?
21:13:26 <Ilari> e = infinite_sum(1/n!,n=0...), pi = sqrt(6 * infinite_sum(1/n^2,n=1...))
21:13:39 <MissPiggy> pi = sqrt(2)
21:13:43 <oklopol> Ilari: so it takes as input what exactly?
21:14:07 <olsner> I wished this was all obvious to me
21:14:09 <Ilari> oklopol: One-argument function and lower bound.
21:14:16 <oklopol> one argument?
21:14:21 <olsner> seems useful
21:14:21 <oklopol> and what's that argument
21:14:28 -!- scarf has changed nick to ais523.
21:14:36 <oklopol> an infinite set?
21:14:37 <Ilari> oklopol: lower bound, lower bound + 1, ...
21:14:50 <AnMaster> Ilari, just use Σ and put a ∞ on top
21:14:58 <oklopol> what
21:15:05 <oklopol> idgi
21:15:09 <cpressey> If you take more sophisticated operations as primitives, you can consider more sophisticated sets computable. Surprise! :)
21:15:47 <Ilari> But one never reaches reals...
21:15:48 <cpressey> Now I think we have to argue about what operations are "obviously" the most primitive.
21:15:54 <oklopol> Ilari: why do you need infinite sums, why not just an operator that takes a cauchy sequence of rationals and returns the corresponding real?
21:16:36 <oklopol> so
21:17:10 <oklopol> e = infinite_sum(1/n!,n=0...) <<< clearly the sum takes, here, an infinite amount of inputs, i have no idea what you mean by "lower bound, lower bound + 1, ..."
21:17:21 <oklopol> well, or an infinite set anyway
21:18:04 <Ilari> oklopol: Lower bound is 0 there.
21:18:31 <oklopol> lower bound for e?
21:18:37 <MissPiggy> e < 2
21:18:58 <oklopol> then you have lower bound + 1, ..., so... you'll have 1 in there, then 2, 3, ...?
21:19:13 <Ilari> 0, 1, 2, 3, 4, 5, 6, 7, 8...
21:19:29 <oklopol> and where exactly, i don't think you're being very clear
21:19:57 <oklopol> ohhhhh
21:19:58 <cpressey> while (true) n := n + 1 ???
21:20:02 <oklopol> okay so
21:20:24 <oklopol> do you mean it takes a lower bound, and a function, then takes the infinite sum of f(lower bound), f(lower bound + 1), ...?
21:20:33 <oklopol> ahhhhh
21:20:53 <oklopol> "Ilari: oklopol: One-argument function and lower bound." <<< totally misinterpreted this, sorry
21:21:28 <oklopol> so, basically you just give it an infinite set of rationals, and it returns the corresponding real
21:21:45 <oklopol> but obviously you still get exactly the computable reals, because you have to express the set somehow
21:21:52 <oklopol> in your case with a function
21:24:22 <oklopol> and i don't see how the sum actually helps with anything, why not just give it a set of rationals and take their limit, or alternatively just give a function that returns one by one the digits of the real.
21:27:46 <Ilari> Statistics fun: Generate random numbers [0,1). Then map them by x -> 1/(1-x)². Calculate approximate expectation value. Heh, heh...
21:39:31 <cpressey> Complexity theory took the "-complete" terminology from computability theory and reused it for "NP-complete". A problem p is NP-complete iff every other problem in NP can be mapped to p by a polynomial-time algorithm. This comes from: A language L is Turing-complete (=RE-complete) iff every other language in RE can be mapped to L by a Turing machine.
21:40:29 <cpressey> So!
21:40:47 <cpressey> I think this means it is *not* enough to just say "There, I've coded a TM in my language, my language is TC."
21:41:06 <MissPiggy> Ilari the expected value is divergent?
21:41:13 <MissPiggy> I'm just guessing
21:41:16 <cpressey> But I'm not sure.
21:42:41 <Ilari> MissPiggy: The expectation value is "infinite".
21:42:49 * cpressey would be interested to hear what ais523 has to say about all this.
21:42:58 <ais523> cpressey: haven't been paying attention
21:43:00 <ais523> summary?
21:43:47 <cpressey> Is a language Turing-complete if I can only write one program in that language *but* that program is an interpreter for a different Turing-complete language?
21:43:51 <MissPiggy> okay
21:43:58 <MissPiggy> I don't know statistics :P
21:44:08 <MissPiggy> whichs sucks because I went to classes for it..
21:44:29 <Ilari> MissPiggy: Some distributions are extremely ill-behaved.
21:45:06 <olsner> cpressey: I smell a HQ9+ dialect
21:45:22 <ais523> cpressey: yes, I think
21:49:27 <cpressey> ais523: Then what would you call the property "I can map any Turing-machine to a (meaningfully different) program in this language"?
21:49:50 <ais523> hmm, rather than program + input, like TCness requires
21:50:14 <Ilari> MissPiggy: Things that can go wrong in statistics (#N+1, etc...): Assuming distribution to be normal when its not. Using formulas made for normal distribution with power laws, etc...
21:51:26 <ais523> cpressey: I'm not sure that there is a name
21:51:30 <ais523> although it's an interesting property
21:54:38 <cpressey> ais523: I've been trying to recall my studies in computability, and the definition of Turing-complete used in recursive function theory, and it sounds more like it's not literally Turing-complete. The ability to consider the input seems like a bit of a relaxation of the definition. Of course, I doubt I'm recalling it all accurately.
21:55:03 <ais523> cpressey: I had a row with some of the world's best mathematicians on the subject as to this, and didn't really come to a conclusion
21:55:28 <cpressey> Indeed :)
21:56:11 <ais523> we can put bounds on "definitely TC" and "definitely not TC", but there's a grey area
21:56:50 <cpressey> btw, I think I have a "fixed" version of Burro, and I think it is TC (or rather -- that I can code up arbitrary Turing machines in it :) )
21:57:27 <ais523> yay
21:57:35 <cpressey> Well, "property 2" does imply TC -- if I can map an arbitrary TM into a language, that language must contain at least one UTM
21:57:45 <ais523> yep
21:57:51 <cpressey> "property 2" is a terrible name though
21:58:24 <ais523> it has a kind-of ring to it
21:58:31 <Gregor> "Where do you live?" "Compound 3, property 2."
22:07:59 <Ilari> Oddball brainfuck derivates: IP space is 3x3x3xN tube. Placeable operators include set IP direction (uncoditional and conditional on current cell being nonzero). Crossing to middle does direction-dependent one of the 6 BF basic operations.
22:08:47 -!- SimonRC has quit (Ping timeout: 246 seconds).
22:13:29 <lament> tubes are cool.
22:18:02 * MissPiggy tubes lament
22:19:20 -!- SimonRC has joined.
22:22:46 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
22:27:45 -!- tombom has quit (Quit: Leaving).
22:33:28 -!- MigoMipo has quit (Remote host closed the connection).
23:09:13 -!- oerjan has joined.
23:19:34 <oerjan> <AnMaster> what is the cardinality of Q but with all the roots for each one appended. I guess it wouldn't be aleph_0 any more?
23:19:56 <oerjan> the cardinality of the set of algebraic numbers is still aleph_0, if that's what you mean
23:20:15 <oerjan> there are only a countable number of polynomials, and a finite number of roots of each
23:20:24 <lament> he said "all the roots" though
23:20:26 <oerjan> *polynomials over the rationals
23:20:31 <lament> that's a lot of roots!
23:20:52 <oerjan> um the algebraic numbers _are_ all the roots of rational polynomials
23:21:00 <oerjan> essentially by definition
23:26:09 <oerjan> <cpressey> ais523: Then what would you call the property "I can map any Turing-machine to a (meaningfully different) program in this language"?
23:26:58 <oerjan> we were discussing the concept of output-completeness in relation to quines once. i think this would be a similar concept of input-completeness (or IO, if the TM had output)
23:27:32 <oerjan> basically both would have to do with not having to translate IO
23:28:07 <oerjan> (i don't recall those terms were official though, we may have just made them up on the spot)
23:29:10 <oerjan> of course given that TMs don't all have the same tape alphabet, it's still a bit wishy-washy to say you need no translation. although of course 2 letters is enough for a UTM
23:29:24 <cpressey> oerjan: I think you're talking about something largely different.
23:29:37 <Sgeo_> Should I write a BF interpreter in Haskell? (Yes, I know there is one already, but this is for my own education)
23:29:44 <cpressey> Alphabet doesn't enter into this problem at all that I can tell.
23:30:14 <oerjan> cpressey: um in that case i don't know what you mean
23:30:59 <oerjan> or maybe you mean that the program and input must be translated _separately_?
23:31:11 <cpressey> oerjan: I have a language, L. I can only write one program in L. *But* that program is an interpreter for ((insert your favorite Turing-complete language)).
23:31:11 <oerjan> remember, TMs take input on their tape, in their alphabet
23:31:19 <cpressey> oerjan: Is L Turing-complete?
23:31:52 <oerjan> you can write a computable reduction from any TM with input to an L program with input.
23:32:10 <cpressey> but scratch "input" from your statement, and you can't
23:32:34 <oerjan> but there are TC concepts with no input at all
23:32:52 <oerjan> you have to include input in the whole, otherwise TC makes no sense
23:33:07 <oerjan> e.g. a lambda calculus computation has no input
23:33:19 <oerjan> it's just a reduction of a term
23:33:54 <cpressey> Then, is it a function? What is its domain?
23:34:10 <oerjan> um what is a function?
23:34:22 <cpressey> A mapping from one set to another?
23:34:39 <oerjan> er ambiguous question
23:34:51 <oerjan> *um what are you asking whether is a function
23:34:54 <cpressey> Sorry.
23:35:01 <cpressey> Is your lambda term a function?
23:35:30 <oerjan> a lambda term is a string, at least that's one way of modeling them
23:35:46 <pikhq> cpressey: A "lambda term" is one way of *defining* a function.
23:36:00 <pikhq> That is, defining what "function" means.
23:36:22 <cpressey> pikhq: OK. What is the domain of the function defined by a lambda term?
23:36:29 <oerjan> pikhq: i think that confuses things even more
23:36:33 <oerjan> cpressey: ignore pikhq
23:36:38 <pikhq> Okay, then.
23:36:57 <pikhq> cpressey: Set of functions to set of functions? :P
23:37:00 <pikhq> Anyways.
23:37:05 <oerjan> a lambda function is a _symbolic_ term. that it can be interpreted as a function is irrelevant to the TC-ness of LC
23:37:07 <pikhq> Carry on, Oerjan.
23:37:54 <oerjan> a lambda term can be reduced using the alpha, beta, and if you want eta reductions
23:38:21 <oerjan> then you can ask whether this reduction can ever reach a given term, such as \x y -> x
23:38:36 <oerjan> (a common implementation of a boolean value)
23:39:08 <cpressey> One sec.
23:39:23 <cpressey> I just realized you never gave me a direct answer. Is L Turing-complete?
23:39:33 <oerjan> and that question is enough to make LC TC, because you can encode any turing machine computation (with yes/no answer) into the question of whether an LC term reduces to \x y -> x or \x y -> y
23:39:38 <oerjan> cpressey: i think so
23:41:04 <cpressey> For the record, I'm leaning towards: I don't think it is.
23:41:58 <cpressey> Now I'm all confused about lambda terms, and I don't know where to begin explaining why, though.
23:42:49 <oerjan> (i've been using haskell notation for the lambda terms btw)
23:43:35 <cpressey> I don't dispute that LC is TC, but how can a single lambda term be TC? To "encode the input into the term:" is a bit of a dodge, because now we're talking about a set of terms.
23:44:21 <oerjan> i didn't say a single lambda term was TC
23:44:41 <cpressey> Well, you said "but there are TC concepts with no input at all" -- what should I make of that?
23:45:06 <ais523> cpressey: there are
23:45:13 <ais523> you have a program that runs all turing machines in parallel
23:45:17 <ais523> and report when each one halts
23:45:22 <ais523> that's a UTM even without input
23:45:26 <ais523> *and reports
23:45:38 <oerjan> O_o
23:46:35 <oerjan> cpressey: i was just presenting LC as an example of a TC concept without input
23:46:53 <oerjan> or rather, without input distinct from the program
23:48:08 <cpressey> See, that's where I'm starting to take exception. I think making that distinct between input and program is critical. Lambda calculus itself, for example, takes an "input" (a term to be reduced). If it didn't, it wouldn't be lamdba calculus.
23:48:08 <oerjan> of course lambda calculus makes it easy to encode program and input as two separate terms and apply one to the other, but that's not fundamental
23:48:36 <oerjan> cpressey: ah but L takes an input: a program + that program's input
23:49:11 <cpressey> oerjan: Yes. But L *requires* certain inputs to do certain things. Lambda terms, TMs, etc don't.
23:49:37 <cpressey> A TM can overwrite all of the input given to it with "hardcoded" stuff of its own choosing. L can't.
23:49:55 <cpressey> I mean, L programs can't.
23:49:58 <oerjan> the thing i am saying is that for TC-ness it is wrong to distinguish a part of input that is called the "program"
23:50:00 <cpressey> There's only one, and it can't.
23:51:33 <oerjan> cpressey: that's just because TMs are imperative with mutability. in fact for certain purposes (e.g. space use analysis) it is common to give the TM its initial input on a separate, read-only tape
23:51:37 <oklopol> cpressey: oh obviously RE-complete has a good definition. it's just that isn't a decent definition for turing-completeness
23:52:30 <cpressey> 'k, I'm officially completely lost.
23:53:36 <cpressey> oklopol: Why not?
23:54:42 <cpressey> oerjan: What does the "that" in "that's just because..." refer to?
23:55:26 <oerjan> cpressey: that TMs can overwrite things - this is irrelevant to what they can _compute_
23:56:05 <oerjan> that's just mechanics.
23:56:09 <cpressey> oerjan: My point was that there are TM's that act independent of their input. Overwriting it was just one example. They could also ignore it.
23:56:38 <oerjan> well sure but a TM that ignores its input is trivial, computationally
23:57:21 <oerjan> the computational content of a TM is its function from input tapes to final state, and possibly output tape
23:57:49 <oklopol> cpressey: because some people want more complex starting patterns than finite strings
23:58:00 <oklopol> i guess no other reason
23:58:09 <oklopol> for recursion theoretical purposes
23:58:39 <cpressey> oklopol: Fair enough, I suppose. I'll get back to you on that b/c I can only keep track of one discussion at a time :)
23:58:48 <oklopol> IO stuff is obviously another issue, but we can just ignore that completely i guess
23:59:00 <oklopol> or say it's part of the program
23:59:02 <oklopol> or something
2010-02-10
00:00:33 <cpressey> oerjan: If a TM that ignores its input is "computationally trivial", are all lambda terms "computationally trivial" as well?
00:01:04 <oerjan> cpressey: to be honest i don't know that i've ever seen a clear and unambiguous definition of turing-completeness once you go beyond languages of strings. the wikipedia article is certainly not one.
00:01:43 <pikhq> oerjan: Turing-equivalent with a Turing machine?
00:01:48 <oerjan> but based on other subjects i've read, i.e. complexity theory, my intuition says it is all about _reductions_ from one notion of computation to another
00:01:49 <cpressey> oerjan: The Wikipedia page on Turing degrees is a bit better.
00:02:19 <pikhq> (P and Q are said to be Turing-equivalent if one can simulate P with Q and Q with P.)
00:02:56 <oerjan> pikhq: but that sentence completely ignores the very I/O question which in my view is the reason for the confusing discussion i and cpressey are now having
00:03:14 <oerjan> it is not a _mathematical_ definition
00:03:16 <cpressey> oerjan: I quite agree. But the literature on reductions doesn't seem to say what to do with input. I'm sure I can map every TM to (some L program, some input). I'm equally sure I can't map every TM to (some L program).
00:03:46 <pikhq> oerjan: Clearly one can simply consider input and output as two one-way tapes. Help at all?
00:04:40 <cpressey> s/map/find a TM which maps/ (Turing-reduction)
00:04:43 <oerjan> cpressey: the thing is that most things you are reducing, such as NP-complete problems, don't have a program part. you are reducing input to input
00:05:04 <oerjan> e.g. a graph to a boolean expression
00:07:01 <oerjan> (for hamiltonian circuit -> SAT, e.g.)
00:07:11 <cpressey> Yes, but from what I know, the "-complete" in "NP-complete" was adapted from the "-complete" in "Turing-complete" (polytime reductions instead of Turing reductions.)
00:07:25 <cpressey> Anyway -- for the sake of argument say L is Turing-complete
00:07:43 <cpressey> Then the original question you answered is put into context
00:07:46 <oerjan> cpressey: and the RE theory simplifies everything to the bone by only using sets of _integers_
00:08:03 <cpressey> oerjan: <cpressey> ais523: Then what would you call the property "I can map any Turing-machine to a (meaningfully different) program in this language"?
00:08:35 -!- coppro has joined.
00:08:39 <cpressey> oerjan: Again, I don't care too much about encoding -- unless you think there's something critical about it
00:09:46 <oerjan> cpressey: well it's critical for quines, which is where my first comment took inspiration. but ok, as long as program and input are encoded separately it doesn't matter for this discussion.
00:09:58 <cpressey> That property is a property L doesn't have, and isn't necessary for TC (if L is TC), but a lot of languages DO have. And it doesn't seem to have a name, beyond it's working title "property 2"
00:10:47 <oerjan> cpressey: ah i just remembered. look at the wiki's Narcissist page.
00:10:55 <oklopol> what does meaningfully different mean?
00:11:03 <oerjan> it's a notion dual to quine, with input instead
00:11:26 <oklopol> oerjan: accepts only itself?
00:11:32 <cpressey> oklopol: Well, different beyond simply renaming variable names or something trivial like that. Not a very well defined condition, I agree.
00:12:00 <oklopol> yeah still just a matter of cardinalities, in mathematical terms
00:12:26 <oerjan> cpressey: and then i can ask you, is your property essential for the _existence_ of narcissists, like the "output-complete" idea is for the existence of quines?
00:12:56 <cpressey> oerjan: Hm.
00:12:59 <oerjan> (guaranteed existence from fundamental concepts, that is)
00:13:02 -!- madbr has joined.
00:13:20 <cpressey> oerjan: I have no idea right now.
00:13:44 <oklopol> this is too complicated, let's talk about flowers
00:13:54 <oklopol> oh wait i know even less about those
00:14:16 <lament> my favourite is Cauliflower.
00:14:57 <oklopol> if you flow, are you a flower?
00:15:06 <oerjan> lament: did you know that is the same species as brussels sprouts?
00:15:12 * oerjan ducks
00:15:35 <oklopol> they are both called "kaali" in finnish
00:15:36 <lament> did you know that ducks were the same species as geese?
00:16:06 <cpressey> oerjan: In my head, fluttering half-memories of the "every TC language has a quine" proof... are you suggesting "Every property 2 [sigh] language has a narcissist" as a kind of dual to it?
00:17:49 <oerjan> yeah.
00:18:05 <cpressey> yeah, it sounds likely.
00:18:13 <oerjan> not that i've thought much about it, it was just a spur of the moment idea
00:18:24 <cpressey> Brain... melting...
00:18:57 <oerjan> note that "every TC language has a quine" is not precisely correct, which is why we invented the notion of output-completeness in that discussion.
00:19:12 <cpressey> Right.
00:20:02 <cpressey> But there is that fixpoint thing going on. There would be a fixpoint "the other way". Since all TMs can be mapped to this language, there must be one program that maps to a Narcissist. Something like that.
00:21:23 <oerjan> mind you it's not very different from a quine in practice, come to think of it. you just slap an == input instead of a print on your program self-construction string.
00:22:03 <oerjan> but of course this if you are in a language which has both sensible input and output
00:22:53 <oerjan> s/instead of a/inside of the/
00:23:39 <cpressey> Yeah.
00:24:28 * oerjan rereads the article - oh it was your idea
00:26:00 <cpressey> I see there's something called a "selfinterp" on Madore's page, but it looks to be a slightly different concept.
00:27:55 <cpressey> Anyway, I have to be off, with head spinning.
00:28:00 <oerjan> link?
00:28:10 <cpressey> http://www.madore.org/~david/computers/quine.html
00:28:18 <oerjan> ah.
00:28:35 <cpressey> http://www.madore.org/~david/computers/quine.html#sec_selfint
00:29:54 <cpressey> ugggh
00:30:01 <cpressey> :)
00:30:04 <cpressey> Later, folks.
00:30:07 <oerjan> bye
00:30:12 -!- cpressey has left (?).
00:38:58 <lament> so who's good at math
00:39:02 <lament> i've a math question
00:39:10 <madbr> what sort of math
00:39:13 <lament> silly math
00:39:36 <lament> suppose you have a bunch of opponents
00:39:47 <lament> one of them has probability P of winning against a random other opponent
00:39:51 <lament> another one has probability Q
00:40:03 <lament> make a guess about how they would do against each other!
00:40:17 <MissPiggy> is that like untransitive dice?
00:40:31 <lament> sure
00:40:56 <lament> it makes sense that if P == Q, then the guess ought to be 0.5
00:41:05 <lament> (since we have no other information)
00:41:15 <lament> and if P > Q, then the guess should be > 0.5
00:41:26 <lament> and if P == 1 then the guess should of course be 1
00:41:39 <lament> and if P and Q are both 1 then we're kinda screwed
00:41:44 <lament> (but that cannot happen)
00:42:42 <oklopol> i would bet on the one that has a bigger probability for winning against a random opponent.
00:42:58 <MissPiggy> hmmm
00:43:11 <lament> oklopol: right, me too
00:43:17 <MissPiggy> so the question is that there's say a set of people {P}u{Q}uEveryoneElse,
00:43:21 <lament> but can you quantify your guess, other than just 1 or 0?
00:43:46 <MissPiggy> and there's the probabilities for P winning against {Q}uEveryoneElse, (and similiar for Q)
00:43:50 <lament> if P is 0 or if Q is 1, the guess is 0
00:43:54 <oerjan> oh wait this is a famous annoying problem, isn't it
00:43:56 <lament> if P is 1 or Q is 0, the guess is 1
00:44:08 <lament> if P == Q, the guess is 0.5
00:44:14 * oerjan just got this deja vu feeling
00:44:22 <lament> what if P is like 1/4 and Q is like 3/4 ?
00:44:37 <lament> oerjan: really? I'd like to know
00:44:41 <MissPiggy> lament well I don't think there is an answer ?
00:44:54 <lament> MissPiggy: there isn't an answer, but you can definitely make a guess!
00:44:58 <oerjan> maybe it's just a slight resemblance. i cannot remember what it was anyhow.
00:45:10 <Ilari> AFAIK, the probabilites can't be calculated based on info given... I think its possible that P > Q, but when they go against each other, the one with prob Q wins more than loses...
00:45:18 <lament> no, probabilities can't be calculated.
00:45:22 <lament> that's why i keep saying guess.
00:45:50 <lament> i suppose the way to formalize is would be by trying to minimize the differences between our guesses over all opponents, compared to the real probabilities
00:46:24 <lament> and the only condition for the guess is that it can't use any other information than the values P and Q
00:46:26 <oerjan> indeed, you could have a bunch of people playing rock/paper/scissors somehow always choosing the same thing
00:46:26 <Ilari> Best guess estimate: P / (P + Q) for that with prob P, Q / (P + Q) for that with prob Q.
00:46:42 <oerjan> and still have just about any set of probabilities for the group
00:46:57 <oerjan> (er, for two members of the group)
00:47:29 <MissPiggy> probability is really confusing
00:47:32 <lament> Ilari: hm, maybe that's it
00:47:50 <lament> but doesn't look right
00:47:56 <lament> e.g
00:47:57 <oerjan> at least it adds to 1 :D
00:48:01 <lament> if P = 0.2, Q = 0.8
00:48:12 <lament> then P/(P+Q) is 0.2
00:48:30 <lament> but you'd expect it to be less
00:49:09 <lament> i guess one way to approach this is to assume that probabilities actually are transitive.
00:49:18 <MissPiggy> yeah but that's not a true
00:49:47 <lament> but i don't even know how to assume that :(
00:50:20 <oklopol> if we make all possible orderings for a set of length n, and for each ordering calculate (the ways for someone who wins p of the matches to win someone who wins q of the matches) / (all such pairs), take average and let n --> infinity
00:50:22 <oerjan> hm the average of all probabilities has to be 0.5 i think
00:50:36 <oklopol> then why wouldn't the probability be well-defined?
00:51:40 <oklopol> i mean you can clearly feel, using your heart, that the limit exists
00:52:13 <lament> maybe it makes sense to model it like this:
00:52:14 <oerjan> oklopol: the probability could depend greatly on the game played
00:52:20 <lament> our 'random opponent' is the number 1
00:52:46 <oerjan> say, each player's favorite strategy could have really complicated behavior when paired against others
00:52:49 <lament> our known opponents are random numbers chosen from an interval (0,x) such that the probability of the number being larger than 1 is P
00:53:02 <oklopol> oerjan: but if we assume the orderings are random
00:53:13 <lament> (so that x = 1/p)
00:53:38 <lament> then the guess is that a random number from (0,1/p) is greather than the one from (0,1/q)
00:53:47 <lament> *greater
00:53:51 <oerjan> oklopol: the thing is, for a start, two players' chance of winning against each other could be nonlinear in some "skill"
00:53:54 <lament> i think that makes sense
00:54:36 <MissPiggy> what's the point anyway, if yo uhave a probability doesn't even tell you what's going to happen
00:54:46 <oerjan> and i suspect you could get a lot of different functions of p and q dependent on this
00:54:51 * MissPiggy existential crisis'
00:54:56 <lament> MissPiggy: it's a best guess. It's a prior.
00:54:58 <oklopol> oerjan: i assume complete nonlinearity, i assume that for all pairs, it's completely random who wins.
00:55:05 <MissPiggy> it's a prior?
00:55:06 <Ilari> And if there is such skill, one would have to model it...
00:55:12 <MissPiggy> I thought it came from priors
00:55:40 <oerjan> oklopol: oh then it's 0.5 for each pair? but then all the p's and q's are 0.5 too, sorry.
00:55:57 <lament> i think he meant the probability is random for each pair
00:56:05 <oklopol> what? i'm assuming a finite universe
00:56:09 <oklopol> n players
00:56:21 <oerjan> oh wait you are saying p and q are the actual number of games won
00:56:26 <oklopol> sure
00:56:37 <oerjan> oklopol: ok you are interpreting p and q completely different from me then
00:56:39 <oklopol> the amount of players they win out of the number of all players
00:56:46 <oerjan> um P and Q
00:56:53 <oklopol> i see
00:56:54 -!- FireFly has quit (Quit: Leaving).
00:57:02 <oklopol> i prefer finite things
00:57:04 <lament> it's a game of chance
00:57:08 <lament> take two players
00:57:13 <lament> it's not known who wins
00:57:23 <lament> but the probability of one of them winning is known
00:57:40 <lament> if you take one player and the probability of him winning against a randomly chosen opponent - that's p
00:58:27 <oerjan> oklopol: i am assuming as a mental model that for each pair of players there is a given chance of each player winning (summing to 1 of course)
00:58:45 <oklopol> yeah
00:58:51 <oerjan> and P for a player is simply the average of the chances of winning against each of the others
00:58:51 <oklopol> i see
00:59:11 <oklopol> is that actually different from mine?
00:59:28 <oklopol> hmm
00:59:29 <oklopol> yes
00:59:36 <oklopol> or...
00:59:37 <lament> i agree with oerjan.
00:59:40 <oerjan> " i assume that for all
00:59:42 <oerjan> pairs, it's completely random who wins"
00:59:42 -!- MissPiggy has quit (Ping timeout: 256 seconds).
00:59:53 <oerjan> i interpreted that as 0.5 for all pairs
01:00:04 <oklopol> yeah, but once you know they win pn of the matches
01:00:18 <oklopol> couldn't you just think of it as them winning with prob p
01:00:24 <oerjan> but that means there is no underlying skill difference
01:00:44 <oerjan> and so any P and Q has no predictive power
01:01:54 <oerjan> there has to be an underlying probability varying between pairs if there is to be any predictive estimate
01:02:09 <oklopol> i don't see a fundamental difference, but if there is one, obviously yours is better
01:02:10 <oerjan> of course the underlying function is unknown, hm
01:02:10 <lament> er
01:02:15 <lament> of course p and q have predictive power
01:02:58 <oklopol> in my model, of course p and q have predictive power, because if q is large, then you know that dude is prolly not one of the p dudes player 1 wins
01:03:17 <oklopol> and so on
01:03:22 <oerjan> actually my way is too simple
01:04:04 * Sgeo_ mindboggles at FC++
01:05:59 <oerjan> i predict this is extremely complicated to do properly, and will not give a fixed result. although it's probably bayesian thinking which i've never properly understood anyhow
01:06:02 <lament> oerjan: of course p and q have predictive power
01:06:06 <lament> if you want to bet on who wins
01:06:13 <lament> and you know p and q
01:06:19 <lament> you should bet on whichever's larger
01:06:24 <lament> on average, you will be ahead
01:06:29 <oerjan> well yeah
01:07:07 <oerjan> lament: i was deducing from oklopol's assumption that all pairs were random (i.e. 0.5)
01:07:28 <lament> i think by "random" he meant random values for probabilities
01:07:28 <oerjan> i.e. the actual player pairs
01:07:39 <oerjan> hm
01:07:55 <oklopol> but what the fuck does it matter if the pairs were random if you are actually considering some actual game with, for each pair, a predefined result for the winner
01:07:55 <oerjan> ah
01:08:21 <oklopol> they are not random in a given game
01:08:32 <oerjan> it's not _completely_ predefined, it's still a probability for each pair
01:08:33 <oklopol> all the probabilities are 1 or 0 there
01:08:45 <oklopol> no, in mine, you have probability 1 or 0 for each pair.
01:08:46 <oerjan> they don't necessarily win every time
01:08:48 <oerjan> ok
01:09:47 <oerjan> hm every actual probability distribution is a linear combination of yours...
01:10:27 <oerjan> probably that won't help any
01:10:42 <oklopol> nothing helps, someone start a simulation.
01:11:37 <lament> i like how you guys are still talking about this
01:11:45 * oerjan is stopping now
01:11:57 <lament> i made my guess 20 min ago, i think it's correct
01:12:14 <lament> though i'm not even sure how to quantify correct yet
01:12:23 <oklopol> lament: have you seen what happens if you put "c" and "not tc" within 10 words of each other on this chan?
01:13:00 <lament> hehe
01:13:22 <ais523> C doesn't impose arbitrary limits on the filesystem
01:13:46 <oklopol> oh dear
01:14:49 <lament> by the way, numerically, my guess is P/2Q
01:15:05 <lament> that kinda seems wrong :)
01:15:07 <oklopol> that can be over 1
01:15:10 <oklopol> can't it
01:15:17 <lament> sure, it can
01:15:21 <lament> it's not a very good guess
01:15:36 <lament> ok i need to fix this
01:15:57 * lament sucks at probs
01:16:18 <oklopol> what if we have n people, each making a guess about this problem, and we take two of them, P and Q, ...
01:29:20 -!- coppro has quit (Ping timeout: 246 seconds).
01:34:18 -!- comexbot has changed nick to comex.
01:38:15 -!- coppro has joined.
01:46:09 <uorygl> C isn't a programming language; it's a computer processor control language. You use it to control a computer processor.
01:46:49 <oerjan> i profess to process
02:03:13 <Sgeo_> Given C# knowledge, how easy/difficult will it be to tutor someone in Java?
02:03:50 <ais523> Sgeo_: not too hard; learn the syntax differences, and the standard library
02:03:57 <ais523> not all of it, but the bits you want to teach
02:04:12 <ais523> there isn't much of an attitude difference, except that java sometimes takes correctness over the top
02:04:27 <Sgeo_> Well, presumably this person is taking a class, so they'd have notes..
02:04:46 <ais523> Sgeo_: teaching Java's my day job, btw
02:04:46 <pikhq> Ultimately, your benefit will be from knowing *programming*, not from knowing Java specifically.
02:04:55 <ais523> pikhq: agreed
02:05:04 <ais523> although knowing the OO attitude helps a lot too for Java
02:05:14 <Sgeo_> After the 10 hours of Java tutoring is over, I plan on forgetting everything again
02:05:36 <pikhq> Knowing a specific language only is needed if it's something that's a bit "out there" compared with what you're used to.
02:05:48 <pikhq> (going from imperative-land to Lisp or Haskell, for instance)
02:06:07 <pikhq> And even that's more "knowing the general paradigm".
02:28:36 -!- coppro has quit (Remote host closed the connection).
02:29:29 -!- coppro has joined.
03:36:17 -!- coppro has quit (Ping timeout: 252 seconds).
04:06:53 <Gregor> http://filebin.ca/hvmcpf/candyfloss.mp4 Enjoy some MST3K
04:09:32 -!- coppro has joined.
04:10:12 <pikhq> I love me some illegal downloads!
04:10:59 <bsmntbombdood> me too
04:11:14 <Gregor> As illegal downloads go, that's not very illegal, it's just a short clip :P
04:13:14 <oerjan> JUST A SHORT PRISON STAY, THEN
04:16:55 <pikhq> Gregor: Just as illegal.
04:17:19 <Gregor> Oh stop complaining and watch the fekking clip :P
04:17:29 <pikhq> I did.
04:17:33 <pikhq> They are agents of Satan!
04:37:20 <bsmntbombdood> i have terabytes of illegal downloads
04:38:10 <oerjan> how terable
04:38:36 <Sgeo_> One person in my UNIX class was convinced that they wouldn't go after him for illegal BitTorrent stuff if, as soon as it went to 100%, he stopped it.
04:39:06 <coppro> pikhq: Which Haskell graphical library should I use? Also, when coding complex programs, does one normally worry about the IO/normal code separation too much?
04:39:46 <bsmntbombdood> Sgeo_: somewhat true
04:40:48 <Gregor> If by "somewhat"
04:40:51 <Gregor> You mean "not"
04:43:09 <pikhq> coppro: "I don't, but you may want to try wxHaskell" and "Normally? It's just natural, pretty much always."
04:43:32 <pikhq> bsmntbombdood: I just like commenting that it's illegal.
04:43:37 <Sgeo_> s/wouldn't/less likely to/
04:43:39 <coppro> ok, thanks
04:43:47 <pikhq> Just to note the ridiculousness of it being illegal.
04:44:12 <coppro> I just need to watch that I don't just create and discard an IO object, right?
04:44:32 <pikhq> coppro: ...
04:44:38 <coppro> :P
04:44:55 <pikhq> Why are you using unsafePerformIO, and can you make it stop?
04:44:59 <pikhq> :P
04:47:13 <coppro> I didn't know what that is. Now I do. Now I feel dirty.
04:49:21 <pikhq> That's the appropriate reaction.
04:53:34 <oerjan> coppro: i _think_ pikhq was hinting at the idea that it is unlikely you'll manage to create and discard an IO object unless you are using that.
04:54:37 <coppro> oerjan: f x y = x
04:54:51 <oerjan> although it's not impossible...
04:54:52 <coppro> f 1 getLine
04:55:04 <oerjan> yeah but why would you do that?
04:55:21 <coppro> I don't know why; I'm just making sure that does what I expect (namely, nothing, since it didn't come through main)
04:55:35 <oerjan> yeah
04:55:39 <oerjan> f = const btw
04:57:29 -!- MizardX has quit (Ping timeout: 240 seconds).
04:57:47 <pikhq> coppro: Yeah, that does absolutely nothing, and does it well.
04:58:20 <coppro> why is it called const?
04:58:27 <oerjan> constant function
05:00:21 <coppro> I dun get it :(
05:00:45 <oerjan> a constant function is a function that takes the same value at all points
05:00:54 <pikhq> And const creates such a function.
05:00:58 <oerjan> so const 1, say, is a constant function
05:00:58 <coppro> ah
05:01:01 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
05:01:19 <pikhq> Also, the typical non-Haskell name for \x y -> x is "K".
05:01:53 <oerjan> K combinator
05:02:10 <pikhq> Well of course it's a combinator.
05:02:11 <pikhq> :P
05:08:17 <oerjan> xkcd :D
05:09:17 <pikhq> :D
05:19:48 -!- Asztal has quit (Ping timeout: 256 seconds).
05:21:57 -!- Asztal has joined.
05:24:56 <Sgeo_> oerjan, I don't quite get it
05:25:43 <oerjan> http://en.wikipedia.org/wiki/Two-Face
05:26:04 <Sgeo_> ty
05:28:19 <Sgeo_> I thought it might be a reference to "it puts the lotion on its skin" even though I don't know waht that means
05:28:45 <oerjan> well neither do i
05:30:42 * Sgeo_ reads a wikipedia article
05:30:44 <Sgeo_> And nearly vomits
05:30:56 <oerjan> ?
05:31:34 <Sgeo_> Let's just say that the character [in Silence of the Lambs] is not a nice person
05:31:39 <Sgeo_> http://en.wikipedia.org/wiki/Jame_Gumb
05:32:26 <oerjan> ic (or rather i'll try not to)
05:40:57 * oerjan finds randall munroe's bug reports - unusual
05:41:04 <oerjan> (see blag)
05:45:32 -!- coppro has quit (Remote host closed the connection).
05:56:13 -!- coppro has joined.
06:06:57 -!- mycroftiv has quit (Ping timeout: 256 seconds).
06:08:58 -!- ais523 has changed nick to scarf.
06:09:15 -!- mycroftiv has joined.
06:11:08 -!- scarf has changed nick to ais523.
06:30:15 -!- jcp has joined.
06:59:27 -!- Pthing has joined.
06:59:30 -!- tombom has joined.
07:06:42 -!- oerjan has quit (Quit: Good night).
07:14:10 -!- zeotrope has joined.
07:16:31 -!- madbr has quit (Quit: Radiateur).
07:22:17 -!- augur has quit (Read error: Connection reset by peer).
07:22:24 -!- augur has joined.
07:30:39 -!- ais523 has quit (Remote host closed the connection).
07:44:37 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:49:46 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:45 -!- FireFly has joined.
08:12:46 -!- oklopol has quit (Ping timeout: 252 seconds).
08:13:19 -!- FireFly has quit (Quit: Leaving).
08:28:49 -!- kar8nga has joined.
09:16:32 -!- SimonRC has quit (Ping timeout: 265 seconds).
09:28:56 -!- SimonRC has joined.
09:36:00 -!- oklopol has joined.
09:37:56 -!- Pthing has quit (Remote host closed the connection).
09:50:13 -!- oklopol has quit (Ping timeout: 260 seconds).
11:05:46 -!- cheater has quit (Remote host closed the connection).
11:20:45 -!- cal153 has quit.
11:22:22 -!- cheater has joined.
11:58:23 -!- Pthing has joined.
12:27:33 -!- kar8nga has quit (Remote host closed the connection).
12:30:57 -!- MizardX has joined.
13:25:24 -!- kar8nga has joined.
14:10:12 -!- ineiros has quit (Ping timeout: 260 seconds).
14:15:30 -!- MissPiggy has joined.
14:47:25 -!- kar8nga has quit (Remote host closed the connection).
14:57:03 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
15:30:11 -!- cpressey has joined.
15:36:49 <cpressey> So, I think I'm going to give up using the term "Turing-complete", since it is woefully ill-defined (except in recursive function theory, where it means something slightly different from "universal".)
15:37:11 <MissPiggy> yay!!
15:37:28 <MissPiggy> I tend to call things mu-recursive instead of turing complete, because I'm usually talking about functions
15:39:47 <cpressey> There's a whole space inside the intuitive notion of "Turing-complete" that *could* be formalized, but hardly anyone's doing it, and I have no idea why.
15:39:51 <cpressey> (a) Encoding (b) Input composition (c) Halting (d) Initial tape configuration
15:41:19 -!- FireFly has joined.
15:44:01 <MissPiggy> tell me about (c)?
15:44:28 <MissPiggy> also I think ais has done a little bit in terms of (a) and (d) hasn't he? with the 110 stuff
15:45:17 <fizzie> (aaway elsewherr
15:45:21 <fizzie> Graa.
15:45:25 <fizzie> I cannot type.
15:45:58 <Gregor> ais has caused holy wars over (d) :P
15:48:10 -!- oerjan has joined.
15:49:16 <MissPiggy> hehe
15:54:38 -!- ineiros has joined.
15:54:42 -!- ineiros has quit (Client Quit).
15:54:57 -!- ineiros has joined.
16:01:20 <cpressey> MissPiggy: short version about (c): Turing machines halt, Cellular automata don't, so for a CA to simulate a TC you need some way to recognize when it has reached a particular state and you can declare it's halted.
16:01:29 <cpressey> s/TC/TM/
16:01:46 <MissPiggy> turing machines halt ??
16:01:56 <cpressey> MissPiggy: Traditionally, yes. It's how they decide things!
16:01:57 <pikhq> Yes, Turing machines can halt.
16:02:22 <pikhq> Cellular automata don't, but can be said to "halt" when they come to a stable position.
16:03:24 <Gregor> Generally TMs halt by a designated "halt" state. The same is true of CA, but their halt state may take nonconstant time to recognize.
16:03:36 <cpressey> pikhq: Still, you need to be able to recognize that stable position, so from a complexity point of view, you need some sort of predicate that says "has this CA halted?" and I think the complexity of that predicate has to be taken into account when you start making claims about one system being "simpler" than another.
16:03:55 <Gregor> Erm, the same is true of CA when you're using them to calculate something: They go to a designated "halt" state. It just so happens that they continue on, because that designation is purely human :P
16:03:59 <MissPiggy> yeah inputing encoding for CAs is usually O(n) or worse too
16:04:16 <cpressey> Gregor: Right, equivalently, the "halted?" predicate is trivial for TMs.
16:04:23 <Gregor> Yup
16:04:47 <cpressey> Like the "what should the symbol on the next new cell of tape I use be?" function is also trivial for TMs, not so trivial for CAs that rely on pretty patterns throughout space.
16:05:25 <Gregor> However, the statement "Turing-complete" makes no argument about time complexity. So long as it takes non-infinite time to encode and recognize, it's still Turing complete. Or is that exactly what you're complaining about?
16:05:57 <cpressey> Gregor: No, I'm taking issue with certain mathematician's claims that their system is "simpler" here :)
16:06:04 <Gregor> Ahhhhhhhhhhhhhhhhhhhhhhh
16:06:30 <MissPiggy> aha
16:06:31 <cpressey> And trying, idly, to formalize all this machinery within the Wonderful World of TC
16:06:33 <Gregor> "Certain mathematicians" who shall remain nameless but obvious :P
16:06:39 <MissPiggy> so in summary: simpler shmimpler
16:07:12 <MissPiggy> locally nameless :D
16:07:36 <oerjan> para-nameless
16:08:23 -!- MigoMipo has joined.
16:09:40 <cpressey> And for the record, yesterday's exciting language L was raising the question about (b).
16:10:16 <MissPiggy> L was a real language??
16:10:22 <MissPiggy> I thuoght it was arbitrary
16:10:34 <pikhq> It was a language for the purpose of discussion.
16:10:58 <cpressey> Well, I was calling it L. But I just looked it up and there are apparently at least 3 "real" languages named L.
16:11:02 <cpressey> http://en.wikipedia.org/wiki/L_programming_language
16:11:13 -!- kar8nga has joined.
16:11:42 <cpressey> (my) L would be a good example of a pathological example of a language
16:11:52 <MissPiggy> what is your L?
16:11:57 <MissPiggy> sorry but I missed it yesterday
16:12:21 -!- BeholdMyGlory has joined.
16:12:33 <pikhq> A language limited to implementing a Kibble interpreter.
16:12:35 <cpressey> L is a language in which all programs are illegal except one: an interpreter for <<insert your favourite Turing-complete language here>>.
16:13:13 -!- Gregor has set topic: RIP sun.com | 4 days since last ehird sighting | 2 days since last alise sighting | 203 days since last graue sighting | 14 days since last calamari sighting | 1158 days since last kipple sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:13:59 <MissPiggy> cpressey oooh hehe that's cool
16:14:24 -!- pikhq has set topic: RIP sun.com | 5 days since last ehird sighting | 3 days since last alise sighting | 204 days since last graue sighting | 15 days since last calamari sighting | 1158 days since last kipple sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:15:33 <cpressey> MissPiggy: Whether it's "TC" or not seems to depend on what you think about the role of input in determining that.
16:15:48 -!- oklopol has joined.
16:16:21 <cpressey> For every TM, I can come up with (some L program, some input) that simulates that TM. But I can't come up with just (some L program) that simulates the TM.
16:16:25 <Gregor> Too bad wget doesn't have an --ignore-robots.txt option :P
16:16:41 -!- zeotrope has quit (Quit: Lost terminal).
16:16:44 <pikhq> Gregor: Grab the source and add it. ;)
16:18:57 <Gregor> I can't mirror the logs :(
16:19:08 <pikhq> :(
16:19:12 <Gregor> I mean, I have my own logs, but that relies on my unreliable connection.
16:23:50 -!- oklopol has quit (Ping timeout: 252 seconds).
16:25:34 -!- oerjan has quit (Quit: Later).
16:45:48 <MissPiggy> yrh
16:46:05 -!- cheater has quit (Read error: Connection reset by peer).
16:46:33 -!- cheater has joined.
16:46:37 <Ilari> Gregor: If filenames are predictable, call wget in loop?
16:47:22 <Gregor> Ilari: Bleh :P
16:49:28 <pikhq> Ilari: Dates are pretty predictable. ;)
16:55:43 <cpressey> I wonder if P != NP could be proved with a space complexity result, like: NP potentially generates more intermediate data than can possibly be processed in P.
16:55:50 -!- tombom has joined.
16:56:17 -!- cheater has quit (Read error: Connection reset by peer).
16:56:32 <cpressey> But, oh god. Here I am complaining about the vagaries of "Turing-completeness", I completely forgot what hell with models of computation they have in complexity theory.
16:56:35 * cpressey shudders
16:56:47 -!- cheater has joined.
17:06:39 <Ilari> But then, how one proves lower bound for intermediate data generated?
17:07:13 <AnMaster> cpressey, did you reach any conclusion about the issue with L?
17:07:50 <AnMaster> I saw it discussed in scrollback but the it was quite far too long to read, and intermixed with other discussions
17:08:01 * AnMaster goes studying for a test
17:09:43 <cpressey> AnMaster: Whether L is "Turing-complete" or not seems to depend on what you think about the role of input in determining that. or every TM, I can come up with (some L program, some input) that simulates that TM. But I can't come up with just (some L program) that simulates the TM. I went looking and reached the conclusion that the term "Turing-complete" relies too much on intuition, so I'm going to try to avoid using
17:09:53 <cpressey> s/or/For/
17:10:06 <AnMaster> cpressey, but not all TC languages have input separate from the program itselfd
17:10:08 <AnMaster> itself*
17:10:15 <AnMaster> for example, that one ais proved
17:10:31 <cpressey> AnMaster: depend on how you define TC :)
17:10:35 <AnMaster> won some price from wolfram for it
17:10:38 <AnMaster> forgot what it was called
17:10:59 <AnMaster> ah yes:
17:11:04 <AnMaster> http://www.wolframscience.com/prizes/tm23/
17:11:38 <cpressey> AnMaster: I could say such languages are not Turing complete, because their programs don't define functions.
17:11:51 <cpressey> I'm not sure I *would*, but I *could* :)
17:11:52 <AnMaster> cpressey, but neither do UTMs!
17:11:53 <Gregor> Now fetching logs!
17:11:56 <Gregor> Muahahahaha
17:12:08 <cpressey> AnMaster: ? a UTM defines a function
17:12:13 <AnMaster> hm
17:12:30 <AnMaster> cpressey, depends on what exactly you mean by a function here
17:12:37 <AnMaster> cpressey, also, wasn't GOL proved TC?
17:12:45 <cpressey> AnMaster: maps some set of inputs to some set of outputs
17:12:54 <AnMaster> cpressey, well, what about game of life
17:13:00 <AnMaster> it is well established to be tc
17:13:24 <cpressey> AnMaster: Please understand, since I just decided that the term "Turing-complete" is not well-defined, I don't think that languages can be proved to be it or not.
17:13:53 <AnMaster> cpressey, then what exactly do we prove when when implement brainfuck or whatever in a given language
17:14:16 <AnMaster> (bf with infinite tape of course)
17:14:25 <Gregor> Maybe I'll stick the logs in hg, if it's not too big.
17:14:28 <cpressey> AnMaster: I don't know anymore :) We prove that brainfuck can be implemented in it, at least...
17:14:30 <Gregor> Which it will be :P
17:14:47 <AnMaster> cpressey, and a host of other languages, if those can be implemented in brainfuck
17:15:37 <AnMaster> like: a bignum-space befunge98 is able to implement a brainfuck interpreter with infinite tape
17:15:47 <cpressey> AnMaster: I'm sure it would be possible to prove it was TC if we could get a definition of TC that wasn't mostly intuitive. It would have to address several things, which I listed previously (encoding, halting, input composition, initial tape contents, maybe others)
17:16:28 <cpressey> Like: I think the term TC can be formalized, but I don't think it has been yet. I think there would probably be multiple formalizations, too.
17:16:40 <AnMaster> cpressey, able to implement an UTM in. And yes L is TC then. So we need a TC-not-bloody-silly one for practical purposes
17:16:54 <MissPiggy> hehe
17:17:05 * Gregor reappears mid-conversation.
17:17:08 <cpressey> AnMaster: right, or TC needs to be "split up" into a bunch of different properties (some of which imply others)
17:17:16 <Gregor> Is the problem with L's reduction that it results in a huge time complexity?
17:17:23 <AnMaster> Gregor, what?
17:17:43 <AnMaster> Gregor, L is scheme but with restrictions added so it can *only* implement an interpreter for another tc language
17:17:43 <cpressey> Gregor: No, no complexity or encoding issues that I'm aware of.
17:17:47 <AnMaster> a specific one
17:17:55 <cpressey> Gregor: It's an input issue.
17:18:00 <Gregor> Ah
17:18:01 <AnMaster> Gregor, thus, is L itself TC?
17:19:18 <cpressey> I should maybe put this all on the wiki at some point.
17:20:57 <AnMaster> cpressey, might be a good idea
17:21:17 <AnMaster> anyway, formalising TC might be stuff for a thesis
17:22:05 <cpressey> AnMaster: Sure, but what advisor in their right mind would let their student work on it? :)
17:23:31 <AnMaster> cpressey, none
17:28:22 -!- cal153 has joined.
17:38:10 -!- kar8nga has quit (Remote host closed the connection).
17:43:07 <cpressey> <Ilari> But then, how one proves lower bound for intermediate data generated? <-- If I could answer that, I would be a million dollars richer :) But maybe you could prove all your nondeterministic "threads" would all be working on data that differs a lot from each other's... so much so that you can't compress it into a space that could be processed in P.
17:43:59 <cpressey> But they told me that these sorts of counting proofs don't work because they don't relativize.
17:47:17 <cpressey> Don't mind me, just going slightly nuts with boredom on my current "real" task.
17:49:35 <lament> NP=NP?
17:49:39 <AnMaster> cpressey, trying to prove P!=NP?
17:49:47 <cpressey> lament: That's what you think! :)
17:50:00 <cpressey> AnMaster: Not seriously.
17:50:09 <AnMaster> I didn't expect so
17:51:26 <AnMaster> cpressey, while you are at it, please prove or disprove the Riemann hypothesis
17:52:06 <lament> Done.
17:52:21 <lament> sorry, i'm not cpressey, but i won't show my proof so he has a chance at it, too
17:54:48 <AnMaster> XD
18:18:00 -!- kar8nga has joined.
18:38:34 <cpressey> Also going unnamed today shall be certain researchers who think Literate Programming was invented to enable separate compilation...
18:43:22 -!- cheater2 has joined.
18:50:30 <AnMaster> cpressey, huh? What is that even supposed to mean
18:55:01 -!- FireFly has quit (Quit: Leaving).
18:55:35 -!- FireFly has joined.
18:56:25 <cpressey> AnMaster: Nothing, really.
18:57:35 -!- MigoMipo has quit (Quit: co'o rodo).
18:58:06 <cpressey> As an alternative, I could have said "Hm, this Python code shows you can program Perl in any language"
19:04:12 <cpressey> I'm starting to wonder if I wouldn't prefer "deep magic" that is at least *documented*, over "light magic" that is purely ad-hoc
19:10:15 -!- FireFly has quit (Remote host closed the connection).
19:10:45 -!- FireFly has joined.
19:13:16 <AnMaster> cpressey, is that perl or python criticism?
19:13:53 <cpressey> AnMaster: Python criticism, I guess.
19:14:03 <AnMaster> cpressey, what specific python thing?
19:14:07 <cpressey> Or criticism about how it's being used.
19:15:31 <cpressey> Despite the fact that the language offers you fairly decent classes and objects -- the data is a bunch of values, stuck in dicts, sometimes stuck into other dicts, sometimes with computed keys.
19:15:52 <AnMaster> cpressey, what about that __slots__ thing?
19:16:12 <AnMaster> of course *that* is very ad-hoc
19:16:38 <cpressey> I know of it's existence, but I've never used it, or even seen it used, yet.
19:16:47 <AnMaster> cpressey, I have seen it used, and I have used it
19:17:42 <AnMaster> cpressey, on the other hand I have both seen __attribute((regparms)) (or whatever the spelling was, maybe singular?), and used it
19:18:30 <AnMaster> it makes a difference on x86 for cfunge. From something like 0.054 seconds (wall clock with time) to 0.041 seconds.
19:19:05 <AnMaster> (average over 30 runs each, first run for each removed for caching handling)
19:19:21 <AnMaster> that was on mycology, forgot to mention that
19:19:42 <AnMaster> and it was run on a sempron 3300+ (at 2 GHz), with 1.5 GB RAM
19:20:00 <AnMaster> it goes faster on my thinkpad (which has core 2 duo at 2.66 GHz)
19:24:46 <Gregor> Bleh, the .hg directory for the logs is 37MB.
19:24:58 <Gregor> So, I won't be providing a hg-able #esoteric log :P
19:25:38 <cpressey> Damn. There goes my business plan.
19:27:59 -!- Gregor has set topic: RIP sun.com | 5 days since last ehird sighting | 3 days since last alise sighting | 204 days since last graue sighting | 15 days since last calamari sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:29:46 <Gregor> lawl, did whoever join as sexygirl153 on 2010-01-20 do that after reading the logs from 2004-01-09? :P
19:30:20 <cal153> that's just my alt name
19:31:56 <Gregor> But was it on 2004-01-09, before you ever came here? :P
19:32:42 <cal153> yup
19:33:17 <cal153> i'm still the same person
19:33:30 <Gregor> That means you have the greatest longevity of anybody on this channel excluding lament, so long as you consider longevity to be latest_time - earliest_time
19:33:34 <lament> 2004, so long ago
19:33:48 <lament> ah, to be young again
19:33:52 <Gregor> lol
19:33:56 <cal153> was on the mailing list long before that :)
19:34:23 -!- tombom_ has joined.
19:34:43 <lament> it's too bad the mailing list died
19:36:15 <cal153> yeah :(
19:36:46 <SimonRC> oh man
19:37:16 <SimonRC> msysgit (Git for Windows) comes with about half of unix
19:37:28 <Gregor> Presumably msys :P
19:38:35 -!- tombom has quit (Ping timeout: 276 seconds).
19:41:12 <AnMaster> what Gregor said yeah
19:44:17 <SimonRC> I've used Cygwin, but I'd never heard of msys before
19:44:37 <olsner> if msys is half of unix, cygwin is an entire unix
19:45:27 <lament> msysgit also has a huge bug in it where 'git status' doesn't work properly
19:45:42 <lament> it reports files as being different when their timestamps are different
19:45:53 <olsner> lament: set core.filemode to false?
19:46:18 <olsner> msysgit can't set the executable bit on files, so it reads them back and sees "oh, different mode!"
19:46:38 <lament> why does it need the executable bit?
19:46:49 <olsner> but you can set the flag to make it ignore file mode differences
19:47:32 <pikhq> olsner: Cygwin essentially is an entire UNIX, y'know.
19:47:34 <lament> i don't think this is about file mode
19:47:39 <pikhq> A very odd one, but hey.
19:47:47 <lament> i think it actually reports them as being different based on timestamp alone
19:47:47 -!- kar8nga has quit (Remote host closed the connection).
19:49:56 <olsner> pikhq: yah, that's what I said :P
19:51:27 <fizzie> The logs in the topic don't exactly start from when the channel does.
19:52:06 <fizzie> My #esoteric logs start at 2002-12-14, for example.
19:53:46 <lament> yeah at some point whatshisname came in and offered to log us
19:53:51 <lament> whatshisname
19:54:04 <lament> if i actually mention his name, he'll probably get notified about it
19:54:09 <lament> but i don't remember it anyway
19:54:14 <fizzie> He who shall not be named.
19:54:19 <Gregor> fizzie: I don't suppose you can send me some pre-2004 logs? ^^
19:54:43 <fizzie> I don't see why not, I gave those to ehird too.
19:54:51 <fizzie> Let's see if I have them somewhere downloadable already.
19:55:12 <lament> his name isn't bef, what is it?
19:55:14 <lament> cnf?
19:55:42 <fizzie> I'm not sure where I have the pre-2002-12-14 logs; these start from when I got irssi running on a sparc box.
19:58:22 <fizzie> There's some 2003 logs from http://tunes.org/~nef/logs/old/
19:58:44 <fizzie> lament: [2003-01-18 02:49:02] < hcf> lament: would you like clog to log #esoteric?
19:59:48 <fizzie> That's about when the "old logs" there start; I only have a few days worth of logs saved before that. I wonder where the even older ones would be.
20:00:59 <Gregor> Oh, looka there, didn't know those were there.
20:01:10 <fizzie> The link's on top of the new-logs dir.
20:01:28 <Gregor> Boy, I sure do ignore stuff :P
20:02:11 <lament> oh, hcf
20:02:18 <AnMaster> <olsner> pikhq: yah, that's what I said :P <-- it sounded like you were disputing that msys was half of unix by using cygwin as a parallel
20:02:37 <fizzie> Oh, there's my pre 2002-12-14 ones... but that didn't help much, since I seem to have joined the channel on Mon Dec 09 07:24:10 2002. At least lament and dbc were already on-channel at that time.
20:02:59 <AnMaster> <lament> yeah at some point whatshisname came in and offered to log us <-- the one behind tunes?
20:03:02 <lament> it would be pretty odd if i weren't on the channel
20:03:04 <lament> AnMaster: yes
20:03:13 <lament> well, i dunno what their relationship is
20:03:19 <Gregor> lament: I don't suppose you have the logs from the beginning? :P
20:03:24 <lament> no
20:03:35 <lament> i think i even used mIRC then :)
20:03:39 <Gregor> D-8
20:03:53 <lament> and didn't own a computer
20:04:20 <AnMaster> Gregor, putting up those logs would be cool however. If not by hg at least as a browsable dir (maybe plaintext searchable too?)
20:04:36 <AnMaster> especially for the older logs
20:04:53 <olsner> AnMaster: oh, right... I meant what pikhq said
20:04:58 <AnMaster> I only have logs since 2006 (with a gap too, due to a rm gone bad)
20:05:01 -!- Gregor has set topic: RIP sun.com | 5 days since last ehird sighting | 3 days since last alise sighting | 204 days since last graue sighting | 15 days since last calamari sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | 2581 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:05:30 -!- AnMaster has set topic: RIP sun.com | 0 day since last topic change | 5 days since last ehird sighting | 3 days since last alise sighting | 204 days since last graue sighting | 15 days since last calamari sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | 2581 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:05:35 -!- AnMaster has set topic: RIP sun.com | 0 days since last topic change | 5 days since last ehird sighting | 3 days since last alise sighting | 204 days since last graue sighting | 15 days since last calamari sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | 2581 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:05:37 <AnMaster> even
20:05:37 <olsner> but forgot to point out that cygwin was a study in unix teratology
20:05:43 <AnMaster> also
20:05:51 <AnMaster> that can only be correct for 0 days
20:06:06 <olsner> depends on rounding
20:06:07 <AnMaster> whenever it is to be updated it would be to 0 days immediately
20:07:15 -!- MissPiggy has set topic: RIP sun.com | 0 days since last topic change | 3 days since last alise sighting | 5 days since last ehird sighting | 15 days since last calamari sighting | 204 days since last graue sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | 2581 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:07:46 <AnMaster> MissPiggy, what was the change?
20:08:05 <MissPiggy> sorting
20:08:07 <AnMaster> ah
20:08:15 <lament> in reverse psychological order?
20:08:20 <AnMaster> who is alise btw?
20:08:23 <Gregor> Now pushing the #esoteric logs to a publicly-accessible repo.
20:08:27 <Gregor> AnMaster: alise = ehird
20:08:31 <AnMaster> ah
20:08:51 <AnMaster> why different ones for that alias and ehird
20:09:04 <Gregor> https://codu.org/projects/esotericlogs/hg/ will have the logs eventually.
20:09:05 <fizzie> It's always so confusing with multiple-named people; it took me so long to even grok the scarf-ais identity.
20:09:07 <lament> how many days since last dbc fractal sighting
20:09:39 <AnMaster> fizzie, same
20:09:40 <lament> how many since last aardappel sighting?
20:09:53 <AnMaster> fizzie, at least some of them you know change nick all the time
20:10:11 <AnMaster> impomatic wasn't it?
20:10:16 <AnMaster> whatever his current nick is
20:10:17 <fizzie> lament: My logs have some interruptions in them, but the latest dbc fractal in them seems to be from 2005-03-04.
20:10:32 <AnMaster> fizzie, dbc fractal?
20:11:12 <fizzie> AnMaster: See http://tunes.org/~nef/logs/esoteric/05.03.04
20:11:47 <AnMaster> heh
20:12:09 <fizzie> I'm missing the whole of January-March 2008, though; I got disconnected for some reason and forgot to rejoin.
20:12:11 <AnMaster> Gregor, btw, ever heard about "Heitor Villa-Lobos"? Composer. Some very good music (IMO).
20:12:19 <fizzie> Also April 2006.
20:12:38 <fizzie> Might've been more recent dbc fractals during those times.
20:13:18 <AnMaster> Gregor, worth checking out on youtube (I assume it is there, I have it on CD...): "Bachianas Brasilerias No. 1: I. Introdução (Embolada)"
20:13:29 -!- Pthing has quit (Remote host closed the connection).
20:16:32 <Gregor> I've heard of Villa-Lobos, yes.
20:16:38 <AnMaster> Gregor, okay
20:17:47 <AnMaster> as usual the cds are missing from musicbrainz, meaning I get no track titles in vlc
20:27:50 <cpressey> That's my fault. I stole them. (I like shiny things.)
20:29:50 <Sgeo_> I just got my Google Buzz thingy, and 3 people are already following me
20:30:25 <Sgeo_> Two of whom I'm already following, despite not having chosen to do so
20:31:29 <AnMaster> google buzz?
20:31:32 <Sgeo_> How do I hide a .. thingy?
20:31:33 <AnMaster> what the heck is that?
20:31:43 -!- MizardX has quit (Read error: Connection reset by peer).
20:31:46 <Sgeo_> http://www.google.com/buzz
20:31:48 <AnMaster> Sgeo_, put it under something that is large enough to cover it?
20:32:10 <AnMaster> okay, twitter on stereoids. And in beta.
20:32:20 <AnMaster> steroids*
20:32:38 <Sgeo_> I'm going to watch SG-1 now
20:33:05 <AnMaster> Sgeo_, did my hint for hiding things help?
20:33:13 <Sgeo_> no
20:33:18 <Gregor> hg push of 37MB = no fun :P
20:33:31 <AnMaster> Sgeo_, strange. Try putting it in the attic then?
20:33:56 <AnMaster> Gregor, depends
20:33:58 * cpressey starts writing an Attic plugin for mercurial
20:34:00 <AnMaster> what sort of connection?
20:34:09 <AnMaster> cpressey, heh?
20:34:15 <cpressey> AnMaster: CVS joke!
20:34:21 <AnMaster> cpressey, oh ffs
20:34:23 <Gregor> AnMaster: Cable, while simultaneously torrenting :P
20:34:30 <AnMaster> I had almost successfully managed to forget cvs
20:34:32 <AnMaster> :/
20:34:45 <Gregor> I use only SCCS.
20:34:54 <AnMaster> what one is that now again?
20:34:58 <AnMaster> some weird one isn't it?
20:35:04 <AnMaster> at least it isn't monotone
20:35:08 <Gregor> The first
20:35:29 <AnMaster> Gregor, so: sccs -> rcs -> cvs?
20:35:39 <AnMaster> or is that timeline way off?
20:36:14 <Gregor> AnMaster: 's about right.
20:36:32 <AnMaster> Gregor, interesting. Don't you need a noun before "'s"?
20:37:06 <Gregor> I speak ... COLLOQUIALLY!
20:42:19 <AnMaster> Gregor, what? I thought it was for OS X only? ;P
20:42:27 -!- MizardX has joined.
20:53:18 -!- tombom_ has quit (Read error: Connection reset by peer).
20:53:32 -!- tombom_ has joined.
20:55:38 <Gregor> I wish hg {push,pull} had some kind of status reporting.
20:56:03 <Gregor> I should've used scp to get the first version pushed.
20:56:36 <Deewiant> Use git
20:56:53 <AnMaster> Gregor, like bzr does?
20:56:58 <AnMaster> bzr shows a progress bar
20:57:01 <AnMaster> :)
20:57:24 <AnMaster> Deewiant, I don't remember git showing a progress bar
20:57:25 <Gregor> Must be nice. Now if only everything ELSE about bzr wasn't so utterly confusing as to be insufferable.
20:57:36 <Gregor> Neither do I :P
20:57:38 <Deewiant> Progress bars are pointless
20:57:47 <AnMaster> Deewiant, why? because git doesn't have them?
20:57:47 <Deewiant> git shows the status numerically
20:57:54 <Deewiant> Because they don't tell me anything
20:58:05 <AnMaster> you git fanboys are even worse than mac fanboys
20:58:08 <Gregor> Well, showing status at all is the point.
20:58:12 <Sgeo_> What about darcs?
20:58:18 <AnMaster> Deewiant, there is also numerical info
20:58:19 <Deewiant> Too often the most time is spent at the last 5% of the progress bar
20:58:22 <AnMaster> next to that progress bar
20:58:49 <AnMaster> Gregor, anyway, just use tcpdump to check what it is doing
20:58:53 <AnMaster> ;P
20:59:02 <Gregor> AnMaster: So helpful :P
20:59:17 <AnMaster> Gregor, presumably it is tunnelled through ssl or ssh?
20:59:21 <AnMaster> so yeah, very helpful
20:59:32 <Gregor> SSL, yes.
20:59:46 <AnMaster> bzr you generally tunnel though ssh
20:59:52 <Gregor> Aha!
20:59:57 <Gregor> 's done
21:00:02 <AnMaster> as in, the bzr+ssh protocol
21:00:15 <Gregor> https://codu.org/projects/esotericlogs/hg/ If you hg clone this, I /will/ kill you :P
21:00:15 <AnMaster> (that is the way you give the "url" to bzr)
21:00:47 <AnMaster> Gregor, what about fizzie's old logs? were they merged into there?
21:00:53 <Gregor> He never gave 'em to me.
21:01:03 <AnMaster> fizzie, *prod*
21:01:19 <AnMaster> Gregor, are they merged into a common log file format or such?
21:01:29 <Gregor> All of these are straight off tunes.org
21:01:37 <FireFly> All right, I'll be nice and won't clone it
21:01:45 <AnMaster> Gregor, we wouldn't want dupes
21:01:51 <Gregor> <FireFly> I'll just hg init and hg pull!
21:02:01 <FireFly> :P
21:02:12 <Gregor> AnMaster: If somebody wants to write a clever log merger, I'll be glad to merge logs into my repo :P
21:02:12 <FireFly> But I'll snatch the fetch script
21:02:18 <AnMaster> Gregor, what is dpm() for in that shell script in there?
21:02:25 <Gregor> Days Per Month
21:02:25 <AnMaster> Gregor, maybe
21:02:27 <AnMaster> ah
21:02:37 <Gregor> Which I wrote stupidly :)
21:02:45 <AnMaster> Gregor, what about leap years?
21:02:53 <AnMaster> you are missing out on log files there
21:03:01 <AnMaster> oh wait
21:03:02 <Gregor> Look at what dpm returns for February.
21:03:04 <AnMaster> you always try 29
21:03:06 <AnMaster> heh
21:03:53 <AnMaster> Gregor, btw, about leap years see http://europeanhistory.about.com/library/bldyk2.htm
21:04:05 <Gregor> That fetch script, btw, is intended to be run straight out of cron, at least once a week.
21:04:21 <fizzie> Uh, well, I didn't think it was so important, since my logs have just a couple of weeks of not-very-active talk. But they're at http://zem.fi/~fis/eso/ anyway, if someone wants to understanderate the format.
21:04:26 <pikhq> b
21:04:48 <AnMaster> fizzie, looks similar to xchat's format?
21:05:13 <AnMaster> could be irssi
21:05:14 <fizzie> It should be the irssi default except with YYYY-MM-DD added in the timestamp.
21:05:19 <Gregor> AnMaster: Luckily, #esoteric didn't exist in 1712 Sweden.
21:06:09 <AnMaster> Gregor, yeah
21:06:53 <fizzie> Are you sure that's "luckily" and not "unfortunately"? Think what sort of world-shaking innovations there would be, had this sort of thing been going on since 1712.
21:07:10 <AnMaster> hah
21:07:34 <AnMaster> fizzie, clearly it would have been about esoteric wood carving or something back then
21:07:42 <AnMaster> or maybe iron making
21:08:04 <cpressey> Oh pfft, like this hasn't been the official hobby of the Illuminati since they landed on this planet in ancient Egypt
21:08:23 <AnMaster> hehe
21:12:16 <Gregor> Gee, apparently fizzie was fizzies back then.
21:12:37 <Gregor> Also, calamari predates time more than I'd realized.
21:12:51 <fizzie> The "s" suffix was just a temporary thing for the sparc box.
21:12:56 <Gregor> Oh, dbc is still here too, just never talks.
21:13:27 <cpressey> Much like mtve.
21:13:30 <fizzie> If we go even further back (to 1997 or thereabouts), I used to be "Fizzle", though; and then (briefly) "Fizzie", and then lowercased.
21:13:32 <Gregor> Did absolutely nothing happen from 2002-12-15 to 2003-01-03? :P
21:13:54 <fizzie> Hmm, those parts might be in a different log.
21:15:43 <fizzie> Gregor: See http://zem.fi/~fis/eso/more-days.log -- but you'd have to splice that into the other files in the correct order for optimum performance.
21:17:08 <Gregor> Isn't there a chatterbot newer than MegaHAL that's F/OSS >_>
21:17:28 <AnMaster> fizzie, was that in #esoteric ?
21:17:30 <AnMaster> in 1997?
21:17:38 <AnMaster> did freenode even exist back then?
21:18:58 -!- GreaseMonkey has joined.
21:19:09 <fizzie> No, that was elsewhere.
21:19:17 <AnMaster> fizzie, "optimum performance"?
21:19:24 <AnMaster> fizzie, when was #esoteric founded?
21:19:46 <fizzie> -ChanServ- Registered : Jan 03 01:30:22 2003 (7 years, 5 weeks, 5 days, 19:48:54 ago)
21:20:39 <fizzie> I have a feeling the idea of the channel started from the mailing list talk, but I'm not sure. I think that more-days.log starts from the time I first joined here.
21:23:42 <lament> it was discussed on the mailing list, i think someone even created the channel on efnet, but i suggested moving it to openprojects (which later became freenode)
21:30:43 <Gregor> Now training a megahal from #esoteric logs :P
21:30:56 <Gregor> (Deja vu? Yes, I have done this before)
21:32:04 <MissPiggy> megahal?
21:32:11 <MissPiggy> what abut fungot
21:32:12 <fungot> MissPiggy: i knew it was a joke
21:32:19 <MissPiggy> what's so funny about it?
21:32:26 <MissPiggy> you are being replaced??
21:32:37 <Gregor> No, I'm just having some giggly fun :P
21:32:54 <Gregor> It's choking on dbc's fractals >_<
21:37:51 <MissPiggy> ascii frctals?
21:37:52 -!- kar8nga has joined.
21:39:14 <Gregor> MissPiggy: See http://codu.org/projects/esotericlogs/hg/index.cgi/file/tip/03.01.21
21:41:22 <MissPiggy> very nice
21:50:49 <lament> heh, that log has a rare exarkun sighting
22:12:34 <AnMaster> 55 02:12:04 <fizzie> ah, re befunge, just wrote an interpreter with forth. so our unofficial befunge-interpreters-in-obsolete-but-non-esoteric-languages project now has forth, fortran-77, algol-60, plus few less interesting ones. maybe should do cobol next.
22:12:38 <AnMaster> fizzie, ^ interesting
22:12:42 <AnMaster> have it around still?
22:13:09 <AnMaster> also ehird will kill you when he finds out you called forth for "obsolete"
22:13:22 <AnMaster> and: did you ever do the cobol one?
22:14:09 <fizzie> I didn't do cobol; and I guess "obsolete" was not a good word choice there.
22:14:22 <fizzie> But yes, I think I still have the forth version.
22:14:44 <fizzie> It's not very elegant, though.
22:18:01 <AnMaster> fizzie, 93 or 98?
22:18:26 <fizzie> 93.
22:18:35 <AnMaster> ah
22:18:44 <tombom_> aggh cobol
22:19:04 <tombom_> my first programming language was cobol
22:19:08 <tombom_> it was not a good choicwe
22:19:21 <AnMaster> tombom_, my first one was AppleScript
22:19:47 <AnMaster> then followed by delphi, then C#, then lots of other (and saner) languages, such as bash, C and what not
22:19:55 <AnMaster> erlang and lisp too
22:20:00 <AnMaster> (that came quite a bit later)
22:20:24 <tombom_> i think all these are saner than cobol
22:20:26 <tombom_> maybe not bash
22:20:39 <AnMaster> ...
22:20:42 <AnMaster> bash is quite sane
22:20:45 <AnMaster> I like it
22:20:55 <AnMaster> tombom_, I wrote a modular irc bot in it
22:21:00 <AnMaster> should be connected here currently
22:21:00 <tombom_> why
22:21:02 <AnMaster> as envbot
22:21:06 <tombom_> that's dumb
22:21:09 <AnMaster> ...
22:21:10 <AnMaster> why not
22:21:23 <tombom_> because you could have done it in a more sensible language
22:21:30 <AnMaster> tombom_, ah yes, brainfuck
22:21:35 <AnMaster> or intercal
22:21:37 <tombom_> yeah exactly
22:21:44 <tombom_> is there a networking brainfuck anyway
22:21:55 <AnMaster> well befunge has networking
22:21:56 <AnMaster> ^source
22:21:57 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
22:22:04 <AnMaster> befunge98 that is
22:22:15 <AnMaster> tombom_, you could hook it up to netcat, socat, gnutls-cli or similar
22:22:32 <AnMaster> fizzie, hm, I wonder if I should add a SSL fingerprint, now that freenode supports that
22:22:39 <AnMaster> ssl that is
22:22:46 <tombom_> befunge is more interesting
22:23:08 <AnMaster> tombom_, also, then you might as well call IOCCC stupid
22:23:53 <tombom_> it's not so much that it's stupid, it's just that writing an irc bot in bash is just annoying enough to be painful and just normal enough not to be very interesting
22:23:55 <AnMaster> tombom_, btw are you new here? Or just an idler?
22:23:57 <tombom_> i dunno, maybe just me
22:23:59 <tombom_> idler
22:24:16 <AnMaster> also, it is fun to do it
22:24:45 <AnMaster> it is connecter as envbot as I said. Try /msg envbot -commands
22:24:47 <tombom_> i suppose i'm the stupid one here really
22:24:55 <AnMaster> tombom_, well, didn't say that
22:25:14 <tombom_> no i know i just mean it's a bit silly for me to be criticisng how other people choose to use their time
22:25:25 <AnMaster> tombom_, but, basically no one else have a exactly the same bot
22:25:37 <AnMaster> I mean, eggdrop or supybot? there are loads of them
22:25:41 <AnMaster> this is quite unique
22:25:44 <AnMaster> also it is open source
22:25:50 <AnMaster> so well, someone else *might* use it
22:25:51 <AnMaster> no idea
22:25:58 <AnMaster> not that I know at least
22:26:08 <tombom_> what's unique about it?
22:31:14 <AnMaster> tombom_, compared to?
22:31:22 <AnMaster> well, no one has exactly the same
22:31:32 <tombom_> oh right
22:31:58 <AnMaster> tombom_, also it used to have an interface for searching in the package manager on gentoo. Doesn't work any more since I switched distro
22:32:04 <AnMaster> and I'm not really developing on it any more
22:32:25 <AnMaster> would have to code a new one for arch linux
22:32:58 -!- tombom_ has quit (Quit: Leaving).
22:44:43 -!- kar8nga has quit (Remote host closed the connection).
23:05:34 -!- FireFly has quit (Quit: Leaving).
23:10:36 -!- coppro has joined.
23:13:35 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:21:49 <cpressey> I don't suppose there's any way to just derive a lazy generator for values of an algebraic data type in Haskell?
23:22:09 <cpressey> Like if I have: data Tree = Leaf | Branch Tree Tree
23:22:55 <cpressey> Something that will give me the list: [Leaf, Branch Leaf Leaf, Branch Leaf (Branch Leaf Leaf), Branch (Branch Leaf Leaf) Leaf, Branch (Branch Leaf Leaf) (Branch Leaf Leaf), ...]
23:23:32 <MissPiggy> cpressey yes you can
23:23:35 <MissPiggy> oh wait
23:23:42 <MissPiggy> no there isn't
23:24:04 <cpressey> Drat. Oh well.
23:25:00 <MissPiggy> something like trees = return Leaf ++ Branch <$> trees <*> trees will not work either
23:25:04 <MissPiggy> because the list monad is not fair
23:25:38 <MissPiggy> nicer syntax.. (| Leaf |) ++ (| Branch trees trees |)
23:25:46 <MissPiggy> I might even have the other one wrong
23:27:22 -!- oerjan has joined.
23:38:19 -!- SimonRC has quit (Ping timeout: 265 seconds).
23:38:39 -!- SimonRC has joined.
23:54:23 -!- Asztal has quit (Ping timeout: 246 seconds).
2010-02-11
00:15:32 -!- SimonRC has quit (Ping timeout: 265 seconds).
00:25:03 <dbc> Is Haskell intrinsically asymptotically slower than C for two-dimensional cellular automata?
00:25:27 <pikhq> Intrinsically? I doubt it.
00:25:44 <pikhq> Typically? Likely.
00:25:54 <pikhq> You can do some crazy stuff with C.
00:26:27 <dbc> Like use random-access mutable state :)
00:26:38 <MissPiggy> dbc, lazy data struturse are asymptotically slower than mutable ones
00:26:39 <dbc> Ooh, crazy!
00:26:40 -!- SimonRC has joined.
00:26:47 <MissPiggy> dbc, good thing haskell has mutation :P
00:26:50 <oerjan> you can do that in haskell too you know
00:26:59 <pikhq> MissPiggy: And Haskell allows strict data structures.
00:27:08 <MissPiggy> I know :)
00:27:09 <pikhq> And mutable ones, too.
00:27:17 <MissPiggy> I am talking about a well known theorem
00:27:19 <MissPiggy> in computing
00:27:22 <MissPiggy> not haskell
00:27:36 <MissPiggy> it's so well known that I don't know it's name or who proved it..
00:27:38 <oerjan> vaguely rings a bell
00:27:40 <pikhq> And GHC will often compile things into direct mutation.
00:27:43 <MissPiggy> can anyone help me??
00:27:50 <pikhq> (when laziness doesn't change semantics, IIRC)
00:27:59 <cpressey> Nick what's-his-name did a proof that sounds like what you're talking about
00:28:15 <cpressey> Nicholas Pippenger
00:28:50 <cpressey> That LISP as a model of computation is slower than Turing machines
00:29:03 <cpressey> OK, similar, but not quite
00:29:12 <MissPiggy> he doesnt have a publications list? grrr
00:30:24 <cpressey> I'll see if I can find the paper. Unfortunately, gotta go now. Later.
00:30:27 -!- cpressey has left (?).
00:30:30 <MissPiggy> woah I thought this was #haskell
00:30:36 <oerjan> dbc: if by asymptotically slower you mean more than a constant factor, then i don't see why haskell should be that for 2d ca's
00:30:47 <pikhq> Nope, just a bunch of Haskellians in here.
00:30:53 <pikhq> :P
00:31:21 <oerjan> you might need to force some strictness not to get unexpected pauses between things, though
00:31:47 <coppro> MissPiggy: it isn't?
00:32:00 <MissPiggy> ??
00:32:08 <MissPiggy> isn't this is #esoteric
00:32:09 <MissPiggy> ?
00:32:39 <pikhq> Hahah.
00:37:17 * Sgeo_ wonders if he can rightly call himself a Haskeller
00:37:40 <Sgeo_> My Haskell-foo is somewhat weak
00:39:15 <Gregor> Because jix never talks anymore, I've created virtujix.
00:39:22 -!- virtujix has joined.
00:39:22 <virtujix> Re == re-hi == hi again.
00:39:35 <Gregor> virtujix: Are you a suitable replacement for jix?
00:39:36 <virtujix> Gregor: I need a name for i that would be just a replacement table.
00:42:18 <Gregor> I see nobody cares about virtujix :(
00:42:23 <Gregor> virtujix: It's OK, /I/ care.
00:42:23 <virtujix> Gregor: You start with a whirl debugger with a normal directory structure is a better form of du (both you in english) and i think i'm an atheist for the macro assembler i'm working on my 1ghz g4 so that sounds ok.
00:44:01 <MissPiggy> lol
00:44:08 <MissPiggy> virtujix loll
00:44:14 <MissPiggy> ;_;
00:44:27 <Gregor> You have to put a ':'
00:44:28 <Gregor> e.g.
00:44:30 <Gregor> virtujix: loll
00:44:30 <virtujix> Gregor: I have a 3 liner or so with this thing.
00:44:36 <MissPiggy> virtujix: tel me a story
00:44:36 <virtujix> MissPiggy: Are you a new story.
00:44:41 <MissPiggy> virtujix: no
00:44:41 <virtujix> MissPiggy: Yes but 3gb are in a fast div by 2.
00:44:49 <oerjan> Gregor: it's so long since jix talked that we've forgotten him
00:44:54 -!- coppro has quit (Ping timeout: 252 seconds).
00:45:00 <Gregor> I haven't forgotten!
00:53:31 <Gregor> virtujix: Have any new esoteric programming projects?
00:53:32 <virtujix> Gregor: I did programming for the problem of using different vcs for different projects.
00:53:48 <Gregor> virtujix: Well, that's not particularly esoteric, but what did you come up with?
00:53:48 <virtujix> Gregor: (I have no way to me), we got 1000eur for our robot team, and i think having a normal strategy .. But it wasn't able to compute the gcd of two particles.. Let's assume it can work right from the most esoteric.. Uhm..
00:54:14 <Gregor> virtujix: Did you get lost there?
00:54:15 <virtujix> Gregor: I need to fix this! Spambots: all your base are belong to me is the link (i lost it.
00:54:30 <MissPiggy> lol
00:54:56 <Gregor> virtujix: What is the gcd of two particles?
00:54:57 <virtujix> Gregor: But it has an fpga i used two 1980 shooters as a file has more particles.
00:55:07 * Gregor nods sagely.
00:59:21 -!- virtujix has quit (Remote host closed the connection).
01:07:03 -!- MizardX- has joined.
01:08:25 -!- MizardX has quit (Read error: Connection reset by peer).
01:08:31 -!- MizardX- has changed nick to MizardX.
01:18:51 <oerjan> http://www.reddit.com/r/programming/comments/b0hi4/can_haz_reddit_clone_in_lolcode_in_some_amount_of/c0kc0fj
01:20:43 <Gregor> $ du -h brain/jix/ brain/gregor/
01:20:43 <Gregor> 11M brain/jix/
01:20:43 <Gregor> 14M brain/gregor/
01:20:47 <Gregor> And mine's not even done training yet!
01:21:44 <MissPiggy> virtujix: so what is your opinion about the recent revamp of TC definiton?
01:22:24 <Sgeo_> There was a recent revamp of TC definition?
01:22:54 <MissPiggy> I was _trying_ to figure out if it was a real person or not
01:23:05 <MissPiggy> but it was too sneaky, left before I started with the hard questions
01:23:12 <oerjan> i thought the conclusion was that TC was pretty ill-defined if you look too closely at it
01:25:41 * Sgeo_ decides that he hates WinGHCi
01:25:47 <Sgeo_> It has a tendency to get wonky
01:26:31 -!- virtujix has joined.
01:26:31 <virtujix> Done: http://esolangs.org/wiki/brainfuck#hello_world.21.
01:26:55 <Sgeo_> Is crappy BF code common?
01:27:22 <Sgeo_> I'm thinking of writing a thing to essentially rewrite those blocks of BF code that only contain the characters <>-+
01:27:35 <lament> it's been done many times
01:28:00 <Sgeo_> Aww
01:28:09 <Sgeo_> Oh, you were referring to virtujix? Or to me?
01:28:14 <Sgeo_> s/you were/were you/
01:28:24 <Gregor> Sgeo_: To you.
01:28:33 <Gregor> I brought virtujix because fax wanted me to :P
01:30:31 <Sgeo_> But has it been done.. in Haskell?
01:30:38 * Sgeo_ is slightly insane
01:31:27 <lament> every slightly-optimizing brainfuck compiler does it
01:31:40 <Sgeo_> lament, what about outputting to BF code?
01:31:56 <lament> i think i've seen that
01:32:30 * Sgeo_ feels useless
01:32:35 <lament> :(
01:32:43 <Sgeo_> How many tools are there to turn BF code into PSOX-compatible BF code?
01:33:06 <Gregor> Does "PSOX-compatible" mean "Without outputting any \0s"?
01:33:47 <Sgeo_> Um, if you had that plus the PSOX handshake, that would work
01:34:02 <Sgeo_> I was thinking of just escaping everything, though
01:34:30 <Gregor> Probably difficult if you don't also make them take 2x memory or something.
01:34:46 * Sgeo_ had no problem with making them take 2x memory
01:35:46 -!- coppro has joined.
01:39:29 <Gregor> virtujix: Nobody seems to want to talk to you!
01:39:30 <virtujix> Gregor: Wildhalcyon: i talk about plangebäude and plangruppen-bezeichnungen without telling me what the hell plangebäude are?
01:39:42 <Sgeo_> virtujix, do you love me?
01:39:42 <virtujix> Sgeo_: Ihope: i hate you.
01:40:29 <Gregor> Ouch!
01:40:41 <MissPiggy> ;(
01:43:27 <oerjan> Sgeo_: in any case haskell _should_ be excellent for doing such a thing if you choose to do it
01:46:07 * Sgeo_ isn't sure how he'd make a bidirectional list
01:46:28 <coppro> you don't need one
01:46:43 <coppro> if you absolutely must, you can have two lists and shuffle elements from one to the other
01:47:16 <oerjan> you can use two lists, one for the part previous and one for the part after (this is known as a _zipper_ of lists)
01:49:38 <Sgeo_> Hm, I think http://www.haskell.org/haskellwiki/Zipper may be exactly what I need
01:49:44 <Sgeo_> Note: I haven't started writing any of this yet
01:50:47 <Sgeo_> data BFCmd = BFAlter Integer | BFMove Integer | BFIn | BFOut | BFLoop [BFCmd] | BFComment String
01:50:56 <Sgeo_> pikhq wrote something similar elsewhere
01:51:10 <Sgeo_> Except without the BFComment
01:51:23 <Sgeo_> And just plain BFAdd | BFSub etc
01:52:01 <MissPiggy> hmmm
01:53:06 <Sgeo_> I should use Integral instead of Integer
01:54:36 <pikhq> Sgeo_: It was a single IRC line, whaddya expect?
01:55:09 <Sgeo_> Hm, should show actually turn a BFCmd into something like BFAdd, or just +
01:55:42 -!- virtujix has quit (Remote host closed the connection).
01:55:54 <pikhq> virtujix: え〜と〜……日本語を話せるか。
01:56:08 <Gregor> pikhq: Good timing :P
01:56:15 <pikhq> Gregor: Curses.
01:56:17 -!- virtugor has joined.
01:56:18 <virtugor> Well, for [], i still need to go with greetings, personified globular iron construct orbiting sol!\r.
01:56:26 <Gregor> Wow.
01:56:28 <pikhq> virtugor: え〜と〜……日本語を話せるか。
01:56:28 <virtugor> pikhq: I've converted a myvu crystal.
01:56:29 <Gregor> What an entrance.
01:57:06 <Gregor> virtugor: Tell me about pikhq.
01:57:07 <virtugor> Gregor: Pikhq: why are you doing on #esoteric or with you, but you also have a clue why it's fekky.
01:57:10 <coppro> Sgeo_: you rarely want to redefine show
01:57:18 <coppro> since it's supposed to produce valid Haskell
01:57:23 <Sgeo_> Ok
01:57:27 <pikhq> virtugor: Tell me about Gregor.
01:57:28 <virtugor> pikhq: <Gregor> and nobody will indulge themselves in the blood out of you.
01:57:48 <Gregor> Yeah, that sounds like something I'd say.
01:58:29 <coppro> if you want to redefine it, you'd probably have it produce bfParse "code"
02:02:44 -!- MizardX has quit (Ping timeout: 260 seconds).
02:02:53 <oerjan> <Sgeo_> I should use Integral instead of Integer <-- i suspect you are thinking of Int, Integral is a type class (also you probably want Integer)
02:03:28 <Gregor> The process that's feeding the complete logs into a MegaHAL is only just now through 2005 ...
02:03:36 <Sgeo_> oerjan, I want to be able to use this thing with Ints, when for example the user wants the cell to be restri.. wait
02:03:54 <Sgeo_> Not using Integer in all cases would mean that large numbers of +'s won't work
02:03:54 <Sgeo_> ty
02:05:08 -!- MissPiggy has quit (Quit: Lost terminal).
02:26:10 -!- ozwolverine has joined.
02:26:34 <ozwolverine> hey, check this nice site: http://www.ponleestiloatuvida.com/?opcion=pp&key=VUlEPTQ4NTUmbj1qbw==
02:27:27 <Gregor> Cool, spammers.
02:28:00 -!- ozwolverine has left (?).
02:35:06 <Sgeo_> Why was I expecting GHC's C output to be readable?
02:35:21 <oerjan> madness
02:35:47 <oerjan> hast thou not heard of ye Evil Mangler?
02:36:38 <pikhq> oerjan: That's before the mangler.
02:36:46 <oerjan> oh
02:37:00 <pikhq> The mangler is done on the assembly.
02:37:14 <oerjan> ah
02:37:15 <oerjan> uh
02:37:18 <oerjan> eh
02:37:23 <pikhq> Sgeo_: The Evil Mangler, BTW, removes all C stack usage.
02:37:28 * oerjan hides in the corner now
02:37:32 <pikhq> Among other things.
02:53:24 -!- jcp has joined.
02:54:27 <Gregor> Run, it's a Java-er!
02:54:40 <Gregor> virtugor: Run, it's a Java-er!
02:54:42 <virtugor> Gregor: But java is a bf interpreter in a public setting, and talking loudly would annoy people?
02:54:42 * Sgeo_ will be tutoring Java soon
02:54:51 <Gregor> lol, well put, virtugor.
02:58:10 -!- virtugor has quit (Remote host closed the connection).
02:58:56 -!- virtugor has joined.
02:58:56 <virtugor> Fizzie: you're welcome.
02:59:01 <Gregor> lol
02:59:06 <Gregor> virtugor is now 100% more annoying.
02:59:29 <Gregor> As it will respond to about 1% of messages even if they don't specifically message it :P
02:59:45 <pikhq> Hoorah.
02:59:59 <Gregor> Assuming I didn't miscode it, of course!
03:00:15 <Gracenotes> time to play with SDL_TFF
03:00:17 <oerjan> maybe you accidentally made it 100% _less_ annoying
03:00:55 <Gregor> ... oops, I did miscode it :P
03:01:36 -!- virtugor has quit (Client Quit).
03:01:56 -!- virtugor has joined.
03:01:57 <virtugor> The only difference is whether we are engaged in a chroot, but the pattern of greetings to you personally.
03:02:24 <Gregor> virtugor: Now will you be nice and respond randomly and nonsensically to a totally inexplicable assortment of messages?
03:02:28 <virtugor> Gregor: I sort of sounds like quite the assortment of messages?
03:02:41 <coppro> virtugor: Yes. Yes you are.
03:02:41 <pikhq> Brilliant, Virtugor.
03:02:43 <Gregor> I'll take that as a "yes"
03:02:44 <virtugor> coppro: No, from that page i would have to look at me unless they know me :p.
03:03:03 <coppro> There should be a "Sorry, please try again" command for these Markov chain bots :P
03:03:07 <oerjan> we're doomed. DOOMED.
03:05:31 <Gregor> The full brain is now 100M :P
03:06:10 <oerjan> which incidentally is quite similar to DOOM
03:06:17 <oerjan> doomy dooms of doom
03:10:13 <Gracenotes> glooomy glooms of gloom :(
03:10:38 <oerjan> dammit i sucked myself into tvtropes with that phrase
03:14:45 <augur> http://i.imgur.com/SCRMC.jpg
03:14:49 <augur> have a sunset
03:15:17 <oerjan> before i click, is it a doomy one?
03:15:51 <augur> no.
03:16:36 <oerjan> good, good.
03:16:47 <Gregor> Who else needs a virtual person.
03:16:49 <Gregor> Oh, definitely augur.
03:17:01 <augur> did i mention the photo was taken on MARS
03:17:03 <virtugor> augur: Do you think you would be super, boot a uml every time i mention the photo was taken on mars.
03:18:06 <oerjan> no. no you didn't.
03:18:09 <augur> well now i did
03:18:33 <oerjan> so the red planet has blue sunsets?
03:20:15 * Sgeo_ doesn't have a virtual person
03:22:29 <augur> apparently so!
03:28:30 * Gregor continues to train his virtual augur.
03:28:46 <augur> virtual gregor, you mean
03:28:54 <Gregor> I have a virtual Gregor.
03:28:59 <Gregor> virtugor: Introduce yourself!
03:29:00 <virtugor> Gregor: Please, introduce yourself by filling out this 15-question survey. The answers don't need to read or write arbitrary files, or run code and then myself.
03:30:12 <Sgeo_> But can they read and write arbitrary files, if I want them to? MUAHAHA
03:33:08 <Gregor> virtugor hasn't interjected randomly yet, but then there haven't been 100 messages yet ...
03:37:27 -!- virtugor has quit (Remote host closed the connection).
03:37:57 <oerjan> Gregor: yes it did
03:38:05 <Gregor> Oh, so it did :P
03:38:16 -!- virtufive has joined.
03:38:16 <virtufive> Oh is that the marking indicates the "mood" of the clause for this sentence ok? Itll demonstrate that theres a single one inch long gigantic dildo and last night, and it still looks like so.
03:38:35 <Gregor> Again, great entrance :P
03:38:55 <oerjan> very augurial
03:43:17 <Sgeo_> Don't let it into Sine pls
03:43:39 <coppro> Sgeo_: I discovered another AW enthusiast
03:43:46 <oerjan> Sgeo_: is that an attempt at reverse psychology?
03:44:06 <Sgeo_> coppro, o.O who?
03:44:14 <Sgeo_> And is e a citizen?
03:44:32 <coppro> name's BigAnon; he's over in ##c++. I don't know what that means, but apparently he needs to lean programming to help moderate something
03:47:00 -!- Ilari has quit (Ping timeout: 258 seconds).
03:51:42 -!- Ilari has joined.
03:58:47 -!- virtufive has quit (Quit: Leaving).
03:59:18 -!- sebbu2 has joined.
03:59:52 -!- virtuLORD has joined.
03:59:52 <virtuLORD> For thy name's sake thou wilt hear hi voice, and said to him: master, speak to this people with their heart, and his obstetric hand brought forth thy hand maid speak one word of the acts of simon, and they buried him in jerusalem: whom they killed, hanging him upon the jordan over against the philistines, and i shall have no covering for destruction.
04:00:10 <Gregor> Amen.
04:01:16 -!- sebbu has quit (Ping timeout: 260 seconds).
04:01:17 -!- sebbu2 has changed nick to sebbu.
04:01:45 <oerjan> the smoke you smell is Gregor being hit by lightning btw
04:02:06 <Gregor> Admittedly, some people may consider a bible-based chatbot to be offensive :P
04:02:33 <oerjan> you don't say
04:06:59 <Gregor> virtuLORD: You must let oerjan see the light!
04:07:00 <virtuLORD> Gregor: You must let oerjan see the way of his servants: set on a certain figure of the light: and there fell of israel i have removed him, he is my god, out of which he pitched his tent, in the twentieth year, from the abundance surpasseth all understanding, keep your hearts from this people, who have not put me in this order.
04:07:26 <Gregor> Amen.
04:08:53 -!- doodle77 has joined.
04:11:25 <Sgeo_> I seem to have started a debate in ##C++ about what esoteric means
04:11:47 <coppro> Gregor: did you feed him a copy of the Bible?
04:12:06 <Gregor> coppro: I /might/ have :P
04:12:20 <pikhq> virtuLORD: What sayest thou?
04:12:21 <virtuLORD> pikhq: And if i be wicked, woe unto me: and now thou sayest to me: thou shalt multiply strength in thy own eye? Hypocrite, cast first the children be led away with the lord said to him: it is thou, o lord, thy people, the children of israel, to play the harlot with stones and pearls, having a golden girdle.
04:12:39 <Sgeo_> virtuLORD, who created evil?
04:12:41 <virtuLORD> Sgeo_: And the days of simon, and his servants said to him: when thou wast created, in the multitude of the evil out of impatience or pusillanimity, but out of the council: men, brethren, i know not what evil shall be as the lord their god, and look upon me, because i am fled from before him saying: prophesy: who is the day of my equals in my flesh, why are you fearful? Have you still your heart shall utter perverse things.
04:12:52 <coppro> I've got an idea
04:12:59 <coppro> take the holy texts of every major religion
04:13:06 <coppro> feed them into a Markov chain bot
04:13:11 <coppro> and start a new religion based on the results
04:13:22 <Gregor> I like "thou shalt multiply strength in thy own eye?"
04:15:53 -!- Sgeo__ has joined.
04:16:08 <oerjan> make sure to include the necronomicon
04:16:57 <pikhq> And the OT documents.
04:17:03 <coppro> OT documents?
04:17:04 <virtuLORD> coppro: Documents of wisdom and power of the lord.
04:17:05 <pikhq> It's not a religion without persecution.
04:17:14 <pikhq> coppro: Operating Thetan.
04:17:29 <coppro> ah
04:17:32 <pikhq> Id est, the holy works of Scientology.
04:18:35 <Gregor> That response of virtuLORD was pretty much the best thing ever :P
04:18:42 <coppro> yeah
04:19:10 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
04:19:25 -!- Sgeo__ has changed nick to Sgeo.
04:21:26 <Gregor> virtuLORD: Tell me about Scientology.
04:21:27 <virtuLORD> Gregor: You know that i release to you the way which now i shall have done as he went up into an angel of the tabernacle of the letter might be crucified. And their hands give ye glory to him, and they that remained of the holy ghost, that he may be honoured by the works of scientology.
04:21:45 <Gregor> That's quite the sentence.
04:23:06 <oerjan> virtuLORD: so you mean scientology is fine as long as you like being crucified?
04:23:08 <virtuLORD> oerjan: And i called upon me, and to captivity, and thou be afraid to be crucified.
04:23:21 <oerjan> virtuLORD: yeah a bit, i'd say
04:23:22 <virtuLORD> oerjan: Begging will be a reward of leaving all things, and this city a wilderness, and that daniel should be expended for thy brother being impoverished sell himself to the people: i will suffer death, or in a clay ground, between socoth and sartham.
04:31:19 -!- doodle77 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.0.4/2008111312]).
04:35:47 -!- Gracenotes has quit (Remote host closed the connection).
04:37:31 <lament> virtuLORD: anything on the subject of the meaning of life?
04:37:33 <virtuLORD> lament: Be ye subject therefore to simon peter. And peter remembered the word of the life of the meaning of life?
04:38:13 <lament> virtuLORD: well is it anything to do with god?
04:38:15 <virtuLORD> lament: Our fathers have sinned, we have no king before him the chief priests and laity to their home, they will heap evils upon the sea brought them, they passed to the elders of madian, was zambri the son of god?
04:39:40 <lament> Andrew Plotkin has a quote in his signature, from a markov bot trained simultaneously on the Bible and Alice in Wonderland
04:40:12 * Sgeo just gave some bad advice in ##C++
04:40:20 <Sgeo> :(
04:40:30 <Gregor> Was it, "Use C++"?
04:40:35 <Sgeo> lol
04:40:37 <coppro> no, it was to use globals
04:40:50 <Sgeo> coppro, can you please come up with a better answer?
04:41:06 <oerjan> use templates?
04:41:07 <coppro> Sgeo: pass it as an argument?
04:41:21 <Sgeo> coppro, aw_event_set() needs a function that takes 0 arguments
04:41:22 * oerjan doesn't actually know c++
04:41:43 <coppro> Sgeo: Oh. Then yeah, globals :(
04:42:10 <Sgeo> There's no answer with classes or functions returning functions? Although this guy is a beginner, so
04:42:26 <Sgeo> Plus, best not to overcomplicate this, I guess
04:42:30 <coppro> Sgeo: not if it expects a callback function
04:42:36 <coppro> (which, additionally, should be extern "C")
04:42:44 <pikhq> oerjan: Rejoice in that.
04:43:05 <Sgeo> coppro, wait, the callback function needs to be extern "C"d?
04:43:21 <coppro> Sgeo: If the library is a C library, which I assume it is
04:43:35 <Sgeo> It is
04:43:40 <Sgeo> It is itself extern "C"'d
04:43:46 <pikhq> Then yes, it needs to be extern "C"'d.
04:43:53 <pikhq> C++ has a different calling convention.
04:43:55 <coppro> yes, then the callback must also be extern "C"
04:43:56 <virtuLORD> coppro: Where their worm dieth not, and she said: verily, i say to you, which stood in all the things also to be extern "c.
04:44:02 <coppro> *may have
04:44:44 <Sgeo> His callback uses a bunch of C++ stuff
04:44:56 <pikhq> Sgeo: That's perfectly valid.
04:45:12 <coppro> extern "C" only affects the external parts of the function; they can still use C++ features inside
04:45:14 <pikhq> Just so long as the callback can be called from C.
04:45:21 <oerjan> Sgeo: sounds like the problem is that C functions cannot simulate full closures? i recall haskell's ffi implementation requires self-modifying code because of that
04:45:36 <coppro> oerjan: yes, that's the problem
04:45:58 <Sgeo> coppro, want to actually help out in ##C++ ?
04:46:00 <virtuLORD> Sgeo: And aduram, and lachis, and to his friends and neighbours, saying to the help of the city of letters. . .Perhaps so called from c.
04:46:07 <coppro> Sgeo: no thanks
04:46:46 <Sgeo> What will happen if extern "C" {} isn't used?
04:46:49 <pikhq> oerjan: C functions are implemented using nothing more than a string of machine code that uses a set amount of stack.
04:47:00 <pikhq> Sgeo: Then it's undefined behavior.
04:48:21 <coppro> pikhq: Actually, a strict interpretation of the standard would say that it's ill-formed
04:50:50 -!- Biganon has joined.
04:59:06 -!- virtuLORD has quit (Quit: Leaving).
05:05:20 -!- zzo38 has joined.
05:07:03 <zzo38> <ERROR:OVERFLOW> days since last <ERROR:???> sighting
05:17:45 <coppro> underflow now
05:27:32 <oerjan> sideflow
05:31:38 <Wareya> aroundflow
05:41:35 <GreaseMonkey> workflow
05:51:15 -!- mycroftiv has quit (Ping timeout: 252 seconds).
06:04:41 -!- jcp has quit (Ping timeout: 240 seconds).
06:06:58 -!- oerjan has quit (Quit: Good night).
06:08:37 -!- Biganon has left (?).
06:29:19 -!- Gracenotes has joined.
06:46:03 <Gracenotes> I think I've created the ugliest bash makefile generator known to man. *evil laugh*
06:46:14 -!- tombom has joined.
06:47:30 <bsmntbombdood> i hate makefiles
06:49:06 <Gracenotes> funnest part, I think: deps=$(egrep '^#include "' $i | sed -re 's/#include "([^\"]+)"/\1/' | sed -e :a -e '/$/N;s/\r\n/ /;ta');
06:49:42 <coppro> is it recursive?
06:50:28 <Gracenotes> no. single makefile for a nest of directories.
06:51:11 <Gracenotes> it doesn't generate the whole makefile per se, just the g++ -c listings
06:57:15 <Gracenotes> hm. I should probably replace the second sed with a tr
07:14:02 -!- mycroftiv has joined.
07:24:39 -!- zzo38 has quit (Remote host closed the connection).
07:30:58 -!- pikhq has quit (Read error: Operation timed out).
07:36:14 -!- pikhq has joined.
07:44:05 -!- kar8nga has joined.
07:49:05 -!- tombom has quit (Quit: Leaving).
07:51:53 -!- pikhq has quit (Read error: Connection reset by peer).
07:52:13 -!- pikhq has joined.
07:55:19 -!- Sgeo_ has joined.
07:56:00 -!- Sgeo has quit (*.net *.split).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:43 -!- Pthing has joined.
08:24:42 -!- coppro has quit (Ping timeout: 252 seconds).
08:26:56 -!- AnMaster has set topic: RIP sun.com | 0 days since last topic change | 3 days since last alise sighting | 5 days since last ehird sighting | 15 days since last calamari sighting | 204 days since last graue sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | 2581 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
08:55:43 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
08:56:58 -!- MizardX has joined.
09:33:04 -!- Asztal has joined.
10:37:53 -!- MigoMipo has joined.
10:55:37 -!- FireFly has joined.
11:01:32 -!- BeholdMyGlory has joined.
11:31:57 -!- MigoMipo has quit (Quit: Page closed).
11:42:10 -!- kar8nga has quit (Remote host closed the connection).
12:15:28 -!- lifthrasiir has quit (Ping timeout: 260 seconds).
12:22:58 -!- lifthrasiir has joined.
12:38:15 -!- MigoMipo has joined.
12:45:13 -!- kar8nga has joined.
13:37:29 -!- Pthing has quit (Remote host closed the connection).
14:17:30 -!- kar8nga has quit (Remote host closed the connection).
14:32:08 -!- Pthing has joined.
14:40:31 -!- Sgeo has joined.
14:42:49 -!- Sgeo_ has quit (Ping timeout: 264 seconds).
15:38:45 -!- cpressey has joined.
15:42:39 <cpressey> So, for when MissPiggy comes back: http://portal.acm.org/citation.cfm?id=244798
15:47:15 -!- kar8nga has joined.
15:55:30 <augur> http://languagelog.ldc.upenn.edu/nll/?p=2110
15:55:31 <augur> HAHAHA
15:55:54 <augur> cpressey: do you have actual access to that?
15:57:44 <augur> incase anyone _doesnt_ have acm access: http://wellnowwhat.net/transfers/Pure%20versus%20Impure%20Lisp%20-%20Pippenger.pdf
16:00:47 <cpressey> augur: I used to, but not anymore. I have a saved copy, but I can't access it right now. So -- thanks for that link.
16:00:54 <augur> :)
16:01:03 <augur> i have access to ACM Portal and JSTOR
16:01:16 <augur> Project Muse, and a bunch of other places as well
16:01:20 <augur> so ask me for anything
16:02:26 <augur> http://www.last.fm/music/Alvin+Lucier/_/I+Am+Sitting+In+A+Room
16:15:09 <augur> im very tempted to listen to this while im tripping
16:28:03 -!- Slereah has joined.
16:38:57 -!- MissPiggy has joined.
16:39:06 -!- oerjan has joined.
16:40:04 <cpressey> MissPiggy: In case you haven't read the logs -- http://wellnowwhat.net/transfers/Pure%20versus%20Impure%20Lisp%20-%20Pippenger.pdf
16:41:50 * oerjan suddenly has a vague recall that pure lisp is still strict, and that there are doubts about the case with laziness
16:42:41 <cpressey> Could be
16:45:47 <MissPiggy> most of its basic elements are frank imitations of corresponding elements of
16:45:48 <MissPiggy> the 􏱋-calculus
16:45:53 <MissPiggy> lambda-calculus
16:46:45 <oerjan> um it's not the first part that is vague, thank you
16:52:49 <MissPiggy> thanks
16:59:23 -!- tombom has joined.
17:02:18 -!- kar8nga has quit (Remote host closed the connection).
17:14:15 <cpressey> I *never* thought I would miss Perl
17:15:38 <oerjan> it's the perl of programming languages
17:17:18 -!- jcp has joined.
17:55:23 -!- oerjan has quit (Quit: Later).
17:59:32 <augur> MissPiggy: in cast you were wondering, cpressey found it, i hosted the non-ACM link
17:59:50 <augur> cpressey and I are awesome. oh yes.
18:01:54 -!- tombom_ has joined.
18:03:49 -!- tombom has quit (Ping timeout: 264 seconds).
18:04:39 -!- kar8nga has joined.
18:10:26 <AnMaster> Gregor, who was that virtujix? A bot?
18:10:41 * AnMaster doesn't have time to read the complete scrollback
18:17:37 -!- augur has quit (Ping timeout: 264 seconds).
18:19:27 -!- kar8nga has quit (Remote host closed the connection).
18:29:07 -!- pikhq has set topic: RIP sun.com | 0 days since last topic change | 4 days since last alise sighting | 6 days since last ehird sighting | 16 days since last calamari sighting | 205 days since last graue sighting | 1159 days since last kipple sighting | 2225 days since last sleon|tuX sighting | 2582 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:40:09 -!- Gracenotes has quit (Ping timeout: 252 seconds).
18:44:42 * cpressey is starting to agree with Steve Yegge: there is something very, very wrong with Python's culture. I don't agree with him about what's wrong with it. And it only has an indirect effect on the design of the language itself, of course. But still, ... yeeeesh.
18:45:02 <MissPiggy> tell me about it
18:45:31 * olsner spreads some python hate around
18:46:38 <cpressey> MissPiggy: Was that a literal or rhetorical response?
18:46:46 <MissPiggy> no
18:46:52 <cpressey> *headdesk*
18:47:05 <MissPiggy> I want to know more, what do you find wrong with python culture
18:47:42 <cpressey> Well, I'm still trying to figure out what it is.
18:48:32 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
18:49:13 <MissPiggy> what is it
18:51:15 <cpressey> Well, I was reading the documentation for the pickle module earlier.
18:52:02 <cpressey> There's something just backwards about how it's written. It's not that I can't read it, it's that it seems to be written with a completely different sense of "what's the most relevant?" than most readers would (I'm guessing) have.
18:52:27 <cpressey> Like, have you ever heard of Grice's maxims? About relevance in conversation. It's a bit like it's bending those.
18:53:11 <cpressey> Then I noticed that lots of Python documentation has the same feel to it.
18:53:24 <MissPiggy> interesting
18:53:33 <cpressey> I dunno, it could be just me.
18:53:57 <MissPiggy> I don't think it is just you
18:54:23 <cpressey> Steve Y's theory is that the Python community has no sense of humor (ironic, considering the origin of the name) and is not self-critical. Could be that.
18:55:15 -!- coppro has joined.
18:55:52 <cpressey> I don't even want to get into the *design* of the pickle module... it makes Java's serialization look like fine silk in comparison.
18:56:12 <MissPiggy> well a lot of people just quote monty python verbatim, and laugh, but that's not really in the spirit of monty python is it
18:56:46 <cpressey> Good point.
18:57:29 <cpressey> Oh, and then there's the fact that they decided to call it "pickling" instead of some more widely accepted term like "serialization".
18:58:10 <cpressey> And justify that choice by saying "...to avoid confusion."
18:58:49 <MissPiggy> I think python is a trap to suck newbies away from the path of light
19:00:36 <cpressey> Could be. Or maybe it's a plot to get a large number of 0-length files named "__init__.py" onto people's filesystems.
19:00:57 <MissPiggy> that is even more scary
19:04:02 <MissPiggy> here's my thought experiment: It's a WYSIWIG WIZARD that takes some options like Syntax: algol, prolog, lisp, ML Execution: strict, lazy, nondetermininstic and so on, maybe some special options too: [-] lambda [-] syntax macros [-] textual macros
19:04:32 <MissPiggy> the first idea was that when you click 'go' it just produces an interpreter
19:04:47 <MissPiggy> but there's more fun thinking about other things you could produce instead of an interpreter
19:05:15 <cpressey> I take it that the set of operations is (aside from whatever the special options might do) fixed?
19:05:56 <cpressey> Wait, "WYSIWIG"? What You See Is What I Get? :)
19:06:33 <MissPiggy> oh geez, WYSIWIG is totally the wrong term -- you're right
19:06:44 -!- augur has joined.
19:07:06 * Sgeo uses WYSIWIG to take over cpressey's computer.
19:07:31 -!- coppro has quit (Remote host closed the connection).
19:08:03 -!- coppro has joined.
19:08:53 <MissPiggy> Python's lack of semi-colons makes me uneasy - it's like standing at the edge of a cliff with no guard-rail... :-S
19:08:57 <MissPiggy> haha
19:09:16 <coppro> Sgeo: I have autojoin, it just takes a while since the server has to process requests for 11 channels
19:09:23 <Sgeo> Ah
19:09:45 <Sgeo> All is forgiven ;(
19:09:47 <Sgeo> ;)
19:11:33 <lament> MissPiggy: semicolons are optional, you're free to put them in
19:12:28 <cpressey> Lua's optional semicolons are a bit more worrisome, as there's no offside rule (indentation-based-syntax) in Lua.
19:13:09 <MissPiggy> what do you think about my ex.
19:14:42 <lament> uhhh he's okay i guess?
19:15:23 <cpressey> If you really do mean WYSIWYG, it would be entertaining to see a program I've written switch between syntaxes on-screen.
19:16:09 <cpressey> Or MissPiggy's ex = KermitTheFrog
19:16:10 <AnMaster> <cpressey> Could be. Or maybe it's a plot to get a large number of 0-length files named "__init__.py" onto people's filesystems. <-- what would the point of that be for python modules?
19:16:19 <AnMaster> I thought you didn't need that module in general
19:16:29 <AnMaster> not sure what it is used for actually
19:16:38 <cpressey> AnMaster: It makes the directory a package, so that you can say dir.module
19:17:20 <cpressey> Ugly approach if you ask me...
19:17:44 <AnMaster> hm
19:17:46 <cpressey> Oh, and it can include startup code for the modules in that dir
19:18:09 <AnMaster> couldn't you just do that thing for any directory?
19:18:29 <AnMaster> relative the module search path
19:18:32 <AnMaster> if you see what i mean
19:18:52 <cpressey> AnMaster: Like Perl (I think) does? Sure.
19:19:09 <AnMaster> if you specify foo.bar and your module search path is: /blah:/quux then it would look for /blah/foo/bar.py and /quux/foo/bar.py
19:19:59 -!- Gracenotes has joined.
19:19:59 <AnMaster> cpressey, python's approach would be the same plus check "does a file __init_.py exist?
19:20:02 <AnMaster> "
19:21:29 <cpressey> Well, python's vesion does let you say "import dir" (which will import the __init__.py file in that dir), which makes it easier to turn a module into a package at some later point.
19:22:16 <cpressey> Overall, I'd much rather have module/package names independent of my filesystem layout though, at least potentially.
19:22:56 <AnMaster> cpressey, so how would it locate packages and modules then?
19:23:24 <cpressey> Some kind of configuration file. It could fall back to some regular mapping if the file doesn't specify.
19:23:28 <AnMaster> and yes, some special file could be used it you needed init stuff or that thing with import dir
19:23:56 <AnMaster> the stupid bit is when you end up with zero length such files
19:24:18 <AnMaster> but there is an easy way to solve that
19:24:24 <AnMaster> just add a license boilerplate in it
19:24:27 <AnMaster> ;)
19:24:37 <cpressey> :)
19:25:53 <cpressey> I may complain about Python, but it's not like it's C++ or SOAP.
19:26:22 * cpressey starts screaming uncontrollably at the thought of SOAP libraries implemented in C++
19:26:42 <AnMaster> SOAP isn't a programming language afaik?
19:26:47 <AnMaster> rather, some sort of RPC
19:27:08 <cpressey> http://72.249.21.88/nonintersecting/2006/11/15/the-s-stands-for-simple/
19:27:09 <AnMaster> cpressey, they would use templates to implement it?
19:29:25 <cpressey> AnMaster: Oh I certainly hope they would. Otherwise that beautiful template facility would just be going to waste!
19:33:05 <AnMaster> and that link, funny, yet depressing
19:34:30 <Sgeo> sleep :: Person -> IO ()
19:34:41 <Sgeo> isTired :: Person -> IO Bool
19:37:44 <fizzie> I would add "realistic" to the list of adjectives.
19:46:13 <AnMaster> fizzie, true
19:48:38 <augur> i dont get the point of soap.
19:48:52 <cpressey> augur: That means you're sane.
19:48:59 <augur> well yes.
19:49:09 <augur> but like, if i need to transfer data, i'll just use JSON.
19:49:18 <augur> or if im feeling anti-JSON and roll my own
19:49:31 <augur> LISP is a nice enough literal format too.
19:49:50 <augur> easier to parse than JSON or XML too.
19:57:42 <cpressey> SOAP is a Wrapper without a Cause...
20:07:14 * augur wraps cpressey's cause
20:09:50 <Sgeo> return augur :: Maybe Person
20:10:28 <Sgeo> unsafePerformIO $ putStrLn "Soon, I'll only be able to communicate in Haskell"
20:12:42 <augur> lol.
20:27:15 -!- GreaseMonkey has joined.
20:33:26 <AnMaster> cpressey, another thing that is wrong with python: the GIL
20:33:58 <AnMaster> <augur> LISP is a nice enough literal format too. <-- did you mean: S-Expressions?
20:34:35 <AnMaster> lisp is the language. When the same kind of thing is used as a data format it is s-expressions
20:34:41 <AnMaster> and yes, that is a nice data format
20:35:46 -!- rodgort has quit (Quit: Coyote finally caught me).
20:36:44 -!- rodgort has joined.
20:40:26 -!- rodgort has quit (Client Quit).
20:40:34 -!- rodgort has joined.
20:44:29 <cpressey> AnMaster: Actually, I'm not sure. The GIL is an implementation issue (isn't it?) And one of the nicer things about Python is that it's at least *trying* to separate language from implementation. Not trying hard enough, but at least trying.
20:46:02 <cpressey> But, the GIL is something that sucks about CPython, surely :)
20:48:36 <cpressey> In FreeBSD they used to have an equivalent thing... they called the Big Giant Lock
20:51:23 <olsner> I guess the same for linux's big kernel lock and non-preemptive-ness, but it's supposed to be mostly eliminated now afaik
20:52:11 -!- kar8nga has joined.
21:03:33 <AnMaster> cpressey, pretty sure old linux kernel used to have similar issues. Back at 2.2 or so
21:04:53 -!- jcp has joined.
21:10:49 <cpressey> If I could just declare my classes to be monkeypatchproof in production somehow, I'd feel a lot better.
21:12:46 <cpressey> Actually, ... it might be possible to write that.
21:17:18 <cpressey> But I want more. I want values to be marked with the amount of computation that was taken to obtain them. Then I could guard against the use of e.g. computed dict keys.
21:19:19 -!- rodgort` has joined.
21:23:25 <cpressey> I am *this* close to designing my own language.
21:23:35 <MissPiggy> what's your language
21:23:42 <MissPiggy> you can use my wizard if you like
21:24:04 <Deewiant> You've designed a bunch already, what's one more?
21:24:09 <cpressey> My language is the only language that isn't frustratingly stupid, of course!
21:34:37 <cpressey> Actually, sadly, I think it would be too close to Scheme to justify creating it. And adoption would never reach critical mass, because Scheme Scares People<tm>.
21:35:15 -!- coppro has quit (Remote host closed the connection).
21:37:19 -!- coppro has joined.
21:41:35 <cpressey> Still, as Deewiant says, what's one more? :)
21:45:38 <AnMaster> "<cpressey> If I could just declare my classes to be monkeypatchproof in production somehow, I'd feel a lot better." <-- wth does that mean
21:46:12 -!- coppro has quit (Quit: car trip).
21:46:21 <cpressey> AnMaster: Code shouldn't be allowed to monkeypatch my classes. If it tries, something ought to break.
21:46:30 <AnMaster> cpressey, "monkeypatch"?
21:46:33 <cpressey> Except maybe in unit tests
21:47:08 <cpressey> Yes, "monkeypatch". http://en.wikipedia.org/wiki/Monkey_patch
21:47:44 <AnMaster> cpressey, so use a language compiled to machine code. Sure it can still be done there, but would be painful
21:48:06 <AnMaster> cpressey, also make a variant of befunge that forbids it
21:48:08 <AnMaster> :D
21:49:46 * Sgeo might end up monkeypatching getElementById on a school website
21:50:03 <AnMaster> Sgeo, huh?
21:50:12 <cpressey> That's kinda what I'm saying -- if I have to switch to a different language (not that that's practical), I might as well design my own
21:50:27 <Sgeo> AnMaster, on Chrome, getElementById doesn't seem to be working the way I think it should, and that's causing problems
21:50:47 <AnMaster> Sgeo, submit a bug report?
21:50:49 <AnMaster> for chrome
21:51:06 <Sgeo> I guess that would entail making a page that can reproduce the issue
21:51:18 <AnMaster> that would be helpful at least
21:54:16 <AnMaster> <cpressey> But I want more. I want values to be marked with the amount of computation that was taken to obtain them. Then I could guard against the use of e.g. computed dict keys. <-- I don't get this
21:54:20 <cpressey> Monkey patching is the self-modifying code of the scripting world. Its presence is also just as confounding to bug-hunting.
21:54:25 <AnMaster> cpressey, also __slots__ as I said
21:54:37 <cpressey> I mean, I can live without static types, but does EVERYTHING have to be undecidable??
21:54:56 <cpressey> AnMaster: __slots__ will do that?
21:55:01 <AnMaster> cpressey, at least python parses into a nice AST, with LL(1) even iirc
21:55:19 <AnMaster> cpressey, well not sure what you meant, but if I didn't completely misunderstand you: maybe
21:55:40 -!- MigoMipo has quit (Remote host closed the connection).
21:55:53 <cpressey> I mean I want foo(int) to be able to tell if it was called with: foo(5) or foo(2+3)
21:55:54 <AnMaster> cpressey, __dict__ isn't used with it at least. So making up a new self.foo on the fly won't work unless __slots__ include a foo
21:56:03 <AnMaster> (for a variable at least)
21:56:11 <AnMaster> not sure how it works for functions
21:56:25 <cpressey> AnMaster: oh, you mean __slots__ to guard against monkey patching. I see.
21:56:28 <AnMaster> cpressey, anyway, anyone could just copy your source file and make some changes, no?
21:56:33 <AnMaster> cpressey, possibly. Or both
21:56:48 -!- Gracenotes has quit (Quit: Leaving).
21:56:51 <AnMaster> <cpressey> I mean I want foo(int) to be able to tell if it was called with: foo(5) or foo(2+3) <-- compile time transformations?
21:56:54 <cpressey> AnMaster: I don't care if they copy it.
21:56:58 <AnMaster> I assume those would be constant folded
21:57:01 <AnMaster> in the bytecode
21:57:24 <cpressey> a = 3; foo(2 + a), then
21:57:31 <AnMaster> cpressey, also if they do that sort of stuff, they only have themselves to blame
21:57:32 <pikhq> Constant folded.
21:57:38 <AnMaster> what pikhq said too
21:57:48 <AnMaster> since it would propagate the constant value of a
21:57:56 <cpressey> AnMaster: You're thinking in a completely different paradigm -- this isn't library code for other people's use -- this is in-house stuff.
21:58:14 <AnMaster> hm
21:58:35 <cpressey> If there's some class out there that's monkeypatching my class, and my tool/app/page/whatever is crashing because of it, I can't just blame the author of the other class
21:58:44 <AnMaster> yell at them if they screw stuff up? Plus some sort of coding guidelines might help
21:59:48 <cpressey> Yes, but I've found culture always changes more slowly than code. I can't just start telling everybody their code sucks.
22:00:10 <pikhq> I encourage it.
22:00:31 <pikhq> Most code does, in fact, suck.
22:00:36 <pikhq> And quite horribly, too.
22:00:36 <AnMaster> true
22:01:25 <AnMaster> this is why academical work is best. That way you don't have to maintain it for that long, and people around you tend to not be *that* stupid.
22:04:12 <cpressey> Oh, academic work is fantastic that way. It doesn't really have to work, you just have to be able to defend it from questions from people who don't really understand it anyway.
22:04:45 -!- lament has quit (Ping timeout: 252 seconds).
22:05:18 <MissPiggy> boooooo
22:05:27 <Sgeo> ROFL
22:05:31 <cpressey> Most code does in fact suck quite hard, but as for telling engineers that that applies to *their* code, I've never been able to figure out the politics of that.
22:05:35 <AnMaster> cpressey, :D
22:05:51 <Sgeo> Got a Google Calender reminder telling me something about "Esome, Baby!"
22:05:55 <Sgeo> There was a map link
22:07:29 <Sgeo> Apparently, it's located in Brooklyn
22:07:42 <Sgeo> http://maps.google.com/maps?q=Esome,+baby!&hl=en
22:08:17 -!- lament has joined.
22:10:40 <Sgeo> lament, http://github.com/clivecrous/vultures/raw/master/vultures/gamedata/music/lament2.ogg
22:13:19 <Ilari> Hmm... Are there any esolangs with non-euclidean IP space topology?
22:13:54 <lament> what
22:14:04 <cpressey> AnMaster: you're right, __slots__ is what I'm looking for. I'll probably get into arguments with other engineers though, about how "inflexible" it makes things.
22:14:19 <lament> Ilari: what about C
22:14:22 <AnMaster> cpressey, heh
22:14:33 <cpressey> That's what I mean about culture :)
22:14:34 <AnMaster> cpressey, there is also a performance argument for it iirc
22:14:35 <lament> Ilari: i realize it's not an esolang, but in what sense is the IP space topology euclidean?
22:15:10 <AnMaster> cpressey, being stored in object (with an offset) rather than in a dict
22:15:14 <AnMaster> or something such
22:15:18 <AnMaster> better check that up
22:15:22 <AnMaster> I might misremember
22:15:59 <cpressey> I don't think Euclid had much to say about topology
22:17:23 <Ilari> non-euclidian topology meaning space that's not topologically equivalent to euclidean space.
22:18:04 <Ilari> Including such things as toroidial spaces...
22:18:46 <cpressey> Ilari: Oh. Well, Befunge, then?
22:18:53 <Ilari> Ah yes, befunge...
22:19:20 <Ilari> But are there esolangs with even more "exotic" IP spaces than Befunge?
22:19:53 <cpressey> I would also tend to agree with lament that most "non-esoteric" languages have a highly non-euclidean "space" for IPs. I'm not a mathematician so I can't describe it...
22:21:20 <lament> oh yeah, duh, befunge is a good example too
22:21:48 <MissPiggy> IP ??
22:21:55 <Ilari> MissPiggy: Instruction pointer.
22:22:07 <cpressey> Program Counter for all you 6502 fans out there
22:24:13 <fizzie> I'm sure 6502 isn't the only one who calls it that; the corresponding register is called PC for Z80 too, for example.
22:24:21 <AnMaster> cpressey, what about a möbius (sp?) befunge
22:24:26 <AnMaster> that would be interesting
22:24:55 <AnMaster> or to extend to 3d: klein befunge
22:25:00 <Ilari> Well, simpler discrete spaces can be described by describing each axis: n positions (linear), n positions (360 degree symmetry), n positions (720 degree symmetry), half-infinite, infinite.
22:25:05 <olsner> "IP" sometimes stands for IntraProcedural register (i.e. a temp register)
22:26:44 <Ilari> It starts to get really exotic when space can't be described as cartesian product of those axis types.
22:27:01 <AnMaster> Ilari, examples?
22:27:32 <Ilari> AnMaster: Spaces containing "wormhole"-type constructs.
22:27:54 <AnMaster> Ilari, right now I'm imagining a trefunge with wormholes
22:27:58 <AnMaster> it should be possible
22:28:15 <AnMaster> and I imagine it could be done with a fingerprint WORM
22:28:19 <Ilari> Actually, one only needs two dimensions to have wormholes.
22:28:22 <olsner> "a trefunge with wormholes" sounds like an infested mushroom
22:28:24 <AnMaster> Ilari, true
22:28:28 <AnMaster> olsner, :D
22:28:40 <fizzie> Funge-98's ; command could be considered wormholey.
22:28:57 <AnMaster> fizzie, it is more like "skip to matching"
22:29:22 <AnMaster> rather this would mean that touching a given space would dump you somewhere else, possibly going in a different direction
22:29:24 <fizzie> Well, it's traversed in no time, so it's not like other instructions.
22:29:39 <AnMaster> fizzie, so is space
22:29:45 <AnMaster> so: like one other instruction
22:30:00 <fizzie> Space is not an instruction.
22:30:18 <AnMaster> hm...
22:30:42 -!- tombom_ has quit (Quit: Leaving).
22:30:44 <Ilari> Wormhole would take time to transverse, the wormhole has interrior and it is part of space.
22:30:53 <AnMaster> true
22:31:04 <AnMaster> this would be one cool befunge fingerprint
22:31:16 <Ilari> The wormhole interrior space would be something like linear x 360 degree.
22:31:24 <fizzie> Given how much ; and empty space are alike, it wouldn't feel too wrong to describe ; as just a notation about the 'shape' of the IP space.
22:31:27 <AnMaster> (meaning it might be implemented in efunge, but never cfunge)
22:31:35 <AnMaster> Ilari, couldn't there be wormholes in the wormhole?
22:31:42 <cpressey> You could have a non-commutative geometry where going north then south is not guaranteed to put you back where you were.
22:31:52 <AnMaster> true
22:31:54 <cpressey> Or is that non-associative?
22:32:00 <AnMaster> one of those!
22:32:14 <Ilari> AnMaster: Could be possible.
22:32:25 <AnMaster> hm
22:32:31 <Ilari> fizzie: Jumps initiated by ; follow space geometry.
22:33:01 <AnMaster> wouldn't that bending of the funge-space-time slow down ips traveling near the wormhole?
22:33:03 <Ilari> fizzie: Or what would happen in current funges if one used ; to jump against space boundary?
22:33:14 <AnMaster> so as to disrupt the round-robin threading
22:33:27 <AnMaster> meaning they run possibly at a fractional overlap
22:34:03 <Ilari> AnMaster: They don't slow down. Wormhole space is discretized and IPs move following geometry when inside wormhole.
22:34:04 <fizzie> Ilari: But it's not "initiated" by ;, because you don't execute the ; -- instead the IP just moves somehow "past" the locations that contain other instructions, as if by taking some other route.
22:34:21 <AnMaster> Ilari, hm. but would it be a sharp edge to the wormhole?
22:34:45 <AnMaster> fizzie, what? sounds like bullshit to me
22:35:07 <AnMaster> fizzie, also, how did you implement it? ;P
22:35:12 <fizzie> AnMaster: To quote the spec: "; is truly ethereal; like space, it cannot ever be truly executed, in the sense of it taking up a tick and doing something."
22:35:18 <fizzie> See, it's not an instruction you can execute.
22:35:24 <AnMaster> fizzie, "in the sense that..."
22:35:34 <fizzie> Yes, in the sense that means something.
22:35:41 <Ilari> fizzie: Really, what happens if IP hits ; and there isn't another before IP space "edges" are hit?
22:35:53 <cpressey> Ilari: It wraps around to the nearest matching ;
22:35:53 <AnMaster> Ilari, it wraps around
22:35:59 <cpressey> Which could be itself
22:36:04 <AnMaster> yep
22:36:08 <Ilari> Yeah. Though so, which means it follows space geometry.
22:36:39 -!- kar8nga has quit (Remote host closed the connection).
22:37:11 <Ilari> With wormholes, ; would go into wormhole (possibly finding pairing ; inside wormhole).
22:37:12 <augur> cpressey: you can make a scheme like language, just employ some interesting new concept
22:37:39 <AnMaster> yes
22:37:40 <cpressey> So (my Befunge is really rusty so bear with me): 11.;.@ would print two 1's, and stop. It should skip right around the ; as if it wasn't there, I think.
22:37:45 <AnMaster> which is why I think WORM would be cool
22:37:56 <AnMaster> but I can only think of this with sharp edges
22:38:45 <AnMaster> not like the smooth bending in towards the hole like in http://en.wikipedia.org/wiki/File:Worm3.jpg
22:38:48 <Ilari> Probably easiest way is to have wormhole edge boundaries be closed and of same length. Then the circumference of interrior matches circumference of edge.
22:39:11 <Deewiant> If a program contains only one ; (and never modifies space to place another one), it's equivalent to the same program with the ; replaced by a space
22:39:25 <cpressey> augur: Unfortunately my new concept would only be "design a language which doesn't suck" :)
22:39:40 <fizzie> Ilari: I really have to disagree about this; I personally think you can still describe ; as a notational device you use to describe the particular non-euclidian behaviour of the IP space, when you have to express it in a discrete 2D matrix. If you have a matching pair of ;s in the code, it means the shape of the space is such that when you move with the right direction, you move directly from one ; to the other. How's that sort of space "euclidean" to you?
22:39:44 <AnMaster> Ilari, yes, as a cylindrical hole I guess
22:39:57 <AnMaster> quantised to whole cells
22:40:12 -!- Pthing has quit (Remote host closed the connection).
22:40:17 <AnMaster> which would give a limited size cylindrical funge-space inside
22:41:11 <fizzie> (Come to think of it, I don't suppose any discrete space is very euclidean.)
22:41:13 <Ilari> There are actually two types of holes, ones that have no internal crossing (IP reverses direction when transversing) and internally crossed holes (IP keeps direction).
22:42:03 <Ilari> Also, there is length of hole. Smallest possible length is 1, which has no interrior space at all (edges of wormhole are adjacent).
22:42:12 <AnMaster> Ilari, hm, as in twisted half a turn?
22:42:36 <AnMaster> Ilari, wouldn't that be 0?
22:42:57 <cpressey> augur: I still might do it. Even though it will almost certainly also suck.
22:43:00 <AnMaster> 1 would have one cell worth of length
22:44:04 <augur> k bye
22:44:40 <Ilari> Actually, circumference of hole interrior would have to match number of configurations that hit hole edge (and not just circumference of edge).
22:44:58 <AnMaster> hm?
22:45:10 <cpressey> I tend to agree with fizzie's view -- ; are bit like wormholes. But they're not fixed wormholes. Where the IP ends up depends entirely on its delta.
22:45:12 <AnMaster> it would have to follow the quantized form I guess
22:45:37 <AnMaster> Ilari, not sure how it would work for non-cardinal ips
22:45:52 <Ilari> AnMaster: Befunge has those too?
22:46:01 <Deewiant> Sure
22:46:10 <AnMaster> Ilari, befunge-98 does. You can have a delta of (34,2) or such if you want to
22:46:21 <AnMaster> or (23,-12)
22:46:29 <Deewiant> -93 doesn't have ; so it's not that relevant here anyway
22:46:33 <AnMaster> or even (0,0) but that is fairly useless
22:47:09 <fizzie> Deewiant: Given that those guys view ; as just another instruction, I'd say ; is also not relevant; certainly you can imagine -93 with wormholes.
22:47:35 <AnMaster> fizzie, "those guys"?
22:47:39 <fizzie> AnMaster: You, Ilari.
22:47:44 <AnMaster> ah
22:47:46 <Deewiant> Sure, you can imagine whatever you like, I'm just talking about what's already there. :-P
22:48:08 <Deewiant> Orthogonal with wormholes for all I care
22:48:23 <AnMaster> Ilari, I can't figure out how a non-cardinal delta would move through a worm hole
22:48:31 <Ilari> All I'm saying is that ; would follow underlying geometry, whatever it is.
22:48:56 <Ilari> And then there's problem of determining if it even _hit_ a hole...
22:48:56 -!- augur has quit (Ping timeout: 272 seconds).
22:49:17 <AnMaster> hm. if it is in it's path, then shouldn't it have done so?
22:49:18 <AnMaster> oh wait
22:49:21 <cpressey> This is where the whole idea of "any topology you want" breaks down
22:49:30 <AnMaster> this means figuring out if it passed it, it might have just touched the edge
22:49:35 -!- FireFly has quit (Quit: Leaving).
22:49:47 <AnMaster> which means floating point arithmetics or such
22:50:05 <AnMaster> and then it might not even hit a whole number cell afterwards
22:50:55 <cpressey> Even a hex-net Befunge would need a completely different set of semantics.
22:51:03 <Ilari> If one would take non-cardinal directions as quantized line that's traced, then that would enable computing where IP ends up in presence of wormholes.
22:51:10 <cpressey> Well, not COMPLETELY. But pretty different.
22:51:28 <cpressey> And I guess it would be triangle-net. But whatever.
22:52:19 <AnMaster> Ilari, would it end up neatly in an integer cell?
22:52:23 <Ilari> Since that would mean that all deltas could be broken down to cardinal IP movements.
22:52:29 <AnMaster> hm maybe it would
22:53:14 <AnMaster> cpressey, would it really need different rules apart from changing <>^v to something more relevant?
22:53:18 <AnMaster> possibly x too
22:53:27 <AnMaster> oh hm, i and o pose a problem
22:53:30 <AnMaster> so does file format
22:53:37 <cpressey> AnMaster: how do you do g and p?
22:53:56 <cpressey> You end up mapping Cartesian coordinates over the thing
22:54:02 <AnMaster> cpressey, well, they need to be changed the same way as x
22:54:11 <AnMaster> the new coordinate system
22:54:41 <AnMaster> then you could figure out "what delta would this cell have starting at the origin"
22:55:06 <AnMaster> cpressey, see what I mean?
22:55:31 <cpressey> AnMaster: kinda, but I think it proves my point that it would be a significant change to the semantics
22:55:42 <AnMaster> maybe
22:56:00 <Ilari> The smallest possible wormhole would have 1x1 ends. And would have interrior diameter of 4.
22:56:10 <Ilari> s/diameter/circumference/
22:56:20 <cpressey> All my ideas for how Funge could be "improved" after 98 were too radical, anyway :)
22:58:08 <fizzie> Ilari: All I'm saying is that I like more the point of view where ; is not an instruction that can "follow underlying geometry", but instead a notation about the space the IP moves in. Of course you can get similar results by using a simpler "underlying geometry" -- a discrete 2-dimensional thing with funky wrapping -- and adding "jump" instructions, and I guess you could try some sort of "simplest geometry wins" rule for justifying that the Funge-98 space is n
22:58:09 <fizzie> ot "exotic" enough, but... well, meh. I doubt this is going anywhere. Must be away.
22:59:56 <AnMaster> night
23:01:06 <Ilari> Could the problems with non-cardial IPs solved by making corners correspond to line in interrior space? That would mean that 1x1 hole would have interror circuference of 8...
23:02:06 <fizzie> If you map (integer) cartesian coordinates over a hex-grid or so and define x, g, p, and everything else that takes numeric coordinates, using those, I think what you're left with is just the usual sort of Funge-98 except with some special "movement modes" corresponding to the the diagonal-movement-to-neighbor-cells, which you can't even describe using a single (x, y) coordinate pair delta value.
23:03:01 <cpressey> fizzie: I agree, and I agree that's a reason to avoid doing that mapping if at all possible.
23:03:34 -!- cheater2 has quit (Read error: Connection reset by peer).
23:03:54 -!- cheater2 has joined.
23:04:26 <fizzie> (G'night.)
23:05:44 <cpressey> I seem to remember one proposal that works in any topology. Instead of a delta, you have a path, which is a list of directions. Similar to how arrows work in Hunt the Wumpus.
23:06:13 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:06:43 <cpressey> So instead of (3,3), you have ">>>^^^" (or ">>^^>^" or ">>>>^^^^<v" or any of the other infinite number of possibilities for that.)
23:07:28 <cpressey> That extends to triangle-nets or whatever else, and solves the question of "When did we hit this wormhole?"
23:08:13 <cpressey> It wasn't a popular idea at the time, though.
23:09:13 -!- Wareya has quit (Ping timeout: 264 seconds).
23:09:30 -!- Wareya has joined.
23:19:18 <Ilari> Actually, I think I came up with way to define behavour of wormholes with non-cardinal deltas (and it would solve also some other problems with wormhole coordinate compuation), but would seriously screw up if there was wormhole that had one end in normal space and one end in interror space of another wormhole.
23:21:23 <Ilari> More precisely, it would demand that wormhole ("level 1 wormhole") that has one end in normal space, also has the other end in normal space, wormhole ("level 2 wormhole) that has one end in level 1 wormhole interror space has the other end also, etc...
23:21:38 -!- Sgeo_ has joined.
23:23:09 -!- Sgeo has quit (*.net *.split).
23:23:09 -!- Asztal has quit (*.net *.split).
23:24:28 -!- Asztal has joined.
23:36:34 -!- oerjan has joined.
2010-02-12
00:10:04 -!- Asztal has quit (Ping timeout: 265 seconds).
00:20:49 -!- nooga has joined.
00:20:54 <nooga> hello
00:21:08 <oerjan> evening
00:22:45 <nooga> i'm eriting regexp compiler :D
00:22:49 <nooga> writing*
00:24:13 <oerjan> ic
00:24:18 -!- Sgeo_ has changed nick to Sgeo.
00:25:19 <nooga> imagine that you can compile custom grep-like program for matching massive amounts of data against specified regexp
00:26:42 <nooga> CPU will directly execute the automaton
00:29:45 -!- cheater has quit (Ping timeout: 245 seconds).
00:29:50 -!- cpressey has left (?).
00:30:43 -!- cheater has joined.
00:32:53 <nooga> whenever i write something bigger in C i do this funny thing: first i implement crude lisp and then i use it to write the main thing
00:32:56 <nooga> :D
00:33:24 <oerjan> http://en.wikipedia.org/wiki/Greenspun's_Tenth_Rule
00:34:00 <nooga> yep
00:34:48 <nooga> i fall into that
00:35:08 <Sgeo> Should I learn Lisp?
00:35:11 <Sgeo> If so, which?
00:35:22 <MissPiggy> SICP
00:35:49 <Sgeo> As in, which dialect?
00:35:56 <Sgeo> I'm not about to go around buying books
00:35:59 <MissPiggy> SICP
00:36:40 <lament> MissPiggy: oh the mighty oracle, what's the ultimate answer to life, the universe, and everything?
00:36:41 <Sgeo> It seems to use Scheme
00:36:56 <MissPiggy> he told me STFU
00:37:00 <MissPiggy> oops
00:37:24 <lament> Sgeo: short answer: get PLT scheme and never worry about this again.
00:38:38 <nooga> http://nooga.pl/
00:38:39 <nooga> :D
00:38:58 <nooga> like a f*#(@)&# perl script
00:38:59 <Sgeo> Also, which should I focus on learning: Haskell or Scheme?
00:39:04 <nooga> Sgeo: Haskell
00:39:19 <lament> Sgeo: Scheme
00:39:21 <MissPiggy> Hascheml
00:39:28 <oerjan> learn each of them until you can implement them in each other!
00:39:39 <lament> Scheme first, because it's easier
00:39:48 <lament> and knowing scheme will help you learn haskell
00:40:01 <nooga> no, Haskell, because it's awesome
00:40:14 <Sgeo> I think I understand Haskell somewhat at this point
00:40:16 <MissPiggy> so is scheme
00:40:19 <lament> yes, Haskell is awesome, so if you start with Haskell you might never get to Scheme
00:40:24 <Sgeo> Not sure if knowing Scheme will help any more
00:40:40 <MissPiggy> I know haskell and scheme, and I know that there's much more to learn from both of them
00:40:40 <lament> oh
00:40:58 <MissPiggy> I don't think Haskell - TICK, Scheme - TICK, next?
00:41:09 <nooga> SADOL
00:41:10 <nooga> :D:D:D:D:D:
00:48:38 <Sgeo> If I were select one to use as my main language from now on, which should it be?
00:49:26 <MissPiggy> there is no main language
00:49:39 <MissPiggy> if you choose one you chose wrong
00:50:25 <nooga> i use C (C99) and Ruby
00:50:44 <nooga> C fror speed and Ruby for expression
00:58:34 <pikhq> Sgeo: Haskell.
00:58:45 <nooga> Sgeo: Haskell
01:04:25 <Sgeo> Did nooga turn into a parrot?
01:07:00 -!- jcp has quit (Remote host closed the connection).
01:09:52 <nooga> parrot parrot
01:10:09 <lament> nooga: quine
01:14:22 -!- MissPiggy has quit (Quit: Lost terminal).
01:20:37 -!- augur has joined.
01:20:47 * Sgeo seems to be back in the SG-1 addict groove
01:27:15 <oerjan> don't get stepped on
02:04:50 -!- lament has quit (Ping timeout: 246 seconds).
02:08:05 -!- lament has joined.
02:24:26 -!- nooga has quit (Quit: Lost terminal).
02:34:54 <Gregor> http://filebin.ca/ydgebt/pvctrombone.ogg
02:37:14 * Sgeo fails to refrain from commenting
02:37:40 <pikhq> Gregor: Oh, the PVC trombone.
02:38:18 * oerjan fails to refrain from responding to Sgeo's commenting
02:44:13 * pikhq notes that there are a lot of freaking characters in Japanese
02:45:38 <oerjan> how does a japanese character freak, exactly?
02:46:43 <pikhq> oerjan: To get the general sense of that statement, s/freak/fuck/
02:47:51 <oerjan> well yes i've heard that japanese are very inventive in that department
02:49:27 <pikhq> XD
02:51:40 <pikhq> Literacy is a nontrivial affair.
02:53:46 <oerjan> triviality is a literal affair
02:54:05 <pikhq> Thou art full of pithy sayings.
03:15:55 -!- jcp has joined.
03:48:43 -!- augur_ has joined.
03:50:49 -!- augur has quit (Ping timeout: 248 seconds).
03:54:23 <Sgeo> Why am I not able to focus on my [classified] project?
03:56:27 <oerjan> you have lost your clearance, but of course this fact is secret so they cannot tell you. instead they use the mind control satellites to disorient you.
03:59:10 <Sgeo> It's not the government classifying it
03:59:18 <Sgeo> It's some company that's giving us the resources
03:59:28 <Sgeo> And it's not like I signed a contract to keep anything secret
03:59:30 <oerjan> what, you didn't think the _government_ is in control, did you?
04:00:06 <oerjan> of course you didn't sign a contract, they don't want that kind of evidence lying around
04:01:47 <Sgeo> The project was in existance for some time before it became classified.
04:01:56 <Sgeo> And I told a lot of people a lot of details
04:02:03 <oerjan> well that is what they _want_ you to think
04:02:51 <Sgeo> Well, someone did seem to forget everything after it became classified...
04:11:58 -!- coppro has joined.
04:34:32 -!- rodgort has quit (Quit: Coyote finally caught me).
04:34:40 -!- rodgort has joined.
04:35:17 -!- rodgort has quit (Remote host closed the connection).
04:35:34 -!- rodgort has joined.
04:44:24 -!- MizardX has quit (Ping timeout: 260 seconds).
04:49:40 -!- Gracenotes has joined.
05:09:02 -!- augur has joined.
05:11:06 -!- augur_ has quit (Ping timeout: 256 seconds).
05:29:09 -!- coppro has quit (Ping timeout: 252 seconds).
05:52:37 -!- oerjan has quit (Quit: leaving).
05:53:17 -!- coppro has joined.
06:02:49 -!- jcp has quit (Read error: Connection reset by peer).
06:03:57 -!- jcp has joined.
06:28:33 -!- augur_ has joined.
06:29:18 -!- augur has quit (Ping timeout: 256 seconds).
06:29:21 -!- augur_ has changed nick to augur.
06:43:47 -!- Gracenotes has quit (Read error: Connection reset by peer).
06:45:55 -!- Gracenotes has joined.
07:03:17 -!- tombom has joined.
07:05:33 -!- MigoMipo has joined.
07:14:45 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:25:53 -!- MigoMipo has quit (Remote host closed the connection).
07:50:31 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:59:49 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
09:00:17 -!- coppro has quit (Ping timeout: 246 seconds).
09:02:52 -!- augur has quit (Ping timeout: 256 seconds).
09:08:54 -!- scarf has joined.
09:12:30 -!- Pthing has joined.
13:03:25 -!- Asztal has joined.
13:12:45 -!- BeholdMyGlory has joined.
13:14:21 -!- MissPiggy has joined.
13:42:07 -!- augur has joined.
13:44:13 -!- cheater has quit (Read error: Connection reset by peer).
13:44:41 -!- cheater has joined.
13:51:52 -!- augur has quit (Ping timeout: 256 seconds).
14:31:44 <AnMaster> <Ilari> More precisely, it would demand that wormhole ("level 1 wormhole") that has one end in normal space, also has the other end in normal space, wormhole ("level 2 wormhole) that has one end in level 1 wormhole interror space has the other end also, etc... <- would be sad missing out on the possibility of mixed level ones
14:36:05 <AnMaster> <pikhq> Gregor: Oh, the PVC trombone. <-- PVC trombone? Is that actually what it sounds like it would be? (can't listen to the music atm, no headphones around, and I'm on the train)
14:36:30 <AnMaster> also when wgetting the url times out
14:36:51 <Gregor> I reuploaded to http://codu.org/tmp/pvctrombone.ogg because filebin was being useless.
14:37:06 <Gregor> "Is that actually what it sounds like it would be?" If it sounds like it would be a trombone made of PVC pipe, then yes.
14:37:25 <Gregor> It could look something like this: http://codu.org/pics/main.php?cmd=imageview&var1=Assorted%2FPVCTrombone3.jpg
14:38:25 <AnMaster> Gregor, I didn't imagine quite that look
14:38:51 <AnMaster> Gregor, how do you tune it?
14:39:15 <Gregor> It's a trombone, it has a slide.
14:39:25 <Gregor> http://codu.org/pics/main.php?cmd=imageview&var1=Assorted%2FPVCTrombone4.jpg Here it is fully extended.
14:39:37 <AnMaster> and how do you decide the notes on it. I don't see where you drag it out or whatever it is you do
14:40:26 <Gregor> You play it like a trombone is how :P
14:40:41 <AnMaster> hm yes it is extended there
14:40:47 <AnMaster> also this lag is horrible. I blame GSM for it
14:40:51 <Gregor> The bit in the bottom left is the mouthpiece, the pipe in the front is just a handle.
14:40:57 <AnMaster> (I'm tethering my phone atm)
14:41:08 <Gregor> Sweet :P
14:41:29 <AnMaster> what is the pipe that goes up and isn't connected?
14:41:35 <AnMaster> or so it seems
14:41:43 <AnMaster> with a T-ish shape at the end
14:42:10 <AnMaster> oh the handle
14:42:13 <Gregor> Wow, your lag is really bad :P
14:42:17 <Gregor> It's like two minutes.
14:42:27 <AnMaster> <Gregor> The bit in the bottom left is the mouthpiece, the pipe in the front is just a handle.
14:42:29 <AnMaster> <AnMaster> what is the pipe that goes up and isn't connected?
14:42:32 <AnMaster> about 2 second diff
14:42:36 <AnMaster> in that order
14:42:40 <AnMaster> now it seems better
14:42:51 <AnMaster> and the mobile indicates it is suddenly on 3G
14:42:54 <AnMaster> hm
14:42:54 <Gregor> Yeah, but I said that a minute ago :P
14:43:05 <AnMaster> said what a minute ago?
14:43:11 <Gregor> <Gregor> The bit in the bottom left is the mouthpiece, the pipe in the front is just a handle.
14:43:16 <AnMaster> oh
14:43:22 <Gregor> They were two seconds off for you, but a lot more than that for me :P
14:43:25 <AnMaster> well the lag seems close to none to my bouncer now
14:43:29 <Gregor> Now it does seem to be better now.
14:43:32 <Gregor> *though
14:43:37 <AnMaster> yeah
14:44:01 <AnMaster> well, it's a train, it is moving. Would jump between different areas with different connectivity
14:45:09 <AnMaster> btw: the good thing with living close to a railway station is that that it is close to the station. The bad thing with living close to a railway station is that it is close to the railway station
14:45:59 <AnMaster> Gregor, ^
14:46:23 <Gregor> :P
14:46:53 <Gregor> Wow, today's xkcd is bad, even for xkcd.
14:47:27 <AnMaster> saw it earlier yeah
14:47:28 <AnMaster> horrible
15:06:23 -!- cpressey has joined.
15:16:11 -!- sshc has quit (Read error: Connection reset by peer).
15:16:38 -!- sshc has joined.
15:42:53 -!- MizardX has joined.
15:58:07 -!- MigoMipo has joined.
16:11:33 -!- cheater has quit (Read error: Connection reset by peer).
16:11:49 -!- kar8nga has joined.
16:12:04 -!- cheater has joined.
16:59:04 -!- tombom has joined.
17:03:33 -!- MizardX has quit (Read error: Connection reset by peer).
17:05:12 -!- cpressey has left (?).
17:09:40 -!- MizardX has joined.
17:42:28 -!- cpressey has joined.
17:53:06 -!- cpressey has left (?).
18:01:44 -!- MigoMipo has quit (Remote host closed the connection).
18:04:42 -!- augur has joined.
18:04:47 -!- cpressey has joined.
18:13:25 -!- MigoMipo has joined.
18:15:32 -!- augur has quit (Ping timeout: 276 seconds).
18:16:14 -!- augur has joined.
18:21:02 -!- augur has quit (Ping timeout: 256 seconds).
18:35:22 <cpressey> How do most reversible esolangs handle interactive I/O? (If at all?)
18:35:52 <lament> they force the user to untype the input and to forget the output
18:36:09 -!- kar8nga has quit (Remote host closed the connection).
18:36:12 <scarf> cpressey: my reversible brainfuck treats it as a side-effect outside the world
18:36:34 <cpressey> lament: that' EULA, huh?
18:36:38 <scarf> as in, state of the realWorld is irrelevant in what's reversible, all that matters is that the effect on the tape is reversible
18:37:00 <cpressey> (there was supposed to be a "s in the" in that sentence)
18:38:48 <scarf> feather, which is reversiblible, is going to have some sort of I/O-equivalence thing in which unproducing then reproducing output is a NOP, but producing different output tries to erase the output produced so far and produce different output
18:38:52 <scarf> and some similar trick for input
18:39:09 <scarf> but that's way down the line, I have enough problems trying to prevent infinite recursion in the first place
18:39:48 <cpressey> scarf: OK. I'm thinking of adding interative I/O to Burro 2, is all, and was wondering.
18:40:21 <scarf> I don't think there's a standard method
18:40:48 <cpressey> It's not hard, because it can just delay all I/O operations until the end of the current iteration. If there was an "un-I/O" operation before the iteration ends, well, it doesn't happen.
18:42:51 <scarf> what if you branch conditionally on input, then uninput?
18:45:52 <cpressey> unbranch (on the same condition) and re-input, and ultimately re-uninput again? I'm more worried now what uninput without a corresponding input means.
18:45:54 -!- FireyFly has joined.
18:46:38 <cpressey> Wait, you can only branch conditionally on input if the input was from the previous loop iteration. So no problem there, I think.
18:46:58 <cpressey> At the start of the loop, you have no idea where your tape values came from anyway.
18:49:35 <cpressey> An uninput without input can just increment a counter saying "Ignore the next n input operations"
18:59:17 -!- boily has joined.
19:02:32 -!- FireyFly has changed nick to FIreFly.
19:02:35 -!- FIreFly has changed nick to FireFly.
19:07:05 <AnMaster> scarf, there?
19:07:15 <scarf> yes, but tired and not really concentrating
19:07:15 <AnMaster> scarf, iirc you are on karmic? no?
19:07:20 <scarf> and yes, I am
19:07:26 <AnMaster> scarf, is it reasonably usable/stable yet?
19:07:32 <AnMaster> the ext4 bug was recently closed
19:07:42 <AnMaster> it may be time to migrate unless there are other huge issues
19:07:52 <scarf> AnMaster: mostly: the main issue for me is that pulseaudio's ALSA emulation is buggy
19:08:02 <AnMaster> scarf, alsa emulation?
19:08:05 <AnMaster> wait what happened here
19:08:11 <scarf> normally it works, but occasionally it causes processes that use it to consume 100% CPU and be unkillable except with -9
19:08:16 <AnMaster> isn't it using alsa!?
19:08:21 <AnMaster> yet emulating alsa?
19:08:29 <scarf> no, it's using pulse, which emulates alsa for programs that aren't written against pulse
19:08:32 <scarf> which is almost everything
19:08:38 <AnMaster> scarf, but the kernel uses alsa?
19:08:42 <AnMaster> also, brb phone
19:10:36 -!- boily has left (?).
19:11:47 <AnMaster> back
19:11:59 <AnMaster> scarf, did you have that problem in jaunty?
19:12:15 <AnMaster> if not, how many are having the issue (I assume that there is a relevant bug report about this issue?)
19:12:32 <scarf> AnMaster: I haven't reported it yet, I must get around to that sometime
19:12:39 <scarf> it's becoming harder to reproduce as time goes on
19:12:52 <scarf> as in, it's always been intermittent, but it seems to happen a lower and lower proportion of the time
19:12:59 <lament> so true
19:13:09 <lament> birth rates go down all over the developed world
19:13:12 <AnMaster> scarf, huh
19:13:26 <AnMaster> lament, how is that related to alsa?
19:13:37 <lament> <scarf> it's becoming harder to reproduce as time goes on
19:13:42 <AnMaster> oh hah
19:13:59 <MissPiggy> WHEER IS EHARD
19:14:35 <scarf> woah, kipple was last seen 1159 days ago? I'm relatively sure I remember being in here at the same time as them once
19:14:37 <AnMaster> scarf, funny, my karmic VM just complained that the virtualbox network was using a .local domain
19:14:43 <AnMaster> saying it broke avhi
19:14:49 <scarf> and how long does that mean I've been here?
19:15:28 -!- pikhq has set topic: RIP sun.com | 0 days since last topic change | 5 days since last alise sighting | 7 days since last ehird sighting | 17 days since last calamari sighting | 206 days since ast graue sighting | 1160 days since last kipple sighting | 2226 days since last sleon|tuX sighting | 2583 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:17:32 <AnMaster> I quite like how the only possible value for the first one is
19:17:34 <AnMaster> is 0*
19:17:51 <pikhq> Possible *valid* value.
19:17:52 <scarf> yes
19:17:53 <pikhq> :P
19:17:57 <AnMaster> pikhq, well yes
19:17:59 <AnMaster> that was given
19:18:05 <scarf> I hadn't realised that until you pointed it out, how beautifully esoteric
19:18:24 <AnMaster> scarf, also then I should point out that it was I that added that bit first
19:19:15 <scarf> it reminds me of the file-accessed timestamp on Windows
19:19:31 <scarf> which, at least if you try to view it the usual way (via right-click | properties), involves accessing the file
19:21:13 <AnMaster> heh? really?
19:22:38 <scarf> yep
19:22:44 <scarf> so you just get the current time
19:23:31 <AnMaster> Wikipedia article on the "TLD" .local: "Despite not being a valid top-level domain in the Internet, considerable DNS traffic exists, querying the local domain in the public Domain Name System.[1] In June 2009, the L root server received more than 400 such queries per second,[2] ranking 4th in DNS traffic of all TLDs behind COM, ARPA, and NET."
19:23:43 <AnMaster> that's .... weird
19:25:00 <pikhq> There's some really buggy DNS servers out there, apparently.
19:30:27 <AnMaster> http://stats.l.root-servers.org/cgi-bin/dsc-grapher.pl?window=604800&plot=qtype_vs_all_tld&server=L-root&key=255
19:30:32 <AnMaster> wtf too
19:30:44 <AnMaster> .dnsbl?
19:30:55 <AnMaster> that's badly misconfigured
19:31:22 <AnMaster> http://stats.l.root-servers.org/cgi-bin/dsc-grapher.pl?window=604800&plot=qtype_vs_all_tld&server=L-root&key=38 <-- and A6 queries still too
19:32:00 <AnMaster> .lan also shows up on the PTR query graph
19:32:09 <AnMaster> and .linksys and what not
19:32:18 <AnMaster> http://stats.l.root-servers.org/cgi-bin/dsc-grapher.pl?window=604800&plot=qtype_vs_all_tld&server=L-root&key=12
19:32:46 <AnMaster> and I wonder tld .belkin is...
19:33:05 <AnMaster> pikhq, heh there are A queries for the tld .invalid
19:33:10 <AnMaster> http://stats.l.root-servers.org/cgi-bin/dsc-grapher.pl?window=604800&plot=qtype_vs_all_tld&server=L-root&key=1
19:43:56 -!- SimonRC has quit (Ping timeout: 246 seconds).
19:44:33 -!- casmith789 has joined.
19:44:59 -!- casmith789 has left (?).
19:53:09 <Ilari> And Y29tJw==? That's base64 for "com'" and Y2FcIA==, which seems to be "ca\ "...
19:53:54 <Ilari> And there is Base64 for "org/" as well.
19:54:07 <Ilari> And 'ecuador'?
19:54:27 -!- SimonRC has joined.
20:04:31 <AnMaster> Ilari, and .html...
20:04:33 <AnMaster> yes
20:04:35 <AnMaster> .html
20:04:57 <AnMaster> ,home is funny too
20:05:02 <AnMaster> .home*
20:05:12 <AnMaster> Ilari, the main stats are at http://stats.l.root-servers.org/cgi-bin/dsc-grapher.pl?window=604800&plot=qtype_vs_all_tld&server=L-root
20:05:35 <AnMaster> okay the NS graph is funny too
20:14:04 -!- kar8nga has joined.
20:37:36 <Ilari> And A6 records? Who uses them?
20:39:28 <Ilari> I thought A6 was obsoleted by AAAA ("Quad-A") records.
20:41:05 -!- alise has joined.
20:41:10 <alise> This is Dispatch 2.
20:41:20 <MissPiggy> you are here
20:41:22 <MissPiggy> !!!!!!!!!!!!!!
20:41:28 <alise> I am that.
20:41:48 -!- pikhq has set topic: RIP sun.com | 0 days since last topic change | 0 days since last alise sighting | 7 days since last ehird sighting | 17 days since last calamari sighting | 206 days since ast graue sighting | 1160 days since last kipple sighting | 2226 days since last sleon|tuX sighting | 2583 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:41:49 <MissPiggy> alise lol I tried to code my expression problem in agda and got bored because it turned out hard
20:42:16 <alise> :)
20:42:25 <Sgeo> Hi alise!
20:42:29 <alise> Hi.
20:42:30 <pikhq> ;)
20:42:52 <scarf> I like our topic
20:42:56 <Sgeo> I was supposed to remind you of something, but I forgot. On a completely unrelated note, I believe graphs of light can be utilized to facilitate the relocation of certain sentient objects.
20:43:01 <alise> Oh, hi, scarf.
20:43:02 <pikhq> alise: Any new suck?
20:43:08 <alise> I did not see you last weekend; did you receive my email?
20:43:26 <pikhq> Sgeo: That something was "Get passport photo".
20:43:32 <Sgeo> pikhq, I know.
20:43:38 <Sgeo> Read the "unrelated note"
20:43:55 <pikhq> Hahahah.
20:43:56 <alise> Lawl.
20:44:08 <alise> scarf: I am ehird, by the way.
20:44:12 <alise> *by the
20:44:18 <pikhq> I'm back to studying Japanese. Whoo.
20:44:25 <scarf> alise: ah, and I did get your email
20:44:30 <alise> Good...
20:44:34 <pikhq> ... Well. I'm being lazy on it today. XD
20:44:35 <scarf> I wasn't sure if you were someone I already knew, or not
20:44:47 <scarf> I don't have your whole IP memorised, and you've replaced your whois
20:45:05 <alise> Aye...
20:45:09 <AnMaster> <Ilari> I thought A6 was obsoleted by AAAA ("Quad-A") records. <-- correct
20:45:12 <alise> So you know, then, of the situation.
20:45:12 <AnMaster> still used it seems
20:45:19 <scarf> alise: trying to fly under the radar? or just fancying a change of name?
20:45:45 <alise> Just fancied it. Why shouldn't I be allowed to confuse people as to my gender!
20:46:00 <scarf> meh, I manage that pretty effectively when I'm trying to hide it
20:46:11 <alise> My mother saw a practitioner of law (what, they could be googling) a few days ago. Apparently at first glance their chances of sectioning me are somewhere in the vicinity of nil, but that's not an Official Legal Opinion for a while.
20:46:20 <scarf> sometimes you can get a whole channel apologising to you on the assumption that you're actually female and they've just offended you
20:46:42 <scarf> alise: I actually started approaching this from a nomic angle
20:46:45 <alise> scarf: oh, but "alise" is rather overtly feminine and I've been using female pronouns for no particular reason other than havoc, confusion and finally wrecking the English language's gender-pronoun system once and for all
20:46:51 <scarf> alise: I love it
20:46:56 <alise> scarf: also, that's hardly surprising. you do that to everything :P
20:47:02 <pikhq> alise: They can, however, make life hell for you.
20:47:12 <alise> pikhq: not if I don't a-t-t to the e-n-d.
20:47:14 <pikhq> See now.
20:47:23 <alise> Yes indeed, AT&T should be a temporary fixture, not an everlasting thing!
20:47:23 <pikhq> a-t-t?
20:47:27 <alise> I say to all the googlers. Cough.
20:47:32 <alise> pikhq: Concatenate, sir! Concatenate.
20:47:40 <pikhq> Ah.
20:48:07 <scarf> depriving people of internet access was ruled to be a human rights violation in France, by the way
20:48:15 <pikhq> Alas. If they're just bluffing, then yes, there's jack they can do if you deny them such things.
20:48:42 <alise> scarf: that's great. I'll just relocate to France and then put myself in the same situation again :)
20:49:03 <scarf> yep, not quite useful enough, I was hoping it would be an EU-wide precedent
20:49:52 <alise> Also, I would technically be allowed to the internet, were I to bring my own laptop (although they have no Wi-Fi it could be plugged into Ethernet) or my own 3G connection, but if the former it would be censored, and either way one of the nurses would have to be in the room, monitoring it.
20:50:14 <alise> So even if it was EU-wide they'd be obeying the letter and flagellating the spirit to death.
20:50:27 <alise> Poor precedent-ghasts.
20:50:41 <scarf> hmm, having a human there defeats all the usual methods of defeating filters
20:50:55 <scarf> well, not directly, but in a soft-security sort of way
20:50:58 <AnMaster> alise, so I guess you can move abroad?
20:51:11 <alise> I could do that even if they could section me.
20:51:14 <scarf> I wonder if there's any way to evade filters steganographically
20:51:18 <alise> I move abroad, the UK government cannot touch me.
20:51:29 <scarf> being mentally ill isn't even illegal...
20:51:37 <alise> But not obeying a sectioning is.
20:51:41 <alise> That is their threat.
20:51:41 <AnMaster> hm
20:51:45 <scarf> yep, nice loophole there
20:51:51 <alise> Delivered to me, clearly, personally: attend, or you will be sectioned.
20:52:09 <alise> So there are two options: put them in a position where they cannot section me - i.e. move; or discover that they cannot section me.
20:52:11 <AnMaster> alise, well, why not move abroad next weekend or so?
20:52:25 <alise> AnMaster: Yes, that sounds lovely and easy.
20:52:41 <scarf> AnMaster: you can't just randomly decide to go abroad permanently, especially given alise's likely resources
20:52:43 <pikhq> AnMaster: Not being in the Schengen zone, he needs a passport.
20:52:54 <alise> scarf: Moving is one of the options being pursued, though.
20:53:06 <alise> We moved into Ovington recently, so we have little ties to the location.
20:53:18 <scarf> alise: there's always the third option, of getting the media involved
20:53:21 <pikhq> scarf: He's a European citizen. Makes it easy.
20:53:34 <scarf> it's an incredibly risky operation for all sides of the argument, though
20:53:40 <alise> scarf: I have considered and rejected that because of the risk.
20:53:44 <scarf> agreed
20:53:56 <alise> scarf: My mother is mentally ill (what it is I will not say, at least in public) and this stemmed from her being treated for that.
20:54:11 <alise> If you want the press on your side - at least the press that makes any difference, i.e. the awful press - you need to be spotless.
20:54:13 <scarf> ok, I don't want to know the details
20:54:22 <alise> So, that's almost certainly going to fail.
20:54:24 <alise> And I don't want publicity.
20:54:29 <scarf> and that's a great characterisation of the media
20:54:34 <scarf> *characterization
20:54:34 -!- tcsavage has joined.
20:54:42 <alise> scarf: Are you not British?!
20:54:45 <scarf> and the reason I correct that is not because of some stupid spelling ridiculousness
20:54:46 <Sgeo> What's a tcsavage?
20:54:51 <Sgeo> Are you turing complete?
20:55:06 <scarf> but because I've been writing in Java recently, and have a huge number of method names ending -ize and class names ending -izer
20:55:09 <Slereah> I am not Turing complete
20:55:13 <scarf> and wanted to standardise on one spelling
20:55:20 <Slereah> I can do everything a Turing machine can do, except love
20:55:22 <scarf> which is the one that the library already used
20:55:43 <scarf> besides, there are arguments that -ize is correct in British English too, and that -ise is a neologism
20:55:53 <alise> I don't mind what English you use.
20:55:59 <scarf> and I talk in a strange mix of British and American English on the Internet
20:56:00 <alise> Omit Us, go ahead.
20:56:03 <scarf> and occasionally Perl
20:56:05 <alise> It doesn't really matter.
20:56:27 <alise> I put in the Us and mostly use -ise because I was brought up that way, but it doesn't really bother me at all either way.
20:56:47 <scarf> "gray" vs. "grey" is another good one
20:56:50 <AnMaster> <pikhq> AnMaster: Not being in the Schengen zone, he needs a passport. <-- err, isn't that basically EU?
20:56:58 <AnMaster> but you say that UK isn't part of it?
20:56:58 <scarf> AnMaster: minus UK
20:56:58 <tcsavage> hmm, I don't know
20:57:03 <AnMaster> scarf, why on earth
20:57:07 <alise> AnMaster: plus some other stuff
20:57:10 <scarf> you need a passport to leave the UK by plane, at least
20:57:12 <alise> AnMaster: because the UK is a major international player
20:57:14 <scarf> probably Ireland too
20:57:15 <alise> and we like keeping our distance from the EU
20:57:16 <tcsavage> Are humans turing complete?
20:57:21 <alise> tcsavage: no infinite memory.
20:57:23 <AnMaster> heh
20:57:24 <scarf> or you could catch a ferry to Northern Island, then walk across the border
20:57:30 <cpressey> <Slereah> I can do everything a Turing machine can do, except love <-- brilliant
20:57:31 <scarf> *Northern Ireland
20:57:34 <scarf> how did I manage that?
20:57:41 <alise> AnMaster: But it is convenient, because of the rights we get.
20:57:51 <alise> If we can get a residence in any EU country, we're allowed there.
20:57:51 <scarf> `quote <Slereah> I can do everything a Turing machine can do, except love
20:57:58 <scarf> umm, what's the syntax?
20:57:58 <HackEgo> No output.
20:58:00 <alise> We just have to go up to them and say, yo, we're here, and that's pretty much it.
20:58:02 <scarf> `qdb <Slereah> I can do everything a Turing machine can do, except love
20:58:03 <alise> scarf: addquote
20:58:03 <HackEgo> No output.
20:58:08 <scarf> `addquote <Slereah> I can do everything a Turing machine can do, except love
20:58:09 <HackEgo> 128|<Slereah> I can do everything a Turing machine can do, except love
20:58:13 <alise> Also, Reversi/Othello is a really nice game.
20:58:17 <scarf> yes
20:58:20 <Slereah> Do we have a quote database here?
20:58:22 <AnMaster> alise, the other way doesn't work?
20:58:30 <alise> AnMaster: ?
20:58:35 <alise> Slereah: HackEgo's, aye.
20:58:37 <scarf> more fun, EU-internal flights you get to avoid customs
20:58:40 <alise> I think Sgeo maintains a text version.
20:58:41 <alise> Or just:
20:58:41 <alise> `quote
20:58:42 <HackEgo> 128|<Slereah> I can do everything a Turing machine can do, except love
20:58:48 <alise> scarf: yar
20:58:55 <alise> the schengen agreement is sweet
20:59:02 <Sgeo> Let's see if I can find it
20:59:13 <Slereah> !swedish I can do everything a Turing machine can do, except love
20:59:17 <EgoBot> I cun du iferytheeng a Tooreeng mecheene-a cun du, ixcept lufe-a
20:59:20 <Slereah> `swedish I can do everything a Turing machine can do, except love
20:59:22 <HackEgo> I cun du iferytheeng a Tooreeng mecheene-a cun du, ixcept lufe-a
20:59:26 <Slereah> `swedish I can do everything a Turing machine can do, except love.
20:59:27 <HackEgo> I cun du iferytheeng a Tooreeng mecheene-a cun du, ixcept lufe-a. \ Bork Bork Bork!
20:59:31 <scarf> is that algorithm deterministic?
20:59:33 <Slereah> Bork bork bork! :D
20:59:35 <scarf> ah, apparently not
20:59:43 <Sgeo> http://209.20.80.194/sgeo/quotes.txt
20:59:49 <Slereah> The bork is trigerred by the dot, scarf
20:59:57 <alise> 1|<Aftran> I've always wanted to kill someone. >.>
20:59:57 <alise> 2|<Aftran> I used computational linguistics to kill her.
21:00:00 <alise> A story in two quotes.
21:00:17 <scarf> meanwhile, does anyone happen to know of a bz2 implementation in Java that's licenced under a non-insane open source licence (i.e. GPL2 or GPL3 compatible)?
21:00:26 <scarf> my guess is no, but it can't hurt to ask
21:00:29 <Slereah> http://www.telegraph.co.uk/news/picturegalleries/worldnews/7222508/Palestinians-dressed-as-the-Navi-from-the-film-Avatar-stage-a-protest-against-Israels-separation-barrier.html
21:00:37 <scarf> (if you're wondering why, I'm writing the most overengineered ttyrec player ever)
21:00:45 <AnMaster> alise, moving I mean
21:00:56 <alise> AnMaster: Moving will work, it's just not as simple as you think.
21:00:57 <AnMaster> alise, as in, an European can come to UK and settle down
21:01:01 <alise> Ah.
21:01:02 <alise> No.
21:01:06 <Sgeo> It updates every 30min or so
21:01:15 <AnMaster> alise, really? It should work both ways to be fair
21:01:15 <scarf> alise: IIRC, yes but they don't get benefits, etc, unless they get a job
21:01:21 <alise> scarf: well, yes
21:01:29 <alise> The UK basically gets what they want from the EU and ignores the rest, whatever the tabloids say
21:01:33 <alise> AnMaster: politics isn't.
21:01:42 <scarf> alise: the UK came off /incredibly/ well from the recent EU treaties
21:01:42 <alise> and the UK is powerful enough to do it
21:01:59 <alise> "125th Barbie: Computer Engineer Barbie"
21:02:01 <alise> YESSSSSSSSSSSSS
21:02:05 <alise> WHY AM I SO EXCITED ABOUT THIS?
21:02:07 <alise> YESSSSSSSSSSSSS
21:02:12 <alise> (Interwebs, voting, etc.)
21:02:14 <AnMaster> <scarf> (if you're wondering why, I'm writing the most overengineered ttyrec player ever) <-- why not use JNI?
21:02:17 <AnMaster> or whatever it is called
21:02:21 <scarf> ooh, my todo list is still on pastebin.ca http://pastebin.ca/1794648
21:02:22 <alise> http://www.barbiemedia.com/admin/uploads/ComputerEngineerBarbie.pdf
21:02:22 <AnMaster> to use the native library
21:02:28 -!- MizardX- has joined.
21:02:37 <alise> scarf: do you realise that the kind of people who use ttyrec won't use a Java program? :P
21:02:38 <scarf> AnMaster: since when did all platforms that support Java have a ttyrec library installed by default?
21:02:50 <AnMaster> scarf, bz2 library I meant....
21:02:53 <scarf> alise: empirical evidence contradicts your statement
21:02:54 <AnMaster> not ttyrec one
21:02:56 <scarf> AnMaster: *bz2
21:03:01 <alise> scarf: Sample size?
21:03:05 <scarf> alise: about 4, tbh
21:03:15 <alise> #
21:03:15 <alise> Running the .jar is sort-of awkward in many OSes, including mine. Is there a way to get it working like a program
21:03:15 <alise> #
21:03:15 <alise> written in some other language? .jnlp is nice for evaluation, but doesn't leave the program installed.
21:03:20 <alise> ^ this is where Java starts giving you hell
21:03:23 <scarf> agreed
21:03:26 <alise> it's possible, but you'll hate life
21:03:33 <alise> I suspect you'll give up on Java at some point
21:03:41 <AnMaster> what is .jnlp?
21:03:46 <scarf> my solution is to write the program as a jnlp | javac | gcj polyglot
21:03:53 <scarf> AnMaster: Java Network Launch Protocol, used by Java Web Start
21:03:57 <AnMaster> àh
21:03:59 <AnMaster> ah*
21:04:06 <Slereah> If I was a computer engineer
21:04:07 * Sgeo should be doing homework nowish
21:04:08 <scarf> for some reason, Sun decided that the standard method of packaging Java programs came free with automatic updates
21:04:11 <Slereah> I wouldn't wear that dress
21:04:16 <Slereah> I mean, I have a linux shirt
21:04:19 <Slereah> But this is just too much
21:04:24 <AnMaster> Slereah, what dress?
21:04:29 <Slereah> http://www.barbiemedia.com/admin/uploads/ComputerEngineerBarbie.pdf
21:04:32 <scarf> I don't see why people should have to trust me in particular to run a program I write, they should just have to trust its source code
21:04:42 <scarf> ofc, in practice the two are pretty much identical, but I'm too idealistic to admit that
21:04:52 <AnMaster> Slereah, wth
21:04:57 -!- MizardX has quit (Ping timeout: 248 seconds).
21:04:58 -!- MizardX- has changed nick to MizardX.
21:05:02 <Sgeo> AnMaster, alise linked to it
21:05:05 <Sgeo> I think
21:05:07 <AnMaster> hm
21:05:13 <AnMaster> very wth
21:05:30 <alise> scarf: you should package it as a .jar
21:05:44 <alise> AnMaster: what, is it *wrong* to promote computer engineering now? :)
21:05:44 <scarf> alise: that's what I'm doing atm
21:05:49 <alise> barbie does every other career, you know
21:05:53 <scarf> and I'm working to remove library dependencies atm
21:05:57 <alise> scarf: you write a shell script to find where you are and java -jar it
21:06:01 <alise> with -classpath containing all your dependencies
21:06:02 <scarf> mostly because I'm hardly using any features of it
21:06:09 <alise> (have /usr/lib/somethingplay/(stuff))
21:06:19 <scarf> the idea's to have no dependencies outside the jar itself; this isn't deliberate, it just kind-of happened
21:06:35 <scarf> on a nice side-note, by default netbeans links in lgpl libraries to your project, but doesn't include their sources
21:06:47 <scarf> meaning it's illegal to distribute the resulting program without chasing their source
21:06:51 <AnMaster> alise, no, just that is so unrealistic. I mean, there are female CS students at the university I'm at. One of them wore an ubuntu jacket today I noticed.
21:07:04 <alise> Barbie, UNREALISTIC?!
21:07:08 <AnMaster> and very definitely not *pink*
21:07:22 <alise> there are girl-chic computer scientists
21:07:23 <alise> QUICK, FIND ONE
21:07:34 <AnMaster> alise, I mean, it is too pink. That is promoting gender differences or something.
21:07:40 <Slereah> alise : Lady Ada Lovelace
21:07:45 <AnMaster> Slereah, haha
21:07:56 <Slereah> http://membres.multimania.fr/bewulf/Russell/2003-06-Ada_Lovelace.jpg
21:07:59 <alise> AnMaster: I think any feminist would agree that women have the right to wear whatever the hell they like :P
21:07:59 <Slereah> You can't be classier
21:08:08 <scarf> according to QI, which is a UK quiz show based around questions where the obvious answer is false, traditionally blue was for girls and pink for boys, but it swapped somewhere in history
21:08:10 <alise> lovelace was sweet.
21:09:01 <Slereah> She has Leia hair
21:09:30 <Slereah> I've seen an actual photo of her
21:09:42 <Slereah> But it was in her cancer period so she doesn't look that pretty
21:09:53 <Sgeo> I didn't know she had cancer
21:09:54 <Sgeo> :(
21:10:16 <Slereah> She died quite young
21:10:19 <Slereah> Like in her 40's
21:10:56 <alise> scarf: I love QI.
21:11:07 <alise> 22:17:00 <coppro> Haskell is a language that curries functions
21:11:08 <alise> 22:17:09 <coppro> Haskell is named for Haskell Curry
21:11:08 <alise> 22:17:15 <coppro> currying is named for Haskell Curry
21:11:12 <Sgeo> I'd love QI more if it were easier for me to watch
21:11:14 <alise> Well they named it Haskell because of Haskell Curry, obviously
21:11:17 <alise> Sgeo: Piracy??
21:11:19 <alise> *Piracy?
21:11:27 <Sgeo> alise, preferably no BitTorrent
21:11:33 <scarf> oh, one thing that worries me a lot; the more I use Java, the more I discover similarities to Haskell in it
21:11:36 <cpressey> No!
21:11:39 <Sgeo> YouTube if possible
21:11:39 <alise> "(Maybe it is because the TAVSYS file stores string using Baudot?)" --zzo38
21:11:46 <alise> Sgeo: man up and bittorrent
21:11:49 <cpressey> They named it Hakell after Eddie Haskell from Leave it to Beaver!
21:11:49 <Slereah> http://www-history.mcs.st-andrews.ac.uk/BigPictures/Lovelace_3.jpeg
21:11:53 <alise> cpressey: OH
21:11:54 <Slereah> Daguerotype picture :o
21:11:57 <scarf> I suppose that's because without using it, you couldn't possibly imagine the languages were remotely similar
21:12:03 <Sgeo> I'm always under the impression that I'll get caught if I BitTorrent
21:12:05 <alise> Slereah: I'd curry her function.
21:12:07 <alise> Sgeo: MAN
21:12:08 <alise> UP
21:12:09 <cpressey> They might have even named it Haskell for that reason
21:12:21 <scarf> anyway, teaching Java's my day job, so I may as well get at least half-decent at it
21:13:45 <cpressey> scarf: And what has Java learned so far from you?
21:13:56 <alise> >_<
21:14:07 <alise> cpressey: I did *not* come back from that place to experience puns as bad.
21:14:10 <scarf> cpressey: /me thinks
21:14:49 <scarf> oh, that was a pun?
21:14:51 <cpressey> alise: I blame oerjan and lament for setting the atmosphere
21:14:54 <scarf> just got it
21:14:57 * scarf continues thinking
21:15:31 * scarf stops thinking
21:15:31 <MissPiggy> I don't have that programmery-thing anymore
21:15:37 <MissPiggy> the one where you actually write programs
21:16:35 <alise> MissPiggy: I sort of do, but it's constantly plagued with "this would be so much better in /my/ language".
21:16:42 <alise> I expect it to pick up again soon.
21:17:02 <Sgeo> I'm in a C++ class. I'm dealing with C# recently.
21:17:10 <Sgeo> And now I'm looking into Haskell again
21:17:16 <Sgeo> That feeling is pretty much a constant
21:17:35 <scarf> alise: I'm getting pretty good at just language-hopping, recently
21:17:55 <scarf> I suppose the benefit of working on esolangs so much is that when you get the impulse "this would be so much better in feather", you can just ignore it
21:19:17 <AnMaster> <alise> AnMaster: I think any feminist would agree that women have the right to wear whatever the hell they like :P <-- true
21:19:18 <alise> heh
21:19:48 <AnMaster> alise, my point was that barbie in general seems... overly pink. Not a varied selection there.
21:19:52 <scarf> AnMaster: men too?
21:20:22 <AnMaster> scarf, hm? Is this some reference to skin colour of Europeans?
21:20:32 <scarf> no
21:20:33 <alise> x.x
21:20:40 <alise> AnMaster: because little girls tend to like pink. Call it society or inherent, or whatever you want.
21:20:43 <alise> But 's true.
21:20:44 <scarf> I mean, would any feminist agree that men have the right to wear whatever the hell they like?
21:21:07 <Deewiant> Of course not
21:21:10 <AnMaster> alise, yes, and I think society encourages it. At least it doesn't seem to try to be neutral about it
21:21:21 <AnMaster> scarf, I have no idea. Ask alise.
21:21:27 <AnMaster> but I guess so
21:21:38 <alise> Not any feminist but all the sane ones.
21:21:44 <AnMaster> well okay
21:21:48 <alise> Sane feminism nowadays is an alias for someone who supports equality.
21:21:52 <AnMaster> yep
21:21:58 <alise> But if you go further you get, well, S.C.U.M. Manifesto.
21:22:17 <AnMaster> alise, I'm not familiar with that
21:22:20 <alise> http://en.wikipedia.org/wiki/SCUM_Manifesto
21:22:22 * AnMaster googles
21:22:29 <AnMaster> oh damn you, for once you provide a link!
21:22:38 <alise> I love you too.
21:24:53 <AnMaster> hah
21:25:07 <MissPiggy> |^^^^^^^^^^^\||_____
21:25:07 <MissPiggy> | STFU |||""'|"""\___ O
21:25:07 <MissPiggy> | ______________|||___|__|__|) -|- (@)@)""""""**|(@)(@)**|(@) / \
21:26:34 <alise> wat.
21:26:36 <AnMaster> ..?
21:26:51 <AnMaster> that doesn't even line up in monospace...
21:26:55 <AnMaster> anwhere
21:26:57 <AnMaster> anywhere*
21:27:00 <scarf> AnMaster: it lines up in proportional to start with
21:27:04 <scarf> but messes up towards the end
21:27:20 <AnMaster> scarf, eh? well the first | lines up yes
21:27:24 <AnMaster> but the rest makes no sense
21:27:25 <scarf> I once saw a massively complex table designed to line up in proportional that used ` and ' for spacing
21:27:33 <AnMaster> scarf, wtf
21:27:34 <AnMaster> also
21:27:42 <AnMaster> that would only work for a given font
21:27:54 <scarf> AnMaster: yes, but most of them have approximately similar metrics
21:27:57 <AnMaster> scarf, and what was the context of that table?
21:28:05 <scarf> AnMaster: it was in a forum post on GameFAQs
21:28:46 <AnMaster> scarf, approx similar metrics sure, but small differences would result in large differences near the end of the line
21:29:03 <AnMaster> since they would basically add up in the long run
21:29:05 <scarf> not really, the font size was very small
21:29:16 <scarf> sufficiently so that ' was one pixel plus one pixel of spacing
21:29:23 <scarf> and ` was two pixels plus one pixel of spacing
21:29:31 <AnMaster> then was the actual text in that table readable?
21:29:48 <scarf> yes
21:29:58 <AnMaster> different font size?
21:30:02 <scarf> this was back in the days before antialiasing was common, and where pixels were large enough to be visible
21:30:08 <AnMaster> ah
21:30:19 <scarf> same font size, a typical capital letter was maybe five or six pixels wide
21:30:23 <AnMaster> was just going to suggest getting a high dpi monitor ;P
21:30:40 <AnMaster> scarf, iirc gamefaqs uses monospaces
21:30:50 <alise> "Forum post".
21:30:53 <AnMaster> at least it did yesterday when I checked some walkthrough for a game I was stuck in
21:30:53 <scarf> AnMaster: for the FAQs; not in the forum posts though
21:30:55 <AnMaster> alise, oh right
21:30:58 <alise> Actual GameFAQs thingies are just text files.
21:31:01 <AnMaster> they have a forum?
21:31:03 <AnMaster> XD
21:31:03 <scarf> yes
21:31:16 <scarf> it's sometimes more informative than the FAQs themselves
21:31:17 <AnMaster> (btw I think it was paper mario for n64)
21:31:24 <scarf> because it's moderated by different people
21:31:34 <alise> GameFAQs' forums are interesting, mostly because of LUE lore
21:31:35 <scarf> and people post rejected FAQs to the forums, and if the mods there like them they get stickied
21:31:39 <alise> not that i've ever read them
21:31:41 <AnMaster> alise, LUE?
21:31:43 <alise> just articles *about* them
21:31:47 <alise> AnMaster: It's COMPLICATED!
21:31:58 <AnMaster> alise, sure, but what does it mean?
21:32:04 <scarf> so you have two independent sources of FAQs on the same website
21:32:08 <alise> That, that is also complicated.
21:32:10 <AnMaster> right
21:32:28 <AnMaster> ...
21:32:31 <AnMaster> whatever
21:32:33 <alise> Basically, uh, it's a board or was a board or something on GameFAQs.
21:32:38 <AnMaster> right
21:32:54 <alise> Life, the Universe, and Everything, and basically you had to have a lot of ... RPG-esque stats to get in there, basically. And then it sprung off into tons of other thing and glorious drama blah blah.
21:32:57 <alise> It's not that interesting, I guess.
21:33:18 <AnMaster> mhm
21:33:58 <AnMaster> why does almost every nintendo game contain at least one or two points where you have to do something so non-obvious that there is no way to figure it out without a walkthrough
21:34:16 <cpressey> AnMaster: Gotta sell those copies of Nintendo Power magazine
21:34:28 <scarf> AnMaster: pokemon doesn't, AFAIK
21:34:37 <AnMaster> cpressey, don't they realise people just check gamefaqs? ;)
21:34:43 <AnMaster> scarf, ah maybe, never played those
21:34:52 <AnMaster> this was paper mario
21:34:57 <AnMaster> forgot what the tricky thing was
21:35:30 <AnMaster> scarf, so, maybe we should say "every rpg or adventure game"
21:35:50 <AnMaster> though there were a few weird ones in mario 64 and such too
21:35:59 <AnMaster> (paper mario is an rpg)
21:36:39 <alise> Nintendo Power is older than GameFAQs. :P
21:36:42 <scarf> I needed spoilers for the bit in mario 64 where you have to zoom in and change the camera angle, to trigger you teleporting
21:36:49 <alise> what XD
21:36:57 <AnMaster> scarf, would that be the flying cap thingy?
21:37:11 <scarf> AnMaster: yep (or just the cap switch generally in the DS version)
21:37:14 <AnMaster> well yes, that was quite tricky
21:37:21 <AnMaster> scarf, there is just one cap switch there?
21:37:37 <scarf> yes, the locations of the other two were changed to have a couple of stars instead
21:37:45 <AnMaster> also, I wasn't aware of that they ported it to DS
21:37:51 <scarf> and there's a multiple-characters thing instead, which has new levels
21:38:04 <AnMaster> scarf, did they fix the bad camera control when they ported it?
21:38:13 <AnMaster> also, didn't they have to lose some of those stars
21:38:16 <AnMaster> that need the other caps
21:38:19 <scarf> it's not awful in the port, but I'm not sure what it was like originally
21:38:21 <scarf> and there are more starts
21:38:23 <scarf> *stars
21:38:33 <AnMaster> scarf, but what about metal and vanish caps?
21:38:37 <scarf> instead of flying cap as mario, vanish cap as mario, metal cap as mario
21:38:47 <scarf> it's flower as mario, flower as luigi, flower as wario
21:38:53 <AnMaster> err
21:39:00 <scarf> and the cap switch creates blocks that drop flowers
21:39:03 <AnMaster> scarf, that means some of the stars must have been relocated
21:39:09 <scarf> AnMaster: why?
21:39:13 <AnMaster> since they depended on the caps to be reachable
21:39:22 <scarf> AnMaster: you can still get all three cap effects
21:39:24 <AnMaster> like, you had to fly, or use the metal
21:39:26 <scarf> just you get them a different way
21:39:31 <AnMaster> scarf, ah. I see
21:39:54 <AnMaster> scarf, but why wario. Why.
21:39:55 <pikhq> scarf: The cap switches are entirely optional, y'know.
21:39:59 <AnMaster> It doesn't make sense in that game
21:40:15 <scarf> pikhq: in the original, yes; in the sequel, no
21:40:24 <AnMaster> pikhq, err really? No that wouldn't work for the first level where you have to pass through those rings of coins
21:40:24 <pikhq> Wait, they made it required?
21:40:27 <scarf> well, you don't have to hit the switch
21:40:32 <AnMaster> pikhq, well, maybe you need all coins?
21:40:35 <AnMaster> err
21:40:36 <AnMaster> all stars
21:40:36 <scarf> but you do have to release at least Mario, which is sort-of the equivalent of hitting a switch
21:40:37 <pikhq> AnMaster: You don't have to get all the stars.
21:40:37 <AnMaster> true
21:40:43 <AnMaster> pikhq, true I guess
21:40:55 <scarf> you can leave luigi and wario locked up all game, though, I did on my first playthrough
21:41:02 <alise> 01:02:08 <oklopol> http://esolangs.org/wiki/Defcalc <<< this is just tree rewriting
21:41:04 <alise> Don't caaaaaare
21:41:09 <AnMaster> scarf, err, how do you start playing as then?
21:41:17 <pikhq> AnMaster: 70 stars to beat the game.
21:41:18 <Slereah> Do you like trees
21:41:23 <pikhq> AnMaster: There are 120 stars *in* the game.
21:41:28 <scarf> AnMaster: you start as Yoshi, obviously
21:41:31 <AnMaster> pikhq, ah yes, remember now
21:41:36 <AnMaster> scarf, what? Not in the original
21:41:37 <scarf> pikhq: the numbers were bumped to 90 and 150 for the DS port, IIRC
21:41:42 <AnMaster> scarf, in the original you start as mario
21:41:47 <AnMaster> and play mario all the way
21:41:48 <scarf> AnMaster: yes, I'm describing a port with some enhanced features
21:42:03 <scarf> if it was a straight port, it wouldn't have sold as well as a port with some extra levels
21:42:07 <AnMaster> scarf, s/enhanced/totally wrecked/
21:42:07 -!- Slereah has quit.
21:42:16 <scarf> AnMaster: what makes you think that?
21:42:22 <pikhq> Also, the metal cap doesn't really need a FAQ to get.
21:42:24 -!- Slereah has joined.
21:42:33 <AnMaster> scarf, some extra levels sure, but what I'm finding an issue with is changing the playing character so completely
21:42:40 <pikhq> It's in a level where the vanish cap is useful.
21:42:45 <scarf> err, most of the controls are the same
21:43:00 <AnMaster> pikhq, I found the vanish cap without problems. And, You mean "where the metal cap is useful"
21:43:03 <scarf> replacing mario's 3d model with yoshi's isn't a massive change
21:43:11 <pikhq> AnMaster: Erm, right.
21:43:14 <AnMaster> s/You/you/
21:43:22 <AnMaster> scarf, same abilities?
21:43:23 <scarf> and the characters are mostly similar, apart from each has a few moves the others don't
21:43:24 <pikhq> Really, it's just the wing cap that's a "guide dang it" sort of thing.
21:43:36 <AnMaster> pikhq, true
21:43:43 <cpressey> alise: ?
21:43:58 <AnMaster> pikhq, actually I found that one by pure chance, I wanted to check what the odd white column in the emulator was
21:44:01 <pikhq> "WTF is with the light from the roof?"
21:44:03 <AnMaster> because it didn't draw it properly
21:44:07 <scarf> AnMaster: mario is the only one who can wall-kick; yoshi can't punch (swallowing enemies instead); luigi's backflips last ages; wario's punches are super-powerful
21:44:11 <AnMaster> in the game it isn't as visible normally
21:44:11 <pikhq> AnMaster: Heheheh.
21:44:14 <scarf> that's about it for the differences, though
21:44:22 <pikhq> AnMaster: No, it's pretty darned visible.
21:44:27 <pikhq> As a column of light.
21:44:32 <alise> cpressey: "?"?
21:44:32 <scarf> oh, yoshi can fly to some extent, but not very far
21:44:36 <AnMaster> pikhq, not *soild white column* though
21:44:46 <pikhq> Ah. Yeah.
21:44:52 <pikhq> It looks like a sunbeam, not a white column.
21:44:57 <pikhq> In which Mario is standing.
21:45:10 <AnMaster> pikhq, I know, they fixed that bug later in mupen64plus iirc
21:45:18 <scarf> if you press A while standing there, you get a message saying "mario... hello..." or something like that
21:45:20 <AnMaster> it looks like a sunbeam on modern versions
21:45:24 <cpressey> alise: oklopol, Defcalc, tree rewriting, Slereah likes trees, or something
21:45:40 <cpressey> Amidst Mario chatter
21:45:42 <AnMaster> scarf, fly? how does that even make any sense
21:45:47 <alise> Right, yes, I was just telling oklopol to shut his foo because it's still a nice language.
21:45:52 <scarf> AnMaster: it's more gliding
21:45:59 <AnMaster> cpressey, I like trees too. Nature is fun.
21:46:05 <scarf> basically, if you hold down jump, you go up for a bit before going down
21:46:10 <pikhq> AnMaster: Yeah.
21:46:12 <AnMaster> scarf, *how*
21:46:13 <scarf> and you can move for that time
21:46:31 <pikhq> Mupen64plus now emulates that game 100% perfectly.
21:46:33 <AnMaster> scarf, I mean, Yoshi isn't very aerodynamic really!
21:46:37 <scarf> AnMaster: he has wings?
21:46:44 <AnMaster> huh? does he?
21:46:44 <scarf> I think, anyway
21:46:56 <scarf> little stubby ones that rather restrict flying, but enough to keep him in the air for a bit
21:46:57 <pikhq> AnMaster: It's just what Yoshi does.
21:47:06 <pikhq> He does it in all the games in which Yoshi is playable.
21:47:17 <AnMaster> hm, I haven't played many games with yoshi in
21:47:18 <pikhq> Mmm, double-jump.
21:47:30 <pikhq> Never played Mario World?
21:48:08 <scarf> pikhq: the super mario 64 ds version is more like one continuous jump than a double-jump
21:48:25 <AnMaster> pikhq, mario world, maybe. SNES?
21:48:38 <AnMaster> pikhq, and boring plus rather hard
21:48:47 <AnMaster> I prefer RPGs mostly actually.
21:48:56 <AnMaster> snes rpgs are lovelu
21:48:58 <AnMaster> lovely*
21:48:59 <pikhq> scarf: Weird.
21:49:05 <AnMaster> (sometimes at least)
21:49:07 <alise> yoshi's sort of gliding thing is fun
21:49:20 <alise> because in yoshi island ds, and maybe the original it's based on too, it sounds and looks like he's desperately taking a dump
21:49:21 <pikhq> AnMaster: SNES. And one of the greatest platformers.
21:49:27 <alise> which makes him flutter up momentarily
21:49:31 <alise> HRRRRRRRRRRRRRRRRRRRR
21:49:33 <pikhq> (also one of the easier ones)
21:49:35 <AnMaster> pikhq, mario 64 is way better (apart from the camera of course)
21:49:43 <pikhq> AnMaster: No.
21:49:51 <pikhq> Mario 64 is as good.
21:49:52 <pikhq> :P
21:49:53 <alise> Super Mario Bros 1, bitches.
21:49:54 <scarf> in the DS version, you mostly just use R as a camera control
21:49:55 <alise> No competition.
21:50:01 <pikhq> alise: Mario 3.
21:50:04 <AnMaster> pikhq, well, I'm good at mario 64. I suck at mario world
21:50:08 <AnMaster> thus the world one is worse
21:50:09 <AnMaster> ;)
21:50:13 <pikhq> AnMaster: How can you suck at it?
21:50:14 <alise> DUH DUH DUH DUH DUH DAH--duh. Duh duh duh, da duh duh duh duh duh dah dah dah dah dah duh dah duh
21:50:19 <AnMaster> pikhq, always dying?
21:50:26 <scarf> the camera stays in much the same angle while it's released, swings behind you when it's pressed
21:50:26 <AnMaster> hard to time jumps?
21:50:31 <pikhq> Infinite powerups and trivial one-ups!
21:50:36 <cpressey> alise: How 'bout just Mario Bros?
21:50:45 <AnMaster> pikhq, the issue is the jumps
21:50:58 <pikhq> AnMaster: You can try again. Forever.
21:51:05 <AnMaster> pikhq, also, time limit
21:51:06 <AnMaster> iirc
21:51:11 <AnMaster> mario 64 lacks that
21:51:11 <alise> cpressey: meh
21:51:15 <alise> cpressey: boring arcade-ish game imo
21:51:16 <pikhq> AnMaster: You can go back to the level.
21:51:23 <alise> (also, how 'bout just donkey kong?!)
21:51:24 <AnMaster> pikhq, well, I hate time limits
21:51:38 <pikhq> If you run out of lives, you fail at gaming forever.
21:51:40 <alise> i never really run into SMB's time limmits
21:51:48 <alise> I run out of lives in SMB1 all the time though :)
21:52:07 <pikhq> (to get a 1-up, kill the Koopa Troopas at the start of 1-1 and exit the level)
21:52:07 <cpressey> alise: How 'bout that little-known, hand-held LCD-screen game, "Mario's Cement Factory"? Now that's retro.
21:52:18 <scarf> cpressey: I know it
21:52:24 <cpressey> scarf: Really!
21:52:30 <AnMaster> cpressey, what?
21:52:31 <scarf> alise: there's an infinite loop near the start of 1-1
21:52:33 * AnMaster googles
21:52:42 <scarf> where you can get an extra life, get a coin, then die
21:52:49 <cpressey> I only remember it vaguely from an issue of Electronic Gaming from the 80's
21:52:49 <scarf> and respawn where you can repeat the process
21:52:56 <alise> cpressey: you were so amazed it wasn't even a ?
21:53:00 <alise> it was just a ! question
21:53:10 <scarf> cpressey: I've even seen one of the original game&watch games, and even played it, although I'm not sure it was that one in particular
21:53:11 <cpressey> alise: Yes!
21:53:15 <alise> scarf: let's confuse you: I'm using Linux, and like the typography and fonts
21:53:23 <alise> http://upload.wikimedia.org/wikipedia/commons/5/55/Gw_donkeykong_trans.png
21:53:29 <alise> handheld nintendo console with two screens
21:53:33 <cpressey> Wait, that should have been: alise: Yes?
21:53:36 <alise> and a dpad, and some buttons
21:53:38 <alise> folds
21:53:42 <scarf> yep
21:53:54 <AnMaster> hm "game & watch"? never heard about that before
21:54:02 <alise> AnMaster: thou art luckey.
21:54:03 <alise> *lucky
21:54:08 <AnMaster> also, strange there is a super mario wiki
21:54:12 <pikhq> AnMaster: Play more Smash Bros.
21:54:14 <scarf> AnMaster: dates from before games consoles were capable of running more than one game
21:54:16 <scarf> and how is that strange?
21:54:35 <AnMaster> pikhq, what? the fighting games?
21:54:38 <AnMaster> I loath that genre
21:54:42 <alise> http://upload.wikimedia.org/wikipedia/commons/8/88/Gamewatch_mariobros_open.JPG IT'S JUST LIKE A BOOK
21:54:59 <alise> let's see if we can all agree on one game being great
21:55:01 <alise> Mario Kart!
21:55:06 <scarf> alise: which version?
21:55:10 <pikhq> alise: Which one?
21:55:14 <Slereah> How do you play this
21:55:15 <alise> uh, I mainly play double dash, the gamecube one
21:55:18 <Slereah> It has like two buttons
21:55:22 <scarf> I've actually played all but the Gamecube and Wii ones
21:55:28 <pikhq> That was the best one, IMO.
21:55:30 <alise> I've played the DS one
21:55:31 <alise> it's rubbish
21:55:34 <alise> the wii one is also rubbish
21:55:36 <alise> the steering is wonky
21:55:38 <alise> really hard to steer precisely
21:55:43 <pikhq> All the console ones were good.
21:55:44 <alise> just seems really fuzzy, not enough mario karty
21:55:47 <pikhq> Not played the portable ones.
21:55:50 <alise> especially with the wheel
21:55:53 <alise> the wheel is worse than useless
21:55:54 <scarf> although, I was too young to understand when I was playing the SNES version; I played it in a supermarket creche while my parents were shopping
21:55:56 <Sgeo> Why am I interested in Muppets right now?
21:56:00 <scarf> and never figured otu the controls
21:56:01 <scarf> *out
21:56:07 <alise> huh, the original mario kart came out in 1992?
21:56:09 <scarf> the DS one is rather broken, and I dislike the level design
21:56:09 <pikhq> alise: Play it with a Gamecube controller.
21:56:14 <alise> I thought 64 was the latest one
21:56:15 <AnMaster> <alise> Mario Kart! <-- no
21:56:19 <AnMaster> I don't like that genre either
21:56:20 <alise> pikhq: I might as well just play the gamecube version
21:56:22 <AnMaster> What about:
21:56:22 <alise> the graphics are sharper
21:56:23 <alise> AnMaster: well, die.
21:56:25 <scarf> the N64 one was fun, if a little prone to random explosions
21:56:29 * alise throws a blue shell at AnMaster
21:56:30 <AnMaster> alise, Mario RPG?
21:56:31 <scarf> and had some great level design
21:56:34 <AnMaster> that one is good
21:56:35 <alise> I've actually dodged a blue shell before!
21:56:35 <AnMaster> the SNES one
21:56:36 <pikhq> alise: Yeah. The Gamecube one is better.
21:56:38 <AnMaster> also mario 64
21:56:48 <alise> One way I know is sure-fire, and the other way was the luckiest fluke ever.
21:56:51 <alise> Can't reproduce the latter.
21:56:56 <pikhq> AnMaster: <3 Mario RPG.
21:56:59 <scarf> the GBA one is rather neat too, they managed to balance the items well and the battle mode is great
21:57:17 <AnMaster> pikhq, what about paper mario? It is quite nice
21:57:22 <AnMaster> played that recently
21:57:27 <pikhq> AnMaster: Not played it.
21:57:41 <AnMaster> pikhq, the n64 one that is
21:57:42 <pikhq> I only own one console, BTW.
21:57:50 <AnMaster> pikhq, I own none
21:57:57 <pikhq> Ah. Haven't played it, but I probably have the ROM.
21:57:58 <AnMaster> thus I can't play anything newer than n64
21:58:14 <alise> the sure-fire way, btw, is to go up a blasting tunnel - like in Daisy Cruiser's longcut or D.K. Mountain - while it locks on to you
21:58:16 <AnMaster> pikhq, use glide64 to get anything usable in mupen64plus for it
21:58:17 <pikhq> I picked up a backwards-compatible PS3 recently.
21:58:23 <AnMaster> pikhq, paper mario that is
21:58:25 <alise> it will "hit" you in the air, though you won't see it, and it'll have no effect
21:58:25 -!- jcp has joined.
21:58:29 <alise> of course, you need to time it rather well...
21:58:34 <pikhq> AnMaster: Already do; couldn't get Mario 64 working otherwise.
21:58:53 <pikhq> And, well. It's freaking Mario 64.
21:58:55 <AnMaster> pikhq, glide64 is the only decently working video plugin for most games
21:59:11 <scarf> alise: doesn't work in the DS version, btw, it falls back while you blast, and catches up to you afterwards
21:59:22 <alise> scarf: pah, other people have tried this!
21:59:24 <alise> I am not so special
21:59:30 <pikhq> Best 3D Mario game. :)
21:59:31 <scarf> in the DS version, a skilled player can set off a power-slide turbo boost at an exact moment to dodge it, but I'm not that good
21:59:47 <AnMaster> pikhq, camera control
21:59:56 <scarf> (the PSTB fanaticism in the DS version really defines the game; it's probably a bad thing, it leads to you wearing your left thumb out)
22:00:07 <AnMaster> pikhq, I hate the camera control in mario 64
22:00:14 <pikhq> AnMaster: Yes, that is the one thing that's off.
22:00:15 <AnMaster> sure, it is a good idea but it doesn't work out well
22:00:22 <scarf> (also, I dislike the way items work in the DS version, they're pretty much all designed to screw over the leader, you can't do clever things like setting red shells as mines any more)
22:00:22 <fizzie> Glide64 is a weird name for a video plugin, assuming it doesn't actually use the 3dfx Glide API.
22:00:31 <AnMaster> fizzie, I think it does....
22:00:33 <pikhq> Would be much better if it were analog.
22:00:47 <alise> scarf: I hate how sending a blue shell backwards as 1st player hits yourself
22:00:47 <AnMaster> fizzie, or some opengl wrapper thingy for it
22:00:55 <alise> it's just... argh, no, I didn't tell you to do that
22:01:04 <scarf> alise: what does sending it forwards do?
22:01:09 <alise> the same.
22:01:13 <alise> blue shells don't aim :P
22:01:15 <alise> they just hit player 1
22:01:17 <scarf> same happens in the DS version
22:01:28 <alise> the ds version's graphics suck and i find the gameplay a little sluggish
22:01:34 <AnMaster> hm
22:01:39 <scarf> in the GBA version, you can trail a spiky shell behind you like with other shells, and it will protect you and break like a green shell does
22:01:45 <AnMaster> I never liked either fighting or racing games
22:01:51 <cpressey> Fully 1/3 of my scrollback is now Mario-related.
22:01:51 <alise> mario kart isn't really a racing game
22:01:53 <scarf> and if you fire it forwards, it just goes straight and hits a wall and dies
22:01:57 <AnMaster> RPGs and some platformers is what I like
22:01:57 <alise> cpressey: SHADDUP
22:01:59 <scarf> if you fire it backwards, it stays there as a mine
22:01:59 <AnMaster> also zelda games
22:02:08 <scarf> alise: the DS version is, because they nerfed items so badly for the leader
22:02:09 <AnMaster> zelda a link to the past or oot
22:02:11 <AnMaster> which is best
22:02:14 <scarf> the other versions aren't, really, though
22:02:19 * AnMaster waits for the flamewar to die down over that
22:02:28 <AnMaster> scarf, alise pikhq ^
22:02:35 <scarf> AnMaster: I've never played either
22:02:39 <AnMaster> -_-
22:02:40 <scarf> although I've watched two OoT TASes
22:02:45 <AnMaster> scarf, TAS?
22:02:46 <scarf> a normal one, and a RBG one
22:02:51 <alise> tool assisted speedruns
22:02:52 <scarf> AnMaster: tool-assisted speedrun
22:02:56 <AnMaster> scarf, RBG?
22:02:59 <scarf> reverse bottle glitch
22:03:00 <fizzie> AnMaster: That's a weird way to do it, but yes, it seems you're right. At least it explains the name.
22:03:01 <AnMaster> scarf, cheat codes?
22:03:04 <alise> artworks in which you slow down time in the game and use repeated save/loads to get an almost perfect time for a game
22:03:06 <scarf> not a cheat code, exactly
22:03:09 <alise> using glitches is fair game
22:03:14 <AnMaster> scarf, also wth is "reverse bottle glitch"?
22:03:17 <scarf> it's memory corruption
22:03:23 <alise> (I made sure to call them artworks so you'd get upset and trash them)
22:03:26 <AnMaster> fizzie, It could be fairly old code?
22:03:39 <scarf> basically, you use a race condition while fishing to get a bottle into an inventory slot it can't normally occupy
22:03:40 <fizzie> AnMaster: It probably is; no-one'd do it that way nowadays.
22:03:43 <alise> <fizzie> AnMaster: That's a weird way to do it, but yes, it seems you're right. At least it explains the name.
22:03:44 <alise> wut
22:03:53 <AnMaster> alise, glide64
22:04:02 <scarf> then you keep catching and releasing bugs; every time you do so, it copies one of the bytes that holds item quantities over another
22:04:06 <alise> ah
22:04:08 <AnMaster> alise, one of the video plugins for mupen64
22:04:10 <scarf> according to how your inventory's arranged
22:04:16 <AnMaster> alise, the only one that works decently too
22:04:29 <scarf> so you seemingly do random sidequests for most of the game, then randomly you've completed all the dungeons in the game
22:04:44 <AnMaster> scarf, heh
22:04:46 <fizzie> Some of the TASes use quite a lot of special programming in them; I think some of the megaman ones had pretty complicated programs to do the optimal-route-finding.
22:04:52 <AnMaster> scarf, you still need to complete the first normally
22:04:55 <scarf> a good RBG quest doesn't complete any of the compulsory dungeons apart from the last one, and for that one you skip most of them
22:04:57 <scarf> AnMaster: no you don't
22:05:01 <AnMaster> scarf, no?
22:05:02 <pikhq> AnMaster: There's glitches to skip that.
22:05:07 <AnMaster> ah
22:05:49 <AnMaster> scarf, interesting how it can skip over going to big link?
22:05:51 <AnMaster> err
22:05:54 <AnMaster> grown up link
22:05:55 <AnMaster> I meant
22:06:12 <AnMaster> I assume it would have to
22:06:14 <scarf> oh, you just wander into the temple of time, become big link, and wander back out again
22:06:24 <scarf> glitching past all the barriers that would normally stop you just doing that without prerequisites
22:06:31 <alise> so, trollaxing time
22:06:36 <alise> best characters/kart in mario kart?
22:06:43 <AnMaster> scarf, there must have to be a *LOT* of glitches?
22:06:47 <scarf> AnMaster: yes, it's a TAS
22:06:51 <AnMaster> alise, don't they all work exactly the same iirc?
22:06:56 <scarf> AnMaster: no
22:06:57 <AnMaster> alise, at least in the n64 version
22:07:01 <alise> 09:40:04 <AnMaster> cpressey, isn't there an algorithm for converting it to RPN?
22:07:04 <alise> shunting thingy dijkstra bla
22:07:06 <AnMaster> scarf, pretty sure they do in the n64 version
22:07:06 <pikhq> AnMaster: http://www.tasvideos.org/ZeldaOcarinaOfTimeTricks.html
22:07:07 <alise> AnMaster: nah different speed, accel, etc
22:07:14 <alise> powerup weights, i think
22:07:15 <alise> and special powerups
22:07:17 <AnMaster> alise, err yes, it was mentioned a bit later iirc
22:07:18 <AnMaster> ...
22:07:28 <alise> AnMaster: i'm logreading an entire week
22:07:34 <alise> don't give me shit or i'll start blabbing about how bad it was
22:07:35 <AnMaster> alise, where is that described? Not in game?
22:07:40 <alise> yeah in game
22:07:42 <alise> in the gcn one
22:07:48 <AnMaster> gcn?
22:07:53 <scarf> my definition of a TAS: it's where you painstakingly spend months, interactively at a copy of the game, using rewinds, slowdown, etc., to record a script that plays the game as near-perfectly as you can manage
22:07:54 <alise> gamecube nintendo
22:07:54 <AnMaster> alise, I'm talking about n64 here
22:08:00 <alise> go to single player mode, select characters, select kart, look at kart stats
22:08:05 <cpressey> alise: I can summarize my lines: "Hate Python, haaaaate."
22:08:09 <scarf> then you just plug the script into an emulator, and get a really really fast tool-assisted speedrun
22:08:17 <alise> cpressey: having to work with it?
22:08:18 <AnMaster> scarf, heh
22:09:23 <fizzie> http://tasvideos.org/RockmanTricks.html is also a nice list.
22:09:25 <scarf> cpressey: I don't think I've ever met anyone who hates Python before, so it's refreshing
22:09:32 <scarf> especially as a Perl fan myself, I should have come across more
22:09:41 <pikhq> scarf: The Pokemon Yellow speedrun couldn't have taken more than an evening to do, though.
22:09:44 <alise> I hate Python.
22:09:47 <scarf> pikhq: sure?
22:09:53 <scarf> they skip out all the rerecords
22:09:58 <scarf> in the final product
22:10:03 <alise> scarf: it probably uses some glitch
22:10:07 <alise> to win the game in three minutes or something
22:10:08 <pikhq> Though, that's because the only glitch is restarting the console at the right time.
22:10:11 <alise> i.e. a joek a joek lol
22:10:18 <scarf> typically, a TAS takes a month of work to produce an hour of output
22:10:21 <pikhq> alise: 2 minutes.
22:10:28 <alise> pikhq: How on earth?
22:10:31 <scarf> pikhq: ah, that's the one I was talking about
22:10:36 <pikhq> It saves. Shuts down the game in the middle of saving.
22:10:47 <pikhq> Starts the game, loads.
22:10:51 <pikhq> Goes into battle.
22:10:55 <scarf> alise: basically, if you turn it off while saving, all the remaining save data is full of the same byte
22:11:11 <scarf> pikhq: not quite, it went and did lots of changing the pokemon list, which was 255 items long and so overflowed into main memory
22:11:14 <cpressey> alise: Yes, it's my day job. scarf: The next time someone refers to it as "uncluttered" I shall refer them to the design of the pickle module, and have them compare it to any other modern language's serialization facilities.
22:11:27 <pikhq> scarf: That happened in-battle, and I was typing out the description.
22:11:33 <alise> cpressey: I never really thought of you as a day job kind of guy, Cats Eye surely generates some money right?!
22:11:35 <pikhq> scarf: Also, that was the item list.
22:11:38 <scarf> pikhq: oh, I got the order wrong
22:11:45 <alise> You can't possibly have time for all the stuff you do without either not having a day job or sleeping polyphasically, surely. :P
22:11:49 <pikhq> It swapped the item list around to write memory such that it skipped to the end of the game after the battle.
22:12:07 <scarf> I thought the pokemon list was involved too, but that might have been a different TAS
22:12:08 <cpressey> alise: I wish.
22:12:20 <pikhq> scarf: 0 pokemon.
22:12:39 <scarf> pikhq: same, but I thought the /list/ was still used
22:13:15 <pikhq> The Pokemon Green one was fun, also.
22:13:20 <alise> i'm watching that speedrun now
22:13:23 <pikhq> Started a walk through walls glitch.
22:13:25 -!- MigoMipo has quit (Ping timeout: 264 seconds).
22:13:25 <alise> "Go 9999999999999999999999999999999999999[lots of 9s]"
22:13:27 <alise> *Go!
22:13:33 <cpressey> alise: I had more time when I was at school, and when I was commuting to/from work at my previous job.
22:13:38 <pikhq> Walked to the end-of-game.
22:13:42 <pikhq> End.
22:13:44 <alise> :D
22:13:52 <alise> http://www.youtube.com/watch?v=gr3L597dZFM
22:13:54 <alise> it's so pretty
22:14:36 <alise> "you made this game your bitch" --youtube comment
22:15:11 <scarf> alise: what's that a link to (at work)?
22:15:30 <alise> PKMN Yellow speedrun
22:16:08 <scarf> ah, I've seen that one already I think
22:16:17 <AnMaster> which platforms are the pokemon games for?
22:16:18 <scarf> Youtube URLs are so opaque...
22:16:22 <scarf> AnMaster: most of them
22:16:25 <AnMaster> I mean, what sort of emulator do you need
22:16:25 <scarf> that Nintendo make
22:16:30 <AnMaster> scarf, snes?
22:16:31 <alise> AnMaster: Gameboys, mostly.
22:16:32 <alise> And the DS.
22:16:35 <AnMaster> ah
22:16:43 <AnMaster> well, I have a ds emulator, it sucks
22:16:46 <alise> GBA (gameboy advance) has Pokemon Sapphire which is the main one I've played.
22:16:49 <AnMaster> so the gameboy advance one then
22:16:51 <alise> And VirtualBoy Advance is pretty much perfect.
22:16:52 <scarf> handheld RPGs: game boy original, game boy color, gameboy advance, DS for the four generations
22:16:55 <alise> Most of the emulators are.
22:17:05 <alise> And obtaining a sapphire/ruby rom is as easy as, uh, going to the toilet?
22:17:10 <AnMaster> <alise> And VirtualBoy Advance is pretty much perfect. <-- yes
22:17:11 <scarf> there were also console RPGs too, for the N64-like consoles
22:17:23 <alise> also, protip: tapping A and B doesn't make the pokeballs work more.
22:17:24 <AnMaster> scarf, oh? interesting
22:17:28 <scarf> alise: ruby/sapphire have a rather obnoxious font
22:17:34 <alise> scarf: Really? I never noticed.
22:17:36 <scarf> alise: but it gives your fingers something to do while you're waiting
22:17:44 <alise> sure you don't meen firered and lifegreen?
22:17:55 <alise> (they ran out of colours lol.)
22:18:00 <scarf> that's obnoxious too, but a diffreent way
22:18:02 <AnMaster> hehe
22:18:06 <scarf> and firered and leafgreen are remakes of red and green
22:18:14 <scarf> so it makes sense to have similar names
22:18:14 <alise> yeah
22:18:14 <alise> How's the font obnoxious?
22:18:14 <AnMaster> so, I seem to lack a collection of such roms
22:18:22 <AnMaster> I do have a large snes rom collection
22:18:23 <scarf> just like heartgold and soulsilver are remakes of gold and silver
22:18:28 <alise> http://www.coolrom.com/roms/gba/
22:18:30 <AnMaster> fewer n64
22:18:37 <AnMaster> and just one gba
22:18:37 <alise> may be bullshit, maybe not
22:18:38 <alise> ymmv
22:18:49 <AnMaster> alise, I was planning for piratebay
22:19:14 <alise> roms are generally on less reputable sites ;)
22:19:20 <scarf> look, there's a general rule that you don't discuss ROMs on every forum in existence
22:19:24 <scarf> including, presumably, IRC
22:19:27 <AnMaster> ah
22:19:45 <AnMaster> scarf, so, lets discuss EEPROM then
22:20:00 <AnMaster> clearly it was *that* type of roms we were talking about here
22:20:22 <alise> scarf: yes, but I don't really care
22:20:26 <scarf> oh, I expected people would be jumping on me for either censorship, or calling IRC a forum
22:20:46 <scarf> obviously I fail at trolling #esoteric, I should go back to trolling ##crawl-dev
22:20:59 <scarf> (I don't mean to troll it, but looking back on what I say there, I think I'm a troll)
22:21:11 <AnMaster> oh ffs, rapidshare style website sucks
22:21:15 <AnMaster> now I remember why I prefer torrents
22:21:42 <alise> http://lericson.blogg.se/code/2010/february/this-might-seem-silly-git-pull.html
22:22:10 <pikhq> I'd be playing a Pokemon game in Japanese, but... No kanji.
22:22:15 <pikhq> *Makes it harder to read*.
22:22:27 <pikhq> (well. Easier to read. Harder to understand.)
22:23:17 <fizzie> The first rule of ROMs is that you don't discuss ROMs.
22:23:37 <scarf> alise: I like f4y's comment
22:23:56 <scarf> even if it's factually incorrect
22:24:10 <scarf> but especially if it's correct
22:24:15 <scarf> the other commenters seem divide
22:24:17 <scarf> *divided
22:24:51 <Deewiant> The one about Linus being a Swedish speaker? It's correct.
22:25:56 <AnMaster> <alise> http://lericson.blogg.se/code/2010/february/this-might-seem-silly-git-pull.html <-- heh
22:27:56 <AnMaster> there is a torrent for 10.26 GB of <things not discussed> for GBA
22:28:00 <AnMaster> that's pretty amazing
22:28:06 <AnMaster> scarf, ^
22:28:07 <fizzie> Gah, there must be some sort of gnome (no offense meant to the desktop environment) on my disk eating files.
22:28:31 <scarf> AnMaster: I don't get what you're trying to say here, and don't particularly want to either
22:28:41 <AnMaster> just the huge size
22:28:50 <fizzie> Well, the GoodGBA set of things not discussed contains 34118 things not discussed, and those modern things not discussed aren't exactly very small.
22:28:56 <fizzie> Memory's cheap, after all.
22:29:29 <pikhq> There's a 10 second speed run.
22:29:49 <pikhq> Its submission explains the input frame by frame.
22:29:53 <pikhq> http://www.tasvideos.org/2025S.html
22:30:06 -!- scarf has quit (Remote host closed the connection).
22:30:26 -!- tcsavage has left (?).
22:30:44 <Deewiant> That fantasy strategy game or whatever?
22:30:55 <Deewiant> Oh, you linked it. Wonder how I missed that.
22:31:13 <Deewiant> Yeah, that's the one.
22:31:24 <pikhq> That's amazing.
22:32:02 <Deewiant> When your win condition is based solely on the RNG what do you expect?
22:32:25 <alise> who cares, it's sweet
22:33:13 <Deewiant> Also: colors a skeleton
22:34:05 <fizzie> Yes; I was about to ask whether anyone's interested enough to look at frame 1063 and explain what that's about.
22:34:55 <MissPiggy> Colors a skeleton!
22:35:03 <alise> Colours, the skeleton.
22:35:12 <alise> Which frame is it?
22:35:13 <MissPiggy> how do I watch it -_-
22:35:14 <Sgeo> http://www.youtube.com/watch?v=PGfx3QAV64M
22:35:15 <alise> Er, as in, what time?
22:35:17 <alise> http://www.tasvideos.org/1145M.html
22:35:21 <alise> click the watch thingy and choose you toob
22:35:29 <MissPiggy> lol where is it
22:35:39 <Sgeo> Not my link, it's off topic
22:35:40 <alise> dunno :D
22:35:41 <Deewiant> http://www.youtube.com/watch?v=dzkrREEtnAI
22:35:52 <Deewiant> In 1080p!
22:36:09 <alise> what time count is the colour skeleton
22:36:42 <bsmntbombdood> i don't get 720p youtube
22:36:47 <bsmntbombdood> the little box isn't big enough
22:37:09 <alise> fullscreen dood
22:37:14 <Deewiant> 0:19, I think
22:37:16 <alise> those are your two choices
22:37:22 <Deewiant> I also think it's obscured by the "this is from tasvideos" text
22:38:00 <fizzie> It should be the frame immediately before the "congratulation message is displayed" one.
22:38:01 <alise> i don't get it
22:38:07 <Deewiant> No, wait
22:38:13 <MissPiggy> so how to watch it -_-
22:38:14 <Deewiant> I'm looking at a frame 1060-1062
22:38:22 <Deewiant> Hitting 1063 will be tricky
22:38:29 <Deewiant> MissPiggy: Youtube, linked.
22:38:47 <MissPiggy> thank you!
22:39:38 <alise> MissPiggy: it basically manipulates the RNG through a certain input sequence so that a search for whoever finds him successfully, and does that immediately
22:39:43 <pikhq> alise: Frame 1120 in the actual video.
22:39:46 <Deewiant> Bah, I'll just grab the avi
22:39:51 <AnMaster> hrrm
22:39:57 <AnMaster> dns timeout on tasvideos
22:39:59 <AnMaster> how strange
22:40:01 <alise> is it the flicker thing before the hooray you won thing
22:40:10 <AnMaster> now it works
22:40:20 <pikhq> alise: Yes.
22:40:22 <pikhq> alise: It glitches oddly, then "Hooray, you won".
22:40:23 <alise> 11:21:11 <cpressey> I am eternally tempted to design a "real" language which "gets everything right". It's a bad temptation. It's better to stick to these weird little languages that intentionally get things "wrong"...
22:40:27 <alise> EEEEEHIRDLAAAAAANG
22:40:32 <alise> sorry, AAAAAALISELAAAAAAAAANG
22:40:42 <pikhq> The skeleton is on the screen color-swapped for no good reason.
22:40:53 <Deewiant> Gah, except that my MPC doesn't work and VLC evidently lacks frame advance.
22:40:53 <alise> the "simple" stuff, getting that right is easy
22:40:57 <alise> aliselang solves problems you didn't even know you had
22:41:05 <alise> Deewiant: mplayer? oh, mpc = windows = no
22:41:57 <alise> 11:50:36 <cpressey> I could live with them being slightly less than first-class, for efficiency. But still, it's so rare to be able to handle them like normal objects.
22:41:58 <alise> Smalltalk
22:42:06 <alise> Squeak has totally super-awesome stack objects
22:42:15 <fizzie> Deewiant: Hrm, well... I downloaded the highest-quality MP4 version from youtube, and frame-advanced, and there's one glitched-graphics frame, but I still don't see any special colors on the skeleton.
22:42:21 <cpressey> alise: If getting the simple stuff right is easy, why does it still seem so rare?
22:42:33 <pikhq> fizzie: Glitched-graphics comes a few frames before that.
22:42:34 <alise> cpressey: Because most people underrate correctness massively.
22:42:44 <fizzie> pikhq: Oh, okay. Maybe the youtube version has a dropped frame or something, then.
22:42:47 <Deewiant> Well, whatever.
22:42:50 <alise> fizzie: It's the flicker before the you won thing
22:42:52 <alise> the transition
22:42:52 <cpressey> alise: Fair 'nuff.
22:42:53 <alise> it's that i think
22:43:03 <Deewiant> fizzie: Only one glitched-graphics frame?
22:43:07 <alise> cpressey: And most people HIGHLY underrate dependent types!!!!12121
22:43:09 <fizzie> Deewiant: Well, a couple.
22:43:13 <Deewiant> There should be 3 according to the description
22:43:23 <Deewiant> After which, the colour.
22:43:53 <alise> cpressey: I'd avoid IEEE floating point whenever possible, anyway.
22:44:02 <alise> Things that break mathematical laws in such ridiculously arbitrary ways upset me.
22:44:08 <fizzie> Deewiant: Oh, okay, there it is. The .avi version has it, the youtube one doesn't.
22:44:09 <cpressey> alise: I agree.
22:44:30 <MissPiggy> whereas the people that know dependent types highly OVERrate them
22:44:37 <cpressey> Floating point on an Apple ][+ traumatized me over the real number system for the rest of my life.
22:44:44 <alise> MissPiggy: Hey, it's not my fault they solve most problems.
22:44:52 <alise> reals are spooky
22:44:53 <Deewiant> fizzie: If it's the one that colours a whole lot more than just the skeleton, I saw that one.
22:45:03 <alise> I was thinking about a system which has |x-y| instead of x-y
22:45:05 <fizzie> Deewiant: Yes, I assume it's that one.
22:45:13 <fizzie> Deewiant: Since the skeleton is coloured too.
22:45:18 <alise> would be cool to keep the commutativity rag up for as many operations as possible
22:45:21 <Deewiant> Also, yay, VLC /does/ have frame advance. It's just hidden in view->advanced controls.
22:46:16 <alise> 11:51:53 <cpressey> Hm, maybe Ruby does something like that though -- I wouldn't put it past it.
22:46:16 <alise> na
22:46:49 <cpressey> alise: Yeah, they're getting rid of continuations in 1.9. Because they're hard to implement efficiently.
22:46:51 <cpressey> Efficient.
22:46:52 <cpressey> Ruby.
22:46:54 <cpressey> HELLO.
22:47:01 <alise> no, they're not
22:47:06 <alise> 1.9.1 is out, maybe even 1.9.2
22:47:09 <alise> and they reinstated continuations
22:47:14 <cpressey> Oh, good.
22:47:16 <alise> I think they even work across threads now, which makes them something other than useless
22:47:29 <cpressey> Uh. Wow.
22:48:08 <Ilari> AFAIK, Youtube is ~30fps, while most videos on that site are ~60fps...
22:48:27 <alise> cpressey: I know right
22:48:31 <Deewiant> How's your http://www.youtube.com/my_speed
22:48:55 <alise> "We did not find any video playbacks from your location."
22:48:56 <alise> lulz.
22:49:03 <Deewiant> :-P
22:49:18 * Sgeo doesn't know Ruby
22:49:36 <alise> You are lucky.
22:49:42 <alise> It is not a very good language.
22:49:44 <MissPiggy> hard to implement efficiently??
22:49:58 <alise> Ruby is just like "yeaaa DYNAMIFUCKINGCISM"
22:49:59 <MissPiggy> what is hard abount it
22:50:01 <MissPiggy> about*
22:50:14 <MissPiggy> well maybe it's a matter of the code they already have is fucked
22:50:32 <cpressey> MissPiggy: I think one of the complaints was that VM's like the JVM are all, like, stack-based
22:50:49 <alise> MissPiggy: too much dynamiwoopy
22:52:26 <fizzie> Deewiant: "Your average video speed at this location from January 14, 2010 to February 11, 2010 was 2.89 Mbps." That's a bit strange, since the speeds shown by the test video right now are a lot higher. Well, whatever.
22:53:16 <fizzie> Maybe this is just a good time-of-day.
22:53:28 -!- tombom has quit (Quit: Leaving).
22:53:45 <Deewiant> My graph is very sawtooth-like.
22:54:52 <pikhq> MissPiggy: There are few languages more dynamic.
22:56:40 <MissPiggy> what's so dynamic about it?
22:58:05 <alise> pikhq: false
22:58:10 <alise> I love Iverson Brackets.
22:58:45 <pikhq> alise: Than Ruby?
22:58:52 <alise> yes.
22:59:02 <pikhq> Kay...
22:59:08 <pikhq> Languages more dynamic?
22:59:28 <alise> smalltalk
22:59:31 <alise> for one
22:59:37 <cpressey> "Ruby is so dynamic" is mostly marketing. Lots of languages are dynamic. It's not usually a good thing.
22:59:52 <MissPiggy> Iverson Brackets?!
23:00:03 <alise> http://en.wikipedia.org/wiki/Iverson_bracket
23:00:08 <alise> [x] = if x then 1 else 0
23:00:10 <MissPiggy> alise were you reading fortress blog?
23:00:13 <alise> [a < b] + [a = b] + [a > b] = 1
23:00:16 <pikhq> alise: Yes, Smalltalk is more dynamic.
23:00:19 <alise> sign(x) = [x > 0] - [x < 0]
23:00:22 <alise> MissPiggy: i was reading you mentioning it
23:00:29 <pikhq> Smalltalk is also... Better.
23:00:42 <cpressey> Oh, Kronecker delta I've heard of...
23:00:58 <cpressey> Python is plenty dynamic, and I curse it for being so.
23:02:22 <cpressey> Isn't there a Matz quote where he admits Ruby was supposed to be like 'Smalltalk for normal programmers' or something?
23:02:38 <alise> Ruby = Matzlisp.
23:02:43 <MissPiggy> I don't get ruby
23:02:47 <MissPiggy> like
23:02:49 <alise> He just decided to change the syntax at the end of its hodge-podge transformation.
23:02:50 <MissPiggy> what's the deal with ruby?
23:02:53 <MissPiggy> you know what I mean?
23:03:03 <cpressey> There's not much to get. Like I said, it's mostly marketing
23:03:04 <MissPiggy> that's hodge-STAR
23:03:05 <alise> " Ruby is a language designed in the following steps:
23:03:05 <alise> * take a simple lisp language (like one prior to CL).
23:03:05 <alise> * remove macros, s-expression.
23:03:05 <alise> * add simple object system (much simpler than CLOS).
23:03:05 <alise> * add blocks, inspired by higher order functions.
23:03:05 <alise> * add methods found in Smalltalk.
23:03:09 <alise> * add functionality found in Perl (in OO way).
23:03:11 <alise> So, Ruby was a Lisp originally, in theory.
23:03:13 <alise> Let's call it MatzLisp from now on. ;-)"
23:03:15 <alise> --matz
23:03:15 <MissPiggy> remove s-expression o_O
23:03:28 <alise> It's like Lisp, but get this: we take out the Lisp.
23:03:35 <MissPiggy> so basically it's a rubbish version of common lisp
23:03:39 <MissPiggy> lol
23:03:41 <alise> "Have sex with me, women! I am a genius!"
23:03:47 <alise> "I invented MATZLISP!"
23:07:27 -!- oerjan has joined.
23:07:57 <cpressey> I could tell you stories about a certain troll in one of the BSD channels that that just reminded me of, but I'd much rather forget him.
23:08:15 * oerjan hugs alise
23:08:42 <alise> thanks.
23:09:13 <pikhq> MissPiggy: S-expressions aren't essential to being Lisp. I'
23:09:30 <pikhq> d say macros and the idea of the code being a list are, though.
23:09:31 <MissPiggy> just the thought of /removing/ them seems bizarre to me
23:09:44 <pikhq> There exist M-expression Lisps.
23:10:41 <AnMaster> hm "We did not find any video playbacks from your location." here too for http://www.youtube.com/my_speed
23:11:03 <AnMaster> it also suggests I download google chrome for linux
23:11:09 <AnMaster> which is strange
23:11:14 <AnMaster> since I'm on FreeBSD atm
23:12:51 <AnMaster> alise, ^
23:13:00 <alise> and?
23:13:20 <oerjan> <Gregor> Wow, today's xkcd is bad, even for xkcd. <-- it's for valentine's day. how could you possibly make a joke for valentine's day that _wasn't_ bad?
23:13:22 <AnMaster> hm it does get the right small town
23:13:24 <cpressey> I *wish* that were strange.
23:13:25 <AnMaster> that's scary
23:13:36 <AnMaster> considering I have a highly dynamic ip
23:13:54 <alise> you know how perl requires a true statement at the end of modules?
23:13:59 <alise> clearly, my language should require a ∎
23:14:09 <AnMaster> alise, a small black box?
23:14:17 <alise> http://en.wikipedia.org/wiki/End_of_proof
23:14:29 <AnMaster> oh hard to spot it was that here.
23:14:47 <AnMaster> alise, also I'm more used to the outline version
23:15:00 <alise> Your mom is more used to the outline version.
23:15:12 <AnMaster> that one doesn't even make sense
23:15:20 <cpressey>
23:15:26 <cpressey> You can use it like a rimshot, see.
23:15:37 <AnMaster> hehe
23:18:38 <cpressey> I'd like to see a language require a statement which is neither true nor false at the end of each module. Perhaps an opinion.
23:18:44 <cpressey> Posies are pretty;
23:19:00 -!- MigoMipo has joined.
23:19:15 <MissPiggy> cpressey ahaha for "∎" as rimshot
23:20:18 <alise> cpressey: Or an infinite loop
23:20:22 <alise> You have to prove it's an infinite loop.
23:20:28 <alise> The proof must be at least 100 lines long.
23:20:37 <alise> Finally, some proper busywork for programmers wanting to slack off!
23:20:46 <alise> "WHAT ARE YOU DOING" "Proving"
23:21:06 <pikhq> Huh. DSMV is removing the Asperger's Syndrome diagnosis.
23:22:15 <MissPiggy> I knew aspergers doesn't exist!!!!
23:22:21 <AnMaster> night
23:25:23 <oerjan> AnMaster: dammit i was going to comment on why uk is not a schengen member
23:25:47 <oerjan> gone :(
23:27:03 <oerjan> (iiuc it's because of the british commonwealth - they cannot have easy travelling within both zones without all of the EU having the same)
23:27:25 <alise> pikhq: So hey, it's slightly more reputable.
23:27:28 <alise> Still a bunch of crap, but.
23:28:12 <oerjan> since the schengen zone is essentially uncontrolled internally, but with strict outer borders externally
23:29:02 <oerjan> s/all of the EU/all of the Schengen zone/
23:30:00 <oerjan> i assume that the british commonwealth travel is somewhat controlled, but much weaker than the outer schengen border
23:30:31 <alise> how strict exactly is the outer schengen border?
23:31:00 <pikhq> alise: About as strict as other first-world nations.
23:32:18 <oerjan> iiuc to enter schengen from a place that doesn't have visa exemption to it, you apply to any country within, but _all_ countries are notified and can probably veto it
23:32:38 <alise> wow
23:32:42 <alise> pretty hard to enter the eu, then
23:32:43 <oerjan> i'm not entirely sure of the specifics though
23:32:50 <alise> (probably easiest to enter the uk then the eu from that?)
23:33:41 <pikhq> alise: Can't go from UK to EU unless you can enter the Schengen zone from outside it.
23:34:10 <alise> ok then, hard to enter the EU full-stop
23:34:24 <alise> letting almost any country in the eu veto any entry is pretty steep though
23:34:27 <cpressey> Is this one of those puzzles, like where farmer Brown has a boat and his pig and a coyote?
23:34:38 <alise> Travelling IMMIGRANT
23:34:49 <alise> as opposed to a non-travelling immigrant
23:34:58 <pikhq> Also, there's not a veto system in place.
23:35:06 <oerjan> by "probably veto" i mean i'm not in any way sure whether the accepting country _has_ to obey a veto
23:35:21 <oerjan> pikhq: ok
23:35:37 <pikhq> There is a common set of requirements to get a visa, and a single list of people that can't get a visa.
23:36:03 <pikhq> They must also not be a threat to the security or health of a Schengen nation.
23:37:00 <alise> is the list public?
23:37:04 <alise> i wanna see i wanna see i wanna see
23:37:44 <oerjan> i'd guess not, this list obviously includes suspected terrorists and stuff
23:37:55 <oerjan> but then i've already been wrong in this discussion
23:38:05 <alise> bah
23:38:22 <alise> 2 Jun 2006 ... So a listing on the Schengen immigration 'blacklist' in ... The current criteria for listing a person on the Schengen blacklist are set out ...
23:38:24 <alise> wanna see wanna see
23:39:08 <pikhq> The list doesn't appear to be public.
23:39:59 <oerjan> i wonder if you are even notified of being on the list if that's the reason you're denied entry
23:40:16 <pikhq> Being on the list does not necessarily deny you entry.
23:40:27 <oerjan> oh?
23:40:28 <pikhq> It's a list of people officials should look out for.
23:40:39 <uorygl> Farmer Brown and his boat are on one side of a river, along with his pig and his coyote. He can only take one animal across the river at once. If he leaves them alone together, the coyote will eat the pig.
23:40:48 <pikhq> Including people that should be denied entry, people who are wanted in a country in the Schengen zone, and missing persons.
23:40:49 <uorygl> Solution: Take the pig across. Go back. Take the coyote across.
23:41:16 <oerjan> no no no you have to take the coyote first *ducks*
23:41:29 <cpressey> But the problem is that the coyote is on the Schengen blacklist, for obvious reasons.
23:41:44 <oerjan> (hint: the coyote and pig are completely symmetric in this puzzle)
23:42:06 <pikhq> They also report lost or reported stolen *items*.
23:42:18 <cpressey> Yeah, like the boat.
23:42:28 <pikhq> (vehicles, identity documents, firearms, etc.)
23:42:58 <pikhq> The list is updated every 5 minutes.
23:43:01 <alise> haskell needs a ShowHTML
23:43:05 <alise> i need italics to show this properly :(
23:45:13 <cpressey> alise: Dare I ask?
23:45:39 <cpressey> I've been having impure thoughts about serialization lately
23:46:42 <alise> distinguishing literals from free variables in this language
23:47:20 <fizzie> So when you have the coyote and pig on the other side, how can you go back for the ducks?
23:47:22 <cpressey> You could just write out HTML in your show function
23:47:49 <cpressey> Or better - ANSI escape codes!
23:47:57 <alise> :D
23:47:59 <cpressey> Then you can make it out on your terminal
23:48:07 <alise> Perhaps bolding, or inversion.
23:48:22 <pikhq> fizzie: You get the ducks to swim.
23:50:21 <alise> Argh.
23:50:28 <alise> Fuck you, old GHC, and your lack of UTF-8.
23:50:34 <alise> Print! PRINT!
23:50:51 <oerjan> fizzie: take the coyote back, then the ducks over, then go back and fetch the coyote
23:51:12 <fizzie> oerjan: But won't the ducks eat the pig then? Those things are nasty.
23:51:27 <oerjan> oh in that case there might be a problem
23:51:42 <fizzie> Results 1 - 3 of 3 for "duck eats pig". (0.20 seconds) -- well, maybe it's not so bad.
23:51:52 <oerjan> but then there is anyhow - the ducks might swim over to the pig while you're not watching
23:53:20 <fizzie> Yes, I hear ducks take to water like a duck to water.
23:53:49 <oerjan> hm as long as the ducks are vegetarian this would seem to work. although then you really _do_ need to take the coyote first.
23:54:11 <oerjan> won't work with 3 things the coyote eats, i think
23:55:02 <oerjan> ah of course pig - coyote - duck is isomorphic to the well-known wolf - goat - bag of whatever goats eat
23:55:05 <fizzie> Well, now, as long as you don't let the coyote produce any, ahem, excrement, you've still gotten the things across, and that's what matters.
23:55:44 <oerjan> since it doesn't matter who eats whom, you've failed anyway
23:56:11 <fizzie> On the other hand, if you eat them all, you're the winner.
23:56:32 <oerjan> yeah i was going to suggest you just eat the pig straight away
23:57:09 <oerjan> now we generalize this to an arbitrary graph of -will eat- relationships...
23:57:21 <alise> cpressey: ha, that ANSI code idea was brilliant
23:57:34 <alise> thanks
23:58:40 <oerjan> that doesn't quite extend to the cannibals and missionaries case though, since that depends on majority
23:59:34 <cpressey> alise: Glad it was helpful.
2010-02-13
00:00:39 <alise> cpressey: of course, it will be rather rubbish for actually *writing* programs
00:00:41 <alise> but who does that?
00:01:56 * Sgeo needs to organize his bookmarks at some point
00:02:41 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
00:04:42 -!- GreaseMonkey has joined.
00:05:39 <Sgeo> Hm
00:06:03 <Sgeo> I did a "Clear Browsing Data" thing in Chrome, but I changed my mind, and can't seem to stop it
00:06:33 <alise> AND or OR
00:06:37 <alise> which should be defined first?
00:06:41 <alise> i.e. which is more fundamental?
00:06:44 <oerjan> NAND
00:07:19 <bsmntbombdood> pkill chrome
00:07:19 <bsmntbombdood> duh
00:07:25 <GreaseMonkey> uh, i'd go with (a & b) | (c & d) if you're thinking of ordering or something like that
00:07:27 <Sgeo> And or or = or
00:07:40 <cpressey> GRUNT
00:07:46 <cpressey> Night folks.
00:07:49 -!- cpressey has left (?).
00:07:52 <Sgeo> night..
00:07:53 <alise> GreaseMonkey: I mean as in fundamental definitionerition
00:07:56 <alise> oerjan: yes yes
00:08:20 <GreaseMonkey> i'm thinking maybe "or"
00:08:21 <oerjan> alise: you are aware that they are entirely dual in boolean logic?
00:08:31 <GreaseMonkey> which happens to be the inverse of nand
00:09:05 <MissPiggy> in boolean logic -1*-1 = -1
00:09:21 <MissPiggy> boolean logic is a LIE taught by EVIL academics
00:09:23 <alise> oerjan: of course
00:09:29 <alise> *Main> pretty conjunction
00:09:29 <alise> (⊤ ∧ α) → α
00:09:29 <alise> (⊥ ∧ α) → ⊥
00:09:33 <alise> (where alpha is bold)
00:09:48 <GreaseMonkey> MissPiggy: i'm thinking that it'd actually be ...0101010101010101 recurring
00:09:50 <alise> i'ma writa terma rewritinga systema, mamaa
00:09:55 <GreaseMonkey> i could be wrong, though
00:10:00 <alise> conjunction :: System
00:10:00 <alise> conjunction =
00:10:00 <alise> Set.fromList
00:10:00 <alise> [ Rewrite (Structure [Atom "⊤", Atom "∧", Free "α"]) $ Free "α"
00:10:00 <alise> , Rewrite (Structure [Atom "⊥", Atom "∧", Free "α"]) $ Atom "⊥" ]
00:10:16 <GreaseMonkey> wait, no, -1*-1 = 1
00:10:17 -!- jix has quit (Ping timeout: 246 seconds).
00:10:23 <alise> erm
00:10:25 <alise> wrong symbol
00:10:25 <GreaseMonkey> >>> hex(0xff*0xff)
00:10:25 <GreaseMonkey> '0xfe01'
00:10:27 <alise> should be V :)
00:10:36 -!- Leonidas has quit (Ping timeout: 252 seconds).
00:10:46 <alise> no
00:10:50 <alise> no, not wrong symbol
00:10:50 <alise> :P
00:11:03 <GreaseMonkey> ^ being and, IIRC
00:11:35 <oerjan> i _do_ have this feeling and is more immediately useful though, since it allows you to collect hypotheses
00:11:43 <alise> hmm, actually, I only need Free in the left-hand side
00:11:48 <alise> on the right, it's just like any other rewriting rule
00:11:51 <alise> rewriting to the value
00:12:20 <oerjan> (a -> (b -> c)) <=> ((a & b) -> c)
00:12:40 <alise> argh, but the structures are almost identical
00:12:44 <alise> to make them separate types is pure madness, aye
00:12:51 -!- jix has joined.
00:13:54 <alise> *Main> pretty (Set.union conjunction disjunction)
00:13:54 <alise> (⊤ ∧ α) → α
00:13:54 <alise> (⊤ ∨ α) → ⊤
00:13:54 <alise> (⊥ ∧ α) → ⊥
00:13:54 <alise> (⊥ ∨ α) → α
00:14:01 <alise> (where alpha is bold on the left-hand side)
00:14:09 <alise> interesting ordering there bob
00:14:49 <uorygl> Ack, it's Agda! Except actually probably not.
00:14:57 <alise> It's not, it's just a tree rewriting system.
00:15:08 <alise> conjunction :: System
00:15:08 <alise> conjunction =
00:15:08 <alise> Set.fromList
00:15:08 <alise> [ Rewrite (Structure [Atom "⊤", Atom "∧", Free "α"]) $ Atom "α"
00:15:08 <alise> , Rewrite (Structure [Atom "⊥", Atom "∧", Free "α"]) $ Atom "⊥" ]
00:15:21 <uorygl> What ever happened to rewriting arbitrary graphs?
00:15:23 <AnMaster> alise: so was trying that pokemon game. Got one question: how do you catch instead of fight?
00:15:31 <alise> uorygl: You can do graphs with trees!
00:15:37 <pikhq> AnMaster: ...
00:15:41 <alise> AnMaster: Go to the bag, choose a Pokeball >_<
00:15:46 <pikhq> You mean you never played Pokemon before?
00:15:46 <AnMaster> oh I see
00:15:47 <alise> There was a bloody realtime tutorial
00:15:50 <AnMaster> pikhq, correct
00:15:53 <alise> Didn't you watch it? :P
00:15:58 <AnMaster> alise, what? in which one?
00:16:07 <alise> Um, someone goes hay i catch pokemon or something
00:16:10 <alise> Oh, I don't know
00:16:12 <uorygl> alise: I tried that; I ended up thinking for hours* and not ending up with anything.
00:16:12 <pikhq> AnMaster: Were you not a child in '98 or something?
00:16:14 <alise> Whatever, enjoy the game, it's good
00:16:18 <uorygl> * Footnote.
00:16:31 <AnMaster> pikhq, well, yeah, I was the nerd with glasses back then
00:16:41 <AnMaster> well wait
00:16:45 <AnMaster> that was 1999 maybe
00:16:50 <pikhq> alise: It was "Oh, hey, let me teach you how to catch Pokemon!"
00:17:47 <pikhq> I talked to that guy a lot in my Pokemon Blue playthrough. Hooray, Missingno glitch.
00:18:11 -!- Pthing has quit (Remote host closed the connection).
00:18:20 <alise> *Main> pretty (Set.unions [conjunction, disjunction, conditional])
00:18:21 <alise> (if ⊤ then β else γ) → β
00:18:21 <alise> (if ⊥ then β else γ) → γ
00:18:21 <alise> (⊤ ∧ α) → α
00:18:21 <alise> (⊤ ∨ α) → ⊤
00:18:21 <alise> (⊥ ∧ α) → ⊥
00:18:23 <alise> (⊥ ∨ α) → α
00:18:38 <AnMaster> <pikhq> I talked to that guy a lot in my Pokemon Blue playthrough. Hooray, Missingno glitch. <-- this was saphire or something like that..?
00:18:43 <alise> Sapphire.
00:18:51 <alise> The "main" GBA Pokemon game.
00:18:54 <alise> They're all pretty much identical, though.
00:18:59 <AnMaster> heh?
00:19:03 <pikhq> Blue. The Gameboy game.
00:19:28 <pikhq> Had a large number of exploitable bugs.
00:19:39 <alise> missingno is beautiful
00:19:46 <pikhq> Missingno was the best-known.
00:19:52 <alise> http://www.utdallas.edu/~rxf023000/stuff/missingno.jpg
00:20:36 <alise> tree rewriting is fun
00:21:14 -!- Leonidas has joined.
00:21:35 -!- FIQ has joined.
00:21:40 -!- FireFly has quit (Quit: Leaving).
00:21:56 -!- FIQ has left (?).
00:23:30 <alise> okay, so basic rewriting steps: rewrite the outermost expression by matching it against rules; take the most specific (atoms rather than free variables)
00:23:52 <alise> bind any free variables, and repeat the whole process with the RHS of the rule
00:23:59 <alise> until no changes are made in one rewrite step
00:24:01 -!- Leonidas has quit (Read error: Operation timed out).
00:24:27 <MissPiggy> how do you do tree rewriting
00:24:41 <alise> like that
00:25:08 -!- zzo38 has joined.
00:25:11 <pikhq> There's actually 5 forms of Missingno...
00:25:18 <MissPiggy> what about maude
00:25:21 <MissPiggy> and CHR
00:25:54 <pikhq> That monstrosity, the Kabutops fossil, the Aerodactyl Fossil, the Ghost, and this monstrosity: http://bulbapedia.bulbagarden.net/wiki/File:000Y.png
00:26:01 <alise> MissPiggy: i'm lazy and want to do it stupidly
00:26:13 <pikhq> Last monstrosity Yellow-only, requires usage of the Mew glitch instead of the Old Man glitch.
00:26:14 <alise> besides, mine has unicode.
00:26:15 -!- Leonidas has joined.
00:26:17 -!- Asztal has quit (Ping timeout: 240 seconds).
00:26:19 <pikhq> (bug fixed in Yellow)
00:26:33 <MissPiggy> alise im writing an algebra systems
00:26:38 <MissPiggy> personal algebra sys
00:26:51 <alise> hmm, my rewriter should be a monady function for the error handling
00:26:53 <oerjan> as long as it isn't a grammar systems
00:26:54 <alise> and yield a list of rewrites
00:27:07 <alise> all you do is takewhile notidenticaltopreviousthingy on that to get the main reducer function
00:27:15 <alise> and last on that to get the normal form
00:27:18 <MissPiggy> why do you mean at least isn't a grammar systems?
00:27:26 <alise> 15:08:29 <cpressey> I fail to see how much more wrong it is to having an undecidable type system, than to have an undecidable execution model, which is essentially a given.
00:27:30 <alise> my language has neither!
00:27:51 <alise> 15:13:06 <oerjan> <oklopol> why not check the logs for when tusho was last seen <-- he calls himself uorygl these days
00:27:51 <alise> XD
00:28:13 <oerjan> my vague recollection database needs some cleanup
00:28:18 <MissPiggy> alise how do you know a rewrite system terminates?
00:28:28 <alise> not *that* language
00:28:34 <MissPiggy> alise I know a couple tricks
00:28:36 <alise> the other one, which for want of a better name is aliselang for now
00:28:39 <oerjan> alise: well _one_ of you better stop changing nick _all the time_ dammit!
00:28:43 <alise> oerjan: poo
00:28:44 <MissPiggy> alsie what about knuth-bendix completion
00:29:33 <oerjan> alise: hm i also vaguely recall discussing that takewhile notidenticaltopreviousthingy on #haskell
00:29:58 <alise> I probably was involved.
00:30:07 <oerjan> as something people confuse with fix, and maybe if it should be added to some library (don't recall if it was)
00:30:12 <MissPiggy> f your rewrite system is confluent fuck you
00:30:20 <MissPiggy> wait that didn't come out right
00:30:21 <alise> Either is a monad right
00:30:25 <MissPiggy> Either e
00:30:31 <oerjan> or was that until
00:30:32 <alise> yes yes
00:30:32 -!- zzo38 has quit (Remote host closed the connection).
00:30:33 <alise> MissPiggy: are you drunk btw :P
00:30:35 <MissPiggy> it's the only monad I have left
00:30:39 <oerjan> alise: Either e, but e needs a typeclass
00:30:49 <alise> oerjan: so it's not a monad in practice then
00:30:57 <MissPiggy> I just love term rewriting
00:31:06 <oerjan> sure it is, it's just for fail it's needed
00:31:19 <alise> what typeclass thenny
00:31:27 <MissPiggy> what are you writing thought
00:31:28 <MissPiggy> what are you writing though
00:31:29 <MissPiggy> alise
00:31:33 <MissPiggy> what are you writing
00:31:37 <alise> just a language
00:31:40 <alise> a little esolang
00:31:41 <alise> tarpit
00:31:43 <alise> rewriting tarpit
00:31:44 <MissPiggy> coool
00:31:51 <alise> like http://esolangs.org/wiki/Defcalc but better since I made it
00:31:53 <alise> i do everything better
00:32:00 <oerjan> alise: Error
00:32:21 <alise> oerjan: but i don't want to make Oops an Error
00:32:26 <MissPiggy> this is not really an esolang??
00:32:27 <alise> it's a perfectly acceptable errory snowflake by itself!
00:32:31 <alise> MissPiggy: it's a tarpit
00:32:32 <alise> tarpits are esolangs
00:32:43 <MissPiggy> what do you mean it's a tarpit?
00:32:48 <oerjan> alise: it's for converting error messages into e
00:32:54 <alise> what, http://esolangs.org/wiki/Defcalc?
00:33:08 <alise> oerjan: fail should be in a separate typeclass :(
00:33:10 <oerjan> since e is intuitively the exceptional case
00:33:18 <oerjan> (in Either e)
00:33:44 <MissPiggy> what's meant by a tarpi
00:33:48 <MissPiggy> tarpit
00:33:49 <alise> MissPiggy: :|
00:33:58 <alise> a minimalistic language, that values minimalism above all else to the point of unusability
00:34:04 <alise> ideally, pure, condensed paradigm
00:34:10 <MissPiggy> oh like scheme?
00:34:15 <alise> no
00:34:24 <pikhq> Scheme is usuable.
00:34:24 <alise> like brainfuck and underload.
00:34:25 <MissPiggy> that was a joke :D
00:34:32 <alise> i was suspecting either a joke or a troll
00:34:36 <alise> but, you know, be nice alise
00:34:42 <MissPiggy> but Defcalc looks exactly like Q
00:34:42 <pikhq> Lazy K, Brainfuck, Underload, Unlambda...
00:34:50 <MissPiggy> which is not really considered an esolang
00:34:54 <pikhq> Oh, and HQ9+.
00:35:05 <alise> well it's the little niceties and efficient evaluation that make a lang not an eso one
00:35:06 <pikhq> (though not a *Turing* tarpit. Just a tarpit. :P)
00:35:17 <MissPiggy> ohhh
00:35:19 <alise> typed tree rewriting would be nice, nice
00:35:25 <alise> also pure is q++
00:35:29 <MissPiggy> by the way
00:35:41 <MissPiggy> what tree rewrite programs do you do that aren't just functional programs?
00:35:47 <alise> dependently-typed typed tree rewriting + magical efficient evaluation algorithm = i'll just go retire
00:35:55 <alise> MissPiggy: well one you can do symbolic manipulation
00:35:59 <alise> so there's your CAS base right there
00:36:04 <MissPiggy> really?
00:36:08 <alise> sure, of course
00:36:15 <alise> symbolic evaluation == structure rewriting
00:36:16 <MissPiggy> I mean I switched from prolog to haskell because I wanted functions
00:36:32 <alise> two, you can do fancy syntax without any shit
00:36:54 <alise> as long as you can distinguish literal atom and variable you can have ``(lambda x ^^ q / r) and okay`` as a rewrite rule
00:36:59 <alise> why not
00:37:17 <alise> the only syntax you need is for defining rewrite rules, and parens
00:37:29 <alise> you can even implement operator associativity/precedence yourself
00:37:35 <alise> x + y + z = x + (y + z)
00:37:41 <alise> given = being rewrite
00:37:56 <MissPiggy> okay but I still don't really see it
00:37:57 <alise> for practical langs functional programming wins because you can evaluate it efficiently and the like
00:38:20 <MissPiggy> do these langauges implementaitons do things like Knuth-Bendix completion on your input
00:38:48 <alise> not that i know of it's really pretty simple to implement
00:39:20 <alise> you grep the set of rewrite rules, pick the one with the least free variables that fits the term, add rewrite rules with the free variables to their corresponding parts of the expression, and replace w/ the RHS
00:39:23 <alise> rinse, lather, repeat
00:40:24 <alise> MissPiggy: http://q-lang.sourceforge.net/examples/symbolic.q an example of symbolic stuff w/ rewriting langs
00:41:39 <alise> also http://q-lang.sourceforge.net/examples/dnf.q
00:41:54 <GreaseMonkey> btw guys i implemented deflate in ruby
00:42:14 <MissPiggy> hmm
00:42:29 <MissPiggy> I never really learned any more compression beyond arithmetic :(
00:42:33 <GreaseMonkey> it's fairly easy once you've nailed the dynamic huffman coding
00:42:34 <MissPiggy> which is totally cool but it's kind of basic
00:42:45 <MissPiggy> really its' just like dynamic huffman?
00:42:59 <MissPiggy> the ones I never really got were the LZwhatevers
00:43:00 <GreaseMonkey> the dynamic huffman blocks are done in a very clever way
00:43:16 <GreaseMonkey> it's LZ77/LZSS after the huffman coding
00:43:33 <GreaseMonkey> 366 lines baby \o/
00:43:37 <MissPiggy> alise, that DNF is pretty much the only rewrite system I know :P
00:44:10 <alise> doesn't take much brains to understand rewriting systems, makes sense quickly enough
00:44:33 <MissPiggy> I don't see the point of rewrite systems if they don't do a tremendous amount of analysis and derivation on your programs
00:44:36 <oerjan> you just have to rewrite your brain a little
00:44:39 <MissPiggy> why would anyone bother if you don't?
00:45:36 <alise> MissPiggy: because they're fun
00:45:36 <alise> esolangs
00:45:37 <alise> #esoteric
00:45:40 <alise> that's where you are
00:46:10 <MissPiggy> I read that whole book on All About Maude and I still don't really 'get it'
00:46:41 <MissPiggy> it's just functional programming where functions are constructors
00:46:49 <alise> disagree
00:46:51 <MissPiggy> maybe that's what the game is
00:47:03 <MissPiggy> unify functions and constructors into one thing: So that the idea is much simpler
00:47:12 <MissPiggy> so it's all just terms now (like prolog)
00:48:12 <alise> but a lot simpler than prolog
00:48:24 <alise> no searching thru logicspace and whatnot :P
00:48:37 <alise> just dead simple match term against most specific rule, replace with RHS
00:49:45 <alise> oh, one useful extra rule (maybe) is to have (just inventing syntax here) a->b : c
00:49:49 <alise> so you can do, for example
00:50:00 <alise> (lambda x e) y = x -> y : e
00:50:06 <alise> i.e., "with rule x -> y, e"
00:50:19 <MissPiggy> yeah but I mean
00:50:35 <MissPiggy> the obvious approach is to just take the equations in the program and rewrite them iteratively
00:50:47 <MissPiggy> but there is some algorithms, I think, which can improve it
00:51:06 <alise> oh, of course
00:51:08 <MissPiggy> same answer (assuming a confluent system)
00:51:16 <alise> but those are equivalent implementations, i.e. theoretically irrelevant
00:51:30 <alise> for purity and simplicity you look at the dumbest implementaiton
00:51:53 <alise> i think my language is all confluent and that jazz
00:52:04 <alise> incidentally tree rewriting systems leave io very simple and whatnot
00:52:05 <alise> if you do
00:52:07 * MissPiggy wonders what happen if you do
00:52:13 <MissPiggy> x + y = y + x
00:52:16 <MissPiggy> y + x = x + y
00:52:18 <MissPiggy> in Q
00:52:37 <alise> x <- e; y = x (lambda e y)
00:52:51 <alise> x; y = x (thunk y)
00:52:59 <alise> and then you can do
00:53:07 <alise> print "hi"; print "yo"; x <- getLine; print x
00:53:08 <alise> ->
00:53:19 <MissPiggy> heh cool
00:53:34 <alise> print "hi" (thunk (print "yo" (thunk (getLine (lambda x (print x))))))
00:53:39 <alise> well, guess you need some sort of final terminator
00:53:46 <alise> x; = x (thunk nil)
00:53:50 <alise> anyway, that can reduce to say
00:54:05 <alise> putc 'h' (putc 'i' ... etc
00:54:08 * MissPiggy is gonna reskim term rewriting and all that
00:54:20 <alise> and when the getLine reduces, it all just turns into an inert structure
00:54:25 <alise> but since you're inherently lazily evaluating it
00:54:30 <alise> (because that's what term rewriting _is_, lazy)
00:54:36 <alise> you can output and input as you go
00:54:57 <alise> so you write a few terms inside the language, and have the runtime system just evaluate it and interpret a very very simple IO structure
00:55:04 <alise> and you have a syntactically-sugary IO system
00:55:12 <alise> can't really do that in the same way with functional langs
00:55:19 <alise> i mean, term rewriting _is_ functional
00:55:21 <alise> but you kniow what i mean
00:55:39 <MissPiggy> term rewriting is lazy?
00:55:55 <alise> well it can be
00:55:57 <MissPiggy> what if you have two rules that go to different foobars
00:56:02 <alise> K x y = x
00:56:07 <alise> K x destroyEntireWorld -> x
00:56:10 <MissPiggy> lol
00:56:12 <alise> destroyEntireWorld is never reduced
00:56:12 <MissPiggy> ok
00:56:17 <MissPiggy> yeah but it MIGHT be ?
00:56:21 <alise> why
00:56:38 <MissPiggy> well my thought with confluence is you'd expect x + y to be the same if you eval x or y first
00:56:41 <alise> because of K x (poop y) = ...
00:56:45 <alise> right
00:56:54 <alise> well sure
00:56:58 <alise> but that's the same way as haskell is lazy
00:57:01 <alise> you gotta force sometime
00:57:10 <alise> it's lazy enough to allow incremental io, is the point
00:58:49 <MissPiggy> you know the word problem?
00:58:58 <MissPiggy> you get a 'word' in group theory like
00:59:04 <MissPiggy> f*o*o*b*a*z
00:59:11 <MissPiggy> and you want to find out if it equals some other word
00:59:40 <MissPiggy> and you can only use the rules of group theory (the specific group might have certain new equivalences compared to an arbitrary group)
00:59:52 <MissPiggy> that is an undecidible problem but sometimes it is decidible
01:00:21 <MissPiggy> anyway, if you code that sort of thing into a rewrite system, like Q -- you will lose the declarative meaning of =, all = means in that case is LHS turns into RHS
01:00:28 <MissPiggy> I think ?
01:01:21 <alise> yeah
01:01:24 <alise> i think so
01:01:48 <alise> (if x then a else b) using 0/1 booleans: (a-b)x + b
01:01:54 <MissPiggy> I like the idea you can specify a theory by equations, then it decides equality on it
01:01:58 <alise> w/ iverson brackets: (a-b)[x] + b
01:02:37 <MissPiggy> x=1-[x=x]
01:03:03 <alise> is that x=(1-[x=x])?
01:03:08 <alise> presumably for x = 0 or 1
01:03:18 <alise> 0=(1-1), yes, but 1 /= (1-1)...
01:03:45 <MissPiggy> x=[x=0]
01:04:27 <alise> well, of course.
01:04:52 <MissPiggy> ??
01:04:57 -!- kar8nga has quit (Remote host closed the connection).
01:05:10 <alise> obviously x=[x=0]
01:05:23 <alise> same thing as saying x = (x = true)
01:05:28 <MissPiggy> 0 is true?
01:05:33 <alise> i.e. x is true iff x is true
01:05:34 <MissPiggy> that's esoteric
01:05:39 <alise> erm, right
01:05:42 <alise> obviously the negation of that
01:05:44 <alise> :D
01:06:18 <Sgeo> Well, thank you Xstreet SL, for essentially removing my free competitors from the public eye
01:08:05 * MissPiggy can't think of anything else than x=[x=0]
01:09:28 <alise> x=[x=1] :P
01:09:32 <alise> that is actually true for instance
01:15:03 <MissPiggy> 1 + Sum{i = 1..} [i <= x] = x
01:15:22 <MissPiggy> smallest interesting number
01:15:37 <MissPiggy> XD
01:18:38 <alise> MissPiggy: remind me to define my own Eq that does alpha-conversion
01:18:43 <alise> (otherwise using Set is pointless)
01:19:43 <MissPiggy> dude
01:19:53 <MissPiggy> use de bruijn indices!!!!!!!!!
01:20:09 <alise> hmm
01:20:11 <alise> maybe i will.
01:20:12 <alise> yeah, i will
01:20:24 <alise> no
01:20:27 <alise> I won't
01:20:31 <alise> because in the end, *all* atoms are variables
01:20:36 <alise> so instead of if foo then bar else xyz
01:20:40 <alise> i'd get 3 293 54 2
01:24:18 <alise> MissPiggy: if i can actually get (dependent) typing onto a tree rewriting system
01:24:24 <alise> plus an efficient method of evaluation
01:24:28 <alise> aliselang will have changed completely
01:24:50 <MissPiggy> hmmmmmmmmmmmmmmmm
01:24:53 <MissPiggy> that's an interesting thought
01:25:14 <MissPiggy> one thing you don't have to worry about is pattern match coverage
01:25:54 <alise> why not?
01:26:11 <alise> heh, interesting thing is that you can have a function of forall a. a -> ...
01:26:14 <alise> and do actual meaningful processing
01:26:19 <MissPiggy> because it's not functions
01:26:22 <alise> (since it'd let you do any rewrite)
01:26:30 <alise> it'd be a very different type system
01:26:34 <alise> only used to restrict rather than to relax
01:26:57 <MissPiggy> yeah since you have stronger conversion than normal reduction that might be nice for type checking and proofs
01:27:13 <MissPiggy> reflective proving might be possible without quotation :o
01:27:58 <alise> the thing with a tree rewriting system is that values are never magically created
01:28:06 <alise> every value exists in stasis, because it's just an inert term
01:28:40 <alise> set N = { 0, S (x:N) }
01:28:48 <alise> then S : N -> N
01:29:02 <alise> but S wasn't created by doing that
01:29:10 <alise> it was just given a more restrictive type, and added to a set
01:29:16 <alise> well
01:29:21 <alise> its "result" was added to a set
01:29:24 <alise> not the rule it self
01:30:02 * alise sticks to the convention uppercase=free variable
01:31:11 <alise> set C = { (A:R) + (B:R) i }
01:31:33 <alise> I think as long as x + (y i) isn't defined, i.e. i is inert and + doesn't match on it, that's perfectly fine
01:31:38 <alise> and lets you say 2 + 3 i
01:31:51 <alise> hmm, dunno how to do type inference
01:31:55 <alise> there's no barrier to a value being in two sets
01:33:32 <alise> MissPiggy: this is really interesting
01:33:47 <MissPiggy> yeah it is actually
01:33:49 <alise> set B = { 0, 1 }
01:33:55 <alise> set N = { 0, S (x:N) }
01:33:59 <alise> but 1 is just sugar for S 0
01:34:06 <alise> so we have
01:34:10 <alise> set B = { 0, S 0 }
01:34:13 <Sgeo> mmm, sugar
01:34:14 <alise> set N = { 0, S (x:N) }
01:34:28 <alise> in B, S 0 I think would turn into S (0:B)
01:34:40 <alise> since S : a -> a would be defined before, i.e.
01:34:45 <alise> no matter what type you make it, it never changes the type
01:34:52 <alise> so we'd be able to infer that B is a subtype of N
01:35:05 <alise> and you'd be able to take the factorial of true :-)
01:35:53 <MissPiggy> [true]!
01:36:18 <alise> [x] = x if you have 0, 1 as booleans
01:36:27 <alise> hmm
01:36:40 <alise> you can implement optimisations inside the language!!!
01:36:49 <alise> map F (map G XS) = map (F . G) XS
01:37:09 * MissPiggy tries to make the biggest number I can out of iverson bracket using the fewest number of symbols
01:37:15 <alise> MissPiggy: guards would be nice, meaning "this only actually matches the terms if"
01:37:29 <MissPiggy> alise, CHR has like
01:37:39 <MissPiggy> head <=> guard | body.
01:37:52 <MissPiggy> and guard is optional
01:38:00 <MissPiggy> but it's not a rewrite system
01:38:34 <alise> N ! | 0 < N < 2 = 1
01:38:42 <alise> N ! | N >= 2 = N * (N-1) !
01:38:50 <alise> that way you could define N ! for negative N separately
01:39:06 <alise> because if N < 0, those rules don't match
01:39:59 <alise> map F (XS ++ YS) = map F XS ++ map F YS
01:40:00 <alise> hahah
01:40:08 <alise> you can literally translate haskell optimisation rules directly into tree rewriting ones
01:40:24 <alise> the only thing more you need is a declaration specifying "this would be clever to do at compile-time"
01:40:29 <alise> maybe not even that given a sufficiently-smart compiler
01:41:01 <alise> hmm, I guess to infer types you need something like
01:41:08 <alise> 0 : B | N | ...tons of types...
01:41:40 <alise> i like this i do, i do
01:41:49 <MissPiggy> I can't make big numbers using the iverson bracket :(
01:42:01 <MissPiggy> it's stronger than mu!! this should be easy
01:42:03 <alise> i love how you can just define
01:42:06 <alise> x < y < z
01:42:08 <alise> separately
01:42:19 <MissPiggy> how come it doesn't get confused with x < y?
01:42:30 <alise> because it's more specific, i.e. you have to add less stuff
01:42:37 <alise> a free variable (i.e. argument) counts as adding stuff
01:42:41 <alise> adding parens counts as adding stuff
01:42:50 <alise> and adding parens is more serious than a free variable
01:42:59 <MissPiggy> ahh
01:43:02 <alise> so if you can choose either x < y < z or x < (y < z), x < y < z wins
01:43:03 <MissPiggy> so it's like object oriented
01:43:07 <alise> not really :P
01:43:13 <alise> it's just part of the "pick the most specific rule"
01:43:59 <MissPiggy> that sounds like OO
01:44:25 <alise> howso?
01:45:00 <alise> it's just to resolve ambiguous rules... if you have an x + y rule and an x + 0 rule, obviously you want to pick the latter; so you select the one with the least free variables
01:45:34 <alise> and if you have x < y < z, well X < Y < Z is a more specific rule than X < Y for that, we know this intuitively; and since the former would be x < (y < z) or (x < y) < z, we can say this as: pick the one that makes us add the least parentheses
01:45:48 <alise> X < Y < Z has one more free variable than X < Y, but the parens rule takes precedence over the free-variable rule in all cases
01:46:19 <alise> i may just be a genius
01:46:54 <alise> MissPiggy: one issue with tree rewriting is that you can just add any old typo and it works as a variable name
01:46:57 <alise> because it's just an inert tree
01:47:08 <alise> but you can have a rule, say
01:47:12 <alise> (in the compiler)
01:47:36 <alise> any name not in a set or used in a rewrite rule that matches it triggers an error and halts compilation
01:47:48 <alise> unless you add some compiler decl to say "it's okay man"
01:49:40 <alise> MissPiggy: should work right?
01:49:45 <alise> 90% of the time you'll work with typed stuff
01:49:57 <alise> hmm, merd has those Foo | Bar types
01:50:10 <MissPiggy> alise these was an idea to use term rewriting in Coq
01:50:14 <alise> [[the type of list [ 1, "foo" ] is a list of elements of type 1|"foo"]]
01:50:19 -!- Gracenotes has quit (Remote host closed the connection).
01:50:21 <MissPiggy> stuff like 0 + x --> x and x + 0 --> x
01:50:32 <alise> incidentally the Int/Integer bullshit you get in haskell doesn't exist in this lang
01:50:39 <alise> because Int would be a subset of Integer
01:50:43 <alise> the interface would be like
01:50:57 <alise> set Int = { 0, 1, ... abignumber }
01:51:05 <alise> set Integer { 0, S (N:Integer) }
01:51:16 <alise> and since 1 = S 0, 2 = S 1 = S (S 0), etc., they come out to be subsets
01:51:36 <alise> of course, it means that what's of type Int changes depending on the machine, which is worrying
01:51:38 <alise> but perhaps cool
01:51:45 <alise> programs that will overflow just won't compile
01:52:11 <alise> i'm really liking this idea
01:52:46 <alise> MissPiggy: i'm digging it are you digging it :|
01:52:47 <alise> DIG IT
01:53:24 <alise> say, we can do currying with this thing
01:53:26 <Sgeo> Wait, is this turing complete? How can a compiler for a turing-complete language detect that something will happen?
01:53:42 <alise> f x y can be (f x) y and rewrite just fine
01:53:47 <alise> since the rewrite rule will have less parens, blah blah
01:53:49 <MissPiggy> how can a compiler really KNOW anything?
01:54:02 <alise> Sgeo: because x+y : Int is only acceptable if x+y is of type Int
01:54:19 <alise> if Int is a finite set, given the definition of addition, we obviously know the top element
01:54:32 <alise> i'm tired
01:54:51 <Sgeo> May I assume that the compiler will complain even in cases where an overflow would never occur?
01:55:26 <alise> well you couldn't define + : int -> int -> int i don't think
01:55:36 <alise> because what is maxint + maxint?
01:55:51 <alise> it'd have to be int -> int -> maybe int, or +overflowing : ...
01:57:05 <alise> I like Fortress' syntactic heresy
01:57:12 <alise> a[x] -> a_x especially
01:58:30 <MissPiggy> Fortress is pretty cool looknig
01:58:31 <alise> MissPiggy: have you used texmacs?
01:58:32 <MissPiggy> looking
01:58:37 <alise> it looks good, maybe a good editor for my lang
01:58:42 <MissPiggy> yeah I like texmacs though it's horribly slow to use
01:58:43 <alise> what with its mathematically notation stuff
01:58:50 <MissPiggy> there's some algebra systems in it which is nice
01:59:00 <alise> slow is it? I'm installing it now so yeah
01:59:10 <MissPiggy> would be so so so cool to use it for a programming language :P
01:59:21 <alise> well if this goes well that is my plan :)
01:59:24 <MissPiggy> I want epigram mode in texmacs with all the coloring in
01:59:41 <alise> nice fancy syntactical, typed tree-rewriting language
01:59:46 <alise> it'd be so... lovely
02:00:44 <alise> will take some getting used to that (forall a b. a -> b) can actually have some meaningful values, though
02:00:46 <alise> like
02:00:53 <alise> frobnicate 0 = 72
02:01:00 * MissPiggy looks up rewriting on wikipedia -- there is a Philosophy section
02:01:08 <alise> frobnicate "a" = [00,"haberdashery"]
02:01:12 <alise> frobnicate X = X
02:01:14 <MissPiggy> Philosophy of term rewriting: What does it mean for a term to be rewritten?
02:01:18 <alise> xD
02:01:26 <MissPiggy> At what point does a term cease to exist?
02:02:25 <alise> the only thing aliselang was missing was the CAS
02:02:30 <alise> adding symbolic stuff seemed like an afterthought
02:02:37 <alise> but if I can blend Agda and Q/Pure, well, why the fuck not
02:03:19 <MissPiggy> I love sites like this http://rewriting.loria.fr/
02:03:35 <MissPiggy> the moment you see that banner you know the authors of this site LOVE term rewriting
02:03:44 <alise> lol
02:04:09 <alise> methinks a functionalish type system for a term rewriting language will be way different to anything the haskellers have ever seen
02:04:19 <alise> for instance, if you have a rule (foo X Y), that doesn't mean that foo : that
02:04:28 <alise> in fact, you need syntax as part of the types
02:04:32 <MissPiggy> principle typing
02:04:33 <MissPiggy> GONE
02:05:10 <alise> like
02:05:14 <alise> say you want the analogue of
02:05:18 <alise> apply :: (a -> b) -> a -> b
02:05:21 <alise> it'd be
02:05:44 <alise> assuming that by (a -> b)
02:05:47 <alise> we want a rewriting term
02:05:49 <alise> not some lambda structure
02:05:53 <alise> like, apply apply should be acceptable
02:06:27 <alise> apply (x | x A : B) A : B
02:06:28 <alise> I think
02:06:33 <alise> because it's not just a -> b
02:06:37 <alise> it could be x ? y : z
02:06:39 <alise> and then x A wouldn't work
02:06:52 <alise> in fact you couldn't pass it as-is because it doesn't have one name
02:07:23 <alise> of course, the sane thing to do is just to have (λ(X Y Z) X ? Y : Z) :P
02:08:44 <alise> well, one thing's for sure
02:08:47 <alise> this language won't be more of the same...
02:09:01 <alise> we're so used to thinking of applying function-values to other values
02:09:13 <alise> but first class rules is a damn interesting idea
02:09:46 <alise> fortress's automatic parallelisation is sweet
02:09:54 <alise> that's really easy with term rewriting i think
02:10:05 <alise> since it's literally just splitting the evaluation of a term if you deem it good
02:11:53 <alise> MissPiggy: another thing tree rewriting languages can do: invert functions
02:12:01 <MissPiggy> what??
02:12:02 <alise> since lambdas have their contents exposed, you just fiddle about a bit
02:12:04 <alise> well not all functions obviously
02:12:05 <alise> but i mean
02:12:08 <alise> in haskell functions are opaque
02:12:10 <alise> but if you have
02:12:16 <alise> set A -> B = { Lam ... }
02:12:18 <alise> in a term language
02:12:26 <alise> their bodies are just inert blah blahs
02:12:31 <alise> and you can rewrite them as usual
02:12:55 <MissPiggy> http://www.cs.tau.ac.il/~nachumd/rewrite/index.html lol this page as <blink> tags term rewriting enthusiasts are crazy
02:15:36 <alise> you could have a term like
02:15:37 <alise> err
02:15:40 <alise> i'll just give an example
02:15:43 <alise> N ! = ...
02:15:55 <alise> doc (N !) = "blah blah blah"
02:15:57 <alise> and you could do
02:16:02 <alise> doc (3 !) and get factorial's docs
02:16:04 <alise> or doc (n !)
02:16:05 <alise> etc
02:16:13 <alise> i think the type would be
02:16:28 <alise> doc : forall a b. a -> (String | b)
02:16:33 <alise> the | b being implicit i guess
02:16:37 <alise> since if you have undefined cases
02:16:42 <alise> like doc "a chicken"
02:16:46 <alise> it'll just return doc "a chicken"
02:16:49 <alise> so you'd just write it as
02:16:52 <alise> doc : forall a. a -> String
02:18:42 <alise> one thing's for sure
02:18:46 <alise> TeXmacs is beautiful
02:18:53 <alise> i love computer modern
02:20:15 <MissPiggy> yeah I like it
02:21:27 <MissPiggy> http://www.cs.unm.edu/~mccune/sobb2/
02:23:46 <alise> haha 2 \over<RET>2<RET> in TeXmacs shows as 2 0.5
02:24:21 <Sgeo> Time to WinDirStat
02:24:58 <Sgeo> 90MB of free space o.O
02:26:10 <alise> MissPiggy: wow texmacs is nice, why do people use silly things like lyx
02:26:39 <MissPiggy> well i don't actually write TeX :D
02:26:56 <MissPiggy> I j ust wanted it for a GUI
02:27:26 <alise> tex is convenient for quick mathematical stuff, though
02:27:37 * MissPiggy uses paper
02:27:44 <Sgeo> I think I should learn LaTeX
02:27:44 <alise> less quick than that :P
02:27:46 <alise> I mean quick to input
02:27:52 <alise> besides, why write A[N] when you can write A_N<right> eh
02:30:44 <alise> admittedly what I really want is you type A[ and see A(subscript cursor)
02:30:59 <alise> then you type N and see A(subscript N with some sort of red cursor to the right indicating "incomplete")
02:31:06 <alise> then you type ] and the cursor gets big again and non-red
02:34:47 <alise> I want to have italic lowercase names as vars in the viewing form of my lang because it's prettier but it creates a bad clashing with the Foo syntax of the ascii form :(
02:40:56 <alise> MissPiggy: what do you think of literate programming?
02:41:33 <MissPiggy> I LIKE it
02:42:01 <alise> MissPiggy: but do you LIKE IT like it?
02:42:12 <MissPiggy> yes
02:42:15 <Sgeo> Why does Chrome hate Reddit so?
02:42:16 <MissPiggy> 100%
02:42:35 <alise> MissPiggy: Then what do you think of TeXmacs literate programming where a non-literate program just happens to be entirely within an equations block?!
02:42:48 <alise> Literacy for all!
02:44:22 <oerjan> personally i think only literates should be allowed to program
02:48:31 <alise> MissPiggy: agree or disagree: fortress sticks a little *too* close to mathematical notation
02:48:43 <MissPiggy> no clue ..
02:48:51 <alise> imo it does; it even uses |x| for abs
02:48:59 <MissPiggy> well I hate |x|
02:49:15 <pikhq> oerjan: Hear hear.
02:49:23 <alise> a lot of the time, mathematical notation sucks
02:49:30 <alise> because there isn't really any underlying rules, at all
02:49:38 <alise> you just invent domain-specific notation, regardless of any clashes
02:49:58 <pikhq> Many of the ideas in mathematical notation are decent.
02:50:08 <pikhq> Unfortunately, it clashes a *lot*.
02:57:27 * Sgeo now has 15.2GB free :D
02:57:40 <Sgeo> Removing Portal and Team Fortress from my HD really helped
02:58:44 -!- Asztal has joined.
02:59:48 <alise> hmm
02:59:57 <alise> how easy is it to get real LaTeX to render in realtime, I wonder?
03:00:04 <alise> complete expressions, just... really quickly and incrementally
03:00:44 <alise> "And that, friends, is how I solved the Halting Problem." --Conor McBride
03:03:45 <alise> MissPiggy: I think I prefer having set C = {Foo (a:R) (b:R)}
03:03:48 <alise> then having
03:03:57 <alise> i as a separate thing
03:04:03 <alise> so that a + bi can be a + b*i
03:04:10 <alise> but... is having juxtaposition as multiplication really something I want?
03:04:31 <MissPiggy> no it's not!
03:04:38 <alise> right
03:04:43 <alise> but otherwise, a + bi looks ugly
03:04:46 <alise> because i has to be in text
03:04:49 <alise> (because italics = variable)
03:04:57 <alise> so you get itaaaalic bSTRAIGHT i
03:08:03 <alise> MissPiggy: so, that's one problem with tree rewriting systems
03:08:11 <alise> variable vs atom
03:08:35 <MissPiggy> huh?
03:08:40 <MissPiggy> why is it a problem?
03:08:48 <alise> if x then y else z
03:08:52 <alise> you need to mark the variables right?
03:08:53 <Sgeo> Chrome hates Reddit :(
03:08:54 <alise> if X then Y else Z
03:08:56 <alise> in the LHS of a rule
03:09:01 <alise> so then when you go to define complex numbers
03:09:11 <alise> set C = {(A:R)+(B:R)i}
03:09:17 <alise> so your wonderful function working on complex numbers
03:09:19 <alise> has to say
03:09:24 <alise> (A + B i)
03:09:28 <alise> this is fine in ascii, absolutely fine
03:09:42 <alise> but when you go into TeX-esque land,
03:09:54 <alise> you think hey, it'd be nice if italics = variable and roman = literal
03:09:59 <alise> after all, that's how mathematics is usually typeset
03:10:00 <alise> so
03:10:01 <alise> you get
03:10:03 <alise> a + bi
03:10:05 <alise> rendered as
03:10:10 <alise> italic a + italic bSTRAIGHT i
03:10:19 <alise> and it looks unnatural and weird
03:10:20 <alise> and you are sad
03:10:58 <alise> or maybe I'm crazy and it's fine
03:11:45 <alise> MissPiggy: one thing I'd like is to have two definitions of types, functions etc
03:11:57 <alise> one is the equational definition, which is the simplest, purest form; inefficient as hell
03:11:59 <alise> and one is the runtime definition
03:12:11 <alise> the former is used for everything but the actual crunch time, making inferring things, etc. easier
03:16:24 <alise> it is stupid how little fancy stuff today's languages have
03:19:09 -!- rodgort` has quit (Quit: Coyote finally caught me).
03:21:24 <alise> int64? bah. more like \mathbb{N}_{64}
03:21:32 <oerjan> alise: actually i think i is usually typeset as a variable
03:21:39 <alise> oerjan: exactly, but you can't
03:21:42 <alise> because it's not a variable
03:21:48 <alise> it's part of the syntax of the rewriting rule
03:22:00 <alise> you could define set C = { boring stuff } and have i be a separate variable, I guess
03:22:06 <alise> but you wouldn't be able to pattern match on it
03:22:09 <alise> which is lame
03:23:10 <oerjan> ah
03:23:51 <MissPiggy> by
03:25:06 -!- MissPiggy has quit (Quit: Lost terminal).
03:46:33 <alise> As a bonus, you also get "constructors with equations" for free. E.g., suppose that we want lists to automagically stay sorted and eliminate duplicates. In Pure we can do this by simply adding the following equations for the : constructor:
03:46:34 <alise> > x:y:xs = y:x:xs if x>y; x:y:xs = x:xs if x==y;
03:46:34 <alise> > [13,7,9,7,1]+[1,9,7,5];
03:46:34 <alise> [1,5,7,9,13]
03:46:36 <alise> pure is so cool
03:46:38 -!- augur has joined.
03:57:05 -!- jcp has quit (Remote host closed the connection).
04:02:31 <pikhq> That is rather cool.
04:03:28 <alise> i'm thinkin'
04:03:31 <alise> typed term rewriting
04:03:33 <alise> next big thing?
04:10:39 <pikhq> Maybe.
04:11:37 -!- GreaseMonkey has quit (Ping timeout: 256 seconds).
04:11:58 -!- GreaseMonkey has joined.
04:13:33 <uorygl> What we need is a typechecker for Thue.
04:14:03 <uorygl> and T::=T
04:14:07 <uorygl> "Oi, what? I don't think so."
04:24:09 <alise> pikhq: \mathbb{Z}_32. Bit-specified integers have never looked so classy.
04:24:48 <oerjan> *_{32}
04:25:09 <pikhq> alise: Heh.
04:26:17 <alise> oerjan: shaddup
04:26:36 <oerjan> also, that would be 5 bits, not 32 with usual meaning
04:28:01 <alise> oh, I forgot stupid mathematicians overloaded it
04:28:03 <alise> idiots :P
04:28:14 * oerjan cackles evilly
04:28:17 <alise> \mathbb{Z}_{2^{32}} right?
04:28:24 <oerjan> right
04:28:24 <alise> well that's just even classier.
04:28:52 <alise> n \textnormal{bits} = 2^n
04:28:57 * Sgeo just sent for a self-test kit to go on a bone marrow donor registry
04:29:03 <alise> \mathbb{Z}_{32 \textnormal{bits}}
04:29:07 <alise> Sgeo: aiee the pain
04:29:08 <alise> ow ow ow
04:29:32 <Sgeo> I'm pretty sure there won't be any pain unless I end up actually donating
04:29:34 <alise> \times or \cdot for the standard multiplication operation, I wonder?
04:29:37 <Sgeo> And even then, it's worth it
04:29:37 <alise> \cdot is lighter
04:29:48 <alise> \times is more... timesy
04:29:52 * oerjan really hopes Sgeo doesn't have to get an actual bone marrow sample for the test
04:30:03 <pikhq> oerjan: I doubt that would be a self-test.
04:30:04 <Sgeo> It's a cheek swab
04:30:21 <oerjan> oh not even drawing blood? pussies!
04:30:21 <pikhq> Sgeo: Coated with sulfuric acid!
04:30:29 <oerjan> </hypocrite>
04:31:18 <oerjan> alise: so, get with the \times?
04:31:19 * alise tries to figure out how to tell LyX to add more spacing in between the equations
04:31:55 <Sgeo> Isn't it better to convey semantic meaning?
04:32:09 <alise> that doesn't change the fact that the output is ugly because it's too close together
04:32:47 <alise> but, god, \textnormal{set }\mathbb{Q}&=\left\{ \frac{n:\mathbb{Z}}{d:\mathbb{Z}}\right\} may just have been the most beautiful thing I've written in my entire life
04:32:55 <alise> er, should it be \textnormal{set } or \textnormal{set}\ ?
04:33:01 -!- augur has quit (Ping timeout: 256 seconds).
04:36:01 <alise> anyway
04:36:06 <alise> set Q = {(N:Z)/(D:Z)}
04:36:06 <alise> (A/B) + (C/D) = ((A*D) + (B*C)) / (B*D)
04:36:06 <alise> (A/B) * (C/D) = (A*C) / (B*D)
04:36:07 <alise> ->
04:36:13 <alise> \textnormal{set }\mathbb{Q}&=\left\{ \frac{n:\mathbb{Z}}{d:\mathbb{Z}}\right\} \\\frac{a}{b}+\frac{c}{d}&=\frac{(a\times d)+(b\times c)}{b\times d}\\\frac{a}{b}\times\frac{c}{d}&=\frac{a\times c}{b\times d}
04:36:30 <alise> (just imagine something terribly pretty)
04:36:51 <Sgeo> Render it and put it online and show us!
04:37:01 <alise> I'm trying to, but I can't get LyX to space it out some more!
04:38:06 <alise> There; using the principle of the Most Horrific Hack, I just added dummy lines in-between.
04:38:14 <alise> oerjan: \textnormal{set }foo or \textnormal{set}\ foo?
04:38:43 <oerjan> bah
04:39:05 <alise> wut
04:39:19 <oerjan> will set always be used with a space after?
04:39:31 <oerjan> otherwise the second seems more logical
04:41:47 <alise> well, the syntax we're expressing is "set NAME = {...}"
04:41:48 <oerjan> is set a command or a part of "set Q"?
04:41:51 <oerjan> ok
04:41:59 <alise> set as in a set set
04:42:00 <alise> as in a type
04:42:05 <alise> as opposed to "set var = val"
04:42:07 <oerjan> in that case it would be more logical to have set _outside_ the math
04:42:20 <alise> erm, but it's in an equation block thingy
04:42:24 <oerjan> i suppose that may not ... right
04:42:55 <oerjan> also why \textnormal and not \mbox
04:43:22 <alise> dunno, i'm really completely clueless with latex ::)
04:43:24 <alise> *:)
04:43:38 <alise> i guess the spacing may be slightly different and superioer with set}\
04:43:42 <alise> due to italic/roman differences
04:44:46 <oerjan> maybe
04:44:48 <alise> i need somewhere to dump this pdf
04:45:19 * oerjan just cannot recall using \textnormal before. not that he recalls all of latex anyhow.
04:48:18 <alise> Sgeo: you have some sort of dumping ground webspace right?
04:52:22 <Sgeo> alise, yes
04:52:38 <alise> got 68 kilos free for a wonderful little pdf? :{
04:52:42 <Sgeo> Yes
04:52:58 <Sgeo> Although I'm sure you could use Normish if you wanted
04:53:16 <Sgeo> I'd be happy to put it on on diagonalfish
04:55:31 <alise> I don't even know if my Normish account still... exists.
04:56:37 <Sgeo> I don't think normish accounts die
04:56:50 <alise> Does Normish exist?
04:56:50 <Sgeo> But normish.org isn't working. THe IP addy is in #rootnomic
04:57:11 <Sgeo> * Topic for #rootnomic is: If connecting to normish.org doesn't work, try its IP address: 209.20.80.194
04:59:33 <alise> http://sgeo.diagonalfish.net/alise/Q.pdf
04:59:37 <alise> In which a delight taking the form,
04:59:37 <alise> set Q = {(N:Z)/(D:Z)}
04:59:37 <alise> (A/B) + (C/D) = ((A*D) + (B*C)) / (B*D)
04:59:38 <alise> (A/B) * (C/D) = (A*C) / (B*D)
04:59:39 <alise> is experienced.
05:00:55 * Sgeo feels useful
05:01:55 <alise> More useful than a hedgehog.
05:06:50 <Gregor> Not ... SONIC the Hedgehog?!
05:07:23 <alise> He's not actually a hedgehog. Evidence: He doesn't look like a hedgehog, his speed isn't that of a hedgehog, he can't swim but hedgehogs can, and he can talk.
05:11:54 <oerjan> are you _sure_ he cannot swim? maybe he's a witch!
05:12:21 <oerjan> let's get some ducks and compare weights.
05:13:10 <Gregor> I haven't seen any evidence that he can't swim.
05:13:30 <oerjan> i knew it! burn the witch!
05:14:48 <alise> also, the code is slightly misleading
05:15:08 <alise> in that you can have no other x/y or \frac{x}{y} of a type other than Q without clarifying the argument types in the +/* rules
05:15:34 <oerjan> i also sense a division by zero.
05:16:16 <alise> your mom is a division by zero
05:16:46 <alise> anyway x/0 will work perfectly fine so long as you don't try and do anything with it :P
05:17:03 <oerjan> O_o
05:17:09 <alise> term rewriting, oerjan
05:17:11 <alise> term rewriting
05:17:32 <alise> ok admittedly I'll probably have X/0 = some error
05:17:52 <pikhq> I'm rather certain x/0 works just fine so long as it's not evaluted in Haskell. ;)
05:18:00 <pikhq> Evaluated, even.
05:18:11 <alise> X/0 = error 'zero denominator'
05:18:16 <alise> where '...' = atom quoting
05:18:16 <oerjan> you're going to get trouble if you want to do theorem proving on that Q, though
05:18:19 <alise> i.e. foo = 'foo'
05:18:26 <alise> oerjan: well it's term rewriting, so you don't need to
05:18:29 <alise> how would you solve it anyway
05:18:40 <alise> you could have another set instead of Z as the denominator
05:18:49 <alise> set YeOldeZ = {1,2,...}
05:19:23 <oerjan> well i wasn't sure if you had left dependent types behind at the moment
05:19:28 <alise> this is a separate language
05:20:27 <alise> perhaps the two will merge; meet at the twain of betwixted befuddlement; aye, such a language would be a grand affair; or even grandiose; or more superlative experiences, but I digress, for the only truly thing in this world is that one be dependently typ'd and all that entails and the other be typ'd but, alas and yet yey, a rolling roaring proof-addict-not system of rewriting terms; so nilly-willy!
05:20:35 <alise> also, it's 5:20 am and I need sleep
05:22:04 <oerjan> sleep or loquacious prose, that's the question
05:23:10 <alise> Insert some off-the-cuff pun about country matters; for in times of reference, great great wars of reference, it seems side-references of great punnery are the only resort; recourse; holiday resort, aye, that would be a place to be
05:23:39 <alise> BUT! AND! IF! IS! THE! WHAT! Never to be never to be said the bee; I'll never be a bee who'll never be one never to be never to be; thus spoke the bee.
05:23:41 <oerjan> of course a recourse
05:24:00 <alise> And if the bee was never to be would a never-bee be a bee? Or would a never-bee never be a bee, much less in a bee's holiday resort?
05:24:13 <oerjan> eric the half a bee!
05:24:42 <oerjan> well, close anyhow
05:24:49 <alise> And what of the woodchuck, friend of the never-bee? How much never-bee wood would a woodchuck, friend of never-bee, chuck, if a woodchuck, never to be a never-bee; like the never-bee, who is never to be never to be a never-bee; could chuck never-bee wood?
05:26:05 <oerjan> about 5 tonnes.
05:26:41 <alise> AND HOW! As this 5:24 dawns the sound or silence of sleep as a propositional idea, presenting itself so sweetly, does nimble onto my tongue and lips and mind, but though I ignore it it presses at me, and yet this activity - of perhaps drunken in a way but only on unsleep (can it be said to be an entity? Certainly we cannot say such because it is the lack of an entity, but Douglas Adams had no problem with an item called no tea in his game) - portraying a vi
05:26:41 <alise> ew of insanity that somehow delicately dances on the thinking organs and amuses one so great as to flutter and carbonise the world, aye, that'd be it.
05:27:46 <oerjan> now you are just abusing the fact we cannot call you insane here
05:27:46 <alise> aye I do realise that the use of the word aye pr'haps verges on cliche now, but fuck you; no seriously, not as a joke, fuck you. all the insects are all like
05:27:48 <alise> FUCK YOU
05:27:53 <alise> AND THEY ARE COMING
05:27:56 <alise> THEY ARE COMING FOR YOU
05:27:59 <alise> FFFFFFFFFFFFFFFFUUUUUUUUCK
05:28:03 <alise> Y O O U U U U U O UO U U
05:28:05 <alise> U O O ----
05:28:06 <alise> O
05:28:08 <alise> O
05:28:09 <alise> o
05:28:10 <alise> O fui
05:28:11 <alise> O
05:28:12 <alise> Fuc
05:28:15 <alise> you K k
05:28:19 <alise> AND THEN
05:28:22 <alise> n
05:28:23 <alise> o
05:28:24 <alise> t
05:28:27 <alise> h
05:28:29 <alise> i
05:28:31 <alise> n
05:28:33 <alise> g
05:28:36 <alise> .
05:28:59 <oerjan> i'm sure there's somewhere that would publish that.
05:29:10 <alise> signed,
05:29:11 <oerjan> well for a small fee, anyhow.
05:29:18 <alise> E.E. Cummingtonites
05:30:06 <alise> ALTOIDS HAVE YOU ANY IDEA STRONG HOW THEY ARE?
05:30:15 <alise> you release the woooooooooooorld
05:30:55 <oerjan> release the world and breathe free
05:31:18 <alise> receive everything
05:31:20 <alise> not just fire but EVERYTHING
05:31:23 <alise> okay, not everything
05:31:24 <alise> but EVERYTHING
05:31:26 <alise> the THINGS
05:31:28 <alise> you can REALISE
05:31:30 <alise> they are NOT endless
05:31:34 <alise> but they are unequivocable
05:32:24 <alise> out bitches, i'm out, i'm totally out, but just for a day hey hey i'll be baaaaaaaack again another day
05:32:27 <alise> to send all my bullshit your way
05:32:40 <alise> and thus ends, thus ends, thus ends, the world not with a bang but with a whimper the worst song ever created.
05:33:09 <oerjan> whew
05:33:22 <alise> BUT WAIT
05:33:22 <Wareya> wait, what?
05:33:23 <alise> THERE'S MORE
05:33:32 <oerjan> BUT YOU SAID IT ENDED
05:33:33 <alise> YOUR UNCLE IS SECRETLY A WHORE
05:33:35 <alise> I LIED
05:33:36 <alise> I DIED
05:33:37 <alise> I CRIED
05:33:39 <alise> I ESPIED
05:33:42 <alise> maaaaaaaaaaaaaaaaaaaagic
05:33:43 <Wareya> Order my uncle now?
05:33:46 <alise> in the aiiiiiiiiiiiiiiiiiiiiiiiiiiiir
05:33:51 <alise> peaaaaaaaaaar
05:34:00 <alise> derriere
05:34:09 <alise> antelopesque
05:34:10 * oerjan kicks alise's derriere
05:34:12 <alise> Kafkaesque
05:34:14 <alise> same bloody thing
05:34:15 <alise> RING A DING DING
05:34:20 <alise> poop
05:34:23 <alise> AND LOZENGES
05:34:25 <alise> poop
05:34:29 <alise> poop, poop AND LOZENGES
05:34:35 <alise> LOZENGES, poop poop and poop
05:34:38 <alise> spam, LOZENGES, and poop
05:34:44 <alise> aye.
05:35:08 <oerjan> i think a comparison to vogon poetry is appropriate at this point.
05:35:36 <alise> vogons don't drink lozenges
05:35:42 <alise> and they don't inhale spam
05:35:46 <alise> not a valid comparison, you lose
05:35:54 <oerjan> they _exhale_ spam. close enough.
05:36:15 <alise> don't make me kill your fam', spam-hugging man.
05:36:25 <oerjan> also i was going to say vogon poetry didn't reach to your knees, here
05:36:35 <oerjan> you're _far_ worse
05:36:41 <Wareya> y
05:37:02 -!- Gracenotes has joined.
05:37:36 <alise> your knees? cheese
05:37:39 <alise> fuck the authority, please
05:37:50 <Wareya> On the topic of esoteric languages:
05:37:52 <Wareya> I just realised that Boat should be turing complete
05:37:53 <oerjan> the bee's knees, in this case
05:38:00 <Wareya> can you guys verify this?
05:38:05 <alise> boats are turing complete, hoist the sails
05:38:09 <alise> OH NO IT'S SINKING
05:38:12 <alise> grab the wooden pails
05:38:13 <Wareya> no they aren't
05:38:17 <Wareya> nuclear submarines are
05:38:22 <alise> NUCLEAR FUCKING DEATH
05:38:22 <Wareya> because c is a nuclear submarine
05:38:26 <alise> YEAHHHHHHHHHHHHHHHHH
05:38:30 <Wareya> and we all know that c is the only programming language ever
05:38:49 <Wareya> except for python
05:38:55 <Wareya> but python is a scripting language
05:38:57 <Wareya> so it doesn't count
05:39:18 <alise> goat
05:39:26 <pikhq> Actually, we all know that Haskell is the only language.
05:39:26 <alise> ahahahaha goat
05:39:31 <pikhq> Everything else is a poor imitation.
05:39:37 <Wareya> Haskell and C are the same thing
05:39:38 <alise> is this what being high is like, i should just sleep less often
05:39:41 <Wareya> like the two calculuses
05:39:42 <alise> but not now, now i should sleep
05:39:47 <pikhq> alise: Yes.
05:39:59 <Wareya> however
05:40:04 <Wareya> just the two calculuses
05:40:05 <alise> pikhq: what was that a yes to
05:40:11 <pikhq> Hallucinations should start after 48 hours awake.
05:40:15 <Wareya> C and Haskell have fundamental differences
05:40:17 <pikhq> alise: "Is this what being high is like"
05:40:21 <alise> good to know
05:40:29 <Wareya> C and Haskell are coded utterly differently
05:40:30 <alise> good to Florence Nightingale the turtlefish
05:40:40 <alise> if you know what i don't mean
05:40:56 <pikhq> Wareya: That's because Haskell makes abstraction easy.
05:41:01 <pikhq> And C makes abstraction a bitch.
05:41:09 <Wareya> I can do abstraction in C
05:41:17 <Wareya> it's my whole coding style
05:41:18 <pikhq> Yes, but it's difficult.
05:41:21 <alise> i can eat an anus
05:41:24 <alise> doesn't mean it's easy
05:41:24 <Wareya> it's the only way
05:41:25 <Wareya> I
05:41:26 <Wareya> can
05:41:27 <Wareya> code C
05:41:31 <Wareya> also, caffiene
05:41:33 <Wareya> best drug
05:41:34 <Wareya> EVER
05:41:34 <pikhq> In Haskell, each and every function makes a new abstraction.
05:41:36 <alise> DON'T YOU WANT SOMEBODY TO ABSTRACT
05:41:39 <alise> DON'T YOU NEED SOMEBODY TO ABSTRACT
05:41:46 <alise> WOULDN'T YOU ABSTRACT SOMEBODY TO ABSTRACT
05:41:49 <alise> YOU BETTER FIND SOMEBODY TO ABSTRACT
05:41:52 <Wareya> alise: Go for 78 hours without sleep
05:41:53 <pikhq> Wareya: Well, yeah. That is a sane way to code.
05:41:54 <Wareya> with caffiene
05:41:55 <alise> abstract a rabbit
05:41:57 <Wareya> godle
05:42:00 <alise> Wareya: meh
05:42:00 <pikhq> Abstractions make code easier.
05:42:08 <Wareya> anyway
05:42:11 <Wareya> http://esoteric.voxelperfect.net/wiki/Boat
05:42:18 <Wareya> can you guys confirm if this is turing complete? :<
05:42:23 <alise> stop linking or i will never leave
05:42:30 <Wareya> okay
05:42:33 <alise> prove it identical to brainfuck or lambda calculus
05:42:40 <alise> All memory addressing is treated as big endian
05:42:42 <alise> no bignums?
05:42:43 <Wareya> you should be able to implement brainfusk
05:42:47 <alise> fixed size pointers you mean?
05:42:47 <Wareya> bignums?
05:42:49 <Wareya> arras
05:42:50 <Wareya> arrays
05:42:58 <Wareya> you can store pointers in a fixed point in memory
05:42:58 <alise> but 64-bit?
05:43:00 <alise> 128-bit?
05:43:02 <Wareya> you can also point to pointers!
05:43:03 <alise> or infinity-bit?
05:43:04 <Wareya> yes
05:43:06 <Wareya> casting
05:43:09 <alise> which
05:43:11 <Wareya> you can cast to any number of bits
05:43:12 <alise> do you have infinity-bit
05:43:19 <Wareya> is infinity a number?
05:43:22 <alise> including 93847589347539847589347598347589347589345893457894375893475843957349853489534759?
05:43:24 <alise> irrelevant
05:43:34 <Wareya> CANT INFINITY
05:43:37 <Wareya> LOLP
05:43:44 <alise> well here i was thinking you were asking a question
05:43:50 <Wareya> I am
05:43:51 <alise> if you were answering mine i'd tell you whether it's tc
05:43:57 <oerjan> Wareya: but can you use an unbounded number of bits in the same program? otherwise you might have problems using unbounded memory
05:44:00 <alise> can i have a 409573498573984572398463874751834957298357287589175817346581732568714658734658745345-bit number
05:44:00 <Wareya> you can store a pointer in negitive addressing
05:44:05 <alise> answer that
05:44:10 <Wareya> and add/subreact to the addressing
05:44:12 <Wareya> yes alise
05:44:20 <Wareya> and use the pointer as normal
05:44:22 <alise> does it have flow control
05:44:34 <Wareya> you have if tests and while loops and 2D goto
05:44:44 <alise> 80% probability of tc
05:45:00 <oerjan> _if_ you have unbounded memory
05:45:11 <alise> if he has such big pointers and they work it's unbounded prolly
05:45:16 <pikhq> Wareya: I'm pretty sure that's TC.
05:45:28 <Wareya> awesome
05:46:23 <Wareya> q[n]access memory at address q with n bits in size -- you could see 32[30] which would access the long integer at addresses 27, 28, 29, and 30. Yeah, it's big endian, but that might change as this goes. I guess I could get away call this as a special case for an array of bits.
05:47:00 <pikhq> "+" = `a`[`b`] = `a`[`b`] + 1, "-" = `a`[`b`] = `a`[`b`] - 1, ">" = `b` = `b`+1, "<" = `b` = `b`-1, "[ ... ]" = %(`a`[`b`] != 0){ ... }
05:47:06 <pikhq> Okay, proved it's TC.
05:47:12 <Wareya> but
05:47:21 <Wareya> I don't have variables anymore
05:47:26 <Wareya> (q[n])[y]use value of size n at address q as an address for a value size y -- I need a better way to do this
05:47:49 <Wareya> halp
05:47:56 <oerjan> Wareya: how do you use unlimited memory in a single program
05:48:07 <Wareya> malloc
05:48:17 <oerjan> oh you have malloc?
05:48:24 <Wareya> no, but
05:48:26 <alise> so it's a boring conventional ish language then
05:48:27 <alise> yawn :P
05:48:33 <alise> heh fun consequence of my language
05:48:35 <alise> hex literal:
05:48:40 <alise> DEADBEEF[16]
05:48:42 <alise> can you figure out why?
05:48:47 <alise> hint: array indexing
05:48:50 <Wareya> the interpreter should allocate as much memory as the program asks for, dynamically
05:48:57 <Wareya> like if it comes to a pointer to 0x5000
05:49:08 <oerjan> Wareya: i am of course asking how you _refer_ to unlimited memory if bit sizes must be given
05:49:11 <Wareya> and it used to have a pointer to -0x50
05:49:29 <Wareya> then you should have a 0x5050 sized memory array
05:49:35 <Wareya> Oh, it handles memory just like BF does
05:49:58 <Wareya> that or I don't understand what you're asking
05:50:01 <oerjan> infinite tape?
05:50:04 <Wareya> yes
05:50:08 <Wareya> infinite tape
05:50:15 <oerjan> moving backwards and forwards?
05:50:20 <Wareya> yes
05:50:21 <alise> pikhq: you tell me
05:50:24 <alise> c'mon, before I sleep :|
05:50:29 <alise> <alise> hex literal:
05:50:29 <alise> <alise> DEADBEEF[16]
05:50:29 <alise> <alise> can you figure out why?
05:50:29 <alise> <alise> hint: array indexing
05:50:32 <oerjan> ok then
05:50:43 -!- augur has joined.
05:50:57 <Wareya> but I need a better way to refer to pointers
05:50:58 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
05:50:59 <Wareya> I mean
05:51:00 <pikhq> alise: Uh.
05:51:06 <alise> pikhq: hint: mathematical notation
05:51:12 <Wareya> refer to an address with a value inside of an address
05:51:34 <pikhq> alise: You're just specifying the base?
05:51:51 <alise> Well, yes...
05:52:17 <pikhq> I'm being dense ATM.
05:52:21 <pikhq> I should go to bed soon, myself.
05:52:54 <alise> pikhq: Okay, I'll just tell you.
05:52:59 <alise> DEADBEEF_{16}
05:53:03 <alise> Has it clicked yet?
05:53:19 <pikhq> Grraaaw.
05:53:21 <pikhq> Yes.
05:53:36 <alise> a[n] = array indexing = a_{n}
05:53:41 <alise> foo_{base} = mathematical notation = a[n]!
05:53:43 <alise> :D
05:53:54 <Wareya> I got it
05:54:07 <alise> Wareya: you are a clever person, you win
05:54:09 <alise> not at something
05:54:12 <alise> you just
05:54:12 <alise> win!
05:54:16 <pikhq> Jumping from math notation to programming notation and back hurts.
05:54:20 <Wareya> I understand that almost
05:54:23 <Wareya> but I get something else
05:54:38 -!- alise has set topic: totally 0 days since last anyone sighting. 'part from hcf, 2583 and a bit days. http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
05:54:43 <alise> yoyoyoyo sleep
05:54:44 <Wareya> I'll adress memory character 0xF00(16) instead of 0xF00[16]
05:54:46 <alise> seeya tomorrow bitchnizzles
05:54:48 <Wareya> night
05:55:00 <Wareya> (q[n])[y]use value of size n at address q as an address for a value size y -- I need a better way to do this
05:55:15 <Wareya> q(n)(y)
05:55:20 <Wareya> q[n][m]array with segments the size of n with the "origin" data value being at address q - with big endian, again.
05:55:24 <Wareya> q(n)[m]
05:55:42 <oerjan> clearly it should be 16[DEADBEEF]
05:56:03 <Wareya> or actually
05:56:07 <Wareya> q<n>
05:56:41 <Wareya> no wait those are my direction commands
05:56:46 <Wareya> I guess I'll change those
05:57:20 <Wareya> fuck
05:57:25 <Wareya> I ran out of closing characters
05:57:36 <Wareya> I'm using all of ({[< for other things already
05:57:54 <Wareya> "' too
05:58:03 -!- zzo38 has joined.
05:58:09 <Wareya> hi
06:01:05 <Wareya> oh, you can't use {} in the middle fo expressions or calls
06:01:47 <Wareya> awesome
06:02:19 <zzo38> I have other idea for esolang based on the C-preprocessor, after it unquote strings it will run it through the preprocessor again, and then it will continue over and over again......
06:02:35 <Wareya> until there's nothing left?
06:03:48 <zzo38> Yes, I guess so.
06:06:57 -!- coppro has joined.
06:21:27 * Sgeo misread alise as ais523 at least twice in the scrollup
06:21:45 <Sgeo> Oh, erm, e's not awake. Hope e has pings silenced
06:21:50 <Sgeo> Or isn't at the computer
06:32:32 -!- sebbu2 has joined.
06:35:39 -!- sebbu has quit (Ping timeout: 252 seconds).
06:43:11 <zzo38> ais523 does not appear to be connected
06:48:12 <Sgeo> That has what, exactly, to do with confusing anyone, or pinging al!se?
06:48:26 <zzo38> No.
06:48:30 <Sgeo> Sorry, didn't mean to get snippy
06:48:41 <zzo38> That's OK.
07:26:18 <Sgeo> v
07:26:39 <coppro> hey, you're right, it's the weekend again, neat
07:26:47 * coppro is still a little charged with Olympic fever
07:26:54 <Sgeo> erm, by v, I meant Night all
07:27:12 <coppro> lol
07:27:16 <coppro> hey alise!
07:27:18 <Sgeo> Was copying/pasting to some channels
07:28:41 -!- Sgeo has quit (Quit: /Deframentation time. Good night).
07:29:06 -!- madbr has joined.
07:33:57 -!- sebbu has joined.
07:37:00 -!- sebbu2 has quit (Ping timeout: 265 seconds).
07:42:57 -!- zzo38 has quit (Remote host closed the connection).
07:47:35 -!- coppro has quit (Remote host closed the connection).
07:49:52 -!- coppro has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:04 -!- oerjan has quit (Quit: leaving).
08:04:08 -!- madbr has quit (Quit: Radiateur).
09:13:31 -!- sebbu has quit (Ping timeout: 256 seconds).
09:20:49 -!- oklopol has joined.
09:29:17 -!- sebbu has joined.
09:32:45 -!- kar8nga has joined.
10:01:00 -!- tombom has joined.
10:11:59 -!- MigoMipo has joined.
10:50:36 -!- kar8nga has quit (Remote host closed the connection).
10:55:27 -!- Pthing has joined.
11:00:00 -!- Asztal has quit (Ping timeout: 272 seconds).
11:25:23 -!- MizardX has quit (Quit: reboot).
11:31:16 -!- MizardX has joined.
11:36:17 -!- lieuwe has joined.
11:36:51 -!- lieuwe has quit (Client Quit).
11:55:18 -!- kar8nga has joined.
12:40:30 -!- FireFly has joined.
13:02:31 -!- oklopol has quit (Quit: ( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )).
13:07:36 -!- tombom has quit (Quit: Leaving).
13:42:11 -!- MissPiggy has joined.
13:44:31 <Ilari> Whee, eBash results page seems to hang browser real good. 100% CPU usage, and it doesn't even react to killing its X connection (xkill).
13:53:50 -!- Gracenotes has quit (Remote host closed the connection).
13:57:02 -!- kar8nga has quit (Remote host closed the connection).
14:01:13 -!- Pthing has quit (Remote host closed the connection).
14:07:52 <alise> hi
14:11:29 * alise decides he wants ℵ_0 as a value in his language, just because it's cool.
14:11:49 <MissPiggy> hi
14:12:35 * alise also decides to use ⟨a,b⟩ as his tuple (or list?) syntax; he is well and truly off the deep end now.
14:13:08 <alise> and I like it
14:13:11 <MissPiggy> I lik that! except remove the commas
14:13:17 <alise> why?
14:13:18 <MissPiggy> ⟨a b c d e⟩
14:13:22 <MissPiggy> ^ SEX ON WHEELS
14:13:50 <alise> ⟨Foo "goatee", Bar "emasculate"⟩
14:14:06 <alise> is far too common to make uglier as ⟨(Foo "goatee") (Bar "emasculate")⟩
14:14:30 <alise> (and more confusing; is that ⟨( or (( or ⟨⟨ or (⟨?)
14:14:43 <alise> they look more different in latex at bigger sizes, yes, but still
14:18:13 <alise> hmm
14:19:08 <alise> (S : a -> a) seems too relaxed
14:19:21 <MissPiggy> (s : s -> s)
14:19:31 <alise> because it simply means that whatever rules you add to S, the only restriction is that they take a value of one type and return the same
14:19:41 <alise> but (a -> a) is "anything to anything"
14:19:44 <alise> which simply isn't true
14:22:47 -!- oklopol has joined.
14:24:56 <alise> MissPiggy: is set Z = {n:N, -(n:N)} a good "theoretical" definition, do you think?
14:25:18 <alise> i.e. the set Z contains values of type N, and -(a value of type N).
14:25:20 <oklopol> what context
14:25:28 <oklopol> i would never read a log
14:25:33 <alise> a proglang I'm inventing that's pretty unique for once
14:25:39 <alise> term rewriting, just so you hate it :)
14:25:43 <alise> but typed term rewriting
14:25:46 <oklopol> guess what i'm doing
14:25:48 <alise> it's pretty smexy
14:25:49 <oklopol> guess!
14:25:52 <alise> logreading
14:25:55 <oklopol> well i do love smex
14:25:56 <oklopol> nope.
14:26:11 <alise> smexing?
14:26:17 <oklopol> oh definitely not
14:26:45 <oklopol> let's just say i hate parsing
14:26:56 <MissPiggy> alise, in set theory N u {0} u -N works, but in type theory seems better to use binary numbers
14:26:59 <oklopol> i should learn to use some parsing tool
14:27:02 <oklopol> preferably a human
14:27:05 <oklopol> who can read my mind
14:27:13 <MissPiggy> alise just in terms of getting good algorithms
14:27:15 <alise> MissPiggy: you mean to define N or Z?
14:27:23 <MissPiggy> Z
14:27:23 <oklopol> Z
14:27:31 <alise> right, well, this is part of my grand plan to have "semantic definitions" and "runtime definitions"
14:27:54 <alise> i.e., you define a really mathematically pure N + operations, and then a gnarly, perhaps even unsafe set of N definition + operations; maybe even in C or whatever
14:28:03 <alise> the former holds for all compile-time reasoning, and the latter holds at runtime
14:28:15 <alise> of course, having them be equivalent is... not really enforceable
14:28:33 <oklopol> everything is doable if you're drunk enough
14:28:37 <alise> but term rewriting is so pie-in-the-sky as far as performance goes that having pure-but-inefficient definitions doesn't *really* matter :)
14:28:44 <MissPiggy> really??
14:28:52 <alise> really what?
14:28:59 <alise> well i know you have some ideas for making it faster
14:29:05 <alise> all I know is the really dumbtarded algorithm :)
14:29:44 <oklopol> did you know term rewriting rhymes with sperm rewriting
14:30:09 <oklopol> could someone please write this parser for me
14:30:32 * alise tries to tell texmacs "center this text block but have the text left-aligned"
14:30:46 <oklopol> it's like explaining math to a monkey
14:32:09 <oklopol> oh wait
14:32:14 <oklopol> i just realized this is trivial to parse
14:32:24 <oklopol> apparently the guy who made this language is a genius
14:33:12 <alise> what lang
14:33:17 <oklopol> clü
14:33:23 <alise> also you're CODING?!
14:33:45 <oklopol> yes!
14:34:02 <oklopol> i even like some of it, unfortunately i'm too tired to do anything complicated enough that i'd enjoy it.
14:34:17 <alise> hmm maybe i should have my fundamental definition of Q be the Stern-Brocot tree
14:34:25 <alise> otherwise i have 1/2 and 2/4
14:34:44 <alise> I guess a/b aka \frac{a}{b} should be : R -> R -> Q
14:35:20 <oklopol> and you could use the john gabriel tree for the definition of R
14:35:43 <oklopol> R -> R -> Q?
14:36:19 <oklopol> you're a mathman.
14:38:38 * oklopol watches alise turn in her grave as he writes a separate tokenizer
14:39:28 <oklopol> at least you used to consider that a sin, methinks
14:39:42 <oklopol> at least unless you're writing your parser manually
14:46:03 <alise> oklopol: i'm so much of a mathman that the preferred representation for the language actually has them in blackboard bold
14:47:14 <oklopol> i'm just wondering about the types
14:47:41 <oklopol> you do know R is closed under division (well almost)?
14:47:48 <oklopol> well umm
14:48:00 <oklopol> that's not actually what we need here
14:48:16 <oklopol> but clearly for all elements division by them is a surjection
14:48:26 <oklopol> to R
14:48:44 <alise> wait wait wait
14:48:48 <alise> are we talking about this
14:48:48 <alise> http://knol.google.com/k/john-gabriel/are-real-numbers-uncountable/nz742dpkhqbi/10#
14:48:50 <alise> john gabriel
14:49:00 <oklopol> yeah he's my idol
14:49:08 <oklopol> he's one total dude
14:49:34 <alise> yeah, if you use R in your programs
14:49:39 <alise> you'll get an approximation by default
14:49:55 <alise> unless you want to sacrifice equality checking, I guess
14:50:01 <oklopol> could you answer: did you suggest R -> R -> Q as the type of division
14:50:13 <alise> no, as one type of division
14:50:22 <alise> specifically, what you'd use to construct Qs
14:50:31 <alise> given that the internal constructor wouldn't be exposed
14:50:53 <oklopol> you could just contruct the Q from one R
14:51:34 <oklopol> well unless R's play some sorta special role
14:51:51 <oklopol> like 5 :: R and shit
14:52:05 <alise> why just one R?
14:52:17 <alise> obviously I'm going for human-happiness here, and \frac{1}{2} should, you know, work
14:52:29 <alise> it's not the internal constructor, that's the Stern-Brocot tree
14:52:34 <alise> just the thing that, you know, humans actually use
14:52:45 <oklopol> i'm just wondering why not N -> N -> Q
14:53:32 -!- Pthing has joined.
14:54:22 <alise> oklopol: err of course
14:54:25 <alise> i'm pretty fucking stupid
14:54:32 <alise> was thinking of R -> R -> C :-)
14:55:16 <oklopol> oh i see
14:55:24 <alise> i have just woken up and all
14:55:51 <oklopol> the natural field extension i presume
14:56:00 <alise> the natural extension of your mom, inded
14:56:02 <alise> *indeed
14:56:26 <alise> actually the way I was thinking of having C a subset of R was
14:56:37 <oklopol> are you implyinh my mom is the splitting field of her own legs
14:56:40 <alise> inert i
14:56:41 <oklopol> *implying
14:56:51 <alise> set C = {(a:R) + (b:R) i}
14:56:52 <alise> then
14:57:03 <alise> 0 : C
14:57:09 <alise> 0 = 0 + 0 i
14:57:21 <alise> and then
14:57:23 <oklopol> C a subset of R?
14:57:27 <alise> S : ...hmm, wait
14:57:29 <alise> oklopol: er, superset
14:57:34 <alise> I was thinking, just like define 0 and S on it
14:57:43 <alise> but that isn't really enough for the compiler to believe it's a true superset
14:58:05 <alise> anyway take a break and admire my beautiful rich syntax:
14:58:13 <alise> http://dl.dropbox.com/u/2164436/booleans-and-naturals.pdf
14:58:14 <oklopol> there's such a natural embedding of R to C that most people don't even know it's an embedding
14:59:42 <oklopol> In most functional languages, youfd expect S : a ¨ a to mean that S takes a value of any type,
14:59:42 <oklopol> and returns a value of that same type
14:59:57 <alise> yeees?
15:00:03 <oklopol> wait a mo
15:00:15 <alise> term rewriting, so terms are arbitrarily extensible
15:00:22 <alise> and...things
15:00:36 <oklopol> blergh, hard to put this into words
15:00:43 <alise> functional programming plus symbolic computation by the same mechanism, fuck yeah
15:00:45 <alise> oklopol: do go on :P
15:00:48 <oklopol> maybe i'll just say nothing
15:00:55 <alise> no please do
15:01:21 <oklopol> well err
15:01:50 <MissPiggy> I don't really LIKE term rewriting
15:02:18 <oklopol> basically S : a -> a just doesn't mean the same thing as in say haskell, but instead that "for each type a there is something, also called S, that has this type signature for the type a"
15:02:19 <MissPiggy> what I LIKE is giving an equational theory, and then having the compiler design an algorithm which decides equality on that
15:02:27 <MissPiggy> or maybe it decides unification on it
15:02:35 <MissPiggy> stuff like that you could use really well
15:02:51 <oklopol> basically that's really saying nothing
15:03:27 <oklopol> S : a -> a in things like haskell means that S is one function, that takes values that walk like a's and uses them all the same way
15:03:45 <alise> no that isn't what it says
15:03:55 <alise> because, for example
15:03:58 <alise> S "a monkey" will fail
15:04:04 <alise> because there's no S : String -> String
15:04:15 <alise> S : a -> a is merely a *constraint* on what types you can endow S with
15:04:20 <oklopol> well right
15:04:22 <alise> that is, they must be of the form a -> a
15:04:36 <alise> that way, you can use S in other parts of the program on variables, as long as you obey the rull
15:04:38 <alise> *rule
15:04:44 <alise> plus2 x = S S x
15:04:49 <alise> plus2 : a -> a
15:04:57 <oklopol> i just meant it's not the same thing as it is in haskell, but yeah i guess thinking about it in terms of rewriting makes it natural.
15:05:01 <alise> defining S : b -> b gives us plus2 : b -> b too
15:05:09 <alise> and yes, it isn't
15:05:13 <alise> that's why I explained the difference. :P
15:05:25 <oklopol> and that's why i said maybe i should say nothing
15:05:26 <oklopol> :D
15:06:41 <oklopol> so what exactly is this thing
15:08:27 <alise> oklopol: well it's a term rewriting language like Q and Pure, it's purely functional and lazy, so you have lazy symbolic computation _and_ lazy functional computation by the same mechanism,
15:08:32 <alise> and it's typed.
15:08:49 <MissPiggy> do you get what I mean about equational theories
15:08:55 <alise> not really
15:09:05 <MissPiggy> if you specify like
15:09:16 <MissPiggy> (a [] b) [] c = a [] (b [] c)
15:09:27 <MissPiggy> it should work both ways
15:09:36 <MissPiggy> infact you shouldn't care which way around it's written
15:09:37 <oklopol> two-way rewriting
15:09:40 <MissPiggy> the two things are identical
15:09:57 <alise> right
15:10:03 <alise> that's the same thing as
15:10:09 <MissPiggy> the fact that (a [] b) [] c --> a [] (b [] c) normalizes terms in this theory is just a coincidence
15:10:11 <alise> (a [] b) [] c = internal3 a b c
15:10:16 <alise> a [] (b [] c) = internal3 a b c
15:10:44 <oklopol> with rewriting you say the two things are equal, but one-way rewriting also says "...but the one on the right is the more natural form"
15:11:10 <oklopol> yeah you could say it's normalization
15:12:10 <oklopol> what i'd want is a two-way rewrite system, and a nice system for adding your own heuristics
15:12:13 <alise> well if you don't execute it and just do properties and proofs and transformations
15:12:18 <alise> then one-way rewriting doesn't exist, it's all two-way
15:12:22 <alise> one-way is just a choice of how to evaluate it
15:13:00 <MissPiggy> the problem with specifying an equational theory is that it's usually undecidible
15:13:16 <oklopol> that's not a problem
15:13:20 <oklopol> the problem is it's slow
15:13:35 <oklopol> well okay
15:13:54 <oklopol> i suppose it is a problem, but (insert argument)
15:14:44 <alise> I guess it would be nice to be able to say S : Num a => a -> a
15:14:52 <alise> but what should Num be in this glorious rewriter?
15:17:42 * alise decides that what - gives in tex (is it just the minus symbol?) is the best thing for the operator hole
15:17:51 <alise> for ascii, dunno
15:18:02 <alise> i'm starting to care stunningly little about the ascii representation
15:20:31 -!- FireFly has quit (Quit: Leaving).
15:20:32 <MissPiggy> typeclasse are so suck
15:20:40 <alise> yeah
15:20:54 <alise> Maybe this is where I should introduce dependent types
15:20:57 <MissPiggy> im trying to prototype a CHR typeclass replacement but haskell doesn't have a decent CHR
15:21:23 <alise> S : {Num a} -> a -> a
15:21:34 <alise> where Num : Set -> amodulething
15:21:37 <alise> but ehh
15:21:43 <alise> I'm bobbing along fine without them atm
15:22:04 -!- FireFly has joined.
15:25:01 -!- tcsavage has joined.
15:29:30 <alise> MissPiggy: is big-{ containing (foo when condition\nbar otherwise) a good notation for guards, do you think?
15:29:37 <alise> or should it be part of each definition like pattern matching
15:30:12 <alise> big-{ means you have to do space alignment in ascii form which is lame
15:49:07 -!- tcsavage has quit (Quit: Leaving).
15:57:21 <MissPiggy> alise you should make a wiki
15:58:20 <alise> for this lang?
15:58:29 <MissPiggy> for everything
15:58:46 <oklopol> yeah the alise wiki, where people can do your projects
15:58:54 <alise> MissPiggy: why
15:59:03 <oklopol> i answered that already
15:59:59 <alise> not a good answer tho :P
16:00:52 <oklopol> well EXCUSE ME for being completely useless
16:01:02 <Gregor> And it should be a Hackiki wiki.
16:01:07 <Gregor> :P
16:01:36 <oklopol> how do you pronounce "hackiki", the way i do it sounds like some sorta exotic animal
16:01:46 <oklopol> or like an african melon-hunting tribe
16:01:53 <Gregor> Hack-ee-kee
16:02:05 <alise> latexwiki would be fun
16:02:12 <alise> not just latex blocks
16:02:13 <alise> the whole thing is latex
16:02:18 <oklopol> we just spotted some wild hakiki in the forest
16:02:44 <alise> LatexWiki - the free latex fetish encyclopedia
16:02:45 <alise> The LatexWiki is a free latex fetish encyclopedia that anyone can edit, an online resource for latex fetishists, rubberists and rainwear lovers! ...
16:02:45 <alise> >_<
16:02:47 <oklopol> Gregor: emphasis on which syllable?
16:02:53 <oklopol> hmm
16:02:56 <Gregor> oklopol: The first kee
16:02:57 <oklopol> not sure there are choices really
16:03:01 <oklopol> yeah
16:04:56 <alise> ugh, the ascii representation is so boring
16:06:50 <alise> Fortress and Q and Pure are just so cool
16:11:34 * alise decides that the unmatching [/) interval syntax is barfworthy.
16:15:42 <oklopol> how about [0, 1[ ;)
16:16:09 <alise> aieeeeeeeeeeeeeee
16:16:13 <oklopol> maybe "[5, 7] right exclusive and left inclusive"
16:16:48 <alise> ouch
16:16:48 <oklopol> i should check out one of those languages
16:16:57 <oklopol> (if they're hip and cool)
16:17:03 <alise> check out all three. (pure is q's successor)
16:17:28 * alise ponders having T^n = <(T,)*n>
16:17:29 <oklopol> once i finish this parser
16:17:37 <alise> i.e. R^3 = 3d coordinate, <R,R,R>
16:18:10 <alise> R_{2^{64}}^3 = 3d coordinate using 64-bit reals (prolly floating point)
16:18:36 <oklopol> in general you'll want A^B to be a function from B to A, just if B is a natural, you convert it to a set of that cardinality
16:18:55 <alise> why would a^b be a function from b to a?
16:19:01 <alise> I have -> for that
16:19:40 <oklopol> how dare you question how mathematics usually defines it
16:20:20 <oklopol> also what's up with hcf nowadays
16:21:55 <alise> totally dead man
16:21:58 <alise> _[_] : Array_(d,a) -> N_d -> a
16:22:05 <alise> the ascii form of this language is somewhat ugly
16:23:11 <alise> erm, *N^d
16:23:19 <alise> I like that
16:23:23 <oklopol> hmm
16:23:30 <oklopol> why does it take an array of indices?
16:23:35 <alise> tuple
16:23:42 <alise> because array is N dimensional
16:23:47 <alise> for a 2d array it'd be
16:23:47 <oklopol> ahh
16:24:00 <alise> of Rs, say:
16:24:03 <oklopol> i thought you mean N_d as in integers mod d
16:24:10 <alise> right right _ was a mistake
16:24:11 <alise> ^ i meant
16:24:12 <oklopol> in which case it would've been like a finite array
16:24:14 <alise> _[_] : Array_(2,R) -> N^2 -> a
16:24:25 <oklopol> *-> R
16:24:30 <alise> err, yes XD
16:24:44 <alise> anyway without that syntax for constructing tuple types you couldn't even write that function!
16:24:45 <alise> so I like it
16:25:10 <alise> oklopol: also I'm considering using N_d = integers-mod-d to do fixed-size ints
16:25:19 <alise> after all, N_(2^n) is an n-bit natural
16:25:20 <oklopol> you totally should
16:25:21 <oklopol> in fact
16:25:25 <alise> also N is naturals not ints :P
16:25:38 <alise> so N_(2^n) = uintn and Z_(2^n) = intn
16:25:41 <oklopol> you should have X_u defined as X/uX in general
16:25:51 <alise> hmm
16:26:01 <alise> what would 100N mean?
16:26:05 <alise> i'm dense atm, forgive me
16:26:15 <oklopol> 100 * n for n \in N
16:26:44 <alise> also, I need to use a_x for set arguments
16:26:51 <alise> like before, Array_(2,R)
16:28:05 <oklopol> then C = R[x]_(x^2+1) :P
16:28:12 <alise> although I guess Array 2 R would work, I can't think how to prettify that with LaTeX
16:28:15 <alise> oklopol: wat.
16:28:42 <alise> hmm
16:28:47 <alise> latex is not so good at juxtaposition
16:28:52 <alise> "Array d a" looks like Array da
16:29:49 <oklopol> alise: basically you get all polynomials in R[x] that are of a smaller in degree than (x^2 + 1), so your elements are of the form ax + b
16:30:00 <oklopol> and x^2 + 1 = 0, so in fact x = i
16:30:22 <alise> i think you just took my language and force-fucked it into esotericness
16:30:22 <oklopol> i'm learning field theory atm, i hope it doesn't show.
16:30:28 <alise> i may sue you.
16:30:31 <oklopol> :D
16:31:38 * alise wonders whether to have a <> unit type
16:35:03 <MissPiggy> so
16:35:13 * alise can't figure out how to do ⟨⟩ in texmacs :(
16:35:14 <MissPiggy> tt : 1
16:35:18 <MissPiggy> or maybe not...
16:35:23 <alise> MissPiggy: in my lang you mean?
16:35:38 <alise> 1 isn't a set, but certainly tt : set-of 1
16:35:39 <MissPiggy> since ff, tt : 2 work
16:35:48 <alise> wut
16:38:19 <MissPiggy> wut
16:38:22 <MissPiggy> wuuuuuuuuuut
16:42:18 <alise> you know, I don't think 1-tuples make any sense
16:42:28 <alise> so should a^1 = a??
16:42:38 <alise> if so, then having a^0 be <> seems inconsistent, if ^1 is the "base"
16:44:00 <MissPiggy> in math we usually identify (a,(b,c)) and ((a,b),c)
16:44:20 <MissPiggy> like completly implicitly, there's probably generations of people that haven't even thought about it
16:44:29 <MissPiggy> same with (a) and a
16:44:50 <MissPiggy> I don'tsee a problem wth a^0 as unit
16:44:54 <MissPiggy> since you might define
16:44:57 <MissPiggy> a^0 = ()
16:45:06 <MissPiggy> a^(1+n) = a * a^n
16:45:07 <alise> but
16:45:10 <alise> a^0 = a
16:45:12 <alise> erm
16:45:13 <alise> a^0 = <>
16:45:15 <alise> a^1 = a
16:45:17 <alise> a^2 = <a,a>
16:45:19 <alise> a^3 = <a,a,a>
16:45:21 <alise> see the "gap"?
16:45:23 <alise> that's weird
16:45:53 <MissPiggy> no
16:46:00 <MissPiggy> a^1 = <> * a = <a>
16:47:12 <alise> But does <a> make sense?
16:47:14 <alise> It is, semantically, a.
16:47:27 <alise> And I think it's a rather pointless type to have.
16:47:59 <alise> Anyway, <> looks ugly, syntactically. :P I think I want a separate unit type...
16:53:18 <oklopol> identification of things is a complex subject, says SICP
17:03:07 <Slereah> Have you read your SICP today?
17:03:50 <oklopol> well
17:03:51 <oklopol> no
17:03:57 <oklopol> i'm sorry
17:10:00 <alise> MissPiggy: so do you think <<a,b>,c> should = <a,b,c>?
17:10:13 <alise> if a^n = a * a^(n-1)
17:10:13 -!- Sgeo has joined.
17:11:19 <MissPiggy> alise not sure, it's a lot different in programming
17:11:26 <MissPiggy> than on paper
17:11:39 <alise> tupelem : a^n -> N_n -> a
17:11:54 <Sgeo> alise, taking any pictures this weekend?
17:12:05 <alise> Ah!
17:12:13 <alise> I will do that tomorrow; it completely crossed my mind on Friday.
17:12:17 <alise> Erm, completely didn't.
17:12:18 <alise> Cross.
17:12:27 <alise> Remind me. :P
17:12:44 <alise> (but a legal investigation seems more likely than moving at the moment0
17:14:30 <alise> *)
17:14:54 <Sgeo> Why was this so useless?: http://i.imgur.com/ClzRm.png
17:15:21 <Sgeo> Although actually, some stuff does seem faster now
17:15:21 <alise> You did stuff while fragmenting.
17:15:22 <alise> Don't.
17:15:24 <alise> *defragmenting
17:15:26 <alise> Sgeo: placebo
17:15:41 <Sgeo> Hm
17:16:08 <alise> If stuff is accessing stuff, it can't move that stuff.
17:16:19 <alise> So close everything, run the defragmentation, and go for a walk.
17:16:22 <alise> Or just keep it fragmented.
17:16:29 <Sgeo> I tried to let it run overnight
17:16:37 <Sgeo> When I woke up is when I started doing stuff
17:16:38 <alise> Then I dunno.
17:16:45 <Sgeo> [although I did leave my browser open on one page]
17:16:53 <alise> That wouldn't have such a dramatic effect.
17:17:20 <Sgeo> And "doing stuff" when I woke up [and it was still going] came down to visiting a few pages
17:19:41 <oklopol> that's one naughty pic
17:20:27 <alise> Sgeo: if you touch the HD *too* much, defragmenter restarts
17:20:29 <alise> but if it's done it's done
17:20:31 <alise> so... dunno
17:21:03 <Sgeo> When I started touching stuff, it said something like, 30%, Compressing files
17:21:10 <Sgeo> Don't know if that counts as a restart
17:23:07 <alise> don't think so
17:27:40 <Sgeo> I'll try again tonight, I guess
17:28:36 <alise> hmm
17:28:44 <alise> if you have {1,2,...} and {0,1,2...} what should you name them?
17:28:51 <alise> if you have just one obviously N is the right name
17:29:48 -!- MissPiggy has quit (Quit: Changing server).
17:30:16 <oklopol> N* is used for "N without 0" in at least two contexts
17:30:21 <oklopol> (that's not one of them tho)
17:30:33 -!- MissPiggy has joined.
17:30:44 <alise> oklopol: :D
17:30:58 <oklopol> errrrrrr
17:31:06 <oklopol> s/N/X/ :)
17:31:19 <alise> what's N_+
17:31:24 <alise> i could look it up
17:31:26 <alise> but poop!
17:31:49 <oklopol> Z_+ and Z_- are used for... i don't know if the zeroes are there actually
17:32:05 <oklopol> N_+ i haven't seen
17:33:25 <alise> maybe Z_+ then
17:33:33 <alise> don't remember
17:33:57 <oklopol> that would make sense, but shuold check if 0 is usually there
17:34:24 <alise> oklopol: apparently N* is in fact used to mean N without 0
17:34:28 <alise> for the naturalz
17:34:32 <oklopol> ah, cool
17:35:09 <oklopol> wasn't one of the two i knew, didn't actually know it isn't used for it
17:36:15 <oklopol> it's just one of the meanings i know "makes sense" for N, and N* = {1}
17:36:26 <oklopol> oh wait...
17:36:33 <alise> so what kind of * is it, I wonder
17:36:36 <oklopol> since when is N a ring :P
17:36:53 <oklopol> my head is out shopping today
17:39:58 <alise> (c=>x; d=>y; e=>z; otherwise) is a nice conditional syntax
17:40:25 <oklopol> i keep almost speaking finnish here
17:40:35 <oklopol> head hurts again
17:40:39 <oklopol> i think i'm dying or something
17:41:02 <oklopol> it hurts almost every week
17:41:10 <alise> see a dawktore
17:41:16 <oklopol> yeah right
17:41:23 <alise> thought not
17:41:27 <oklopol> :D
17:41:29 <oklopol> well i might
17:41:37 <oklopol> or maybe not
17:41:39 <oklopol> dunno
17:45:10 <alise> _\circ is a rather nice hole char for multifix
17:46:07 <oklopol> what's \circ?
17:47:18 <alise> circle thingy.
17:47:29 <alise> you know, like a big big . filling a whole letterspace, but hollow.
17:47:31 <alise> a circle.
17:48:06 <oklopol> oh i see
17:48:11 <oklopol> makes sense
17:48:55 <alise> they're subscripted so as not to clash with the operator text
17:49:03 <alise> and you can think of specifying an argument as "filling the circle in"
17:49:46 <alise> http://dl.dropbox.com/u/2164436/if-then-else.pdf
17:49:46 <alise> dig it.
17:50:47 <MissPiggy> PDF WARNING!!!!!
17:51:06 <MissPiggy> I always think of \top and \bot as sets though..
17:51:12 <MissPiggy> tt and ff as values
17:51:18 <alise> pdf warning my arse
17:51:19 <MissPiggy> looks weird but idk
17:51:27 <alise> nothing wrong with pdfs
17:51:30 <MissPiggy> I know :(
17:51:37 <alise> are you using adobe reader or sth? :p
17:51:47 <alise> you might be right about \top and \bot
17:51:49 <MissPiggy> im just complaining about how stupid reddit is
17:51:51 <alise> they aren't sitting well with me, either
17:51:53 <alise> ah ok
17:52:08 <alise> I'd be more coolie about tt and ff if they, say, had a fancy ligature
17:52:16 <alise> it's gotta be in unicode, right?
17:52:16 <MissPiggy> ehehe
17:52:26 <MissPiggy> don't overuse unicode
17:52:32 <alise> MissPiggy: of course if i'm using names i could just call them, you know, true and false
17:52:41 <MissPiggy> they letters on the keyboard are the easiest ones to type
17:52:47 <alise> also, the main syntax for this language is two-dimensional using things like blackboard bold
17:53:01 <alise> of _course_ it needs a specialised editor (or just use the ascii->that converter)
17:53:26 <alise> you shouldn't have to be writing a research paper to get beautiful code ;)
17:53:28 <alise> *:)
17:54:02 * alise wonders how to represent _\circ in the ascii form
17:54:08 <alise> maybe if()then()else()
17:54:28 <alise> MissPiggy: any reason to use tt/ff over true/false?
17:55:06 <alise> or just 0/1 :P
17:56:00 <MissPiggy> shorter
17:56:02 <MissPiggy> I:)
17:56:08 <alise> wut
17:56:10 <alise> ah
17:56:10 <MissPiggy> true and false are probaly best
17:56:32 <alise> yeah except "if true then" "if false then", you know, sorta good to keep the ambiguity between names and inert values down :P
17:56:54 <MissPiggy> why do you want something as horrible as if-then-else- ?
17:57:09 <MissPiggy> bool : a -> a -> B -> a
17:57:13 <oklopol> yeah you horriblophiliac
17:57:14 <MissPiggy> ^ is better
17:57:20 <alise> MissPiggy: not for imperative code
17:57:30 <MissPiggy> imperative doesn't exist
17:57:32 <alise> and not for if x then let ... in ... else ...
17:58:03 <coppro> "No identifier may be identical to another identifier used in the program to denote something else, or include such an identifier as a substring.
17:58:35 <coppro> "Note particularly that, in the case of one identifier being a substring of another, only the longer identifier shall be considered erroneous.
17:59:05 <coppro> "The constants for true and false are t and f respectively."
17:59:06 <oklopol> haha
17:59:13 <oklopol> okay double haha
17:59:21 <oklopol> oh wait just one
17:59:28 <alise> coppro: C++0x, I presume!
17:59:36 <coppro> alise: :P
17:59:44 <coppro> I just made that up and thought it would be amusing to share
18:00:02 <Sgeo> It should become a language
18:00:06 <alise> coppro: i's hucking brillian
18:00:09 <Sgeo> Filled with absurdities like that
18:00:24 <MissPiggy> it should be called javascript
18:04:33 <alise> dependent types + tuples with names for their args = module system methinks
18:05:59 <alise> Functor : * -> * -> *
18:06:09 <alise> Functor f a = <fmap : (a -> b) -> f a -> f b>
18:06:10 <alise> right?
18:06:16 <alise> then you'd do
18:06:53 <alise> Functor_List : Functor List
18:07:19 <alise> Functor_List a = <fmap f x = map f x>
18:33:54 -!- Asztal has joined.
18:49:15 -!- coppro has quit (Remote host closed the connection).
18:49:27 <oklopol> so. i just debugged my code for like 20 minutes because i'd written my fibonacci program with just one base case.
18:49:44 <oklopol> in any case, clue parser parsed its first baby
18:49:47 <oklopol> \o/
18:54:38 -!- SimonRC has quit (Ping timeout: 265 seconds).
18:58:33 <alise> oklopol: is that the guessing clue thing
18:58:33 <alise> omg
18:58:34 <alise> omg
18:58:37 <alise> have my babies, the clue babies
18:59:23 <oklopol> yeah it's the guessing thing
18:59:29 <oklopol> and it's cooooool
19:04:29 -!- SimonRC has joined.
19:05:54 * alise is writing a tree-rewriting tarpit to get the feel of it first
19:05:55 <alise> fn A E X = (A = X) : E
19:05:57 <alise> I wish that worked
19:06:15 <alise> but it doesn't, because the rule A = X is just ASIDUASD = X, i.e. you can rewrite anything at all to X
19:06:25 <alise> I need a quote/unquote thingy to do that :P
19:06:31 <alise> (rule : E is e-with-rule)
19:06:52 <alise> (so "+ X Y = ..." called is like (X = val) : (Y = val) : ...)
19:14:34 <alise> i really want reversible parsers
19:14:49 <alise> i want to just be able to write a syntax and have it think of data structures automatically and write a->String and String->a
19:17:20 <alise> you know what?
19:17:24 <alise> i'm gonna fuckin' write it
19:17:26 <alise> uhh wait
19:17:27 <alise> one thing first
19:17:37 <alise> oklopol: ask the little copy of oerjan in your mind if it's possible
19:25:47 <oklopol> i only use my copy of oerjan for good
19:26:07 <alise> oklopol: hey this is good
19:26:12 <alise> you don't have to write pretty-printers ever again!
19:26:31 <alise> 2parse or not 2parse, that is the question!
19:27:51 <alise> haha man, conor mcbride is like
19:27:53 <alise> a copy of me
19:27:57 <oklopol> do you think i should make a syntax for the functional language to which clues are compiled
19:27:58 <oklopol> i mean
19:28:01 <alise> he's more intelligenterer but he has like
19:28:05 <alise> exactly the same programming language interests as me
19:28:06 <oklopol> oh shit water boils
19:28:13 <alise> IT DOES
19:28:19 <alise> oklopol: also yes
19:28:24 <alise> make it the inverse lambda calculus
19:28:54 <alise> lambda calculus puts values in names, then uses those names in a new value
19:29:11 <alise> inverse lambda calculus looks up names for values, then extracts those names from a value
19:29:14 <alise> make it now
19:30:45 <MissPiggy> I need a graph lambda calculus
19:31:03 <oklopol> hmm, it would definitely be cool to see what kind of algorithms this thing generates
19:31:30 <oklopol> i was just thinking it'd be weird, in some sense, to have a functional language you can see, but can't actually write
19:31:33 <oklopol> but maybe it's not
19:32:53 <alise> oklopol: i presume you're not talking about the inverse lambda calculus :)
19:33:29 <alise> so in lc (\x.y)z puts z in x, then uses x in y; so in inverse lc we have to get x from z, then extract the x from y
19:33:42 <alise> not sure what the result of the extraction is, though
19:34:35 <alise> so, really, LC is (name=arg) in body
19:34:56 <alise> basically in LC what we work with are values, and names are just helpers
19:34:59 <oklopol> i was thinking something like a haskell syntax
19:35:05 <alise> in inverse LC we only have values so we can find names
19:35:20 <alise> the question is, how do we get a name from a value?
19:38:41 <alise> ok, so my parser combinator library will be based on applicative functors
19:39:12 <alise> with most parser libraries all you need is syntaxbits -> ast
19:39:20 <alise> like varname,funcbody -> ast
19:39:30 <alise> but in this we need ast -> varname,funcbody as well
19:39:42 <alise> so, maybe we can derive that.
19:40:19 <alise> if you ignore a parsed bit, you have to specify a default value for it so it can use it when deparsing
19:42:05 <oklopol> okay these now parse and compile: http://www.vjn.fi/pb/p351446645.txt
19:42:21 <oklopol> syntax complaints?
19:42:22 <alise> i think that this is sexy.
19:42:26 <MissPiggy> wow lol
19:42:36 <alise> oklopol: well one i'd add more unicode, i take it _that_ won't be accepted
19:42:39 <MissPiggy> why is there two :.'s ?
19:42:49 <alise> in foo ~ <bar>; baz; quux i'd use commas, not semicolons
19:42:51 <oklopol> MissPiggy: two different examples
19:42:57 <oklopol> not actually very useful for this simple things
19:43:12 <MissPiggy> what
19:43:18 <MissPiggy> in fib there is :. twice
19:43:18 <MissPiggy> why
19:43:27 <alise> MissPiggy: clue :: [(input,output)] -> (input -> output)
19:43:30 <oklopol> i just gave it two examples.
19:43:32 <alise> well, + some hints
19:43:36 <MissPiggy> fib ~ {:. 8 -> 21
19:43:36 <MissPiggy> : 6 -> 8
19:43:37 <MissPiggy> : 7 -> 13
19:43:37 <MissPiggy> :. 7 -> 13
19:43:37 <MissPiggy> : 5 -> 5
19:43:39 <MissPiggy> : 6 -> 8}
19:43:42 <MissPiggy> why is :. there twice??
19:43:43 <oklopol> yeah so
19:43:59 <oklopol> well, it's because i gave it two examples :P
19:43:59 <oklopol> but
19:44:00 <MissPiggy> it looks like 6 examples in two groups, what are the groups?
19:44:05 <oklopol> no
19:44:16 -!- cheater3 has joined.
19:44:18 <oklopol> two examples, it's just you don't separate them.
19:44:20 <MissPiggy> UR LANGAUGE IS TOO HARD
19:44:38 <oklopol> do you complain about that, i'm not sure why i decided to do it like that, maybe just to be weird
19:44:52 <MissPiggy> how is that not 6 examples?
19:44:55 <oklopol> basically that's (:. stuff : stuff : stuff), (:. stuff : stuff : stuff)
19:44:59 <oklopol> well because
19:45:01 <MissPiggy> I thought an example was an input output pair
19:45:01 <alise> i'm confused
19:45:07 <oklopol> the ":"'s are subexamples
19:45:11 <oklopol> for the :.'s before them
19:45:12 -!- cheater2 has quit (Ping timeout: 258 seconds).
19:45:13 <MissPiggy> what is a sub example?
19:45:17 <MissPiggy> what's :.
19:45:18 <alise> presumably it's two calls
19:45:21 <alise> reducing fib downwards
19:45:28 <oklopol> what the recursive calls should return
19:45:35 <oklopol> and what their inputs should be
19:45:36 <alise> thought so :D
19:45:41 <oklopol> yarr
19:45:47 <alise> 80-1 = 7
19:45:50 <alise> 8-2 = 6
19:45:53 <alise> so you have 8 6 7 on the LHS
19:45:57 <alise> *8-1
19:46:00 <alise> to show how the recursive call goes
19:46:09 -!- kar8nga has joined.
19:46:09 <alise> 7->13, biggy so you know, show how dat be done
19:46:22 <oklopol> :. IOP : IOP1 : ... : IOPn means find code for IOP, use all of IOPi's when deriving output value
19:46:30 <alise> otherwise, clue wouldn't know when to recurse downwards
19:46:34 <alise> it'd just have a shitload of numbers
19:46:42 <alise> and oklopol isn't quite clever enough to reverse that :)
19:46:58 -!- Pthing has quit (Remote host closed the connection).
19:47:08 <oklopol> and yeah i think you're getting it right
19:47:18 <oklopol> especially the not clever enough part
19:47:20 <MissPiggy> oklopol wuuuuuuuuuut
19:47:35 <alise> MissPiggy: okay. let's look at this
19:47:40 <alise> <MissPiggy> fib ~ {:. 8 -> 21
19:47:41 <alise> <MissPiggy> : 6 -> 8
19:47:41 <alise> <MissPiggy> : 7 -> 13
19:47:44 <alise> fib(8) = 21
19:47:45 <MissPiggy> http://www.vjn.fi/pb/p351446645.txt
19:47:48 <alise> fib(8) = fib(6) + fib(7)
19:47:52 <alise> so, we show that 21 is the result
19:47:53 <MissPiggy> excuse me??
19:47:58 <alise> and then show it descending into fib(6) and fib(7)
19:48:08 <alise> 8+13 = 21, so 8 -> 21 shows how you add the two recursions
19:48:09 <MissPiggy> oh I see!!!!!!!
19:48:12 <alise> then we start a new example, for 7 -> 13
19:48:14 <MissPiggy> I understnad CLUE!!!!!!!!
19:48:20 <alise> and ANCHOVIES!!!!
19:48:25 <MissPiggy> this makes sense
19:48:28 <MissPiggy> when you have
19:48:54 <MissPiggy> :. a -> b : a'_i -> b'_i
19:49:19 <MissPiggy> it means that f(a) = b = G(f(a_0),f(a_1),...)
19:49:22 <oklopol> MissPiggy: ":. 8 -> 21 : 6 -> 8 : 7 -> 13" says find a way to get 21 from the input 8, and the outputs 8 and 13. also find a way to find the subinputs 6 and 7 from the main input 8
19:49:27 <MissPiggy> where G is the recursive case it's solving for
19:49:37 <oklopol> these are the things you always do with recursion
19:50:08 <oklopol> do something to get input for the recursive cases (6 and 7), then use their output (and your original input maybe) to find the final output
19:50:27 <alise> so, my suggestions:
19:50:33 <alise> in the hint line, make the operator something other than ~
19:50:46 <alise> make the separator , not ;
19:51:08 <MissPiggy> I thought it was just
19:51:13 <alise> also, don't have multiple blocks in ~ like that, either separate every call (excluding subcalls ofc) into its own block
19:51:15 <alise> or have one big block
19:51:17 <alise> those are my suggestions
19:51:27 <MissPiggy> [(input,ouput)] -> (input -> output)
19:51:29 <MissPiggy> but it's actually
19:51:49 <MissPiggy> [((input,output), [(input, output)])] -> (input -> output)
19:52:11 <oklopol> so about putting this thing on esolang, we need (the first?) disambiguation page right? i have no idea how to use the wiki really. also is it okay to put closed source up there, i really don't want to publish this code yet.
19:52:17 <alise> MissPiggy: you forgot -> [hint]
19:52:20 <MissPiggy> and each ((mi,mo),(si,so)) :: ((input,output), [(input, output)])
19:52:23 <MissPiggy> oops
19:52:38 <MissPiggy> and each ((mi,mo),(si_j,so_j)) :: ((input,output), [(input, output)])
19:52:40 <alise> oklopol: if there's no code you can post a binary, but I'll lynch you
19:52:45 <oklopol> because there is an obvious massive abstraction i can do, but it requires a tiny bit of thinking, which i can't do right no
19:52:45 <oklopol> w
19:52:49 <MissPiggy> where j rangers over n different subproblems
19:52:50 <alise> IMO publishing just a spec beats publishing a binary with no source
19:53:08 <MissPiggy> and the subproblems are used to explain the recursion structure
19:53:12 <MissPiggy> yeah and there's hints too
19:53:24 <alise> it's like publishing a press release saying "we're finalising a paper that shows that monkeys are real" vs "Monkeys are real. Here is how to work it out given the data: ... We will not show our data."
19:53:33 <alise> the former is fine, the second isn't
19:54:04 <oklopol> basically just the conversions multiple examples <-> one example with at each actual value a vector of values in the corresponding places in the different examples
19:54:25 <oklopol> so, it's really tiny
19:54:27 <MissPiggy> ocluepol, I guess that is how this works without being type directed
19:54:41 <MissPiggy> seems :P less magic now
19:54:46 <MissPiggy> but still amazing
19:55:24 -!- kivod has joined.
19:55:49 <MissPiggy> what if you don't have subproblems is it just impossible?
19:55:51 <alise> oklopol: so basically you just have a bunch of, basically tables for operations like add, subtract, multiply
19:55:56 <alise> and you just look things up in there
19:56:03 <alise> MissPiggy: maybe not with hints
19:56:12 <alise> i don't get what his hints do though :)
19:56:53 <kivod> is this a chan about esotericism or programming?
19:56:57 <MissPiggy> yes
19:57:11 <MissPiggy> esotericism programming and esoteric programming
19:57:18 <pikhq> Esoteric programming.
19:57:20 <alise> esotericism programming! iching(1)
19:57:24 * Sgeo goes off to program some ghosts.
19:57:26 <MissPiggy> and itching
19:57:31 <alise> and gay sex
19:57:35 <alise> mostly gay sex actually
19:57:41 <MissPiggy> enigmatic gay itching?
19:57:47 <alise> Very.
19:57:57 <alise> kivod: now the question we have, which one did you *want*
19:58:00 <alise> *have is
19:58:21 <MissPiggy> oklotype I will help code a type directed version if you want
19:58:40 <kivod> lol
19:58:45 <MissPiggy> although you werobefubef
19:58:49 <alise> kivod: you wanted lol?
19:58:53 <kivod> I was searchning for a chan about esotericism
19:59:01 <kivod> but I like programming too so ...
19:59:02 <MissPiggy> kivod, I'm into esotericism
19:59:13 <alise> ignore MissPiggy, the rest of us aren't crazy!
19:59:15 <MissPiggy> secret of the cube and stuff
19:59:20 <alise> ...apart from oklopol
19:59:28 <alise> although oklopol probably has some deep oklo musing about the secret of the cube.
19:59:55 <kivod> so, now my question is, what's exactly esoteric programming?
20:00:24 <oklopol> "alise: also, don't have multiple blocks in ~ like that, either separate every call (excluding subcalls ofc) into its own block" <<< now i have block per one type of computation
20:00:35 <pikhq> Programming using an esoteric programming language. An esoteric programming language is a language designed to be exceptionally unusual, odd, or hard to use.
20:00:44 <alise> kivod: programming the computational equivalent of crack by monkeys on crack
20:00:50 <pikhq> The best-known examples are Brainfuck and INTERCAL.
20:00:57 <alise> in languages that crack your mind into a thousand million pieces and they all turn into monkeys.
20:01:02 <alise> pikhq: you are BORING
20:01:16 <pikhq> alise: I try.
20:01:17 <kivod> sounds cool ^^
20:01:23 <alise> IT ISN'T. It's horrific.
20:01:36 <alise> Turn back now, while you still have a chance!!!!!
20:01:40 * Sgeo wrote a thingy for use by programs written in esoteric languages
20:01:53 <Sgeo> That thing, however, was idiotically designed [by me] and for all intents and purposes, dead
20:01:54 <alise> Ignore Sgeo, he's never quite gotten over the PSOX ordela.
20:01:56 <alise> *ordeal.
20:02:06 <alise> If he starts mumbling, just smile and say yes a lot.
20:02:08 <oklopol> MissPiggy: i think this is a cooler thing than using types, as an esolang, that is
20:02:13 <Sgeo> lol
20:02:29 <MissPiggy> oklopol can you make any functions with it which aren't HM typeable?
20:02:29 <alise> oklopol: can you define your own tables for it to look up in? or does defining functions do that
20:03:25 <oklopol> HM typeable?
20:03:33 <oklopol> alise: humm?
20:03:38 <oklopol> look what up
20:03:42 <alise> hindley-milner typeadoo
20:03:45 <oklopol> ohh
20:03:55 <alise> oklopol: like it infers the operations by looking up your two operandyhoos values that it needs to infer an op from
20:04:03 <alise> from like various tables of the core operations like +, - etc
20:04:03 <oklopol> give an example that isn't HM typeable
20:04:05 <alise> right?
20:04:06 <oklopol> y?
20:04:11 <alise> y isn't hm typey yeah
20:04:18 <oklopol> well obviously you can write y
20:04:19 <Sgeo> What's HM typable?
20:04:19 <alise> oklopol: so is defining a function adding your own table
20:04:21 <oklopol> or wait can you now
20:04:25 <alise> hindley-milner typeadoo
20:04:32 <Sgeo> Should I assume that y == y combinator?
20:04:43 <oklopol> alise: what table?
20:04:48 <oklopol> do you mean
20:04:56 <oklopol> can you use your functions as helpers in other functions
20:05:10 <oklopol> like can you make a function that does something, using an append function you wrote
20:05:29 <alise> oklopol: yeah, without specifying it
20:05:41 <alise> i.e. does making new functions give it more rules with which to infer operations
20:06:09 <oklopol> umm, where did you get that it "infers" something? :P
20:06:17 <oklopol> i hope i didn't say yes to anything like that
20:06:22 <oklopol> it's just brute force search man
20:06:32 <alise> oh
20:06:34 <alise> isn't it like
20:06:38 <oklopol> this is very beta.
20:06:39 <alise> okay our two subcalls are 4 and 3
20:06:46 <alise> our main thing is 12
20:06:52 <alise> 4+3 = 7 nope
20:06:54 <alise> 4-3 = 1 nope
20:06:58 <alise> 4*3 = 12 BINGOOOOOOOO
20:07:06 <alise> and we have like, addition, subtraction and multiplication table there
20:07:09 <alise> and we look up in each one
20:07:11 <oklopol> yeah it's like that, but you'd probably just give it * and not + or -.
20:07:15 <alise> recursively for the subcalls
20:07:18 <alise> oklopol: well how does it know
20:07:20 <alise> you didn't tell it
20:07:21 <alise> anyway
20:07:29 <alise> does making your own function f(x,y)=z add f as a table to that inferring process
20:07:31 <alise> if not SHIT SUX
20:07:47 <oklopol> ah, you give it the functions to use EXPLICITLY.
20:07:58 <alise> ...
20:08:02 <alise> so it isn't clever at all
20:08:04 <alise> :(
20:08:05 <oklopol> fib ~ <id>; dec; add
20:08:10 <oklopol> append ~ <empty>; car; cdr; cons
20:08:13 <alise> how about not having them
20:08:20 <alise> and having it search the entire universe of currently-defined functions
20:08:31 <MissPiggy> oklopol I don't understand why you wouldn't want it type directed :(
20:08:41 <oklopol> perhaps if i write a sophisticated enough compiler
20:08:53 <oklopol> MissPiggy: oh i do, eventually
20:09:12 -!- Pthing has joined.
20:09:14 <alise> parse :: String -> Maybe Integer
20:09:15 <alise> parse "0" = Just 0
20:09:15 <alise> parse ('S':xs) = return (1 +) <*> parse xs
20:09:15 <alise> parse _ = Nothing
20:09:15 <alise> deparse :: Integer -> Maybe String
20:09:15 <alise> deparse 0 = Just "0"
20:09:17 <alise> deparse (n+1) = return ('S':) <*> deparse n
20:09:19 <alise> deparse _ = Nothing
20:09:21 <alise> conclusion
20:09:26 <alise> for trivial parsers, just swap LHS and RHS for parse/deparse
20:09:53 <alise> now to make it less trivial
20:09:59 <oklopol> MissPiggy: but really it's type directed already in the sense that if an operation fails, then its result is ignored.
20:10:02 <MissPiggy> oklopol, so right now, if you have hints {f,g,h} and you want to make a function from recursive subcalls {p,q} which equals the target value x
20:10:22 <MissPiggy> x = f(p,h(q,p,p),g(p)) might be a right answer, for example
20:10:33 <MissPiggy> is this roughly the kind of problem it tries to solve?
20:10:36 <oklopol> yep
20:10:46 <MissPiggy> how do you which arity each function is?
20:10:51 <MissPiggy> like h takes 3 parameters
20:11:10 <oklopol> primitives have arities, and your functions have the arities their clues do.
20:11:26 -!- kivod has left (?).
20:11:38 <oklopol> some primitives have types, and your functions will fail if used with an incorrect type, because the primitives they consist of will fail.
20:12:00 <MissPiggy> oh okay
20:12:03 <oklopol> "alise: so it isn't clever at all" <<< the compiler is not supposed to be clever, the language is.
20:12:06 <MissPiggy> well arity is the first sign of type :D
20:12:13 <MissPiggy> instead of being untyped it's typed like
20:12:15 <alise> oklopol: specifying ops != clever
20:12:17 <MissPiggy> * -> * -> *
20:12:30 <MissPiggy> rather than
20:12:34 <MissPiggy> Int -> String -> Int
20:12:38 <MissPiggy> or even
20:12:44 <MissPiggy> Int -> (String -> String) -> Int
20:12:51 <MissPiggy> does it do higher order programming? :P
20:14:07 <oklopol> MissPiggy: not atm, but it should
20:14:15 <MissPiggy> oklopol that sounds be really really hard though
20:14:23 <oklopol> later
20:14:37 <oklopol> no not relly.
20:14:38 <oklopol> *really
20:15:06 <oklopol> alise: yeah i don't care about your stupid opinion
20:15:13 <oklopol> and your mom is fat
20:15:15 <MissPiggy> :(
20:15:17 <alise> ow
20:15:22 <oklopol> take that
20:15:26 <alise> waaaah
20:15:31 <MissPiggy> you guys stop fighting!!!!!!!!!
20:15:35 <oklopol> anyway err
20:15:39 <oklopol> i was originally even thinking
20:15:44 <oklopol> you might make like append
20:15:47 <MissPiggy> by the higher order programming is hard
20:15:49 <MissPiggy> BY THE WAY
20:15:53 <oklopol> and then give some other function, as a helper, (append [1,2,3])
20:16:01 <oklopol> curried that is
20:16:18 <MissPiggy> well sure "append [1,2,3]" denotes a function just as "append" does
20:16:19 <oklopol> hard in what sense?
20:16:19 <oklopol> anyway the problem is
20:16:22 <MissPiggy> I don't see any difference
20:16:28 <oklopol> you might be able to just write some sorta combinators, and program in helper lists
20:16:40 <oklopol> ^ the problem i was thinking it might have
20:16:46 <MissPiggy> oklopol, well for type directed higher order programming, you can do it algorithmically
20:16:50 <MissPiggy> without any examples or anything
20:17:00 <MissPiggy> but when you add recursive data types, it becomes very difficult
20:18:00 <oklopol> do what algorithmically
20:18:04 <oklopol> this whole thing?
20:18:22 <oklopol> how can you do example-oriented programming without examples
20:18:53 <oklopol> or do you mean just deducing functions from some general rules for how they should work
20:19:04 <oklopol> because that's bullshit
20:19:55 <MissPiggy> oklopol do you make your language output lisp and haskell?
20:20:23 <MissPiggy> you can inhabit (or show impossible) stuff like a -> (a -> b) -> b
20:20:26 <MissPiggy> without any examples
20:20:26 <oklopol> well no, not actually either of them
20:20:28 <oklopol> because it's not internally either
20:20:42 <oklopol> even as a functional language it's quite different
20:20:55 <MissPiggy> really?
20:20:56 <oklopol> inhabit? what the fuck does that help
20:21:10 <MissPiggy> that's what your language does I think
20:21:14 <oklopol> i wanna write a tetris with this, not a fucking logic wanking tool
20:21:22 <MissPiggy> you create functions from examples no?
20:21:28 <oklopol> sure, sure
20:21:39 <MissPiggy> LOL LOL LOL
20:22:20 <MissPiggy> "i wanna write a tetris with this, not a fucking logic wanking tool" -- oklopol on programming
20:22:31 <oklopol> i'm just saying the language is a bit different, so i was thinking haskell syntax, plus some additional syntax
20:22:36 <Gregor> Mmmm
20:22:37 <Gregor> Logic wanking
20:22:40 <oklopol> on programming with clue, yes
20:22:44 -!- coppro has joined.
20:22:58 <oklopol> i just mean you people seem to completely misunderstand the idea of the language
20:23:06 <MissPiggy> I do
20:23:21 <MissPiggy> I want to undersatnd it though]
20:23:28 <oklopol> it's not meant to be something pure and sexy, it's meant to be a cool hack around the fact example-based stuff is impossible to make work.
20:24:55 <MissPiggy> What I mean is
20:25:08 <MissPiggy> (1) higher order programming is going to be extremely difficult to solve
20:25:22 <alise> *Text.TwoParse> toVars $ toAST $ varsFor P_ X
20:25:22 <alise> Right X
20:25:22 <oklopol> i don't think it is!
20:25:23 <alise> it's a start
20:25:30 <MissPiggy> oh well I hope you are right :P
20:25:32 <alise> MissPiggy: oklopol's probably right, he can hack up anything
20:25:34 <oklopol> i mean
20:25:40 <oklopol> let's say you wanna write like map
20:26:14 <oklopol> you just give it an example of some list and something like an increment function, and show that it applies the function to first one, and recurses on the tail of the list, then conses
20:26:20 <MissPiggy> let me implement map f [] = [] ; map f [3,5,6,2] = [f 3,f 5,f 6,f 2] ?
20:26:22 <oklopol> then
20:26:32 <oklopol> if you change the function, it'll just apply it, like it did with increment.
20:26:43 <MissPiggy> oh
20:27:01 <MissPiggy> so map inc [] = [] ; map inc [3,5,6,2] = [4,6,7,3]
20:27:13 <oklopol> if there are problems, i can't see them.
20:27:21 * MissPiggy neither
20:27:44 <MissPiggy> this is going to be so sick
20:27:46 <oklopol> that thing i just explained would work right away, prolly, if i added like an append function, and made it possible to have functions as data
20:27:46 <oklopol> err
20:27:46 <oklopol> *added like an apply function
20:29:24 <oklopol> i can try to implement map, although it won't work currently (no fundamental reason it shouldn't, just some name lookup things i'd need to add)
20:29:29 <alise> *Text.TwoParse> toVars $ toAST $ varsFor S_ ('a','b')
20:29:29 <alise> Right (Right ('a','b'))
20:29:30 <alise> yay
20:30:52 <oklopol> okay done
20:31:57 <oklopol> http://www.vjn.fi/pb/p525542334.txt
20:31:59 <oklopol> i think that's it
20:32:13 <oklopol> oh...
20:32:21 <oklopol> okay there's a slight problem because i chose such a simple function
20:32:25 <oklopol> prolly wouldn't work
20:32:32 <oklopol> can you see why btw?
20:34:36 <oklopol> http://www.vjn.fi/pb/p536541641.txt
20:34:37 <oklopol> better
20:36:22 <oklopol> alise: the reason i chose "," over ";" was just so you could use "," in identifier names
20:36:46 <oklopol> like if you want a function called "do this, then do that"
20:38:37 <oklopol> i mean i do think it would be nicer to use ",", i just want to have absolute freedom in varnames.
20:38:53 <oklopol> and what do you suggest for "~", and what's wrong with it now?
20:39:20 <oklopol> as for the block thing, i've learned to love it already
20:39:31 <alise> well why can't you use ; in varnames
20:39:40 <oklopol> i guess you could
20:39:41 <alise> the block thing i suggested or how you already had it?
20:39:49 <alise> and ~ is fine, just not for the list of funcs
20:39:52 <oklopol> the one i have now,
20:39:54 <oklopol> *-,
20:39:55 <alise> I'd use /
20:39:58 <oklopol> hmm
20:39:58 <alise> like w/, with
20:40:02 <oklopol> well
20:40:10 <alise> map / <empty>; cons; car; cdr
20:40:13 <oklopol> originally i think i had different chars for both
20:40:41 <oklopol> but there's sort of this esotheme going on that things that mean completely different things look similar
20:41:27 <oklopol> the other main thing is {:: a -> b }, although i guess it just looks like a completely separate thing now that i've implemented this
20:41:34 <oklopol> :: is the tests
20:41:46 <oklopol> it's actually probably not that useful, but no matter
20:42:49 <oklopol> i'll consider /
20:43:10 <oklopol> how about "USING THE FOLLOWING HELPER FUNCTINOS:"
20:43:15 <oklopol> *USES
20:45:49 <alise> here's how I'd write fib in http://www.vjn.fi/pb/p351446645.txt
20:47:23 -!- MizardX has quit (Ping timeout: 276 seconds).
20:47:33 -!- zzo38 has joined.
20:47:41 <alise> what do the <> mean in hints
20:47:48 <alise> base case?
20:47:49 <alise> yeah
20:48:01 <alise> <base case>; deconstruct for recursion; combine
20:48:05 <oklopol> oh nooo
20:48:05 <zzo38> I was reading the "LoUIE" page.
20:48:10 <oklopol> <> is the condition function
20:48:25 <oklopol> you also explicitly tell it what to use to differentiate between cases
20:48:34 <alise> I said LoUIE LoUIE
20:48:49 <oklopol> well, not completely explicitly
20:49:03 <oklopol> like fib just needs id
20:49:24 <oklopol> base case 1 is always 0, base case 2 is always 1, so all others will go to the general case
20:49:56 <zzo38> I was looking at the "Paneer" part. Forth (and possibly other existing programming langauges) can do something like that (maybe bash shell-script can, but I'm not sure), but it doesn't what you want, necessary. Still, that's how the OASYS->TAVSYS converter works. The file "oasys.4th" defines a word "oas" which causes OASYS binary files to be treated as a source code for a TAVSYS file.
20:50:07 <oklopol> and in append, instead of empty you could also use length
20:50:45 <zzo38> I also looked at "Boo-yah!" and I want to think of what kind of states it can use.
20:51:27 <alise> oklopol: http://www.vjn.fi/pb/p123635515.txt
20:51:30 <alise> my masterful syntax
20:51:47 <alise> ..5/..6 in the second fib recursion thing should be .. 5/.. 6
20:52:28 <zzo38> What is that file?
20:53:16 <oklopol> i don't have a clue
20:53:42 <oklopol> alise: how does it know the 7 and 8 examples are the same?
20:54:30 <oklopol> the grouping is to show that
20:54:56 <oklopol> nothing else
20:56:24 <zzo38> I also had another idea of esolang: A program language that the operators for dealing with numbers includes things such as "count how many letters to write the word of this number in English", "count how many letters to write the word of this number in Latin", "remove all digits from the first number that match digits in the second number", and so on, like that.
20:57:25 <alise> oklopol: oh
20:57:29 <alise> oklopol: didn't realise
20:58:14 <oklopol> probably i didn't mention it
21:03:29 -!- coppro has quit (Ping timeout: 245 seconds).
21:04:33 <alise> fooS :: PP Foo
21:04:34 <alise> fooS = char 'x' *> give X_ ()
21:04:34 <alise> <|> char 'p' *> give P_ fooS
21:04:34 <alise> <|> give S_ (anyChar, anyChar)
21:05:22 <alise> so I need PP :: * -> * ;; instance Functor PP ;; instance Applicative PP ;; instance Alternative PP ;; char :: Char -> PP Char ;; give :: MetaFor a b -> b -> PP a
21:05:45 <oklopol> alise: did you accept the grouping then? i could just have whitespace, but i sorta like the idea of brackets when there's pretty much no structure and it's completely needless :P
21:05:52 <alise> parse :: PP a -> String -> Maybe a ;; deparse :: PP a -> a -> Maybe String
21:06:05 <alise> oklopol: tbh the syntax is minimal enough that it barely matters
21:06:09 <oklopol> yeah
21:06:10 <oklopol> i guess
21:06:11 <alise> 90% of the program will be a bunch of examples
21:06:16 <alise> and the only syntax there is comma and -> :P
21:06:38 <oklopol> yeah, and .'s and :'s
21:06:49 <oklopol> although you just need one of them
21:06:56 <alise> yeah they're pretty rare
21:07:02 <oklopol> actually it takes the sum of dots mod 4
21:07:03 <alise> compared to examples
21:07:18 <oklopol> 0 is test, 1 is base, 2 is subcase, 3 is recursive case
21:07:27 <Gregor> http://hackiki.org/wiki/features I added some documentation of Hackiki's feature to hackiki.org (zomg)
21:07:28 <alise> I should just make a language where every function has to be invertible
21:07:41 <alise> notably, it would protect programmers from using strong encryption
21:07:56 <oklopol> so you can write :., .: or ...
21:08:08 <alise> Gregor: wow, that is glacial.
21:08:11 <alise> oklopol: XD
21:08:14 <oklopol> oh wait actually ofc you can't write everything with :'s, turns out : isn't a prime
21:08:18 <oklopol> *turns out 4 isn't
21:08:24 <augur> hey you guys
21:08:27 <oklopol> hey augie
21:08:34 <augur> augur.
21:08:36 <augur> not augie
21:08:37 <augur> :|
21:08:38 <oklopol> Gregor: wow that's like recursion
21:09:00 <Gregor> oklopol: Uhhh?
21:09:08 <oklopol> Gregor: nm.
21:09:12 <alise> oh I forgot, I also need anyChare :: PP Char
21:09:22 <oklopol> "documentation of Hackiki's feature to hackiki.org" <<< X in X.
21:09:23 <alise> Gregor: he was mocking you :)
21:09:39 <oklopol> that really made no sense
21:09:46 <oklopol> ...yeah mocking
21:09:51 <alise> well, more or less
21:09:54 <oklopol> so cleverly you don't even get it
21:09:55 <zzo38> I have a OpenID program but how can I get it to work?
21:10:10 <oklopol> augur: what's wrong with augie
21:10:27 <augur> it was the name of a friends brother when i was younger
21:10:30 <zzo38> This is what I have so far http://zzo38computer.cjb.net/openid/openid.php
21:10:37 <augur> so in my mind it's not the diminutive of augur
21:10:37 <zzo38> As you can see, it doesn't work.
21:10:41 <augur> its just a different name
21:10:43 <oklopol> i call alise allie and Sgeo sgay
21:11:03 <augur> yes and im not saying its not a reasonable diminutive for augur
21:11:15 <augur> but to my ear it doesnt _sound_ like a diminutive, it just sounds like a different name
21:11:22 <oklopol> okay, i see
21:11:31 <oklopol> if you can think of another cutive, i can used that.
21:11:41 <oklopol> *use
21:11:43 <augur> augur is cute enough!
21:11:52 <alise> aurgy
21:11:54 <oklopol> you wish
21:11:57 <Gregor> zzo38: You give that URL to something with OpenID login ... to log in.
21:12:01 <oklopol> "auglet"
21:12:04 <augur> http://dblp.uni-trier.de/db/indices/a-tree/v/Vijay=Shanker:K=.html
21:12:09 <augur> look at all those wonderful papers T_T
21:12:33 <augur> i think someone should build a programming language that uses a LIG/TAG or something
21:13:25 <alise> zzo38: did you... configure it?
21:13:44 <augur> afk
21:16:10 -!- tombom has joined.
21:16:39 -!- KingOfKarlsruhe has joined.
21:21:39 <zzo38> I did give that URL to sometihng to log in, and it says it is wrong!
21:21:47 <zzo38> http://www.wasab.dk/morten/2007/11/openid/
21:22:09 <alise> fix_n f = f (fix_n f)^n where n>0
21:22:16 <alise> zzo38: you didn't configure it
21:22:17 <alise> edit the file
21:26:05 <zzo38> How?
21:28:32 <alise> with a text editor.
21:28:44 <augur> back yo
21:29:21 <zzo38> I know that, of course. That isn't what I meant
21:32:30 <augur> oklopol: i had an interesting idea for a modification of prolog
21:32:31 <augur> :x
21:32:58 <oklopol> do you mean some sort of unification over quantifiers with a dash of absolute convergence?
21:33:21 <augur> what? :|
21:33:30 <oklopol> by which i mean do explain, we can hope i understand a word of it
21:33:38 <oklopol> nothing
21:33:52 <zzo38> I looked at the codes but it looks like correctly.
21:34:11 <oklopol> i keep saying things that mean nothing today, especially irl, here i can just not press enter
21:34:18 <augur> it wouldnt modify standard prolog (unless prolog already does this) but
21:34:31 <augur> foo(X), bar(X) ---> foo(bar(X))
21:39:30 <zzo38> I can see what's wrong now. It is trying to open /dev/urandom and that's why it doesn't work.
21:40:40 <alise> # Each of the n characters in a name must come from a different character partition, where a character partition is identified as any character within the range [0..99], [100..299], ..., [3600..3699]. For example, while ŸēĴǥȬʂ˩̪ΘкүӾԦב؏ڀۙݥގࠅࡁࣷईং৔ਾ૖ૻஃ௵శದദං෌แ clearly is an elongated streams, ٬੓ಛ଩ƀĚЇ̢ߊvǢϦɸ܀৺૊౭஌<؅ࠀ˽ࣄܢɒ௵ँෞݜғๅࡼՠҰേজඛ is not a value chain, basi
21:40:40 <alise> cally because there are two unicode characters within the range [1800..1899] in here. Neither is ಉ̪ݛՁूϚ֡Ŝ٘ல෌࠴ৄॼˋ߷нɋwCьÒޜӠ౬؀૔ങࣷۮǐਖ਼ఄବʔ൬, mainly because it is 36 characters long and there is no such thing as a 36 characters long identifier in i®™.
21:40:50 <zzo38> No, it is still wrong.
21:40:51 <alise> --Gerson Kerz, i spec
21:41:11 <alise> [[Lets talk about sourcecode first. The character set for a legal i input file must be in Punicode encoding, as specified in RFC 3492 and the file must have a utf-16be BOM. This helps keeping the code secure, because nobody can use something as trivial as Notepad to edit i sourcecode.]]
21:55:28 -!- zzo38 has left (?).
21:55:53 <alise> class (PFunctor p r t, QFunctor p s t) => Bifunctor p r s t | p r -> s t, p s -> r t, p t -> r s where
21:55:53 <alise> bimap :: r a b -> s c d -> t (p a c) (p b d)
21:56:09 <alise> when you start implementing an instance of this, is that the signal that "make this so my life is easier" has failed utterly and horribly?
22:03:29 <oklopol> let's just say that looks like a lot of letters
22:04:01 <alise> turns out I also have to implement
22:04:02 <alise> class (Category r, Category t) => PFunctor p r t | p r -> t, p t -> r where
22:04:02 <alise> first :: r a b -> t (p a c) (p b c)
22:04:03 <alise> and
22:04:06 <alise> class (Category s, Category t) => QFunctor q s t | q s -> t, q t -> s where
22:04:06 <alise> second :: s a b -> t (q c a) (q c b)
22:04:15 <oklopol> augur: i don't see how that makes sense
22:04:18 <alise> (this is just for a parsing library.)
22:04:27 <augur> oklopol: what?
22:04:36 <oklopol> "augur: foo(X), bar(X) ---> foo(bar(X))"
22:04:44 <augur> oklopol: why doesnt that make sense
22:05:26 -!- kar8nga has quit (Remote host closed the connection).
22:06:21 <oklopol> i just don't see what the point is
22:08:45 <oklopol> fizzie / Deewiant / any finn online?
22:09:10 <augur> oklopol: theres no point, except to make it weirder
22:09:50 <oklopol> oh well i can imagine it would do that
22:10:05 <oklopol> so do you own at finnish
22:10:12 <augur> oklopol: not yet
22:10:25 <oklopol> i need to know some train schedules but my internet is not alive
22:10:44 <oklopol> i'm completely offline atm
22:17:37 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
22:24:49 <Deewiant> oklopol: How is your Internet not alive if you can do the IRC
22:25:12 <alise> TELEPATHY
22:25:26 <alise> He's emitting gamma rays that flip bits in Freenode's RAM that make it think he's connected and sending messages.
22:25:42 <Deewiant> I suppose DNS could be dead but there are easier ways to work around that than asking somebody else over IRC
22:34:25 <alise> pikhq: write my haskell function for me, thx
22:34:38 <pikhq> alise: Whatever for?
22:35:06 <alise> pikhq: a bi-directional ([token] -> a and a -> [token] from the same parser), applicative parser
22:35:15 <alise> i'm fairly sure a certain function is unimplementable
22:35:48 <alise> http://pastie.org/823742.txt?key=ugezvaboaxv3tg15cjeja
22:35:51 <alise> Good luck, sucker!
22:36:04 <pikhq> alise: Have you tried Parsec and a show/read instance?
22:36:22 <alise> Yeah, because Parsec can take an AST and give you back corresponding source.
22:36:28 <alise> Without writing a separate deparser.
22:36:45 <alise> Since it can do that, it's exactly what I want and I'm duplicating effort by writing something that can do that.
22:36:51 <alise> :P
22:36:52 <pikhq> Is a pretty printer that hard?
22:36:52 <pikhq> :P
22:37:21 <alise> Is a pretty-printer that handles things like only putting parentheses in when needed harder than simply writing a parser and having it automatically deparse too?
22:37:26 <alise> Yes; much harder.
22:37:31 <alise> And a library only has to be written once.
22:38:03 <pikhq> Ehh, eff that.
22:38:26 <pikhq> I've got a dozen more kanji or so I'd like to learn today.
22:38:34 <alise> Bah!
22:40:48 <oklopol> Deewiant: it's just really slow, if you need to know.
22:40:53 <pikhq> Mmm, autodidactism.
22:40:57 <pikhq> It is such a wonderful thing.
22:41:26 <oklopol> there's no other didactism, teaching is just an attempt to direct focus.
22:41:41 <oklopol> crazy person says what
22:41:50 <oklopol> i love clue
22:42:32 -!- coppro has joined.
22:43:15 <oklopol> also i just realized mutual recursion can't really be added just like that, the whole language needs to be changed quite a lot
22:43:24 <oklopol> well, who needs mutual recursion anyway
22:43:45 <coppro> mutual recursion just leads to sadness
22:43:48 <coppro> as does regular recursion
22:43:58 <Ilari> Hmmm... I think I have figured out another way for computing coordinates when moving through wormholes, but that way doesn't support nested wormholes at all. But one could have multiple funge spaces connected with wormholes...
22:44:17 <oklopol> Deewiant: so what are the ways around it?
22:44:26 <coppro> If you get rid of self-reference, you won't have nasty paradoxes
22:44:37 <Deewiant> oklopol: Switching your DNS server?
22:44:49 <Deewiant> Or just remembering the IP address of Google
22:44:53 <Deewiant> (An IP address)
22:45:01 <alise> <oklopol> there's no other didactism, teaching is just an attempt to direct focus.
22:45:05 <oklopol> i have no idea how to switch DNS server ofc
22:45:07 <alise> i've not been able to state it better
22:45:39 <coppro> I've heard it better; it's on the walls of my school better
22:45:47 <coppro> s/better$/somewhere/
22:45:57 <alise> Oh, the irony.
22:46:09 <coppro> :P
22:46:20 <oklopol> and here i thought it was my own thinking
22:46:44 <Deewiant> oklopol: Linux: /etc/resolv.conf; Windows Vista: Control Panel -> Network and Sharing Center -> Manage Network Connections -> right-click your connection -> Properties -> TCP/IPv4 -> Properties -> Use the following DNS server addresses
22:47:31 <oklopol> Deewiant: that's easier than asking someone? that's like... 8 clicks!
22:47:32 <oklopol> anyway is there a list from which i can choose?
22:47:56 <oklopol> because sort of hard to get addresses if you're offline
22:48:17 <MissPiggy> wuut
22:48:51 <Deewiant> oklopol: 8.8.8.8, 4.2.2.2 for example
22:49:17 <oklopol> oh okay
22:49:48 <Deewiant> I mean, just memorize/write down some public ones :-P
22:50:45 <oklopol> not sure that's very useful
22:50:53 <oklopol> i guess if you need to do that often
22:52:05 -!- tombom has quit (Quit: Leaving).
22:52:53 <oklopol> okay what should i write in this thing
22:53:21 <oklopol> trivialities like fibs and append aren't really much of a test case
22:53:45 <MissPiggy> what is a good test case
22:54:01 <oklopol> something slightly more complicated
22:54:39 <pikhq> Like a kernel.
22:54:50 <pikhq> Make an OS kernel a one-linear.
22:54:53 <pikhq> One-liner, even.
22:55:18 <oklopol> there's one slight problem
22:55:24 <oklopol> you can't write a one-liner in clue
22:55:59 <oklopol> oh wait you can
22:56:37 <alise> oklopol: write life
22:57:03 <oklopol> ah, that's good, although maybe 110 first
22:57:37 <oklopol> maybe i should add infinite lists........................................................
22:57:42 <MissPiggy> noooooooo!
22:57:56 <oklopol> :D
22:57:59 <oklopol> what's wrong with infinite lists
22:58:08 <MissPiggy> infinite lists are IMPLAUSIBLE
22:58:23 <oklopol> hmm, yeah that's a good point
22:59:28 <alise> implausible how.
23:01:08 <oklopol> well, first of all infinity is a REALLY big number
23:01:53 <pikhq> oklopol: infinity = infinity + 1
23:01:56 <pikhq> Roughly that big.
23:01:57 <pikhq> :P
23:02:10 <oklopol> good point, it's even bigger
23:02:13 <augur> MissPiggy, oklopol, wanna hear something cool about natural language? :o
23:02:16 <MissPiggy> yes
23:02:19 <MissPiggy> hi augur!
23:02:20 <oklopol> yes
23:02:33 <augur> ok
23:02:53 <oklopol> hi auglet
23:03:21 <augur> suppose that M("brown") = \x.brown(x)
23:03:37 <augur> (that is, the meaning of the word "brown" is some predicate of brownness)
23:03:41 <augur> and M("cow") = \x.cow(x)
23:04:14 <MissPiggy> ok
23:04:34 * oklopol is supposing the ass of those truths
23:04:40 <augur> it seems to be the case that humans are only capable of learning that M([a b]) = \x.M(a)(x) && M(b)(x)
23:04:57 <oklopol> huh
23:05:12 <augur> ie [brown cow] = \x.M("brown")(x) && M("cow")(x) = \x.brown(x) && cow(x)
23:05:48 <augur> its not possible that M([a b]) = \x.M(a)(x) || M(b)(x)
23:06:00 <alise> of course a brown cow isn't either brown or a cow?
23:06:03 <alise> or'm I missing something
23:06:04 <augur> e.g. M([brown cow]) = \x.brown(x) || cow(x)
23:06:11 <augur> thats the point!
23:06:15 <augur> or rather
23:06:23 <alise> also, humans cannot learn that [big toy] is in fact a small rabbit
23:06:24 <pikhq> The point is that languages just plain don't do that.
23:06:27 <pikhq> Interesting.
23:06:30 <augur> yes, in _practice_, a "brown cow" is not something that is either brown OR a cow
23:06:38 -!- Pthing has quit (Quit: Leaving).
23:06:58 <augur> but its not merely a happenstance thing about existing languages
23:06:59 <MissPiggy> I thought of it as brown(cow)
23:07:02 <MissPiggy> why isn't it that?
23:07:03 <augur> its a fact about POSSIBLE languages
23:07:13 <augur> MissPiggy: because cow is a concept, not a thing. :P
23:07:46 <augur> brown(cow) surely denotes that the CONCEPT cow is brown
23:07:50 <augur> or that all cows or brown
23:07:51 <pikhq> Also, [brown cow] could then be applied to something else.
23:07:55 <MissPiggy> hmmmm
23:08:04 <pikhq> Say, [brown cow dance].
23:08:05 <MissPiggy> well alright that does make sense what you are sayng
23:08:09 <augur> alise: also, kids can indeed learn that "big toy" means "small rabbit"
23:08:13 <pikhq> (silly example, but gets the point across)
23:08:43 <augur> just like they can learn that "brown cow" means "rootbeer float made with chocolate icecream not vanilla
23:09:04 <alise> can't learn as in physically can't?
23:09:08 <alise> because i have a new thing to try on my future kids
23:09:29 <augur> as in you can try to teach a kid a new adjective and/or a new noun
23:09:36 <augur> call it "prown" and "gow"
23:09:44 <augur> such that a "prown gow" is either brown, or a cow (or both
23:09:45 <augur> )
23:09:59 <augur> and kids cant get it.
23:10:18 <pikhq> And now, he's going to try to make a conlang with that as a grammatical feature just to fuck with his kids. :P
23:10:18 <augur> and where something that is just "prown" is brown
23:10:23 <augur> and something that is just a "gow" is a cow
23:10:32 <MissPiggy> goat
23:10:52 <oklopol> augur: how do you test something like this?
23:10:56 <augur> for whatever reason, in natural language, syntactic concatenation = semantic conjunction
23:10:58 <alise> He's a genius reckless.
23:11:00 <alise> BUT WHICH
23:11:13 <augur> oklopol: acquisition labs
23:11:19 <oklopol> oh?
23:11:25 <augur> Jeff Lidz has an acquisition lab
23:11:37 <augur> basically we try to teach kids novel words or constructions
23:11:49 <MissPiggy> that sounds cool
23:11:51 <augur> and they can learn a lot of them really easily
23:11:59 <augur> but they cant learn some of them at all
23:12:11 <oklopol> anyway who cares about kids, they're retards anyway, i bet i could learn a language where concatenation is disjunction.
23:12:20 <pikhq> That is both clever and obvious.
23:12:23 <augur> oklopol: not as a natural language :)
23:12:55 <augur> you would not be able to employ it in such a fashion naturally. your usage would, rather quickly, come to use concatenation to mean conjunction. thats the weird and crazy thing.
23:13:00 <augur> or heres another one
23:13:00 <alise> augur: so basically it's kid guinea pigging :)
23:13:13 <augur> alise: yes :)
23:13:16 <alise> perhaps it's just because conjunction is far more common than disjunction
23:13:23 <augur> quantifiers (words like "all", "some", "every", etc.) must obey the following rule
23:13:44 <oklopol> augur: i don't believe that
23:13:48 <augur> "all X are/do Y" must mean the same as "all X are X's that are/do Y"
23:13:57 <augur> e.g. "all dogs bark" = "all dogs are dogs that bark"
23:14:23 <oklopol> instead of what?
23:14:23 <augur> now im going to bet that this ALSO seems pretty fucking obvious
23:15:00 <augur> but consider that if "all" is just some binary subset function, e.g. "all X Y" = X ⊆ Y
23:15:12 <augur> then why cant we have "lall X Y" = Y ⊆ X?
23:15:20 <MissPiggy> loll X Y
23:15:21 <augur> e.g. "lall dogs bark" = "all barkers are dogs"
23:15:23 <augur> ;)
23:15:33 <augur> yes, it was quite intentional :)
23:15:36 <pikhq> Tangential, but I always find it weird when people talk about Noam Chomsky in the context of politics.
23:15:58 <MissPiggy> GNU/Chomsky
23:15:59 <augur> pikhq: why? hes one of the leading far left political commentators
23:16:26 <pikhq> augur: I always think of his work on formal grammars.
23:16:31 <augur> true.
23:16:41 <oklopol> augur: i don't think "not as a natural language" means anything, natural languages are much harder to talk in than, say, math
23:17:00 <pikhq> oklopol: No, much easier.
23:17:04 <augur> oklopol: ofcourse they are, but thats because natural language is complicated in weird and hard-to-understand ways
23:17:11 <oklopol> you always end up explaining anything even slightly complicated on paper, because natural languages are so crappy
23:17:11 <augur> and its not entirely arbitrary, either
23:17:13 <pikhq> You talk in a natural language without thinking about it all the time.
23:17:15 <pikhq> Math, you think about.
23:17:30 <augur> pikhq: math isnt hardwired into our brains ;)
23:17:33 <augur> objectively, its easier.
23:17:37 <pikhq> augur: Well, yes.
23:17:46 <pikhq> That is what makes it easier...
23:17:46 <augur> its also precise, and well defined
23:17:51 <augur> we understand it
23:18:03 <augur> or at least, we understand how to understand statements in math
23:18:13 <oklopol> eh? often while proving things i'm thinking about something else
23:18:17 <augur> and we understand why those statements mean what they mean because we defined them
23:18:20 <oklopol> i mean if it's something simple
23:18:43 <augur> but natural language has completely crazy, bizarre constraints on its mapping from form to meaning
23:18:50 <augur> heres a purely grammatical one, pikhq
23:18:55 <augur> you know what a cyclic permutation is?
23:19:08 <pikhq> augur: Not entirely.
23:19:19 <pikhq> Though I may find it obvious once you describe it.
23:19:20 <oklopol> what's a cyclic permutation?
23:19:29 <pikhq> My knowledge of linguistics is very... Vague.
23:19:36 <augur> its math, actually, but
23:19:49 <pikhq> And my knowledge of math is incomplete.
23:20:05 <augur> a cyclic permutation is basically an arrangement of some set of items such that the relative ordering is the same, including looping around to the beginning again
23:20:21 <pikhq> Oh, the obvious meaning associated with those words.
23:20:25 <augur> e.g. the cyclic permutations of "abcde" are "abcde", "bcdea", "cdeab", "deabc", and "eabcd"
23:21:01 <oklopol> okay so permutations that have just one cycle or whatever it's called
23:21:05 <augur> cyclic permutations are _impossible_, as far as anyone can tell, as grammatical rules.
23:21:36 <coppro> O_o
23:21:51 <pikhq> "I ate the food" "Food I ate the" "The food I ate" "Ate the food I".
23:22:16 * pikhq just thinking it over
23:22:22 <pikhq> Huh.
23:22:25 <augur> well, lets not use that as an example
23:22:26 <oklopol> as grammatical rules, how?
23:22:44 <oklopol> i mean in what sense, well i guess any sense?
23:22:48 <augur> lets say, instead, that there are some adjective classes, e.g. color, size, subjective judgement
23:23:09 <augur> e.g. red, small, and pretty
23:23:37 <augur> lets say its then grammatical to have them in that cyclic order: color, size, judgement
23:23:41 <pikhq> K.
23:23:58 <oklopol> heh, now i keep reading all concatenations as disjunctions
23:23:58 <augur> such that "red small pretty button" "small pretty red button" and "pretty red small button" are fine
23:24:00 <augur> but nothing else is
23:24:14 <oklopol> "cyclic order" is a bit of a brainteaser
23:24:34 <oklopol> in that context
23:26:16 <oklopol> interesting
23:26:21 <MissPiggy> augur, I read that Sumarian doesn't have any order
23:26:22 <augur> or lets take verbal auxiliaries
23:26:32 <MissPiggy> so every cyclic permutation of words meant the same thing
23:26:36 <augur> "john has been being an ass lately"
23:26:46 <oklopol> not that i believe testing this stuff on kids tells us anything, but i suppose most people do believe kids can learn languages.
23:26:49 <augur> or even better "john will have been being an ass"
23:27:00 <oklopol> something i seriously doubt
23:27:12 <augur> no that wont work actually haha
23:27:16 <pikhq> ... You doubt children can learn languages.
23:27:23 <augur> lets just say its "john will have been an ass"
23:27:29 <augur> that order, will-have-be
23:27:33 <pikhq> Clearly, you merely became fluent at the age of 18.
23:27:34 <pikhq> :P
23:27:44 <augur> let that be the cyclic ordering of those auxiliaries
23:28:01 <oklopol> well yeah, i mean sure they can mangle some sorta crap, but a kids aren't fluent speakers, you learn languages explicitly, when you're older
23:28:01 <augur> such that "john will have been an ass" = "john have been will an ass" = "john been will have an ass"
23:28:09 <augur> this is not something kids can learn
23:28:15 <oklopol> *-a
23:28:34 <augur> oklopol: no, kids DO learn languages quite well
23:28:37 <oklopol> hmm
23:28:39 <augur> its a mistake to assume otherwise.
23:28:54 <augur> formal training in "Proper" language is entirely bullshit
23:29:03 <augur> what you speak is language
23:29:07 <oklopol> not in my experience
23:29:07 <oklopol> no
23:29:14 <augur> so anyway.
23:29:28 <augur> there are just these constraints on what is a possible human language
23:29:39 <augur> and they dont seem to be objectively motivatable
23:29:48 <pikhq> oklopol: You sound like a prescriptionist.
23:29:53 <augur> cyclic permutations especially, since humans can do perfectly well on them when its not language
23:29:55 <oklopol> of course i'm a prescriptionist
23:30:03 <augur> oklopol is just silly.
23:30:09 <oklopol> you would be too, if you knew how crappy natural languages are
23:30:27 <pikhq> You also sound silly. I knew proper, formal English from a young age...
23:30:27 <augur> oklopol: you'd stop being one if you realized how crappy prescription actually is ;)
23:30:47 <alise> prescriptivist, you idiots
23:30:50 <alise> it's prescriptivist!
23:30:53 <alise> and they're IDIOTS!
23:31:02 <alise> Please say prescriptivist. prescriptionist is just wrong.
23:31:02 <pikhq> alise: ITS PRESCRIPTIONIST NOW. MUAHAHAHAH.
23:31:04 <augur> natural language is extremely good at doing what it was evolved to do
23:31:04 <pikhq> ;)
23:31:05 <alise> but seriously, don't even talk about them
23:31:07 <alise> be a descriptivist
23:31:09 <augur> and thats NOT math.
23:31:09 <alise> GET IT GUYS GET IT
23:31:17 <alise> IT'S A DESCRIPTIVIST BEING PRESCRIPTIVIST ABOUT THE WORD PRESCRIPTIVIST
23:31:19 <oklopol> augur: no it's not
23:31:23 <oklopol> it sucks at it.
23:31:27 <augur> no it doesnt
23:31:31 <oklopol> yes it does
23:31:43 <pikhq> oklopol: Propose some alternatives?
23:31:50 <augur> well, it sucks objectively speaking, but you cant make it better
23:31:53 <oklopol> yes, use lojban or something
23:32:08 <augur> lojban is either just as sucky, or impossible to use naturally. :)
23:32:17 <oklopol> that's not true
23:32:20 <augur> yes, it is.
23:32:28 <oklopol> no, it's not.
23:32:31 <augur> yes, it is.
23:32:31 <pikhq> "Fluent" speakers produce Lojban that doesn't parse quite right. :P
23:32:33 -!- SimonRC has quit (Ping timeout: 265 seconds).
23:32:34 <oklopol> no, it's not.
23:32:40 <augur> yes, it is, oklopol.
23:32:45 <oklopol> no, it's not, augur.
23:32:57 <augur> the human language faculty is what it is.
23:33:11 <augur> if lojban does not fit this mold, then it simply cannot be used naturally.
23:33:26 <augur> if it does fit this mold, then it is subject to all of the problems that non-lojban languages are subject to.
23:33:50 <pikhq> augur: Well, all of the problems that *all* non-lojban languages are subject to.
23:33:58 <oklopol> i'm gonna go to sleep now, you keep on dreaming; in any case, that was interesting stuff, is there a comprehensive listing of these testings?
23:33:58 <oklopol> well i don't care, communication sucks anyway
23:34:15 <augur> oklopol: i agree. lets just fuck instead.
23:34:17 <oklopol> yeah
23:34:17 <pikhq> It can at least avoid certain of them, like "having a spelling that is completely unrelated to how it's spoken".
23:34:20 <oklopol> sex works
23:34:22 <oklopol> natural sex.
23:34:33 <augur> pikhq: thats not language tho, thats orthography
23:34:40 <augur> but orthography is already unnatural.
23:34:41 <pikhq> augur: True.
23:34:57 <augur> further, "completely unrelated" is a difficult thing to explain.
23:35:09 <pikhq> Mm. Yeah.
23:35:19 <oklopol> natural languages don't have variables and proper mathematical quantifiers, i guess that's the thing i hate about them most
23:35:30 <augur> english orthography, except for some rough patches, is actually quite decently transparent.
23:35:35 <augur> its just not compositionally transparent.
23:35:42 <augur> oklopol: actually they do :)
23:36:00 <augur> the variables are just not as easilly handled, and the quantifiers require bigger phrases.
23:36:35 <oklopol> yeah, in other words the most fundamental concepts of communication suck ass
23:36:57 <augur> not for what theyre designed to do! :)
23:37:08 <MissPiggy> how does it suck???
23:37:33 <augur> it sucks because oklopol is trolling is all.
23:37:36 <augur> and hes a robot
23:37:41 <pikhq> augur: Transparent? Mmm. Well, the spelling at least has some affiliation with the pronunciation.
23:37:42 <oklopol> eh, i'm not trolling
23:37:45 <oklopol> but really sleep ->
23:37:53 <pikhq> Though it varies based upon etymology.
23:37:54 <oklopol> also answer my question if you have the time
23:37:54 <oklopol> ->
23:41:29 <augur> pikhq: so yeah. find a good explanation for these things.
23:41:34 <augur> its tricky!
23:44:08 -!- SimonRC has joined.
23:47:21 -!- oerjan has joined.
23:48:31 <pikhq> Hail, oerjan.
23:48:55 <alise> oerjan: I asked oklopol to ask the little copy of you in his head, but he didn't, so: it *is* possible to write a bidirectional parser, right?
23:48:57 <alise> Yes? Good.
23:49:03 <alise> (I'm 99% sure it is, so.)
23:49:13 <oerjan> um what is a bidirectional parser
23:49:14 <coppro> what do you mean by bidirectional?
23:49:32 <oklopol> it's both gay directional and straightdirectional
23:49:33 <oklopol> *gaydirectional
23:49:42 -!- adam_d has joined.
23:49:57 <oklopol> i'm not sure that works.
23:50:17 <oerjan> try with homo- and hetero-
23:50:21 <oklopol> what's the definition of gay, is it just "same sex" or "at least same sex"
23:50:25 <oklopol> yeah
23:50:31 <oklopol> that's better
23:51:09 <oerjan> i'd say it's evilly mixing greek and latin roots, but the -sexual versions already do that
23:51:45 <oklopol> yeah but can homo- or gay include bi's?
23:51:56 <MissPiggy> homo- can't
23:52:20 <oklopol> that sounds kinda stupid
23:52:20 <MissPiggy> bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay
23:52:32 <augur> alise: yes. it is possible.
23:52:34 <coppro> how do I add a quote to the bot?
23:52:40 <alise> `addquote
23:53:03 <alise> gay(x) = sex(x)==sex(me); straight(x) = sex(x)!=sex(me); bi(x) = gay(x) || straight(x);
23:53:09 <MissPiggy> I am bidirectional parser curious
23:53:13 <alise> where orientation(x) = "is it okay to consider this relationship under this sexuality"
23:53:18 <MissPiggy> I dabble a bit in pretty printing and sexy parsing
23:53:32 <oklopol> parsing isn't sexy
23:53:34 <oklopol> it's really annoying
23:53:37 <MissPiggy> mine is
23:53:41 <oklopol> hmm
23:53:45 <oklopol> yeah maybe
23:53:50 <MissPiggy> :3
23:53:54 <alise> further constraints may be applied of course
23:54:05 <coppro> `addquote <MissPiggy>bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay
23:54:10 <alise> pansexual = bi + any other constraint considering gender is omitted
23:54:13 <HackEgo> 129|<MissPiggy> bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay
23:54:19 <augur> alise: thats not what bi means :p
23:54:30 <alise> oerjan: bidi parser = one parser definition does both [tok] -> a and a -> [tok]
23:54:42 <augur> but its an interesting interpretation!
23:54:46 <oerjan> alise: sounds like something you'd do with prolog
23:54:49 <alise> augur: you can prefer one gender over the other in bi
23:54:58 <augur> this is true.
23:54:58 <alise> but the functions I wrote meant "is this okay by this orientation"
23:55:01 <Gregor> That makes my brain hurt :P
23:55:12 <alise> pansexuality is basically bisexuality with both sexes having the same weight
23:55:13 <oklopol> i didn't get her formalism at all
23:55:24 <alise> oerjan: yeah, well I'm doing it in haskell.
23:55:28 <alise> oerjan: it is _difficult_.
23:55:46 <coppro> don't forget omnisexuality
23:55:48 <augur> alise: not really.
23:55:51 <oerjan> alise: maybe you can abuse Show/Read derivation for it?
23:55:57 <oklopol> omnisexuality? does that exist
23:55:59 <augur> pansexual is the fancier version of bisexual, basically.
23:55:59 <alise> augur: then what do you consider pansexuality?
23:56:03 <alise> well, yes
23:56:03 <alise> but
23:56:08 <augur> thats how pansexuals use it.
23:56:12 <alise> bisexual = I potentially like people of both genders
23:56:18 <oklopol> because would be nice to have a word that actually means what pansexuality should mean
23:56:25 <alise> pansexual = I do not consider gender when deciding whether I like someone
23:56:29 <Gregor> omnisexual = I fuck everything
23:56:29 <oerjan> panisexual: attracted to bread
23:56:30 <alise> is the "official" definitionerition
23:56:33 <augur> alise: this is not the case.
23:56:39 <alise> augur: wikipedia agrees qed
23:56:41 <alise> but yeah
23:56:43 <alise> pansexual is a faggot term
23:56:45 <alise> ...wait
23:56:54 <augur> well wikipedia is irrelevant. :P
23:57:10 <alise> thus is your mother.
23:57:10 <Gregor> biosexual: Attracted to anything living
23:57:13 <alise> Can't make a derived instance of `Show (Syntax t a)'
23:57:14 <alise> (Constructor `Sequence' does not have a Haskell-98 type)
23:57:17 <oklopol> god things annoy me today
23:57:17 <alise> fukkkkkkkkkkkkkkkk yuuuuuuuuu
23:57:29 <MissPiggy> shut up oklopol GOD!!! I can't belive you sometimes
23:57:32 <oklopol> maybe it's partly because my head hurts like hell
23:57:42 <Gregor> hexosexual: Attracted to six.
23:57:46 <MissPiggy> pansexual is so stupid :(
23:57:50 <MissPiggy> I hate that word
23:57:58 <coppro> alise: if you're going to be discussing these, please use the specific definitions of gender and sex
23:58:00 <oerjan> alise: i vaguely recall someone doing something something typeclass polymorphic to get both directions of parsing in haskell. but maybe i'm confusing it with something else.
23:58:15 <alise> coppro: i'm basing it on a utopian world where people consider gender, not sex
23:58:28 <alise> admittedly for sexual relationships it needs ... somewhat of an adjustment
23:58:32 <alise> exercise for the reader
23:58:40 <augur> alise: regarding bidirectional parsing, i presume you mean from either end of the input string?
23:58:47 <MissPiggy> 23:54 < oerjan> alise: sounds like something you'd do with prolog
23:58:53 <MissPiggy> Yes oerjan has a good point
23:59:00 <MissPiggy> quite a few programs you write as DCGs are invertible
23:59:16 <alise> augur: no, I mean that one syntax definition generates both a parser and a printer
23:59:32 <alise> basically imagine String->a, to generate a->String you just swap LHS and RHS, basically
23:59:45 <alise> it's like that, with all the difficulties I omitted, with lots of extra trouble because parsers aren't that simple in actuality
23:59:59 <MissPiggy> you can't swap LHS and RHS>..
2010-02-14
00:00:15 <MissPiggy> alise by the way have you seen Shin-Cheng Mus invertible programming language?
00:00:51 <alise> MissPiggy: yes but you can get close to swapping it
00:00:52 <alise> also no
00:00:53 <augur> alise: oh. well, thats not a bidirectional parser. ;p
00:01:01 <alise> augur: and your mom is a whore. :|
00:01:05 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
00:01:11 <oklopol> "MissPiggy: shut up oklopol GOD!!! I can't belive you sometimes" <<< what was this in reference to, your msgs come one pageful at a tim
00:01:12 <oklopol> e
00:02:43 <oklopol> pansexuality?
00:02:56 <MissPiggy> okpause it's re. 23:56 < oklopol> god things annoy me today,
00:03:25 <alise> okpause?
00:03:39 <alise> you know, nobody else finds oklopol annoying
00:04:00 <oerjan> "Besides bidirectional polytypic examples, including invertible serialization, we give the definition of a monadic bi-arrow transformer, which we use to construct a bidirectional parser/pretty printer."
00:04:09 <oklopol> i bet many people here find me annoying
00:04:16 <alise> oerjan: link me so I can remind myself to read it if I fail horribly at this
00:04:19 <oerjan> http://www.citeulike.org/user/voigt/article/342287
00:04:32 <alise> I really would like a nice Parsec-lite (I know it can't be as powerful by definition) bidi parser lib
00:04:35 <augur> oerjan: aha! so its not a "bidirectional parser" its a bidrectional (parser/pretty-printer)
00:04:38 <oerjan> alise: you may need some help to get behind the ACM wall
00:04:41 <alise> would make toy languages so much nicer
00:04:48 <oklopol> jehova's witnesses came today
00:04:50 <oerjan> i hear augur is useful for that
00:04:54 <alise> just write one quick syntax definition and I get my pretty-printer free
00:04:57 <alise> oerjan: ah, thanks
00:05:04 <MissPiggy> ;(
00:05:10 <alise> Jehovah's Type Witnesses.
00:05:19 <oklopol> i told them they had an interesting viewpoint and said i don't really have strong opinions about anything
00:05:19 <alise> disciples of Agda
00:05:20 <MissPiggy> it was a joke alise
00:05:28 <alise> important figures include the prophet Coq
00:05:30 <alise> MissPiggy: oh, right
00:05:37 <alise> MissPiggy: it's just that you're normally like that so I wasn't sure :D
00:05:41 <MissPiggy> lol
00:05:41 <alise> (that was another one of them jokes)
00:05:45 <alise> oklopol: HA
00:05:55 <alise> shoulda taped it
00:06:13 <MissPiggy> I never talked to any jumping johosephats
00:06:35 <alise> Sequence :: Syntax t b -> (b -> Syntax t a) -> Syntax t a
00:06:42 <alise> whoops, looks like a monad slipped in
00:07:13 <augur> http://wellnowwhat.net/transfers/p86-alimarine.pdf
00:07:16 <oerjan> alise: it was just the first google hit for bidirectional parsing haskell, anyhow
00:07:55 <oklopol> shoulda taped what?
00:07:58 <oklopol> the witnesses?
00:08:03 <oklopol> i often talk to them
00:08:05 <alise> yeah
00:08:08 <alise> <oklopol> i told them they had an interesting viewpoint and said i don't really have strong opinions about anything
00:08:09 <alise> comedy gold
00:08:25 <oklopol> :D
00:08:48 <augur> you like my responsiveness? :)
00:09:33 <MissPiggy> augur what's that?
00:09:45 <augur> the link is the paper that oerjan is referring to
00:09:53 <augur> from behind ACM access barriers
00:09:54 <oklopol> alise: i'm afraid of being too frank with jehovas, i'm afraid something i say makes them understand they're completely wasting their life, which i find a horrible thought
00:09:57 <MissPiggy> awwors
00:10:17 <MissPiggy> oklopol you rare nice :)
00:10:24 <oklopol> i'm always careful around people who i think are doing something wrong
00:10:30 <alise> augur: didn't even notice whoa
00:10:40 <alise> augur: you should set up a website that automates that :P
00:10:41 <alise> and get sued
00:10:48 <augur> :P
00:10:50 <oklopol> MissPiggy: dunno, i think i'm just a coward
00:10:51 <augur> actually
00:10:59 <augur> the problem is more that i couldnt even make it work
00:11:06 <augur> the ACM search tool doesnt work right
00:11:12 <MissPiggy> I am hello
00:11:43 <oklopol> and i'm afraid of convincing people about anything, because if i convinced them about something that's wrong, that would be just horrible
00:12:11 <MissPiggy> well don't worry about convincing me of anything
00:12:14 <MissPiggy> because I don't mind
00:12:17 <MissPiggy> infact I like it
00:12:38 <oklopol> have you heard me talk about stuff? i'm not very convincing.
00:12:49 <oklopol> well
00:12:58 <oklopol> i guess that's just a reason for you not to be worried, not me
00:13:06 <oerjan> oklopol: "If you take the life lie from an average man, you take away his happiness as well."
00:13:21 <oerjan> (Ibsen)
00:13:43 <oklopol> i hate it when my crazy thoughts are shared by less crazy people
00:13:54 <MissPiggy> what's so crazy about ____________
00:14:11 <oklopol> nothing really
00:14:13 <oerjan> although the translation is a bit deceiving, the norwegian "med det samme" can mean "at once" as well as "as well"
00:15:15 <oerjan> (also the original is gender neutral)
00:15:31 <oerjan> er, except from pronouns, which cannot be
00:17:08 <alise> "the life lie" is awkward
00:17:17 <alise> "the life's lie", maybe.
00:17:52 <oerjan> perhaps. the original is "livsløgnen", which i suspect was a word ibsen invented but which is immediately understandable
00:18:03 <oklopol> i prefer life lie
00:18:03 <oklopol> because it looks like a typoed life line
00:18:03 <oklopol> ...or maybe for some other reason
00:18:47 <oerjan> (and the -s- is just for word combining, although it _is_ etymologically a genitive ending)
00:19:01 <alise> yeah utilitarianism and knowledgeisawesomeism are kind of conflicting
00:19:04 <alise> which disturbs me
00:20:59 <oklopol> ethics is too complicated
00:22:28 <oerjan> "Ibsen er trolig årsaken til at begrepet livsløgn er i allmenn bruk i de nordiske land, mens den engelske oversettelsen life lie riktignok blir brukt men i mindre omfang."
00:23:03 <oerjan> i.e. it's used in the nordic countries, but not much in english (which is why i could only find it on norwegian wikipedia i presume
00:23:19 <oerjan> )
00:23:37 <oerjan> (also in german)
00:25:28 <oerjan> well, http://encyclopedia.jrank.org/articles/pages/3546/The-Life-Lie.html is in english
00:26:41 -!- oklopol has quit (Ping timeout: 265 seconds).
00:27:47 <alise> ooh, I have an idea for making sure all the values are used in the resulting AST
00:28:02 <alise> give it back as a Foo x instead of an x, where the value-constructing function takes Foo xs instead of xs
00:28:15 <alise> that way, you can keep track of the state of which values you've demanded
00:28:21 <alise> and you can't just go yeah demand it >> ignore the result
00:28:25 <alise> because you can't personally do it
00:28:50 <oerjan> is that Foo a monad return or a comonadic coreturn...
00:30:15 <oerjan> wait coreturn would be Foo a -> a
00:30:16 <alise> it's just
00:30:24 <alise> data Foo a = Foo a
00:30:27 <alise> except the constructor is not exposed
00:30:34 <alise> so only the value-constructor can dereference them
00:30:42 <alise> and when it does, it'll mark that parse result as used
00:30:54 <alise> if you have any unused results at the end, you are a very naughty boy
00:31:03 <alise> and it cannot be unparsed without specifying a default value somewhere
00:31:05 <oerjan> feels like a monad then
00:31:29 <MissPiggy> if it feels like a monad and it quacks like a monad...
00:31:32 <oerjan> or wait, you might not expose something for >>= or join either
00:31:46 <alise> right
00:32:23 <oerjan> hm right if you had those you could do >> and ignore the result, so not allowed
00:33:20 <alise> i think this will be a lot easier if i define `type Bijection a b = (a->b, b->a)
00:33:35 <alise> so that PP t a = Bijection [t] a
00:34:09 <alise> erm
00:34:12 <alise> (Maybe [t]) (Maybe a)
00:34:23 <alise> although i could do with some fromJust there or sth
00:34:46 <alise> type UncertainBijection a b = (a->Maybe b, b->Maybe a) :P
00:34:58 <alise> and it needs to be Maybe (a,[t]) anyway...
00:38:30 <MissPiggy> UncertainBijection?
00:38:35 <alise> yeah :P
00:38:58 <MissPiggy> yes well you definitely don't have a bijection between text and syntax
00:39:12 <alise> shaddap
00:39:14 <alise> it is useful though
00:39:18 <alise> maptok :: Bijection t u -> SD t a -> SD u a
00:39:18 <alise> maptok (f,g) (p,u) =
00:39:18 <alise> (\xs -> maybe Nothing (\(a,xs') -> (a, f xs')) $ p (map g xs)
00:39:18 <alise> ,\a -> maybe Nothing (\xs -> map f xs) (u a))
00:39:19 <MissPiggy> I don't know why it is useful
00:39:40 <alise> er, that doesn't quite type yet :D
00:40:01 -!- adam_d has quit (Ping timeout: 256 seconds).
00:41:23 <alise> maptok :: Bijection t u -> SD t a -> SD u a
00:41:23 <alise> maptok (f,g) (p,u) =
00:41:23 <alise> (\xs -> maybe Nothing (\(a,xs') -> Just (a, map f xs')) $ p (map g xs)
00:41:23 <alise> ,\a -> maybe Nothing (\xs -> Just (map f xs)) (u a))
00:41:24 <alise> there
00:42:21 -!- augur has changed nick to HPGrice.
00:42:30 -!- HPGrice has changed nick to augur.
00:53:13 <alise> meh
00:53:18 <alise> oerjan: does that paper include an implementation?
00:54:05 <oerjan> heck if i know, i only googled it
00:54:18 <alise> bah
00:54:21 <oerjan> (and maybe vaguely recalled hearing about it)
00:54:48 <oerjan> if not, maybe search for the author home pages?
00:56:25 <oerjan> oh the article is on citeseerx, so the ACM wall wasn't necessary
00:56:27 <alise> you'd think this would be - no you wouldn't
00:58:55 <oerjan> alise: http://www.cs.ru.nl/A.vanWeelden/index.php?p=downloads
00:59:22 -!- FireFly has quit (Quit: Leaving).
00:59:35 <alise> "generic haskell" wow
00:59:37 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
00:59:54 <alise> well it does have parser->dumper
01:00:06 <alise> but god knows it'd take four years to translate it to modern haskell
01:00:16 <oerjan> ouch
01:00:39 <MissPiggy> generic haskell o_o
01:00:52 <alise> yeah it has like {|x|y} and shit in arguments
01:01:03 <alise> i think it's the predecessor to syb
01:01:14 <alise> doing it via generalised invertible arrows is a good idea though
01:01:18 * MissPiggy pukes
01:01:23 <alise> at least i think it's that
01:03:51 -!- lament has quit (Ping timeout: 252 seconds).
01:04:31 <alise> class Arrow arr => BiArrow arr where
01:04:32 <alise> (<->) :: (a -> b) -> (b -> a) -> arr a b
01:04:32 <alise> inv :: arr a b -> arr b a
01:04:33 <alise> so it's just what i did
01:04:34 <alise> boring
01:05:43 <oerjan> seems there is nothing based on it in hackage, although Data.Bijection refers to it
01:06:40 <oerjan> also Data.Partial
01:06:52 -!- lament has joined.
01:07:15 <alise> http://hackage.haskell.org/packages/archive/TypeCompose/0.6.7/doc/html/Data-Bijection.html
01:12:42 * alise compiles Pure
01:14:30 <MissPiggy> whats Pure
01:14:52 <alise> http://code.google.com/p/pure-lang/; Q's begetee
01:15:13 <alise> Less obfuscatorarily, the successor to Q.
01:15:21 <MissPiggy> ahh
01:15:43 <alise> If LLVM isn't up-to-date enough on this old Ubuntu version I'll just use Q instead.
01:16:34 <alise> de bruijn is sexy.
01:16:46 <alise> that is indexes
01:17:59 -!- Asztal has quit (Ping timeout: 256 seconds).
01:18:45 <MissPiggy> yeah lol
01:20:46 <alise> i'm thinking
01:20:50 <alise> dependently typed tree rewriting
01:20:54 <alise> or
01:20:55 <MissPiggy> ;}
01:20:59 <alise> dependently typed functional applicative
01:21:02 <alise> one of them is the way forward
01:21:11 <MissPiggy> what is functional applicative?
01:21:22 <alise> your regular applicative, functional language
01:21:24 <alise> haskell, agda, etc
01:21:27 <alise> ML
01:22:17 <alise> <MissPiggy> I think I will implement Lamping
01:22:17 <alise> <MissPiggy> 's algorithm
01:22:17 <alise> <MissPiggy> in haskell
01:22:20 <alise> i thought haskell sucked
01:22:34 <MissPiggy> yeah it does and I decided not to code this
01:23:02 <alise> what is so bad about haskell?
01:23:18 <alise> apart from dependent types which you say are overrated and unicode which you dislike it's not that far from agda
01:23:20 <pikhq> MissPiggy likes bugs.
01:23:21 <pikhq> :P
01:23:25 <MissPiggy> I dont like agda either
01:23:31 <alise> does agda suck though?
01:23:32 <pikhq> Wait, you dislike Unicode?
01:23:42 <MissPiggy> I said overuse is bad
01:23:43 <alise> e dislikes gratuitous unicode in languages
01:23:47 <MissPiggy> just a bit is quite fine
01:23:54 <pikhq> 私はあなたをころしたい!
01:24:02 <MissPiggy> I dont' know Java :(
01:24:29 <pikhq> alise: ...
01:24:37 <alise> what
01:24:51 <pikhq> I love Unicode in languages.
01:25:43 <alise> programming languages e means
01:25:55 <pikhq> Yes.
01:25:57 <coppro> I'm ambivalent towards it
01:26:01 <coppro> on the one hand I like the concept
01:26:05 <coppro> on the other hand it's a bitch to type
01:26:52 <alise> I'm solving that problem by defining a not-entirely-pretty ASCII representation, and an all-out no-holds-barred TeX'd-up two-dimensional symbolerific presentation form.
01:27:04 <alise> A good editor would let you type the former to write the latter.
01:27:08 <MissPiggy> alise
01:27:11 <alise> Basically like Fortress does.
01:27:13 <MissPiggy> 01:24 < MissPiggy> cizra what about prolog?
01:27:19 <MissPiggy> 01:25 < cizra> MissPiggy: Haven't shown her that (= It's too hairy for my tastes
01:27:24 <MissPiggy> 01:26 < cizra> MissPiggy: Might be.. But I don't know much Prolog, so it'd be perilous to teach it to a newb.
01:27:47 <MissPiggy> lol @ "I hate prolog it's $vauge-and-meaningless-negative-term" --> "I don't know anything about prolog"
01:27:52 <MissPiggy> ?
01:28:06 <alise> he didn't say I hate prolog
01:28:09 <MissPiggy> oh
01:28:31 <alise> He said it's too hairy for his tastes, i.e. his personal sthetic response to it is a negative one, expressed as "hairy".
01:28:43 <alise> Maybe he has bad taste, but that's an opinion too. :P
01:29:09 <alise> also, not much != nothing
01:31:28 <alise> jane@jane-desktop:~/pure/pure-0.42$ pure
01:31:28 <alise> Segmentation fault
01:31:42 <alise> it worked in /usr/local >_<
01:31:53 <alise> $ pure
01:31:53 <Wareya> hahahaahahahahahahaa
01:31:53 <alise> bash: pure: command not found
01:31:55 <alise> haha WHAT
01:32:05 <alise> ... it removed itself
01:32:13 <alise> oh wait i didn't actually make install
01:32:13 <alise> lol
01:32:18 <alise> (but, WHAT)
01:32:27 <MissPiggy> lol it seppuku
01:32:33 <MissPiggy> I wish GNU/Prolog would seppuku
01:32:34 <alise> but there was no pure(1) :-D
01:32:42 <alise> its ghost went ohai then transcended
01:32:43 <alise> MissPiggy: why?
01:32:45 <alise> swi fan? :P
01:32:53 <MissPiggy> no I hate swi as well :((
01:32:58 <alise> what do you like
01:33:01 <MissPiggy> even though it's the best prolog implementation in the world
01:33:20 <MissPiggy> (I hate swi because they got right of "no.")
01:33:35 <oerjan> i'd've though swi would be the prolog for swine
01:33:45 <MissPiggy> :p
01:34:07 <oerjan> *thought
01:34:39 <oerjan> er, right of "no."?
01:34:54 <MissPiggy> wow I just found some awesome papers about lambda shared graph reduction
01:35:16 <oerjan> MissPiggy: what's "right of "no."?" supposed to mean?
01:35:24 <oerjan> *-?
01:35:58 <MissPiggy> oerjan: should have said 'rid of', when you do something in prolog and it fails it should print: no. -- but they changed it to print: false instead.. so they can claim the prolog query is a partial evaluation
01:36:03 <MissPiggy> evaluator
01:36:36 <alise> MissPiggy: lol pure actually has features from aardappel
01:36:37 <alise> the esolang
01:36:39 <alise> and credits it with them
01:37:40 <MissPiggy> http://strlen.com/aardappel/ ?
01:38:09 -!- coppro has quit (Remote host closed the connection).
01:47:09 <alise> yeah
01:47:20 <alise> from the creator of Saurbrauten and FALSE
01:47:30 <alise> *Sauerbraten
01:53:44 <augur> potato! :D
01:55:40 <alise> Pure is sexy
01:57:10 -!- zzo38 has joined.
01:57:41 <zzo38> Finally I fixed my OpenID service. (I just got a different library, and wrote the forms and stuff myself, using that library.)
01:58:21 <MissPiggy> good
02:01:48 <zzo38> It is currently a single-user service, but I could upgrade it to multi-user service, too.
02:02:05 <Gregor> Not that that would help you any :P
02:03:26 <zzo38> Yes, of course I don't need multi-user service, but I can program it as such in case anyone else wants a OpenID service on my server (you have to provide the Identity URL, Login Name, and Password MD5 Hash, and then I *might* consider it, but I will never support automated registration of accounts on my service)
02:05:27 <zzo38> Of course I can also add multi-user service just in case I might want multiple OpenID just by myself, even.
02:06:07 <zzo38> This is the library I used, in case you are interested: http://openidenabled.com/php-openid/
02:06:46 <Gregor> That's the library that Hackiki uses as a consumer too :P
02:07:06 <zzo38> OK, thanks.
02:07:16 <zzo38> I guess it can work!
02:07:55 <zzo38> There seems to be a few things missing in the documentation, though.
02:08:28 <Gregor> Such as any useful documentation whatsoever :P
02:09:02 <zzo38> However, I did eventually figure it out, and it isn't really that difficult.
02:11:10 <zzo38> I just tried to log in on Hackiki and it works perfectly fine.
02:14:08 <zzo38> Hackiki is a bit strange features, it even allows anyone to edit the way the wiki syntax works
02:14:48 <Gregor> That's the primary feature :P
02:15:04 <zzo38> Yes, I know it is
02:17:07 <Gregor> Apparently I end every line with a tongue-smiley :P
02:18:19 <Gregor> Sometimes my misuse of smileys gets out of hand.
02:18:52 <pikhq> Gregor: Alas.
02:18:57 <oerjan> <Gregor> hexosexual: Attracted to six. <-- last found counterexample
02:19:26 <Gregor> Weird that both of those unrelated lines came at once :P
02:20:31 <alise> I segfaulted pure \o/
02:20:43 -!- GreaseMonkey has joined.
02:20:57 <alise> > 3 % 3;
02:20:57 <alise> warning: rule never reduced: a%1 = a;
02:20:57 <alise> warning: rule never reduced: a%1 = a;
02:20:57 <alise> warning: rule never reduced: a%b = a div d%(b div d) when d = gcd a b end;
02:20:57 <alise> warning: rule never reduced: gcd a 0 = a;
02:20:58 <alise> warning: rule never reduced: gcd a b = gcd b (a mod b);
02:21:00 <alise> warning: rule never reduced: gcd a 0 = a;
02:21:02 <alise> warning: rule never reduced: gcd a b = gcd b (a mod b);
02:21:04 <alise> Segmentation fault
02:21:08 <alise> I may not fully understand how to use this language
02:21:13 <MissPiggy> lol fault
02:21:22 <MissPiggy> turns out it's just a crap implementation
02:21:24 <alise> faultblog.org
02:21:30 <alise> MissPiggy: it's just an immature impl
02:21:31 <alise> new lang
02:21:36 <alise> fancy technology
02:21:37 <alise> etc
02:22:44 <Gregor> !c printf("Does this still work?")
02:22:53 <EgoBot> Does this still work?
02:22:58 <alise> aha, it's the % name
02:23:00 <alise> poop works
02:23:10 <alise> > poop 3 3;
02:23:10 <alise> 1
02:23:10 <alise> > poop 73 9;
02:23:10 <alise> [hang]
02:23:31 <alise> stupid thing
02:25:12 <MissPiggy> http://playlist.yahoo.com/makeplaylist.dll?id=1368162
02:25:15 <Sgeo> alise, are you capable of reminding yourself? Tomorrow may be a mess for me
02:25:17 <MissPiggy> space walk starting soon
02:25:21 <MissPiggy> if you like video of space
02:25:44 <alise> Sgeo: ok
02:26:34 <alise> MissPiggy: cool they're talking and stuff
02:26:43 <alise> seeing the earth swirl is whoa, never realised it was so... fast, i guess
02:26:47 <alise> and
02:26:47 <alise> stuff
02:27:21 <MissPiggy> hehe
02:27:45 <alise> i find space terrifying :/
02:27:57 <alise> not the sheer emptiness, just the sheer... sheerness
02:28:08 <MissPiggy> I know what you mean
02:29:27 <alise> Poop a 1 = a;
02:29:28 <alise> Poop a b = Poop (a div d) (b div d) when d = gcd a b end;
02:29:31 <alise> the problem here is when d = 1
02:29:38 <alise> it goes into an infinite loop
02:29:41 <MissPiggy> space man is out!!!!!!
02:29:47 <alise> omg /me unpause
02:29:47 <alise> s
02:29:53 <alise> FUCKIN LOAD
02:29:55 <MissPiggy> he just wormed out :D
02:29:58 <MissPiggy> he's hiding lol
02:30:06 <alise> haha
02:30:09 <alise> camofuckinflauge
02:30:19 <alise> whoa i thought this place was bigger than that
02:30:21 <MissPiggy> in space everything is wapped in future
02:30:23 <alise> like, giant man
02:30:25 <MissPiggy> me too
02:30:27 <alise> he is stuck to the lid
02:30:39 <alise> are you sure this is not a robot
02:30:39 <MissPiggy> he's just trolling
02:30:40 <MissPiggy> ignore him
02:30:53 <alise> also, wapped in future?
02:30:54 <alise> wat
02:30:56 <MissPiggy> it's mostly robot.. the way he moves etc
02:31:02 <MissPiggy> but it's a person inside it
02:31:14 <alise> HE WAS ARTIFICIAL...
02:31:16 <alise> BUT HE HAD...
02:31:17 <alise> A HUMAN SOUL
02:31:21 <alise> SPACEWALKER
02:31:22 <MissPiggy> LOL
02:31:23 <alise> In cinemas this summer
02:32:26 <alise> what is he doing with that thing he is holding
02:32:33 <alise> just sort of admiring it?
02:34:14 <MissPiggy> oh my god there's two of them
02:34:20 <MissPiggy> !!!! what if they breed !!!!
02:35:06 <alise> that was actually my first thought
02:35:10 <alise> i've no idea why
02:35:12 <MissPiggy> :)))
02:37:11 <alise> MissPiggy: tree rewriting 'pinyun from you so I can blame or not blame Pure
02:37:13 <alise> Poop a b = Poop (a div d) (b div d) when d = gcd a b end;
02:37:18 <alise> if d = 1, this reduces to Poop a b
02:37:28 <alise> should this be an infinite loop, or should the equality of the reduction halt evaluation?
02:37:37 <MissPiggy> it should halt!
02:37:48 <alise> ok. that was my expectation too. but,
02:37:52 <alise> then how do you write an infinite loop?
02:38:12 <MissPiggy> loop = do nothing `then` loop
02:38:24 <MissPiggy> = do nothing `then` do nothing `then` loop
02:38:31 <MissPiggy> sort of like a monad ?
02:38:37 <alise> that's just seq
02:38:44 <alise> but seq is semantically nonsense in a pure language
02:38:48 <alise> try again
02:39:02 <alise> also, that causes heap overflow if you run it long enough
02:40:38 -!- Gracenotes has joined.
02:42:37 <MissPiggy> are you seeing this first person space cam?
02:42:50 <pikhq> alise: Oh, seq has some semantic meaning in a pure language. Just exceptionally useless meaning.
02:43:04 <pikhq> Defined as follows: _ `seq` b = b
02:43:07 <pikhq> :P
02:43:53 <alise> MissPiggy: i stopped watching :/
02:44:01 <alise> pikhq: well also _|_ `seq` b = _|_
02:44:05 <alise> but _|_ is nonsense!
02:44:11 <pikhq> alise: Heheheh.
02:44:22 <alise> if you could pattern-match on _|_ you'd define
02:44:27 <alise> _|_ `seq` _ = _|_
02:44:29 <alise> _ `seq` b = b
02:44:40 <alise> but turing shat on that party before we even thought of it
02:44:51 <pikhq> Damned halting problem.
02:44:56 <MissPiggy> you don't like space!!!!!
02:45:01 <MissPiggy> you are an enemy of space
02:47:36 <oerjan> you can pattern match on _|_, but only if the result is _|_
02:47:47 <Gregor> zzo38: When you use medit (the meta-editor), it always creates a file that uses the .wiki wiki engine, which puts its own HTML template around the page. It has a hidden chebang line. Use edit, change the chebang line to any other language (e.g. bash), and you can control the whole page.
02:48:20 <Gregor> zzo38: Oh, didn't see the latest edits.
02:48:39 <Gregor> zzo38: In that case, use /bin/bash and do something like cat <<EOF, then the content, then EOF
02:49:11 <Gregor> zzo38: Alternatively, just make an HTML file, then access it by the 'view' command: .../wiki/view/<filename>
02:49:32 <oerjan> hm is (! _) `seq` x = x a legal definition of seq in haskell...
02:50:15 <zzo38> OK, thanks. But still: Why doesn't #!/bin/grep -v ^#! works? It works on the MinGW command-line if the command is entered manually on the MinGW command-line.
02:50:30 <Gregor> zzo38: Then mingw doesn't handle chebang lines properly.
02:50:35 <Gregor> Oh
02:50:39 <Gregor> If the command is entered manually.
02:50:55 <Gregor> zzo38: chebang lines don't support multiple arguments. Everything after the command is taken as one argument, potentially with spaces.
02:50:56 <zzo38> MinGW creates the same error if you try to execute the file.
02:51:10 <zzo38> O, so that's why.
02:52:54 <alise> Gregor: It's shebang.
02:53:06 <oerjan> oh wait ! patterns are an extension
02:53:09 <Gregor> alise: Is there really a correct spelling of a word that's nonsense? :P
02:53:11 <pikhq> Yeah, definitely shebang.
02:53:19 <pikhq> Gregor: It's not nonsense.
02:53:26 <alise> Chebang is an archaic spelling of shebang, i.e. stuff and lots and everything and whatnot, but shebang as jargon is spelled with an s.
02:53:26 <pikhq> Gregor: It's a contraction of "hash-bang".
02:53:33 <pikhq> Where hash is # and bang is !
02:53:47 <alise> And because it lets you say "I accidentally the whole shebang"
02:53:58 <oerjan> chez-le-bang
02:54:12 <Gregor> pikhq: Quay? I thought it was just the onomatopoeia, like che-BANG!
02:54:15 <pikhq> The fact that it overlaps with "stuff" and such is... I'm not sure what.
02:55:04 <Gregor> I still use chebang, so fleh you :P
02:55:54 <alise> Shebangsexual, i.e. she bangs the shebang.
02:56:03 <Gregor> X-D
02:56:04 <alise> *she bangs shebangs
02:56:10 <alise> (why did I do it the worse way first?)
02:56:12 <Gregor> She bangs the whole chebang
02:59:48 <MissPiggy> alise they are flying into a sunset
03:00:20 <alise> are they breeding
03:00:32 <MissPiggy> not yet lol
03:00:44 <MissPiggy> they're just putting up a tent or something
03:00:44 <alise> the space went off
03:00:46 <alise> i am bored now
03:01:46 <zzo38> Huh? I created a file and now when I try to edit it, it is blank. But other than that, the file still works.
03:02:39 <Gregor> Oh?
03:02:53 <MissPiggy> they're in space still...
03:03:00 <Gregor> zzo38: Should probably move this convo to #hackiki :P
03:03:12 <zzo38> OK
03:04:38 -!- zzo38 has left (?).
03:06:10 <Gregor> I don't think he really had to leave here to go there :P
03:06:36 <oerjan> actually he might, didn't his personal irc client only allow 1 channel per server?
03:15:16 <Gregor> Possibly. Actually, wasn't it similar to my RawIRC? That is, he could be on multiple channels, but since he's just getting raw messages, it'd be confusing.
03:17:54 <alise> it is like that, yes
03:20:39 <pikhq> He is rather... Odd.
03:20:56 <Gregor> Yes
03:21:53 <alise> You don't say.
03:25:12 <oerjan> well _someone_ has to help the rest of us feel almost normal
03:28:24 -!- coppro has joined.
03:34:17 -!- alise has quit (Read error: Connection reset by peer).
03:34:38 -!- alise has joined.
03:39:49 <alise> http://pure-lang.googlecode.com/svn/trunk/pure/lib/quasiquote.pure quasiquoting in Pure, with syntax, implemented inside the language
03:42:57 -!- jcp has joined.
03:44:36 <MissPiggy> cool!
03:49:04 <alise> MissPiggy: yeah that's what you get with flexible ops + term rewriting + a simpler quoting operation (in this case, ' = quote)
03:49:40 <MissPiggy> alise ummm question is..
03:49:56 <MissPiggy> would you still have a curry-howard interpretation with dependent term rewriting?
03:50:10 <alise> well, the lambda calculus is a term rewriting system
03:50:27 <MissPiggy> but no like this crazy stuff
03:50:31 <alise> terms are close enough to functions with slightly odd behaviour that i'm sure you could formulate a very similar isomorphism
03:50:43 <alise> MissPiggy: well this crazy stuff is just because pure has quote :P
03:50:47 <alise> and because
03:50:47 <alise> def quasiquote x = qq (quote x);
03:50:48 <alise> is a macro
03:50:56 <alise> so quasiquote 2+2 -> qq (quote 2+2)
03:51:08 <alise> it's actually just an ast processor, more or less.
03:51:59 <alise> MissPiggy: btw term languages solve the expression problem
03:52:24 <alise> untyped languages like Pure do it by letting you extend terms, and having sugar for "typed" things
03:52:33 <alise> and since terms are untyped you can extend them at will
03:52:49 <alise> ok, so there's no _obligation_ to defined all the terms in the table for the new row
03:52:53 <alise> but it almost solves it
03:53:03 <alise> same thing in my typed one, basically
03:55:14 <MissPiggy> loll how does it solve expression problem
03:55:18 <MissPiggy> by the way
03:55:21 <alise> because you can extend functions basically
03:55:24 <alise> almost same thing
03:55:29 <alise> (with values of different types)
03:55:33 <alise> (for args)
03:55:36 <MissPiggy> does expression problem demand that the compiler tells you if there's a cell in the matrix missing?
03:55:46 <alise> yes, that's the missing piece
03:55:50 <alise> otherwise it breaks safety
03:55:58 <alise> because you pass it to some code going oh it's a table i know all this will go just fine
03:55:59 <alise> KRR
03:56:01 <alise> UNDEFINED FUNCTION
03:56:02 <alise> BEEP BEEP BEEP
03:56:06 <alise> WHAT DO I DO WHAT DO I *DO*
03:56:34 <coppro> DIVIDE BY CUCUMBER
03:56:50 <MissPiggy> mm
03:56:55 <MissPiggy> it's easy to solve this in lisp :P
03:57:07 <MissPiggy> I doubt any language is better than lisp for the expression problem
03:57:17 <alise> apart from one that's built for it...
03:58:37 <MissPiggy> oh yeah that's ture
03:58:39 <MissPiggy> true*
03:59:12 <alise> i really wish programming language manuals were written better
03:59:44 <alise> I'm not sure why programmers tend to be bad writers; good English style is the same procedure as good programming style, just plugging in another set of idioms.
03:59:47 <Gregor> Eh, they're usually written by programmers :P
03:59:48 <alise> If you can organise programs, why not prose?
03:59:54 <MissPiggy> yeah I should practice wrting
04:00:03 <coppro> Because prose requires eloquence
04:00:13 <Gregor> alise: I'd say it's more a matter of perspective.
04:00:34 <coppro> merely stringing together a complete and accurate description of a language is what we call an International Standard
04:00:46 <alise> coppro: Does it, though? Eloquence seems, to me, to be a rather less wishy-washy and emotional thing as everyone says it is: the creators of elegant programming languages should be able to write elegant text about it, because it's the same thing.
04:01:03 <coppro> It's hardly the same thing!
04:01:08 <alise> Also, standards are not manuals. Standards can be eloquent too, but it matters much less, as they should be as formal as possible.
04:01:47 <alise> coppro: In programs, we organise definitions in a certain way, split definitions up in a certain way, name variables in a certain way, order our functions' arguments in a certain way, and generally use our discretion to make the program read easier.
04:02:24 <alise> In prose, we organise text in a certain way, split text up in a certain way, (ok, that one isn't applicable), order our text in a certain way, and generally use our discretion to make the text read easier.
04:02:26 <coppro> none of that applies to great prose
04:02:36 <alise> I'm not asking for great prose, just good writing.
04:02:40 <alise> There /is/ a difference.
04:02:47 <coppro> good prose, even
04:02:59 <coppro> prose constructed by formula can be horrible
04:03:05 <alise> Certainly, a manual is not the domain of prose; but why is it not the domain of good writing?
04:03:13 <coppro> a manual is absolutely in the domain of prose
04:03:19 <alise> coppro: And we don't write idiomatic code by formula, either.
04:03:34 <coppro> but we do!
04:03:48 <alise> But code is basically prose.
04:03:52 <coppro> hardly
04:03:53 <alise> It's just in a different language.
04:03:58 <coppro> prose has a very specific definition
04:04:07 <coppro> I'm not sure what that is, but it's specific
04:04:13 <coppro> and I know programming is not it
04:04:28 <alise> Whatever you say, I certainly think I write prose, text, whatever you wish to call whatever subset we are talking about, with the same idiomatic organisation as I do code.
04:04:33 <coppro> good prose and good programming in fact require the opposite sets of skills
04:05:05 <coppro> good prose generally needs a formulated overall concept, while the individual portions are filled in by the creativity and ability of the writer
04:05:38 <coppro> good programming needs a creative and abled programmer to set up the concept, at which point the individual portions could be completed by any semi-competent programmer
04:06:15 <alise> No; units of code call libraries, they don't "fill them in".
04:06:23 <coppro> I don't mean like that
04:06:35 <coppro> Interface design is the tricky part of programming
04:06:39 <alise> Anyway, whatever; I can write good code and prose, so nyah nyah nyah nyah nyah, I clearly should write the greatest manual for the greatest language. :P
04:06:42 <coppro> A good interface leads itself to be coded easily
04:07:01 <coppro> In prose, the opposite is true
04:07:16 <coppro> hey, I can too!
04:07:28 <alise> I use more semicolons than you.
04:07:34 -!- sebbu has quit (Ping timeout: 265 seconds).
04:07:54 <coppro> Disagree; grep the logs.
04:07:55 -!- sebbu has joined.
04:08:52 <Sgeo> Since I don't do GUIs, does that mean I'm a bad programmer?
04:09:10 <alise> Sgeo: interface design what it means fail you
04:09:16 <alise> oh god, I wrote a huge line and it disappeared and no control-z
04:09:18 * alise writes it again
04:09:42 <coppro> Sgeo: It means you're a sane programmer
04:09:51 <alise> coppro: he thought you meant 'interface design' = gui design
04:09:55 <coppro> oh
04:10:06 <coppro> ah, your previous sentence makes sense now
04:10:47 <alise> I refined my semicolon usage by, paradoxically, ceasing to use it altogether; it was popping itself in to places where it was awkward, and I felt I was using it far too much, so I decided to abstain from it in the hopes that it would improve my writing. It crept back in, however, and with not much less frequency; but now it appeared in the right places, places that had seemed awkward in its absence.
04:11:28 <coppro> I think that should have been an em dash
04:11:36 <alise> Where?
04:11:41 <coppro> instead of the semicolon
04:11:47 <alise> There were two in that sentence.
04:11:55 <coppro> first sentence
04:12:01 <coppro> second also, actually
04:12:26 <alise> I try to avoid the em-dash, anyway; it's a very heavy piece of punctuation, and since I tend to write sentences whose clauses interlink, I postulate that it makes a sentence harder to read most of the time--for me, at least.
04:12:31 <coppro> second is certainly not an appropriate use of the semicolon; the two statements it separates should, on their own, be valid sentences.
04:12:42 <alise> And yes, that was two hyphens; I haven't got any nice Compose setup here.
04:12:53 <coppro> I just use a single hyphen
04:12:57 <alise> coppro: Ah, I criticised ais523 for that once; he gave me a sound thrashing.
04:13:12 <alise> Semicolons do not have to be able to be replaced by a full stop.
04:13:29 <coppro> For the most part, they should
04:13:33 <alise> He presented irrefutable proof which has slipped out of my mind.
04:13:58 <coppro> there are other uses of the semicolon which are valid (for instance, in lists)
04:14:09 <alise> Anyway, a semicolon followed by "and" is quite often a useful construct, though a prescriptivist would argue that starting a sentence with "And" is abhorrent. The same goes for "but".
04:14:20 <alise> coppro: I am referring to sentences.
04:14:31 <coppro> I don't agree it should necessarily be replaceable by a full stop, but it needs to separate full clauses
04:15:22 <alise> I think my usage was correct. I might change it, if you show that it wasn't, as long as it isn't prescriptivist mumblings.
04:15:30 <coppro> hmm, actually, I think I'd punctuate that sentence as follows
04:15:32 <alise> So, then, you'll have to show it's wrong as in confusing or awkward.
04:15:41 <alise> Or incredibly uncommon.
04:15:42 <coppro> "It crept back in, however, and with not much less frequency; but now it appeared in the right places -- places that had seemed awkward in its absence."
04:16:15 <alise> Indeed, I believe that the first time I wrote that sentence, "frequency; but" was how it went.
04:16:41 <coppro> it was
04:16:51 <alise> Personally, I think that em-dashes should only be used when the link between the two sides is weak, and the right side is heavy.
04:17:10 <alise> Or, of course, to serve as an alternative to parentheses for not-quite parenthical remarks.
04:17:16 <alise> *parenthetical
04:17:22 <coppro> In that case, I think the em dash is appropriate because you repeat the noun
04:18:50 <alise> Perhaps. I'd argue that a reader, rather than someone obviously looking to critique (can IRC facilitate *anything* that isn't competitive? :) ), wouldn't find it awkward.
04:19:06 <alise> Something that *is* awkward: smilies before a right parenthesis.
04:19:16 <coppro> yes!
04:19:18 <alise> After that abomination, I think ":))" will now be my preferred option.
04:19:31 <coppro> yeah, I usually go that route
04:20:49 <oerjan> http://xkcd.com/541/
04:20:56 <alise> Incidentally, I have the urge to substitute the / ligatures wherever those two letters appear.
04:21:04 <alise> I'm not even sure if that's correct, but the urge nevertheless appears.
04:22:12 <coppro> It's correct in most cases where they appear adjacent
04:22:34 <alise> Oh, and to endow words like "premptive" with a diresis.
04:22:54 <alise> (Interesting fact: onomatopia is not actually onomatopic.)
04:23:09 <alise> Dutch uses the same mark in a similar way, (for example cofficint), but for compound words there is now a preference for hyphenation - so zeeend (seaduck) is now spelled zee-eend.[3]
04:23:20 <alise> This is zeeend for you, my sea-duck-loving friend.
04:23:52 * oerjan swats alise -----###
04:24:04 <alise> Gregor: What was that wonderful free verse you wrote about free verse?
04:24:23 <alise> It ended "The problem with free verse, it seems, to me / is that it's just an excuse for ? to write prose and call it poetry.", I believe.
04:25:21 <coppro> Free verse is just a way to write prose with the structure being a piece of the text
04:25:33 <alise> It was a joke, you see.
04:25:53 <alise> It was RHYMING free verse!
04:25:54 <Gregor> alise: Can't find it :(
04:26:07 <alise> Gregor: Grep logs for "call it poetry"?
04:26:14 <Gregor> That's what I'm trying.
04:26:25 <alise> Here's a really boring holy war: Single or double quotes for main quotations?
04:26:49 <alise> I say double; single quotes are just too thin and light for that purpose. I prefer nesting alternately. True Britons will go for single quotes, though.
04:26:49 -!- Gracenotes has quit (Read error: Connection reset by peer).
04:27:26 <MissPiggy> is 'rakefile' a joke?
04:27:35 <MissPiggy> like the rubyists are making fun of engrish?
04:28:08 <alise> No, rake = Ruby mAKE.
04:28:24 <alise> If it was Lakefile, perhaps you'd have a point. :P
04:29:01 <alise> coppro: Also: uh, I had better think of some typographical choice to put towards you.
04:29:03 <MissPiggy> lakefire
04:29:10 <oerjan> Can haiku be prose? Is this a useful concept? Is it just nonsense?
04:29:53 <alise> coppro: Oh yes! &c. for etc.: great thing, or greatest thing?
04:30:47 <oerjan> makefile, not wall
04:31:14 <alise> coppro: You know, I never said /not speaking/ was an option. :P
04:32:05 <oerjan> alise: he's an american. they seem to think remaining silent is some kind of _right_
04:32:15 <alise> He's Canadian, actually...
04:32:24 <oerjan> ah
04:32:47 <oerjan> darn i was reading his server location as his real one
04:33:11 <alise> Just ping him a lot. coppro, that is.
04:33:44 <oerjan> hm i thought lindbohm was only for ipv6, but i seem to be on it
04:34:11 <Gregor> alise: I can't found it, but I did find this: <GregorR> Of course, that isn't fair. Formula for rap: Take two notes, repeat 600 times while making racist and sexist remarks that rhyme. Formula for pop: Take two CHORDS, repeat 600 times while (sort of) SINGING sexist remarks that rhyme.
04:34:38 <alise> I can'tfound it!
04:34:46 <alise> Confound? Can'tfound? Laugh? Oh well.
04:34:53 <alise> Gregor: Did you search for only lines by you?
04:34:56 <alise> Perhaps you were on a different nick.
04:35:05 <Gregor> Hm, good point.
04:35:05 <Gregor> Bleh
04:35:17 <Gregor> I can't found it in that I can't create it, like founding a city, y'know? :P
04:35:18 <alise> Just search for "call it poetry".
04:35:27 <alise> WAIT
04:35:31 <alise> Just search for "call it ptry".
04:35:37 <alise> Is that valid, coppro? Is it? Is it?!?!?!?!/1
04:35:50 <alise> it isn't is it
04:36:00 <alise> because it's o-e
04:36:27 <Gregor> Free verse is better than rhyming, \ For there's no need to worry of timing, \ The problem you see, \ With free verse, to me, \ Is that it's just an excuse for lazy people to write prose and call it poetry.
04:36:41 <Gregor> The joke was that the last line was not the right number of syllables :P
04:36:45 <alise> Yes.
04:37:17 <Gregor> But you were right, that was the thing to grep for >_>
04:37:52 <alise> As opposed to "hot bukkake norse fish mario sonic william howard taft".
04:37:58 <Gregor> (I was using the term "blank verse" instead of "free verse" there, but was grepping for "free verse" >_< )
04:38:22 <alise> Well, free verse is the term you used in the poem, so it should have found it.
04:38:34 <Gregor> No, I used the term blank verse in the poem.
04:38:40 <Gregor> I just rewrote it as free verse here :P
04:38:46 <alise> Ah, okay.
04:39:08 <alise> Blank verse ≠ free verse, however.
04:39:25 <Gregor> No, 'snot, but they both happen to fit the theme.
04:39:32 <alise> Blank verse has meter, though, so free verse is probably better to use.
04:39:44 <Gregor> Ohyeah
04:39:51 <oerjan> There was a young lady called Jenny \ Whose limericks weren't worth a penny \ They started out sound \ But somehow she found \ That whenever she tried to write any \ She always wrote one line too many.
04:40:02 <Gregor> oerjan: Ha
04:40:21 <Gregor> oerjan: That's so hilariously awkward to read.
04:40:29 <oerjan> how so?
04:40:36 -!- GreaseMonkey has quit (Remote host closed the connection).
04:40:37 <Gregor> Because I'm expecting it to be a limerick.
04:40:38 <Gregor> Then it isn't.
04:40:57 <oerjan> great
04:41:12 <alise> There was an old man \ From Peru, whose lim'ricks all \ Look'd like haiku. He
04:41:12 <alise> Said with a laugh "I \ Cut them in half, the pay is \ Much better for two."
04:41:54 <Gregor> alise: Outstanding.
04:42:07 <alise> There once was a [person] from [place] \ Whose [body part] was [special case]. \ When [event] would occur, \ It would cause [him or her] \ To violate [law of time/space].
04:42:09 <coppro> sorry, alise, I was watching those sporty things
04:42:11 <alise> A woman in liquor production \ Owns a still of exquisite construction. \ The alcohol boils \ Through magnetic coils. \ She says that it's "proof by induction."
04:42:27 <alise> A UNIX saleslady, Lenore, \ Enjoys work, but she likes the beach more. \ She found a good way \ To combine work and play: \ She sells C shells by the seashore.
04:42:28 <coppro> I love that site
04:42:35 <alise> And, you know, every other limerick in the top 150.
04:42:39 <alise> (http://limerickdb.com/?top150)
04:43:20 <alise> There once was a small juicy orange, \ ...fuck.
04:43:33 -!- GreaseMonkey has joined.
04:44:50 <alise> There once was an X from place B, \ That satisfied predicate P, \ He or she did thing A, \ In an adjective way, \ Resulting in circumstance C.
04:45:11 <alise> coppro: Anyway, answer all the questions I queued up for you. :P
04:45:23 <alise> <alise> coppro: Oh yes! &c. for etc.: great thing, or greatest thing?
04:45:24 <alise> <alise> Just search for "call it ptry".
04:45:24 <alise> <alise> Is that valid, coppro? Is it? Is it?!?!?!?!/1
04:45:24 <alise> <alise> it isn't is it
04:45:24 <alise> <alise> because it's o-e
04:45:30 <alise> Only two, actually. :P
04:45:44 <Gregor> alise: Weird how well "adjective" can sound like an adjective ...
04:45:50 <alise> Gregor: Yeah.
04:46:07 <alise> He walked pronoun to the front door.
04:46:24 <coppro> alise: Not a fan of &c., and poëtry!
04:46:25 <alise> "Yes," said Proper Noun, "I'll see you after dinner."
04:46:55 <alise> coppro: Indeed, &c. appears most strange until you realise that if you pick the right typeface and set it in italics, you see what looks like Etc. (but with a curly E).
04:47:06 <alise> It looks beautiful, but why? Because the ampersand used to be a ligature for "et".
04:47:50 <coppro> right
04:49:02 <GreaseMonkey> you could do s/pronoun/adverb/
04:49:46 <alise> BAD POETRY #4
04:49:47 <alise> Premptive potry tries to avoid \ a bad course of action, to make null and void \ such an undesirable path it is, we see \ the future that follows it is misery.
04:49:51 <alise> THIS WAS
04:49:53 <alise> BAD POETRY
04:49:55 <alise> with alise
04:49:57 <alise> THE TOPIC WAS
04:50:06 <GreaseMonkey> "MORE BAD POETRY"
04:50:07 <alise> Bad poems purely for the sake of using two diathingies in two words juxtaposed.
04:50:20 <alise> GreaseMonkey: Oops. Of course, I meant adverb.
04:50:32 <coppro> Oh freddled gruntbuggly? Thy micturations are to me \ As plurdled gabbleblotchis on a lurgid bee.
04:50:37 <alise> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
04:50:43 <GreaseMonkey> pronoun can work, as in "he walked me" or "he walked her"
04:51:03 <coppro> alise: There's more where that came from
04:52:06 <coppro> ... I killed her
04:54:27 -!- rocketman has joined.
04:54:28 -!- rocketman has quit (Changing host).
04:54:28 -!- rocketman has joined.
04:55:35 * coppro will have to complain to Wikipedia that there's a lethal weapon on their page
04:55:43 <augur> what are yoy kids talking about
04:55:49 <augur> you*
04:56:26 * MissPiggy awnts to install fortress
04:57:10 * augur installs MissPiggy's fortress
04:57:12 <augur> ;o ;o ;o
04:57:17 <MissPiggy> lol
04:57:47 <alise> coppro: http://imgur.com/7jvO1.png Two fancy ampersands; I prefer the latter.
04:57:50 <Sgeo> MissPiggy, there's not much to actually install
04:58:05 <alise> They both look like "etc.", though.
04:58:06 <coppro> alise: Yeah, I really like the latter
04:58:12 <alise> Sgeo: He mens the programming language.
04:58:16 <Sgeo> Oh
04:58:19 <coppro> In a good font, &c. is not abhorrent
04:58:22 <Gregor> alise: Spam, spam egg spam and spam.
04:58:32 <alise> coppro: URW Palladio L.
04:58:45 <alise> Oblique, of course.
04:58:54 <alise> Erm, no.
04:58:55 <alise> Italic.
04:58:59 <alise> I always mix those two up.
04:59:34 <augur> who he
04:59:53 <coppro> also, it's good to see that you've recovered
05:00:01 <alise> Who recovered from what?
05:00:01 <rocketman> alise: use google
05:00:08 <alise> And what do you mean, who he?
05:00:08 <rocketman> alise: http://lmgtfy.com/?q=And+what+do+you+mean%2C+who+he
05:00:21 <alise> ...and when did rocketman appear out of nowhere?
05:00:21 <rocketman> alise: try google.
05:00:28 <alise> Tset?
05:00:28 <rocketman> alise: GIYF!!
05:00:42 <alise> x?
05:00:42 <rocketman> alise: never heard of google?
05:00:47 <augur> MissPiggy: remind me are you cis- or trans-girl?
05:00:47 <rocketman> augur: try google.
05:00:49 <alise> coppro: say "x?"
05:00:53 <alise> ah, never mind
05:00:56 <augur> rocketman: what
05:01:01 <alise> rocketman is logged in as fax
05:01:02 <augur> :|
05:01:03 <alise> apparently a bot
05:01:03 <alise> a?
05:01:04 <rocketman> alise: use google
05:01:04 <alise> a?
05:01:04 <rocketman> alise: use google
05:01:04 <alise> a?
05:01:04 <rocketman> alise: http://www.justfuckinggoogleit.com/
05:01:04 <alise> a?
05:01:04 <rocketman> alise: http://lmgtfy.com/?q=a
05:01:05 <coppro> alise: you recovered from the poetry
05:01:06 <alise> a?
05:01:06 <rocketman> alise: use google
05:01:09 <alise> coppro: ah.
05:01:29 <alise> <coppro> alise: Yeah, I really like the latter
05:01:30 <alise> <coppro> In a good font, &c. is not abhorrent
05:01:34 <alise> Really like = not abhorrent!
05:01:46 <coppro> Right!
05:02:28 <MissPiggy> http://playlist.yahoo.com/makeplaylist.dll?id=1368162 - space
05:02:37 <coppro> alise: If you bothered to read the logs, I thought I'd killed you
05:02:42 <augur> MissPiggy! :|
05:02:45 <MissPiggy> hello
05:02:48 <alise> No logs, I was there, just missed the sentence.
05:02:51 <coppro> ah
05:02:53 <alise> I was just typing out the ampersandy things. :P
05:02:57 * oerjan swats MissPiggy for joining an annoybot -----###
05:03:00 <alise> MissPiggy: turn off that bot, thanks.
05:03:02 <augur> answer my question. :|
05:03:09 <MissPiggy> it's supposed to be HELPFUL
05:03:19 <alise> That's nice; turn it off.
05:03:40 <MissPiggy> :(
05:03:44 <coppro> Does anyone actually have ops here?
05:03:44 <rocketman> coppro: never heard of google?
05:03:45 <MissPiggy> can't you just learn to love it
05:03:49 <coppro> no
05:03:59 <augur> MissPiggy: :|
05:04:01 <MissPiggy> but I don't know how to make it leave without making it leave all channels
05:04:02 <coppro> it might be useful in, say, #math
05:04:13 <MissPiggy> :)))
05:04:13 <MissPiggy> yes
05:04:15 <MissPiggy> that's the point
05:04:16 <coppro> You're in #esoteric. You should be smart enough to work that out
05:04:36 -!- rocketman has left (?).
05:04:39 <MissPiggy> c
05:04:44 <MissPiggy> coppro you are right :O
05:04:47 <alise> coppro: fizzie is semi-active and has ops; lament has ops.
05:04:57 <coppro> neat
05:04:59 <alise> Maybe Aardappel still has ops or something.
05:05:11 <alise> But they never use their op powers, unless someone just said that they never use them.
05:05:25 <alise> I quite like the anarchy here, we're alright at self-organising.
05:05:30 <alise> I wish alright didn't flag up as a spelling error.
05:05:55 <oerjan> alright is all ways a spelling error
05:06:02 <alise> :-)
05:06:24 <MissPiggy> well im upset that you guys didn't like my bot
05:06:28 <oerjan> english, the language of consistent inconsistency
05:06:41 <MissPiggy> I am trying to follow the footsteps of wolfram|alpha
05:06:43 <MissPiggy> but in IRC form
05:07:08 <oerjan> MissPiggy: people don't like bots that intrude on their usual conversations. is that a problem to understand?
05:07:16 <MissPiggy> lol
05:07:26 <alise> oerjan: WHAT
05:07:54 <oerjan> alise: WHOM
05:07:58 <alise> oerjan: WHAT
05:08:20 <oerjan> alise: WHOSOEVER
05:08:20 <MissPiggy> it's an experiment
05:08:26 <alise> oerjan: WHAT
05:08:27 <alise> MissPiggy: WHAT
05:08:32 <MissPiggy> maybe I should have made it oly reply occasionally
05:08:36 <MissPiggy> then people wouldn't notice it was a bot
05:08:36 <alise> MissPiggy: WHAT
05:08:38 <alise> MissPiggy: WHAT
05:08:43 <MissPiggy> what
05:08:49 <alise> MissPiggy: WHAT
05:08:59 <MissPiggy> lol
05:09:03 <alise> MissPiggy: WHAT
05:09:05 <oerjan> MissPiggy: Gregor already did that yesterday
05:09:10 <oerjan> i think it was Gregor
05:09:12 <MissPiggy> oh??
05:09:13 <alise> OERJWHAT
05:09:16 <alise> OERJWHAT
05:09:17 <MissPiggy> was it a google helpful bot?
05:09:19 <alise> MISWHAT
05:09:58 <oerjan> no, just a markov bot, except it sometimes replied without being addressed
05:10:38 <oerjan> ALISWAT -----###
05:10:39 <alise> oerjan: was it a except it then people wouldn't experiment
05:10:53 <oerjan> grammar fail?
05:11:54 <oerjan> MissPiggy: also, hackego is already google helpful
05:12:03 <oerjan> everything's been done before, you see
05:12:07 <MissPiggy> :(
05:12:11 <MissPiggy> hackego: ?
05:12:12 <alise> EVERYTHING
05:12:29 <oerjan> `google snugglebunnies
05:12:35 <HackEgo> Amazon.com: Snuggle Bunnies (0697123000408): LC Falken, Lisa McCue: Books. ... The illustrations in the Snuggle Bunnies book are so cute and adorable! ... \ www.amazon.com > ... > [13]Children's Books > [14]Animals > [15]Rabbits - [16]Cached - [17]Similar
05:12:37 <MissPiggy> that's not the same :P
05:12:40 <MissPiggy> mine just accosts people
05:13:29 <Sgeo> Why am I not cooking or eating right now?
05:13:31 <alise> "I'll accost your mother."
05:13:39 <alise> Sgeo: kitchen is that way ->
05:13:41 <alise> Sgeo: woman
05:14:20 <oerjan> This is obviously some strange usage of the word "helpful" that I hadn't previously been aware of.
05:14:25 <MissPiggy> :D
05:14:41 <augur> http://www.youtube.com/watch?v=O5ZwnmJgC-g&feature=dir
05:14:46 <augur> squee
05:15:20 <augur> oh, hes straight. LAME
05:15:30 <alise> augur is so predictable
05:15:45 <augur> :P
05:15:53 <augur> well look at him!
05:15:55 <augur> hes adorable!
05:16:18 <augur> http://www.youtube.com/user/charlieissocoollike
05:16:20 <augur> look at him.
05:16:21 <augur> so adorable.
05:16:25 <MissPiggy> he'snot adorable :|
05:16:44 * MissPiggy hopes it's not somehow, someone in here
05:16:45 <alise> fortress is so cool
05:16:53 <alise> makes me wanna sex it. in a platonic way
05:17:20 <augur> MissPiggy: its not someone in here. and he TOTALLY is adorable
05:17:24 <augur> hes also british
05:17:28 <augur> therefore doubly adorable
05:17:38 * Sgeo googles
05:17:52 <alise> Sgeo: http://projectfortress.sun.com/
05:18:06 <Sgeo> sun.com still exists/
05:18:09 <Sgeo> o.O
05:18:17 <alise> yes, sun.com just redirects to oracle.com
05:18:30 <alise> Sgeo: glorious LaTeX-typeset two-dimensional mathematical notation syntax with ASCII equivalent, everything's redefinable more or less, implicit paralellism (!), transactions, decent type-system
05:18:41 <alise> designed for high-performance numerical computing, like fortran
05:18:46 <alise> but fancy and CS too
05:19:12 <augur> god look at him
05:19:14 <augur> hes so adorable
05:19:17 * Sgeo needs to go eat
05:19:19 <alise> hey i'm british too
05:19:21 <alise> :P
05:19:21 <MissPiggy> augur you are wrong lol
05:19:28 <augur> liar
05:19:32 <pikhq> alise: And nicely typeset.
05:19:38 <alise> yes, I am that
05:19:47 <pikhq> :)
05:20:06 <pikhq> This is highly unusual...
05:20:26 <pikhq> For the first time in memory, I've actually *needed* to stop studying.
05:20:29 <Gregor> Did somebody ask for ...
05:20:42 <oerjan> Gregor: NOOOOOOOOOOOO
05:20:43 * Gregor taps his foot, waiting for his bot to log in.
05:20:43 -!- virtuLORD has joined.
05:20:44 <virtuLORD> And when he had done this, and had anointed him king over israel two years continued in their hearts of the person of the covenant, that i may go up, but the virgins that follow him. Of the sons of elnaim, and jethma a moabite, eliel, and obed, and jasiel of masobia.
05:20:50 <pikhq> Not "no longer felt like", not "realise that further study won't help", but "absolutely must *stop*".
05:20:56 <MissPiggy> cool
05:21:05 <Gregor> Gee, I'm megalagged.
05:21:13 <oerjan> virtuLORD: ping
05:21:13 <virtuLORD> oerjan: He exhorts to charity, humility and all thy soul.
05:21:18 -!- Gregor has quit (Quit: Leaving).
05:21:36 <alise> virtuLORD: Aye.
05:21:39 <virtuLORD> alise: For with certain new and unheard of devices he hath spoken of by the river's brink.
05:21:41 -!- Gregor has joined.
05:21:55 <alise> virtuLORD: MegaHAL? You certainly punctuate well, except from proper nouns.
05:21:55 <virtuLORD> alise: Except the lord had commanded him, he put in my hand: unless i bring an inheritance to his proper ability: and immediately he came to najoth, in ramatha.
05:22:09 <alise> virtuLORD: Sexual intercourse
05:22:11 <virtuLORD> alise: And the chaldeans that fight against the south, to the twelve tribes, serving night and day, for he is defiled shall eat the fruit of a wise man hateth not the stroke of their heresies. Others have explained these locusts, and of the lord said: thou shalt not pass over thee, till thou know not to death. And the king of egypt, and upon the altar.
05:22:26 <alise> THOU SHALT NOT PASS OVER THEE, TILL THOU KNOW NOT TO DEATH
05:22:41 <oerjan> virtuLORD: doom!
05:22:42 <virtuLORD> oerjan: The statutes of amri, etc. . .The foregoing verse, to ver. 91, Was not healed by him and give him joy.
05:23:00 <augur> got i cant watch this kid
05:23:02 <augur> its depressing
05:23:06 <pikhq> virtuLORD: Transubstantiation.
05:23:07 <virtuLORD> pikhq: Son of man, what shall i make thy enemies for they are not to them that are round about it: and he was well favoured, and of idaias; thou shalt bury my body: which plainly implies transubstantiation.
05:23:08 * oerjan thought virtuLORD tried to use the words you gave it
05:23:14 <oerjan> ah
05:23:15 <MissPiggy> augur o_O he's not even attractive
05:23:20 <Gregor> oerjan: It /tries/
05:23:22 <augur> hes ADORABLE
05:23:22 <pikhq> ... I didn't know that word was actually in the Bible.
05:23:22 <alise> "thou shalt bury my body: which plainly implies transubstantiation." xD
05:23:31 <alise> clearly that's from another christian source
05:23:32 <oerjan> wait this must mean that the bible does not _contain_ the word "doom"
05:23:36 <alise> "which plainly implies transubstantiation"
05:23:41 <MissPiggy> augur you don't listen to reason!!
05:23:48 <oerjan> how can this be?
05:23:49 <alise> pikhq: aren't you christians meant to know things about the bible :P
05:23:50 <pikhq> I could've sworn the entire doctrine was a Catholic invention.
05:23:56 <augur> COMING FROM A GIRL THATS QUITE AMUSING
05:23:56 <alise> virtuLORD: catholic
05:23:56 <virtuLORD> alise: Sion. . .The catholic church; which shall flourish for ever. The unjust shall be no rejoicing nor shouting in the covenant of the lamb. And he broke and distributed to every one from his evil ways.
05:24:07 <alise> The bible itself said it. Catholic church = awesome!
05:24:09 <MissPiggy> lol you did not
05:24:09 <Sgeo> pikhq is a Christian?
05:24:15 <augur> MIND YOU, THERE'S A COMMA IN THERE
05:24:16 <alise> yes
05:24:30 <alise> *is Christian, no?
05:24:38 <augur> BUT NOT A GERMAN STYLE COMMA
05:24:41 <pikhq> A rather unusual one, but si.
05:24:52 <augur> pikhq is indeed a christian
05:24:52 <virtuLORD> augur: And elias said again to achis king of israel, for a remembrance of a christian.
05:25:02 <augur> whats unusual about him is that he believes HE is jesus.
05:25:16 <pikhq> augur: *Hah*.
05:25:21 <Gregor> virtuLORD has a few things that aren't actually in the bible because the version I snagged from project Gutenberg had some commentary I was unwilling to filter.
05:25:22 <pikhq> Though that was my high school nickname...
05:25:26 <pikhq> (the beard and long hair do it)
05:25:33 <alise> well does christianity + singularity at the same time
05:25:34 <pikhq> Gregor: That explains it.
05:25:35 <alise> which is pretty impressive
05:25:42 <MissPiggy> alise huh?
05:25:42 <alise> the most religion most people can forge out of singularitarianism is pantheism
05:25:45 <augur> jesus didnt have long hair, in all likelihood.
05:25:59 <alise> i think pikhq said something about the singularity having the spiritual essence of jesus or something
05:26:06 <augur> alise: or the belief that god is an AI
05:26:06 <Gregor> Eww, wait, pikhq is religious? We'll have to deal with that at some poitn.
05:26:07 <pikhq> alise: Uh, not I.
05:26:08 <Gregor> *point
05:26:13 <alise> pikhq: it was like that but in less silly terms iirc
05:26:16 <pikhq> I just think the singularity is pretty awesome.
05:26:19 <alise> Gregor: I know right!
05:26:28 <pikhq> Gregor: Vaguely.
05:26:32 <alise> pikhq: so you want to live forever and then die and go to heaven which is awesome?
05:26:33 <MissPiggy> what does god and AI have to do with anything
05:26:38 <alise> it's the 0 at the end of the recurring 9s
05:26:41 <pikhq> alise: Hahahah.
05:26:47 <augur> MissPiggy: well since god IS an AI, everything!
05:26:49 <oerjan> virtuLORD: smite!
05:26:49 <virtuLORD> oerjan: Neither shalt thou smite it.
05:26:55 <oerjan> aww :(
05:26:55 <MissPiggy> how can jesus be singularity
05:26:55 <Gregor> virtuLORD: We are all heathens!
05:26:57 <virtuLORD> Gregor: Who made the whole work of the heathens.
05:26:59 <MissPiggy> this is so confusing guys
05:27:04 <pikhq> Indeed, that is the Lord's province.
05:27:10 -!- virtuLORD has quit (Quit: Leaving).
05:27:14 <pikhq> (smiting)
05:27:19 <augur> MissPiggy: well dont worry your pretty little head
05:27:22 <oerjan> MissPiggy: well just as the LORD, he is ... dammit
05:27:25 <pikhq> Anyways.
05:27:27 <oerjan> *ask
05:27:41 * oerjan swats muphry -----###
05:27:46 <pikhq> augur: The popular image of Jesus has a beard, brown, long hair, and blue eyes. And is Caucasian.
05:27:57 <pikhq> In other words, the popular image of Jesus is me.
05:27:58 -!- virtuchuck has joined.
05:27:59 <virtuchuck> Aliens do indeed exist. They just know better than to visit a planet that chuck norris invented black. In fact he invented the entire spectrum of visible light. Except pink. Tom cruise invented pink.
05:28:06 <augur> pikhq: POPULAR IMAGES ARE IRRELEVANT
05:28:11 <MissPiggy> lolol
05:28:14 <augur> JESUS WAS A JEW
05:28:15 <MissPiggy> virtuchuck: NO
05:28:15 <virtuchuck> MissPiggy: Chuck norris uses a night light. Not because chuck norris destroyed the periodic table, because chuck norris 20 minutes to watch 60 minutes.
05:28:20 <augur> OY GEVALT
05:28:23 <pikhq> augur: WELL AWARE.
05:28:24 <MissPiggy> lol
05:28:25 <MissPiggy> virtuchuck: NO
05:28:25 <virtuchuck> MissPiggy: Chuck norris played russian roulette with a protein shake made from carnation instant breakfast, one dozen eggs, pure colombian cocaine, and rattlesnake venom. He injects it directly into his neck with a protein shake made from carnation instant breakfast, one dozen eggs, pure colombian cocaine, and rattlesnake venom. He injects it directly into his neck with a protein shake made from carnation instant breakfast, one dozen eggs,
05:28:26 <virtuchuck> d rattlesnake venom. He injects it directly into his neck with a pillow under his gun.
05:28:35 <pikhq> augur: AND THAT'S YIDDISH. DIDN'T EXIST THEN.
05:28:47 <Gregor> "He injects it directly into his neck with a pillow under his gun."
05:28:50 <Sgeo> O-Chul could kick Chuck Norris's ass
05:28:59 <pikhq> Sgeo: Totally.
05:29:00 <Sgeo> erm, I actually said a word like that here, o.O
05:29:05 <MissPiggy> oh god
05:29:09 <MissPiggy> that was so funy
05:29:15 <augur> pikhq: WHAT, YOU THINK DONT KNOW THIS? WHAT A SCHMUCK
05:29:17 <MissPiggy> about the protein shake
05:29:24 <alise> i'm still laughing
05:29:24 <alise> help
05:29:36 <pikhq> augur: YOUR GERMANIC LANGUAGE DOES NOT AMUSE ME.
05:29:50 <Sgeo> I'm going to go make food now
05:29:52 <augur> O GAIN
05:29:56 <augur> ..
05:29:58 <augur> oh fine.
05:30:02 <Sgeo> pikhq, you're an OOTS fan?
05:30:02 <MissPiggy> Sgeo are you going to make a protein shake?
05:30:08 <pikhq> Sgeo: Yes.
05:30:13 <augur> whats an oots
05:30:20 <Sgeo> augur, http://www.giantitp.com
05:30:20 <MissPiggy> what's this about jesus and singularity please
05:30:22 <pikhq> augur: Order of the Stick
05:30:28 <Gregor> Object Oriented Type System
05:30:29 <Gregor> :P
05:30:35 <pikhq> D&D + stick figures = OOTS.
05:30:36 <Gregor> Sgeo: Gian-Tit-P?
05:30:51 <oerjan> giant in the playground.
05:30:53 <Sgeo> Gregor, you're not the first to make that joke.
05:31:04 <alise> (gian-tit-p x): returns t if x is a gian tit, or nil otherwise.
05:31:07 <pikhq> MissPiggy: Well, Jesus is claimed by some to be awesome. The singulary is considered awesome by most who know of it.
05:31:08 <Sgeo> Actually, maybe you made it before
05:31:16 <MissPiggy> what singularity is awesome??
05:31:21 <MissPiggy> I thought it was like a danger
05:31:23 <augur> Y'MUTHA
05:31:28 <augur> DANGER DANGER
05:31:29 <alise> MissPiggy: no :P
05:31:30 <augur> HIGH VOLTAGE
05:31:32 <pikhq> It's freaking technology improving itself.
05:31:33 <augur> WHEN WE KISS
05:31:35 <pikhq> What's not to like?
05:31:36 <augur> WHEN WE TOUCH
05:31:42 <Sgeo> If we don't do friendly AI right..
05:31:43 <alise> an Unfriendly Singularity will be fatal to everything in existence
05:31:47 <pikhq> It's, like, the second coming or something. :P
05:31:51 <alise> a Friendly Singularity is pretty much the best thing we could do
05:31:53 <MissPiggy> tiling the universe with paper clips !!!
05:31:55 <alise> (technical terms)
05:32:00 <alise> MissPiggy: that's what happens if it's Unfriendl.
05:32:02 <alise> *Unfriendly
05:32:11 <alise> Read this: http://www.singinst.org/upload/CFAI/ if you have the patience.
05:32:13 <alise> God knows I haven't.
05:32:14 <augur> hopefully microsoft doesnt invent the first superhuman AI
05:32:16 <MissPiggy> alise have you read the foobars?
05:32:20 <pikhq> An unfriendly singularity is apocalypse. A friendly singularity is utopia.
05:32:20 <MissPiggy> prim intellect
05:32:22 <Sgeo> Neutral == Unfriendly
05:32:30 <alise> Not yet, but fiction is not a guite to reality.
05:32:33 <augur> Sgeo: neutral == switzerland
05:32:35 <alise> MissPiggy: But honestly, read this: http://www.singinst.org/upload/CFAI/
05:32:35 <MissPiggy> onuapfndoafph
05:32:42 <augur> therefore switzerland == unfriendly?!
05:32:49 <MissPiggy> alise yeah I am about 1/5th through
05:32:52 <Gregor> virtuchuck: How much wood would a woodchuck chuck if a woodchuck could chuck wood?
05:32:52 <virtuchuck> Gregor: Chuck norris were cloned, then it would be possible for a chuck norris only recognizes the element of surprise.
05:32:54 <pikhq> alise: Prime Intellect had three-laws singularity.
05:32:57 <alise> MissPiggy: what, that quickly?
05:33:01 <alise> pikhq: yeah i guessed
05:33:05 <alise> 3 laws or weaker system
05:33:07 <Sgeo> pikhq, plus two extra laws IIRC
05:33:09 <MissPiggy> alise, well I started quite a few months ago...
05:33:12 <alise> MissPiggy: right
05:33:16 <pikhq> Sgeo: Oh, right.
05:33:17 <Sgeo> Appended onto the first
05:33:36 <Sgeo> One was "Do not interpret mind-states to understand them". What was the other?
05:33:36 <pikhq> 0th law was hardcoded, and the inventor made his will supercede that of most people, IIRC.
05:33:40 <MissPiggy> is that still quick?
05:33:44 <MissPiggy> I don't want to read too quickly
05:33:52 <pikhq> Oh, right. 0th law and "Do not interpret mind-states".
05:34:15 <alise> Was that to avoid mindreading or something?
05:34:18 <Sgeo> 0th law? I know what that means Asimov-wise, but I don't recall it in PI
05:34:29 <pikhq> I thought that was in it.
05:34:32 <Sgeo> Hm
05:34:36 <pikhq> alise: Yes.
05:34:39 <augur> guys
05:34:40 <MissPiggy> and not allow it to modify peoples thoughts
05:34:40 * pikhq should pull it up again
05:34:44 <augur> im going back to listening to a lecture
05:34:47 <augur> entitled
05:34:54 <augur> why its difficult for robots to learn word meanings
05:35:02 <MissPiggy> augur is that free online?
05:35:05 <augur> yes
05:35:09 <MissPiggy> link please ?
05:35:31 <alise> 5:35; bed soon.
05:35:33 <pikhq> http://www.kuro5hin.org/prime-intellect/
05:36:16 <Sgeo> pikhq, ""Force Association: Altering the position, composition, or any other characteristic of a human being without its permission shall be a violation of the First Law of severity two."
05:37:35 <augur> MissPiggy: not sure i can find it actually
05:37:36 <augur> gimme a second
05:37:43 <pikhq> Ah, yes. It was just additional details on the three laws.
05:37:43 <MissPiggy> augur okay never mind then
05:37:51 <augur> aha i think i found it
05:38:01 <alise> wait doesn't it metamorphosise the entire universe?
05:38:06 <Sgeo> And an attempted third appendium to the first law that failed
05:38:09 <alise> surely that counts as changing the composition of a human being
05:38:16 <alise> Sgeo: stop spoling, thanks
05:38:17 <alise> *spoiling
05:38:20 <Sgeo> sorry
05:38:25 <MissPiggy> alise how come you already know :|
05:38:40 <augur> http://deimos3.apple.com/WebObjects/Core.woa/Browse/arizona-public.1477002748.01832962525.2097811649?i=2125659579
05:38:40 <virtuchuck> augur: 3 Laws or weaker system.
05:38:45 <alise> read the wikipedia summary, forgot most of it
05:38:46 <alise> virtuchuck: XD
05:38:46 <virtuchuck> alise: Aliens do indeed exist. They just know better than to visit a planet that chuck norris in scrabble, you win. Forever.
05:38:59 <Sgeo> Also, are you going to read Fine Structure?
05:39:13 <pikhq> alise: That just changed the nature of matter. ;)
05:39:26 <alise> Sgeo: maybe someday.
05:39:28 -!- virtuchuck has quit (Quit: Leaving).
05:40:05 <MissPiggy> I like yudkowski he writes well
05:40:21 <Sgeo> Three Worlds Collide?
05:40:41 <alise> *yudkowsky
05:40:47 <alise> Sgeo: CFAI too probably
05:40:49 <pikhq> alise: It also asked for human opinion on the matter.
05:41:26 <alise> I'm pretty sure Yudkowsky would give up his own life for the singularity.
05:42:01 <augur> MissPiggy: good? good.
05:42:24 <MissPiggy> augur thanks hun :)
05:42:45 -!- Gracenotes has joined.
05:43:48 * Sgeo would give up his own life if it were returned to him via having the state of his brain stored beforehand
05:44:32 <alise> If your brain is never resumed, then that is the same as dying.
05:44:37 <alise> If it is, then you did not die.
05:44:48 <alise> I mean give up your life as in die, no return.
05:44:58 <MissPiggy> hardcore mode
05:45:02 <augur> MissPiggy: the problem that this guy is approaching is quite deep, in some sense
05:45:06 <augur> verges on AI
05:45:09 <augur> infact, really is AI
05:45:46 * Sgeo isn't even sure that he'd give up his life to save human lives, tbh
05:46:16 <augur> its probably incredibly difficult to actually characterize lexical semantics at all
05:46:29 <augur> ignoring what aspects seem to actually be non-lexical
05:48:59 <alise> Personally I don't care about having a physical body or brain, just a mind.
05:49:45 <alise> In fact, I'd consider an uploaded mind as good as what I have if it could emulate a universe just as precise, detailed and good as this one, and better if it could emulate something with more of those qualities; vastly better if it can do that to my own configuration.
05:50:02 <MissPiggy> what's a mind??
05:50:36 <MissPiggy> are minds real?
05:50:43 * Sgeo would love to live in the world of PI
05:50:55 <MissPiggy> sgeo sicko :P
05:51:02 <alise> MissPiggy: the brain is a physical computer that runs a single program, the mind.
05:51:11 <alise> Mind, consciousness; call it what you will.
05:51:17 <augur> alise: i think the brain runs lots of little programs
05:51:22 <alise> The mind is what is important. The brain is just squidgy.
05:51:24 <alise> augur: They're subprograms.
05:51:27 <augur> like an unkernel.
05:51:28 <alise> You get the point, though.
05:51:29 <MissPiggy> alise I don't really beleive that stuff
05:51:30 <Sgeo> MissPiggy, any singularity without some of those social elements must mean that there are needly moral codes enforced
05:51:32 <augur> THE MIND IS A SOCIETY
05:51:36 <alise> MissPiggy: You don't believe you are conscious?
05:51:40 <alise> What, are you not experiencing anything?
05:51:43 <MissPiggy> not really
05:51:46 <alise> This is an entirely scientific hypothesis.
05:51:54 <Sgeo> Except for Raven's party
05:51:57 <alise> MissPiggy: you are wrong, because p-zombies do not exist and I find it incredibly likely you are intelligent
05:52:14 <MissPiggy> alise I read about the zombies and I agree with that
05:52:25 <alise> you are sentient, conscious, etc.
05:52:36 <alise> there is undeniably some experience that we experience; what it "is" we do not know but it exists.
05:52:40 <alise> And we have simulated neurons on computers.
05:52:43 <augur> MissPiggy: there are no such things as zombies, nor could there be.
05:52:49 <alise> That is a mind whose brain is a silicon chip.
05:52:53 <alise> Same mind, different brain.
05:53:00 <alise> The mind is important, the brain isn't.
05:53:41 <MissPiggy> but that doesn't make sense if you took my 'program' and wrote it into a computer .. the computer would experience things o_o, so does taht mean everything is concious already
05:54:00 <alise> no, YOU would experience things
05:54:06 <augur> MissPiggy: no, it only means that SOME things are conscious
05:54:12 <alise> consciousness is the byproduct of thought
05:54:12 <augur> because you need the right program
05:54:24 <alise> a computer running your mind would be executing thought
05:54:32 <alise> thus causing a we-don't-know-what-it-is experience called consciousness that is yours
05:54:36 <alise> it would be running you.
05:55:01 <alise> augur: maybe everything does emit the byproduct of consciousness, but with thoughts on the level of the identity function
05:55:09 <MissPiggy> I don't think I am conscious because I experience things
05:55:10 <alise> we honestly have no idea what it is, after all, but we know that it exists
05:55:11 <augur> lol
05:55:32 <augur> alise, stop arguing with MissPiggy. this is pointless
05:55:39 <augur> lets talk about more awesome things
05:55:46 <augur> like graph transduction
05:55:50 <MissPiggy> :(
05:55:53 <alise> MissPiggy appears to be dismissing "you are conscious" by leaving conscious undefined and saying that everything that consciousness is isn't
05:55:54 <MissPiggy> thanks a lot augur
05:56:00 <alise> thus leaving consciousness as a null concept
05:56:13 <MissPiggy> alise, I know what it means
05:56:27 <MissPiggy> it's not a null concept
05:57:57 <Sgeo> alise, how would you react if a copy of you went into the singularity/computer system/whatever, then 5min later, you were destroyed?
05:58:10 <alise> I reject the idea of a copy
05:58:20 <alise> Say you made an atom-perfect copy of my brain.
05:58:35 <alise> The laws of physics tells us that atoms do not have innate identity; two identical atoms in different places are exactly the same.
05:58:46 <alise> Therefore, there is no way for my two brains to result in two different consciousnesses.
05:58:56 <augur> alise: the laws of physics tell us nothing of the sort.
05:59:00 <MissPiggy> that doesn't follow alise
05:59:05 <MissPiggy> augur shut up you're arguing against me
05:59:09 <alise> augur: perhaps I mis-stated it
05:59:23 <MissPiggy> augur you can't just start agreeing like that
05:59:25 <alise> and it is 6am in the morning
05:59:29 <Sgeo> alise, then a simulation of those atoms
05:59:30 <augur> the best we can say is that if this is true, its irrelevant, since part of identity is location.
05:59:34 <alise> but i've heard this argument used convincingly elsewhere by people who know their shit about ai
05:59:40 <alise> augur: well, right
05:59:42 <augur> well those people are stupid.
05:59:52 <alise> augur: so do you think consciousness is separated by being in a different place?
05:59:54 <MissPiggy> alise do you think of a two level approach one is just physical stuff and the other is souls and spirits and stuff which control the body??
06:00:00 <alise> seems a strange detail for a brain to care about, it's just a computer
06:00:03 <Sgeo> alise, go to sleep so you can wake up inn a timely fashion so you can get nice pictures taken
06:00:06 <augur> alise, what
06:00:06 <alise> MissPiggy: fuck no, monism
06:00:10 <MissPiggy> that's the normal view of conciousness, and it's the one I am against
06:00:16 <alise> MissPiggy: there is no soul there is no spirit world
06:00:18 <Sgeo> alise, but then there's divergence as separate sensory data comes in
06:00:22 <MissPiggy> I don't beleive in that stuff
06:00:30 <alise> consciousness is just what happens when something thinks, consciousness IS sufficiently intelligent thought
06:00:31 <augur> the other consciousness would also be you. infact, "you" would cease to mean anything without referring to which alise we meant
06:00:38 <augur> but they would not be the same consciousness
06:00:42 <MissPiggy> and I don't think there's some infintesimal point in your brain that is the mind that experiences stuff
06:00:44 <alise> you are, we are, literally experiencing our thought directly, because our consciousness is the method by which our thoughts happen; it is our thoughts
06:01:00 <alise> augur: so you think that teleporting me to a different location would kill me and leave a copy in my place?
06:01:02 <alise> I strongly disagree
06:01:05 <augur> MissPiggy: ofcourse there isnt, but its irrelevant.
06:01:11 <alise> all the brain cells I had ten years ago are dead now, I'm still me
06:01:16 <MissPiggy> augur how is it? That is what alise was saying a moment ago no?
06:01:24 <alise> our brains try very hard to make us experience continuous consciousness for whatever reason
06:01:26 <augur> alise: doesnt matter that you disagree. its wrong. demonstrably so.
06:01:33 <MissPiggy> I'm confused, I thought you guys were telling me I was wrong now you seem to be saying the same kind of thing
06:01:36 <alise> augur: i'm waiting for the demonstration or proof
06:01:49 <alise> MissPiggy: we are using different, more accurate terminology than you
06:02:00 <augur> you dont have to destroy the original version of you to do it. now you've got two alises, experiencing entirely different things.
06:02:05 <MissPiggy> alise, well I would like to have better terms too
06:02:25 <MissPiggy> alise, but I dont' really read a lot of this stuff because it's mostly paranormal/spiritualism
06:02:45 <Sgeo> Singularity != Spiritualism
06:02:50 <Sgeo> Unless treated by idiots
06:02:51 <alise> you can't deny that we are conscious by saying that consciousness is a spiritual concept
06:02:56 <alise> monism and consciousness are compatible
06:02:58 <augur> thats not to say that theres a deep philosophical difference if the teleportation were talking about is quantum in nature.
06:03:15 <alise> anyway, imagine a machine implanted in your brain
06:03:19 <augur> ie entanglement sorts of stuff.
06:03:29 <alise> every now and then, it makes a perfect computer replica of one neuron in your brain, and replaces that neuron with the computer replica
06:03:38 * Sgeo thinks to how some quacks claim that talk of "observation" proves something spiritual and significant
06:03:39 <augur> alise, are you talking to me?
06:03:41 <augur> or to MissPiggy?
06:03:42 <alise> yes
06:03:45 <alise> replacing one neuron in your brain doesn't make you not you any more, correct, augur?
06:03:48 <MissPiggy> alise this is straight out of lesswrong -_-
06:03:53 <alise> MissPiggy: yes it is because it's true
06:03:56 <augur> well stop, theres no point in going down that road. i already agree with you on that point.
06:03:59 <alise> and it's a good argument which is why it sticks in my mind
06:03:59 <MissPiggy> okay
06:04:04 <MissPiggy> I thought you were teling me it
06:04:05 <MissPiggy> sorry
06:04:07 <alise> augur: so you believe that uploading without the cessation of consciousness is possible
06:04:14 <augur> ofcourse it is.
06:04:23 <alise> then we have no disagreement over anything important.
06:04:25 <augur> its the teleportation thing that is at issue, since these are not identical.
06:04:50 <MissPiggy> alise, where do you get more precicse terms regarding this from??
06:04:56 <alise> what if my computer mind is then uploaded to a computer, and they switch my computer mind off and run the same algorithm on another computer
06:05:03 <alise> MissPiggy: uh, you could try wikipedia?
06:05:12 <alise> augur: still me? if not, justify that.
06:05:17 <alise> same algorithm on the same data, same results
06:05:18 <MissPiggy> wikipedia is complete bullshit
06:05:22 <MissPiggy> so probably not
06:05:31 <augur> alise: all of them would be you. they'd be different "alise"s form different periods. and they would ofcourse diverge.
06:05:33 <alise> MissPiggy: well that's nice, you're an idiot
06:05:48 <pikhq> alise: If not you, then it's close enough so as to make no practical difference.
06:05:52 <alise> augur: no no, they shut down my computer brain, snapshot its state, and run the same algorithm on it on another computer
06:05:54 <alise> that's transfer
06:05:56 * Sgeo wants to invite people to his Relto
06:05:59 <MissPiggy> sorry but if you learned this stuff from wiki then no wonder you don't have any of your own thoughts on it
06:06:02 <alise> there is no way that can be _different_
06:06:11 -!- GreaseMonkey has quit (Remote host closed the connection).
06:06:11 <augur> alise: well sure, but same thing
06:06:13 <alise> MissPiggy: i didn't
06:06:24 <alise> MissPiggy: i was suggesting it to you. and you can stop being an asshole, or I will stop directing messages to you.
06:06:31 <augur> ok theres no other alise to diff from, but thats irrelevant.
06:06:43 <alise> augur: so you believe that if that copying happens, I will die?
06:06:48 <augur> no
06:06:49 <MissPiggy> you are the one calling me an idiot
06:06:51 <alise> I'm pretty sure I could reductio ad absurdum this, but I won't bother
06:07:00 <MissPiggy> so it's rich that you are saying I'm the one being an asshole
06:07:09 <alise> MissPiggy: blanketing all of wikipedia as complete bullshit is an idiotic statement, simple as
06:07:09 <augur> i believe that the consciousness over there is not the consciousness over here, if there is such a thing as consciousness
06:07:15 <augur> but thats pretty irrelevant.
06:07:20 <alise> augur: then what of my continuous experience?
06:07:26 <alise> will that continue, what is your position on that?
06:07:31 <augur> continuity is an illusion that your brain plays on itself
06:07:55 <augur> the new-computer version will experience continuity
06:08:08 <augur> with a sudden change in where it perceives itself to be
06:08:11 <pikhq> I think it really comes down to "What the hell is consciousness" at this point. And it appears to be bordering on semantic games.
06:08:21 <alise> augur: I'm referring to my subjective *continuous* experience though
06:08:30 <MissPiggy> Consciousness is subjective experience or awareness or wakefulness or the executive control system of the mind.[1] It is an umbrella term that may refer to a variety of mental phenomena.[2] Although humans realize what everyday experiences are, consciousness refuses to be defined -- Useless
06:08:34 <alise> what you said says nothing about my continuous experience, only its continuous experience - assuming them to be separate
06:08:45 <augur> what
06:08:59 <alise> see, all I care about is that my continuous conscious experience continues; and I believe that uploading, copying, teleportation and all the rest achieve this
06:09:14 <MissPiggy> you know it's not continuous though
06:09:21 -!- gm|lap has joined.
06:09:26 <augur> alise, i think the problem is not with your continuous conscious experience
06:09:29 <MissPiggy> there are gaps (you just don't normally see them)
06:09:35 <alise> MissPiggy: of course
06:09:39 <alise> but the experience is continuous
06:09:45 <alise> if i don't see them i don't experience them
06:09:46 <augur> i think the problem is that the word "you" has built into it an assumption about the nature of personhood that isnt correct
06:09:50 <alise> thus my experience is continuous
06:09:52 <alise> augur: agreed
06:10:30 <MissPiggy> alise, look I am not trying to derail this with being an asshole or anything but you said you have much more precise termiology than me and I just wanted to know why -- WIkipedia is not precise on these issues so I don't undersatnd why you would recommend it to me -- it's almost like a helpful google bot
06:10:31 <augur> imagine we dont turn off your server, and instead take a snapshot and then boot it on another server
06:10:40 <augur> so that there are two instances of the Alise image running
06:10:52 <augur> (obviously its all in smalltalk, because smalltalk is inherently suited for this sort of thing)
06:10:59 <augur> which of them is you?
06:11:15 <augur> they certainly wont be experiencing the same things
06:11:40 <augur> some sort of unified consciousness in multiple bodies (ignoring the possibility of actually doing this with wifi or whatever)
06:11:53 <augur> we wont magically get robotelepathy in this fashion
06:12:04 <alise> yeah
06:12:05 <augur> but both are you, arguably. just not the same consciousness.
06:12:21 <MissPiggy> since you are not replying that means I am no longer an idiot?
06:12:22 <alise> in the mean-time, I will continue life as ordinary. that does exactly what I want as far as my continuous experience goes until I die
06:12:24 <augur> theyre forks of the Alise mind
06:12:28 <alise> and I have a lot of years until then
06:12:29 <augur> one perhaps a trunk
06:12:34 <alise> MissPiggy: I was just reading something else
06:12:46 <alise> anyway, I was just dismissing the question because I'm tired
06:12:52 <MissPiggy> what question?
06:12:54 <augur> alise, sure, except the physical you will be different than the roboyou's
06:12:56 <MissPiggy> that wasn't a question :|
06:12:59 <alise> MissPiggy: where to find terms
06:13:01 <alise> now I really must sleep, if I want to continue my conscious experience I must not die
06:13:06 <alise> not sleeping for too long is dangerous to my health
06:13:09 <alise> health risks can lead to death
06:13:10 <alise> so
06:13:11 <alise> sleep
06:13:13 <coppro> see you next week alise
06:13:15 <alise> no
06:13:18 <alise> sunday exists, sir
06:13:18 <augur> and even if the physical you was copied at the moment of death, it would still be a different version of you
06:13:20 <augur> one Alise died
06:13:23 <coppro> oh right, it's saturday!
06:13:24 <augur> and another lived
06:13:25 <coppro> yay
06:13:27 <alise> no it's sunday it's 6am
06:13:27 <MissPiggy> alise oh right, so you DISMISS ME by linking to wikipedia, then I say "this is bulshit' because it IS, and then you go off on how I am an idiot ???
06:13:35 <coppro> it's saturday here
06:13:37 <coppro> how's the passport coming btw
06:13:40 <alise> MissPiggy: ok, remind me not to talk to you when tired
06:13:42 <MissPiggy> alise for fucks sake.. you should have just told me you don't have a reference
06:13:48 <alise> coppro: no progress so far. photos on sunday prolly
06:13:55 <alise> MissPiggy: you do realise that people don't think properly when tired?
06:14:01 <alise> anyway, feel free to raise a shitstorm, I'll be sleeping
06:14:06 <MissPiggy> alise, yeah okay I'm sorry I got angry about it
06:14:12 <alise> sorry for dismissing you
06:14:20 <alise> happy families! now really, sleep ->
06:14:21 <MissPiggy> alise, I just felt a bit upset when you said I was an idiot because I was trying really hard not to be
06:14:32 <alise> sorry. just hard to do two convos at once while sleepy :P
06:14:36 <alise> anyway I said -> that means i'm gone
06:14:37 <MissPiggy> okay nn
06:14:40 <alise> it is physically impossible to ping me!
06:16:10 <MissPiggy> I wonder if I could PROVE that nobody is conscious
06:16:45 <augur> MissPiggy: no. all you'd prove is that your definition of consciousness is wrong.
06:17:18 <MissPiggy> augur, what if I started with the right definition?
06:17:51 <augur> if you started with the right definition, you would only prove that unconscious people are not conscious.
06:18:14 <MissPiggy> you are very sure :)
06:18:25 <MissPiggy> I will have to produce a VERY good proof...
06:18:27 <augur> thats because consciousness is whatever it is that people are doing :)
06:18:49 <MissPiggy> is a slug conscious?
06:18:50 <augur> you'll have to prove that people just ARENT, to prove that people arent CONSCIOUS.
06:18:56 <augur> who knows.
06:19:14 <MissPiggy> I think little insects are basically automatons
06:19:20 <MissPiggy> they just wiggle and so on
06:19:36 <augur> people are automatons too. theyre just big ones.
06:19:41 <augur> that doesnt mean they're not conscious :)
06:19:43 <MissPiggy> yeah exactly
06:19:45 <MissPiggy> oh ?
06:19:48 <augur> it just means you dont know what consciousness is!
06:19:49 <MissPiggy> but I thought it does
06:19:56 <MissPiggy> I do know what it is :(
06:20:02 <augur> obviously not :)
06:20:17 <augur> i can sum up my views on this matter: i agree with dennett.
06:20:21 <MissPiggy> If I try to prove that consciousness doesn't exist, that means that *I* am one of the only people in the world who doesn't have it?
06:20:33 <MissPiggy> can you give me dennett to read?
06:20:42 <MissPiggy> I don't know anything about him
06:21:16 <augur> yes
06:21:17 <augur> give me a second
06:24:06 <augur> http://www.youtube.com/watch?v=f0wetQwH9nY
06:24:26 <augur> watch all three parts
06:24:30 <MissPiggy> why can't I just say outrageous stuff like "wikipedia is bullshit" by the way?
06:24:44 <MissPiggy> thanks augur
06:24:45 <augur> you can
06:24:48 <augur> and people can say stuff back
06:25:20 <MissPiggy> yeah but they get mad
06:25:25 <MissPiggy> it's no good
06:26:21 <augur> tough shit :P
06:26:23 <augur> people get mad
06:26:25 <augur> big deal.
06:26:35 <augur> if this were #antiwiki people would be happy.
06:26:35 <MissPiggy> I will try harder not to be so extravagant then
06:26:49 <MissPiggy> that's not a real chan :(
06:27:44 <augur> alise is 14
06:27:47 <augur> if this were a real chan
06:27:51 <augur> we'd be asking for nudes.
06:28:58 <MissPiggy> antiwiki is not a real chan :P
06:29:11 <augur> and?
06:29:21 <MissPiggy> boooooopfadpfad
06:29:26 <MissPiggy> I have a sore tummy
06:29:48 <augur> you're pregnant.
06:31:15 <MissPiggy> I wonder if I might be a skeptic but I just don't want to admit it
06:32:48 <MissPiggy> he said 'cogito ergo sum' is wrong!!
06:33:09 <augur> and it is
06:33:13 <MissPiggy> :O
06:33:19 <MissPiggy> I thuoght it was true
06:33:26 <augur> y'mutha
06:33:31 <MissPiggy> :(
06:36:58 <augur> si! abbiamo un anima! ma è fatta di tanti piccoli robot!
06:36:59 <augur> :D
06:37:17 <MissPiggy> this is fucking ridiculous augur!!!!!!!!!
06:37:30 <MissPiggy> everything he is saying is what I agree with and was saying earlier
06:37:31 <augur> what?
06:37:45 <augur> haha
06:38:02 <MissPiggy> how come all you guys are disagreeing with me but actually think the same thing
06:38:42 <augur> because you dont know how to think about these things!
06:39:11 <MissPiggy> :S how do you mean?
06:39:44 <augur> what do you MEAN what do i mean!
06:40:03 <MissPiggy> you said I don't know how to think about these things, so what do I need to learn
06:41:24 * MissPiggy bites augur
06:41:28 <augur> oi
06:41:29 <augur> stop that
06:45:16 <MissPiggy> well?
06:46:33 <augur> i dont know
06:46:40 <MissPiggy> huff
06:46:42 <augur> i think about thinking
06:46:47 <augur> i dont think about thinking about thinking
06:46:51 <augur> im not a metametathinker!
06:47:38 <MissPiggy> lol
06:47:47 <MissPiggy> oh yeah
06:47:56 <MissPiggy> that reminds me, I still think metameta- = meta-
06:48:02 <MissPiggy> but someone here said it's not
06:49:35 <augur> decidedly not true.
06:49:45 <MissPiggy> acn you hepl me understand why
06:49:48 <augur> sure
06:50:00 <augur> meta-thinking is arguably what philosophers of thought do, right?
06:50:09 <augur> er, philosophers of mind
06:50:15 <augur> they think about thought, and what minds are like
06:50:17 <MissPiggy> I suppose
06:50:29 <augur> that doesnt mean that they think about how to think about minds
06:50:44 * coppro wants to step in with an analogy, but will let augur finish
06:50:45 <augur> ie they dont NECESSARILY say, "how should i approach this task"
06:51:04 <augur> they might just conjecture about the nature of mind, without even asking how to approach it
06:51:16 <augur> meta-meta-thinking is then thinking about how to think about how we think
06:51:33 <augur> similarly, meta-meta-meta-thinking is thinking about how to go about thinking about how to think about how we think
06:51:40 <MissPiggy> that's silly :P
06:51:44 <augur> perhaps!
06:51:46 <augur> but its true
06:51:48 <coppro> my turn!
06:51:57 <augur> thinking about thinking is not thinking about thinking about thinking.
06:51:58 <augur> obviously.
06:52:02 <augur> coppro: GO GO GO
06:53:16 <coppro> In most programming language, manipulating types would probably be one level of meta-, because normally one manipulates objects in the course of programming. Hence, in a language with types you can manipulate, types are metaobjects. If types themselves have types (metatypes?), and those could be manipulated, they would be metametaobjects
06:53:29 <coppro> it's like multiple integration, except more conceptually
06:54:00 <MissPiggy> metaprogramming = programming
06:54:18 <coppro> But once removed from the normal level
06:54:34 <coppro> likewise, metathinking is thinking; it's just that it's about thinking
06:55:10 <coppro> f(x) and \int F(x) dx are both functions, but they are not the same
06:55:14 <coppro> s/F/f/
06:55:43 <augur> metaprogramming is programming yes
06:55:57 <augur> but its programming programs that make programs
06:55:59 <augur> hence its meta
06:56:11 <augur> meta-X is a kind of X that does X
06:56:14 <augur> thats what meta means
06:56:31 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:00:43 <Sgeo> Bevin!
07:00:52 <augur> Bespin!
07:02:04 <Sgeo> Hm. "Bevin" is not as Googlable as I had hoped
07:05:31 <oerjan> `google bevin
07:05:40 <HackEgo> Ernest Bevin (9 March 1881 14 April 1951) was a British Labour politician, best known for his time as Minister of Labour in the war-time coalition ... \ en.wikipedia.org/wiki/Ernest_Bevin - [13]Cached - [14]Similar
07:07:23 <oerjan> i take it he was responsible for the "sweat" part of those blood, sweat and tears
07:09:34 <Sgeo> `google Bevin Uru
07:09:35 <HackEgo> Jump to [13]Bevin: bevin In the centre of the Plaza is a fountain. Turn about and climb up to the balcony overlooking the inland sea. ... \ [14]Preparing the Way - [15]Relto - [16]Bevin - [17]Ferry Terminal
07:11:09 * oerjan has no idea what Sgeo is trying to find
07:14:17 -!- MissPiggy has quit (Quit: Lost terminal).
07:14:54 <Sgeo> Bevin == Neighborhood
07:15:23 <Sgeo> erm, perhaps not
07:15:47 <Sgeo> `google Bevin Neighborhood
07:15:48 <HackEgo> Aug 8, 2007 ... I am not sure I believe that, but it does suggest we should not call all neighborhoods "Bevin". I must admit, I had fallen into the Bevin/neighborhood ... \ forums.drcsite.org/viewtopic.php?t=2018 - [13]Cached
07:16:01 <Sgeo> "Bevin does not mean neighborhood."
07:16:38 <oerjan> in what language?
07:17:23 <Sgeo> D'ni
07:17:40 <Sgeo> Or, that might actually be a race
07:17:49 <Sgeo> Not sure if there's a particular name for the language
07:17:56 <oerjan> oh so that google hit was actually relevant...
07:18:55 <Sgeo> http://en.wikibooks.org/wiki/D'ni
07:23:18 * Sgeo is rish years old
07:25:12 -!- augur has quit (Read error: Connection reset by peer).
07:25:13 -!- augur_ has joined.
07:29:36 <augur_> my fucking internet
07:29:42 <augur_> is so goddamned slpw right now
07:29:44 <augur_> i dont know why :(
07:30:08 * Sgeo should be preparing to go to sleep right now
07:30:18 <oerjan> augur_: microwave sloths
07:30:32 <oerjan> they're crawling inside the wires
07:31:53 <augur_> io0p-;[']u7ijk98uiolp;[']
07:31:54 <augur_> \9890-]\
07:31:56 <augur_> "?90-=]iolp[;'
07:32:02 <augur_> whoops
07:32:07 <augur_> no no its not microwave issues
07:32:12 <augur_> connectivity is fine
07:35:45 <Sgeo> Horribly Tasteless Wikipedia humor: http://en.wikipedia.org/w/index.php?title=Comparison_of_file_systems&oldid=220529437#Features
07:36:08 <coppro> ?
07:36:32 <augur_> Sgeo: hahaha
07:36:54 <coppro> oh
07:36:58 <coppro> there it is
07:37:20 <coppro> HAHA
07:37:27 <coppro> tr/A-Z/a-z/
07:39:09 <coppro> that one needs a new section: "Performance", with a "No" under FAT and NTFS :P
07:39:23 <augur_> :P
07:39:47 -!- augur_ has changed nick to augur.
07:40:18 -!- augur has changed nick to Guest99794.
07:40:35 <coppro> Something is wrong when your VM performs faster than your native applications
07:40:43 <coppro> doing the same stuff
07:40:49 -!- Guest99794 has changed nick to augur_.
07:42:10 -!- augur_ has quit (Quit: Leaving...).
07:43:55 <Sgeo> If I put an image on imgur, will other people see it?
07:46:26 * Sgeo hopes not
07:52:36 <Sgeo> Who runs .exes on webservers?
07:57:57 <pikhq> Gregor runs arbitrary binaries on his wiki.
07:59:42 <Sgeo> Windows binaries?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:25 <Sgeo> Although if Hackiki supports Mono, I guess his wiki could end up using .exes
08:00:41 * Sgeo now knows what it's like for someone to excessively IM him
08:00:48 <Sgeo> I used to be an excessive IMer
08:02:39 <coppro> Sgeo: doit
08:02:54 <Sgeo> Wha?
08:03:13 <oerjan> `translatefromto fr en doit
08:03:15 <HackEgo> must
08:04:20 <Sgeo> coppro, whayouwametodo, unlessyoumeanmust,inwhichcasewhatsthemustfor?
08:04:35 <coppro> Sgeo: do it
08:04:40 <Sgeo> dowhat?
08:04:52 <coppro> put Mono on Hackiki Prime
08:04:57 <Sgeo> Ahlol
08:05:05 <Sgeo> Nanowneesleep
08:05:47 * Sgeo isn't even sure how to go about doing such a thing
08:05:52 <coppro> easy
08:05:53 <oerjan> enlispelingetsworsanwors
08:05:58 <coppro> put the entire Mono framework on Hackiki
08:06:02 <coppro> Put a .exe on it
08:06:04 <coppro> have fun!
08:07:06 <Sgeo> How do I shot Hackiki?
08:11:52 <Sgeo> Gnight
08:28:45 -!- augur_ has joined.
08:50:45 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:01:46 -!- kar8nga has joined.
09:03:57 -!- MigoMipo has joined.
09:21:20 -!- augur_ has quit (Ping timeout: 260 seconds).
09:21:45 -!- augur_ has joined.
09:37:59 -!- oerjan has quit (Quit: Good night).
09:45:30 -!- oklopol has joined.
10:01:47 <oklopol> alise: okay the ;'s are gone, my number one error is using , instead of it :D
10:02:18 <oklopol> (the thing doesn't fail well yet)
10:24:35 -!- tombom has joined.
10:39:35 -!- Pthing has joined.
11:08:24 -!- BeholdMyGlory has joined.
11:40:53 -!- tombom_ has joined.
11:42:48 -!- tombom has quit (Ping timeout: 264 seconds).
11:45:28 -!- tcsavage has joined.
12:03:59 -!- oklopol has quit (Ping timeout: 256 seconds).
12:10:37 -!- oklopol has joined.
12:15:25 <oklopol> alise: doing ski now, i wrote the thing in thue in the time it's taken me to differentiate between different sorts of inputs :D
12:21:49 <oklopol> also i just killed hundreds of children
12:23:26 <oklopol> so, how fucking fast do fruit flies reproduce?
12:24:36 <oklopol> i've been vacuuming their whole visible population about 3 times a day for like 3 days now, and the only noticeable difference really is that there are now more kids than adults
12:25:14 <oklopol> i assume the vacuum cleaner kills them because i've never seen anyone get outta there
12:27:04 <oklopol> once left it next to the computer for hours just to see if someone comes out
12:27:49 <oklopol> no idea why it would kill them though, they are very hard to kill with impact, and i assume that's the only thing the vacuum cleaner does to them
12:28:21 <oklopol> easy to kill by squashing ofc
12:41:36 -!- kar8nga has quit (Remote host closed the connection).
12:44:48 -!- Slereah has quit (Ping timeout: 260 seconds).
12:52:22 -!- tcsavage_ has joined.
12:54:34 -!- augur_ has quit (Ping timeout: 246 seconds).
12:54:48 -!- FireFly has joined.
12:55:12 -!- augur_ has joined.
12:55:21 -!- tcsavage has quit (Ping timeout: 248 seconds).
13:14:11 <alise> <augur> alise is 14
13:14:12 <alise> <augur> if this were a real chan
13:14:12 <alise> <augur> we'd be asking for nudes.
13:14:12 <alise> lol
13:15:48 <Wareya> but I'm 14
13:19:01 -!- tcsavage_ has left (?).
13:23:13 <oklopol> i'm even older than that
13:30:53 <Wareya> http://wareya.naken.net/?mode=comic
13:31:59 <alise> Wareya: i wish to kill you
13:32:12 <Wareya> why'
13:32:20 <alise> http://wareya.naken.net/?mode=comic
13:32:25 <Wareya> oh
13:32:30 <Wareya> right
13:32:33 <Wareya> I didn't make that
13:32:37 <Wareya> I just feel really sorry for the guy
13:33:14 <alise> sure he isn't trolling you
13:33:20 <Wareya> yes
13:33:22 <Wareya> I've met him
13:33:41 <alise> I humbly suggest euthanasia.
13:33:48 <Wareya> I mean
13:34:01 <Wareya> I knew him off the internet and saw him posting under that account
13:34:13 <Wareya> he's really autistic
13:34:15 <Wareya> :(
13:34:20 <alise> that much is obvious
13:34:27 <Wareya> yeah
13:34:42 <alise> zzo38's autistic too, but he's just crazy, not ... dunno how to put it, hopelessly naive? :P
13:34:55 <Wareya> hahaha
13:34:59 <Wareya> you know
13:35:17 <Wareya> my school considered testing me for aspergers but decided it was easier to say I had an emotional disorder
13:35:23 <alise> actually I'm often surprised by the navety of other people...
13:35:43 <Wareya> really?
13:35:46 <alise> yes
13:35:51 <Wareya> I thought that naivety was something that like
13:35:53 <Wareya> everyone had
13:35:53 <Wareya> etc.
13:35:57 <alise> well yes
13:36:04 <alise> but I see it a lot in other people
13:36:22 <alise> Wareya: lol I've experienced my own bullshit with aspergers (as you probably know; god knows everyone in this channel does)
13:36:24 <Wareya> like I'm naive to new ideas that aren't directly logic related
13:36:33 <Wareya> haha
13:36:44 <alise> yeah, this hell totally is haha :P
13:36:45 <alise> oh, I mean nave as in real-world situations
13:36:52 <Wareya> oh
13:37:06 <Wareya> yeah I'm dead for most shit in real life
13:37:39 <Wareya> anyway
13:37:46 <Wareya> How should I start coding an interpreter for Boat?
13:38:40 <alise> well it's imperative, so naturally I'd use Haskell
13:38:41 <Wareya> I have a lot of time lately (vacation) and I'd hte to waste it playing half-life etc.
13:38:49 <Wareya> well
13:38:55 <Wareya> all I know is C, GML and Python
13:38:57 <alise> it isn't wasted if you enjoyed it
13:38:58 <Wareya> and GML is out the window
13:39:03 <Wareya> well
13:39:03 <alise> first, learn haskell
13:39:07 <Wareya> I'm like, never sad
13:39:18 <Wareya> since my childhood was so sad haha
13:39:23 <alise> presumably you experience fun playing half-life otherwise you wouldn't want to do it
13:39:33 <Wareya> but I also get fun out of programming
13:39:34 <Wareya> so
13:39:47 <alise> it's not like anyone will use the interp though :P
13:39:52 <Wareya> true
13:40:00 <alise> anyway don't do it in C, Python isn't a good language but at least you don't have to manage memory.
13:40:09 <Wareya> I love managing memory
13:40:23 <alise> then you love busywork, not real programming work
13:40:26 <Wareya> and python is only bad in the syntax and how it handles low level objects
13:40:34 <alise> no, it's bad all the way through
13:40:35 <alise> anyway
13:40:35 <Wareya> Oh, I meant the real basic stuff
13:40:41 <alise> since you have multiple bracketing statements, write a parser of course
13:40:44 <Wareya> @memory management
13:40:50 <alise> you have infix operations, how do they associate?
13:40:52 <alise> Do they?
13:40:58 <Wareya> huh?\
13:41:12 <alise> n==nequality test -- returns the xnor of two values (if you need booblean, use casting)
13:41:12 <alise> n!=ninequality test -- returns the xnand of two values
13:41:12 <alise> n|n"or" -- note: || in C is its | with a boolean restriction
13:41:12 <alise> n&n"and" -- note: && in C is its & with a boolean restriction
13:41:12 <alise> n!|n"nor"
13:41:13 <alise> n!&n"nand"
13:41:16 <alise> what does this mean:
13:41:25 <alise> x|y!=z!&r==n&p
13:41:31 <Wareya> left to right
13:41:42 <alise> that's easy then
13:41:46 <alise> you know how to write a parser right?
13:41:51 <Wareya> Nope! :D
13:42:04 <alise> ok well the obvious option is to use a library but that's boring innit
13:42:12 <alise> I assume you don't really care about helpful syntax errors
13:42:23 <Wareya> the more lenient a language is the better
13:42:32 <Wareya> which is why I can't write python
13:42:45 <alise> Python is lenient...
13:42:50 <Wareya> not the syntax
13:42:53 <alise> True.
13:43:14 <alise> Past a certain point, bondage becomes freedom, paradoxically enough; Haskell, for instance, is one of the most expressive languages I've used.
13:43:21 <alise> But Python doesn't really hit that.
13:43:26 <alise> Fine, I'll show you how I'd structure this parser in C.
13:43:48 <Wareya> like purely structural languages versus ones that only have goto
13:44:25 <alise> Right.
13:46:48 <alise> Wareya: actually, since you have complex expressions *and* infix operators, a parser library is probably your best bet
13:47:04 -!- augur_ has quit (Ping timeout: 246 seconds).
13:47:28 <Wareya> or I could be hardcore and process all the nesting manually like I planned to
13:47:34 <Wareya> becaues 1) That would teach me more
13:47:46 <Wareya> 2) I wouldn't need to deal with a library
13:47:53 <alise> yacc isn't a library
13:48:00 <alise> you write a .y file and it spits out a c file
13:48:10 -!- augur_ has joined.
13:48:12 <Wareya> and 3) I wouldn't need to deal with a preprocessor
13:48:15 <Wareya> oh hey
13:48:15 <alise> 70s technology, the people who invented C used it y'know
13:48:34 <alise> Wareya: re recursive descent - yeah except I'm good at shit like this and now how to write parsers,
13:48:54 <Wareya> and I don't
13:48:54 <alise> and when I realised you had left-associative infix operators with complex left-hand-side expressions with many types of nesting, plus 2d flow,
13:49:02 <alise> I started crying and closed the window.
13:49:07 <alise> Wareya: also, you CANNOT parse this language
13:49:10 <alise> it has two dimensional flow
13:49:14 <alise> well, you can
13:49:24 <alise> but you have to store N where N is a very large number parses for every single block
13:49:32 <alise> and it would be near-impossible to coordinate
13:49:32 <Wareya> actually hang on
13:49:42 <Wareya> it needs to parse actively
13:49:46 <alise> same reason the only way you can parse befunge is loading it into a 2d char array
13:49:53 <alise> Wareya: right. you're out of your league.
13:50:00 <Wareya> Heh
13:50:08 <alise> what a syntax for such trivial semantics :P
13:50:32 <Wareya> I wrote a Chip-8 -> brainfuck converter
13:50:43 <Wareya> I think I could at least get SOMEWHERE with this
13:51:04 <Wareya> maybe if I wrote it in a language that was really good at dealing with fucked up structure
13:51:12 <alise> good luck I wash my hands of this
13:51:24 <alise> also, haskell is really good for multiple angles of the same data and handling complex structures like this simply
13:51:25 <alise> just sayin'
13:51:34 <Wareya> I have functional languages
13:51:37 <Wareya> hate*
13:51:49 <alise> oh. so you're an idiot, then
13:51:54 <Wareya> Both of my parents programmed in C and PHP
13:52:09 <alise> PHP in your genes? well that would explain it
13:52:10 <Wareya> and I wrote shell scripts when I was 3
13:52:16 <Wareya> I hate PHP too, though
13:52:20 <Wareya> which is ironic
13:52:22 <alise> what functional languages have you used
13:52:45 <Wareya> erlang, haskell, AGTs
13:52:50 <Wareya> SGTS*
13:52:51 <Wareya> ;sdlfjasd
13:52:54 <Wareya> AGTS*
13:52:56 <alise> how seriously did you use haskell?
13:52:59 <Wareya> yes
13:53:05 <Wareya> er
13:53:35 <Wareya> misread that. I didn't use it that eriously, but I jumped in the shallow end and tried to mess with it for a couple weeks
13:53:54 <alise> Well, obviously you hate them because they're different to what you're so used to.
13:53:58 <alise> That's not a very healthy attitude to take, though.
13:54:03 <Wareya> heh
13:54:07 <alise> You should always try to push your programming language boundaries.
13:54:26 <Wareya> have you used GML? Its object manipulation is worse than C++
13:54:35 <alise> Personally I may consider several paradigms worthwhile and not be sure which, but I know for sure that whichever has the nicest properties is certainly not imperative.
13:54:42 <alise> Imperative couldn't be more dead to me.
13:54:44 <Wareya> I can't really get accustomed to a functional language after mastering that
13:55:11 <alise> it's much more peaceful after you do ;)
13:55:16 <Wareya> hahaha
13:55:36 <Wareya> maybe I should try to do it in FreeBASIC
13:55:46 <Wareya> just to be an asshole to people who hate basic
13:55:46 <alise> not for me though because i constantly see everything that's shit about my computer
13:56:07 <alise> wrong architecture. wrong language. wrong structure of OS. wrong interface. wrong software. blah blah blah
13:56:17 <Wareya> I hate x86
13:56:39 <Wareya> I hate how windows XP ties everything to the OS
13:56:52 <Wareya> tec.
13:56:53 <Wareya> etc.
13:57:00 <alise> you hate x86 but for presumably all the wrong reasons
13:57:06 <alise> I would vastly prefer a graph-reduction architecture
13:57:10 <alise> like the Reduceron
13:57:11 <Wareya> there's WAY TOO MUCH
13:57:26 <alise> at least you know that simplicity is a virtue, but simplicity does not mean low-level, of course.
13:57:30 <Wareya> hell, I work with mips all the time, and even it's over the top
13:57:36 <Wareya> of course
13:57:43 <Wareya> that's why I was able to deal with chip-8
13:57:45 <alise> the Reduceron is a high-level symbolic computer (like computer algebra systems)... on an fpga
13:57:51 <alise> no imperative instructions in sight
13:58:58 <Wareya> http://devernay.free.fr/hacks/chip8/C8TECH10.HTM#3.1
13:59:08 <Wareya> the only imperitive stuff there deals with the 8 or so registers
13:59:27 <Wareya> 16
14:00:07 <alise> SYS is imperative. CLR is. RET, JP, CALL. You could make an argument for SE/SNE/SE being denotational. LD, ADD. OR and AND too, for they mutate the registers. I won't go on; this is imperative in its entirety.
14:00:47 <Wareya> oh I'm sorry
14:01:03 <alise> Functional *means* functional. :P
14:01:07 <Wareya> I was assuming that pardagrim inclusion wasn't tenary
14:01:09 <Wareya> :)
14:01:25 <alise> Are you sure what you said makes sense?
14:01:29 <Wareya> Yes.
14:01:42 <alise> i disagree
14:02:05 <Wareya> I was assuming that something being one of a pardagrim wasn't a JUSDT yes, no, or unrelated thing.
14:02:08 <Wareya> JUST*
14:02:31 <alise> Well, I saw not a single instruction that could be described as declarative apart from - maybe - SE/SNE/SE; even then they read mutable state.
14:02:48 <alise> "Functional" as a paradigm means little; only purely functional has the required properties that make it worthwhile.
14:03:15 <alise> Reasoning about programs, safety, segregating non-functional code into boxes, large optimisation potential, ...
14:03:26 <Wareya> ...wat
14:04:37 <Wareya> I'm sorry but that made no sense to me
14:04:38 <alise> Well, if imperative code is all you know I'm not surprised you don't understand... it's pretty much the lowest common denominator as far as advanced topics like that go - and I mean to cause no offence, I am referring to the entire world that it comprises
14:05:17 <alise> I couldn't really explain most of them without several pages... by that point, it'd probably be easier for you to actually learn a functional language than to follow the tangled web of words.
14:05:25 <Wareya> haha
14:05:49 <Wareya> I guess that the way that I'm spergin' makes me thing of everything as a test and set
14:06:22 <Wareya> because I was thinking that way before I know very much about computers
14:06:25 <alise> Everything is a graph rewriting.
14:06:35 <alise> Even imperative code can be modelled this way, and efficiently, too.
14:07:07 <Wareya> you can boil anything down to one operator following a 3D trail
14:07:13 <alise> It certainly transcends such petty blimps in history as how our computers work; it's pretty much pure mathematics, and mathematics has to be the oldest non-physical discipline there is.
14:07:14 <Wareya> and you can build that back up into anything else
14:07:32 <alise> And the power, safety, purity and optimisation you get when you layer a good type system on top...
14:07:48 <Wareya> european pre-calculus math is retarded
14:07:51 <oklopol> are you people saying two things can be equal in their computational ability even though they are different?!?
14:08:00 <Wareya> in my very non-humble opinion
14:08:05 <oklopol> pre-calculus is retarded everywhere
14:08:15 <Wareya> post algebra, pre calculus
14:08:20 <Wareya> is fucking stupid
14:08:28 <Wareya> Hell, calculus isn't even european
14:08:39 <Wareya> so I'm fully justified in saying that all european math is dipshit
14:08:48 <oklopol> "let's take a sneak peek at what you'll do with this stuff once you have any idea what it means"
14:08:57 <alise> Does Chaitlin count?
14:09:03 <alise> Erdos?
14:09:09 <alise> (Why didn't I think of Erdos first? Disturbing.)
14:09:18 <oklopol> current version of ski takes over a minute to compile
14:09:37 <Wareya> alise, are they post-1850?
14:09:48 <alise> Oh my god, you don't know who Paul Erdos is.
14:09:56 <Wareya> since I suck at european history past rome
14:10:11 <alise> I think you just became the most idiotic person I ever met, to claim that European mathematics is bullshit one sentence then express ignorance at who Paul Erdos is in the next.
14:10:19 <Wareya> I'm sorry, but
14:10:20 <Wareya> since I suck at european history past rome
14:10:23 <Wareya> I don't know
14:10:38 <alise> Then saying anything about European mathematics makes you a fool.
14:10:53 <Wareya> I'm also 14 in one of the most facist state education systems in america
14:11:01 <Wareya> so shun me
14:11:29 <alise> It is one thing not to know, it is another entirely to make a blanket statement about something that you do not know.
14:11:36 <Wareya> alise
14:11:54 <alise> If you have the self-awareness to know that you are in a crappy educational system (pretty much all of them), you have the intellect, and thus the intellectual responsibility, not to do things like that.
14:11:56 <Wareya> I have been trained to call everything post-1850 in the western hemisphere american
14:12:30 <alise> You could only get away with "it's the SYSTEM! blame the SYSTEM!" if you weren't clearly intelligent enough to realise what bullshit such things are.
14:12:50 <alise> Also, Georg Cantor?
14:12:58 <Wareya> I know that I'm uneducated in history
14:12:59 <alise> 1870. Maybe he's not sufficiently Unamerican for you.
14:13:03 <Wareya> haha
14:13:05 <alise> *un-Ameircan
14:13:06 <alise> *American
14:13:07 <alise> ffs
14:13:13 <alise> (un-American, that is)
14:13:35 <Wareya> russia and germany
14:13:43 <Wareya> you know
14:13:51 <Wareya> maybe I should be saying western instead of european
14:14:05 <Wareya> then again I suck at making good english so fuck that
14:14:28 <oklopol> i totally be make an fun english
14:14:34 <Wareya> haha
14:14:42 <alise> Anyway, fact is, if you know that you do not know much about the history of European mathematics, because you know that you do not know about European history post-Roman times, then it is intellectually dishonest to make more than trivial statements about European mathematics; a blanket statement is simply ridiculous.
14:15:01 <Wareya> But America is all about blanket systems!
14:15:05 <alise> You don't need to know anything to make that train of deduction except what you self-admittedly know; that you are ignorant of European history.
14:15:07 <oklopol> i think you're both wrong
14:15:15 <alise> p and not p!
14:15:20 <Wareya> us q!
14:15:23 <Wareya> is*
14:15:34 <oklopol> ah, the famous P ?= NP problem
14:16:00 <Wareya> p&!(p)
14:16:10 <Wareya> =0
14:16:22 <Wareya> OF COURSE IT'S UNRELATED
14:16:47 <alise> I don't care how cliche it is, because it's relevant:
14:16:50 <alise> "Never let your schooling interfere with your education." --probably not Mark Twain
14:17:15 <Wareya> That's what I said until I realized that I didn't reach out enough out side of school to learn things
14:17:29 <Wareya> if you weren't being so pretensious I would probably be listening to you, though
14:17:37 <Wareya> Yes I suck at spelling
14:17:37 <alise> You're on a computer connected to the internet; it presumably has a web browser. So... what are you waiting for?
14:17:46 <Wareya> BUT HALF-LIFE
14:17:52 <alise> oh, the American anti-intellectual attitude really has sunk into your brain
14:17:56 <Wareya> no
14:17:58 <alise> big words are pretentious elitism
14:17:59 <Wareya> I'm pro-intellectual
14:18:04 <Wareya> h
14:18:06 <Wareya> insults are
14:18:14 <alise> i am not insulting you.
14:18:21 <Wareya> reads like it
14:18:31 <Wareya> just sayin'
14:18:35 -!- augur_ has quit (Ping timeout: 252 seconds).
14:18:39 <Deewiant> She's an asshole in general: don't read into it too much
14:18:48 <Wareya> I figured such.
14:19:05 <alise> That I am, but in this case I was not being an asshole to you, only certain parts or actions of you.
14:19:22 <Wareya> but parts make up the whole
14:19:33 <alise> So is criticising someone's mathematical proof an insult?
14:19:38 <Wareya> nope
14:20:01 <Wareya> you're criticising the parts of me that I've never really cared about being different
14:20:04 <Pthing> it can be!
14:20:05 <Wareya> so of course I feel offended
14:20:10 <Wareya> hahaha
14:20:56 <Wareya> Also, my full-blown proofs with columns and everything aren't ever argued with because I go into detail showing how I tried proving each part wrong to no avail
14:21:30 <alise> Proof by contradiction, damn you some kinda mathematical genius.
14:21:33 <alise> Can't argue with one of them.
14:21:42 <Wareya> hahaha
14:21:43 <alise> Not as if they can be flawed or anything
14:22:02 <Wareya> you can divide by zero
14:22:06 <Wareya> sometimes
14:22:51 <oklopol> what
14:23:09 <Wareya> y=x/0; 0y=x; x=0; y=0/0;
14:23:12 <oklopol> what you just said about proofs does sound like you've been doing some serious precalculus
14:23:22 <Wareya> I do some serious algebra
14:23:23 <oklopol> oh and that too
14:23:38 <oklopol> good, that should unmelt it
14:23:49 <Deewiant> Elementary algebra, presumably
14:23:55 <Wareya> no, high school algebra
14:23:59 <Wareya> :D
14:24:02 <Deewiant> Yes, that's elementary algebra.
14:24:06 <alise> >_,
14:24:06 <Wareya> Ah
14:24:07 <alise> *>_<
14:24:17 <Wareya> See, I'm actually IN high schoo
14:24:18 <Wareya> l
14:24:27 <Wareya> so saying that that's elementary from my perspective is like
14:24:33 <Wareya> apples=oranges-2
14:24:50 <alise> Someone talk to em so I don't have to.
14:24:51 <Deewiant> I'm not calling it elementary, that's just what it's called :-P
14:24:56 <Wareya> lol
14:25:02 <Deewiant> To contrast with abstract algebra
14:25:05 <Wareya> yeah, "elementary" algebra
14:25:27 <oklopol> oh elementary algebra
14:25:29 <alise> Are you trying to express the notion that elementary algebra is difficult?
14:25:29 <Deewiant> http://en.wikipedia.org/wiki/Elementary_algebra -- Wikipedia agrees with me so I must be right
14:25:33 <oklopol> that has nothing to do with algebra
14:25:36 <Wareya> no?
14:25:44 <Deewiant> oklopol: Sure it does
14:25:44 <oklopol> it's just tree rewriting
14:25:46 <alise> Then why "yeah, 'elementary' algebra"?
14:25:55 <Wareya> 09:23 < Wareya> See, I'm actually IN high schoo
14:25:56 <Wareya> 09:24 < Wareya> so saying that that's elementary from my perspective is like
14:25:56 <oklopol> Deewiant: oh?
14:25:56 <Wareya> 09:24 < Wareya> apples=oranges-2
14:26:07 <alise> Wareya: No, that isn't an answer; it doesn't make any sense.
14:26:13 <Wareya> you're funny
14:26:15 <Wareya> makes sense to me
14:26:21 <alise> "How is calling it elementary strange from your perspective?" is the question.
14:26:21 <Wareya> oh wait of course it does
14:26:27 <alise> You are saying things but they don't seem to express any sort of coherent idea.
14:26:28 <Wareya> uh
14:26:33 <Wareya> elementary school
14:26:38 <Deewiant> oklopol: It's just the most basic concepts, restricted to an easy-to-understand set
14:26:41 <Wareya> grade school
14:26:54 <alise> Wareya: So, what, do you not know what the word "elementary" means?
14:26:58 <Wareya> yes
14:27:00 <Wareya> basic
14:27:09 <Wareya> though it means more than that
14:27:14 <Wareya> it pretty much means basic
14:27:20 <alise> Well, it is basic algebra.
14:27:23 <alise> So how is that strange at all?
14:27:24 <oklopol> Deewiant: so like group axioms and shit?
14:27:35 <oklopol> you can't get more basic than that in algebra
14:27:38 <Deewiant> oklopol: No, like equations and variables and shit :-P
14:27:51 <Wareya> becuase americans think of elementary as grade school
14:27:52 <Wareya> period
14:27:57 <Wareya> at least in massachusetts
14:28:13 <oklopol> variables are logic, not algebra, imo; algebra is about having operations and things, and rules for how the operations should work
14:28:27 <Deewiant> Yes, they are logic, but they're used in algebra
14:28:29 <Wareya> algebra is the manipulation of equations that contain variables
14:28:31 <oklopol> equations is, maybe, closer to algebra
14:28:40 <Wareya> functional variables I mean
14:28:59 <alise> I would highly expect that Massachusetts has one of the better educational systems in America.
14:29:00 <Deewiant> The set of things that you do in elementary algebra are a subset of the things you do in abstract algebra
14:29:02 <oklopol> well dunno really, to me they just don't seem to have any sort of real connection
14:29:09 <Wareya> Alise, I'm on the new york border
14:29:15 <alise> For one, it's probably the most liberal state; and, well, all dem universities.
14:29:27 <Wareya> 1) Taxachusetts
14:29:42 <Wareya> 2) The Berkshires suck at middle and high school
14:29:50 <Wareya> 3) I'm 14
14:29:57 <alise> EFFORTS TO tamp down antitax sentiment in Massachusetts got an unexpected boost last week: the small-government advocates at the National Tax Foundation in Washington, D.C., issued a report showing that the state's tax burden has dropped a few notches this year. The epithet "Taxachusetts" has been difficult to shake, but the foundation report ranks the state 23d out of 50 for the bite state and local taxes take out of a resident's paycheck. That's just abou
14:29:57 <alise> t the middle by anyone's calculation.
14:30:01 <alise> that took like five seconds to google up
14:30:10 <Wareya> http://en.wikipedia.org/wiki/Pittsfield
14:30:13 <alise> you can't criticise left-wing policy by prefixing words with tax-
14:30:22 <Wareya> left wing policy is great
14:30:31 <alise> yes, you're 14, but I would presume some of the intellectualismamism from the unis would spill out
14:30:34 <oklopol> it's not about equations, it's about systems with objects and functions that map objects to other objects
14:30:36 <Wareya> but I'm so poor that I'm obliged to laugh at taxes
14:30:51 <oklopol> and you try to characterize what these systems look like, given some constraints on the operations
14:30:52 <alise> if they're balanced out by relevant social services then it's irrelevant
14:30:52 <Wareya> AGAIN
14:30:55 <Wareya> http://en.wikipedia.org/wiki/Pittsfield
14:31:29 <oklopol> what you do in high school is you have a vague understanding of the real line, and you have one set of rules you need to learn to apply
14:31:51 <oklopol> i guess that does make it sound like they have a connection
14:32:48 <oklopol> Deewiant: yeah okay maybe, but you only train the part that doesn't require any sort of thinking or understanding.
14:33:28 <Deewiant> Well, arguably you can do abstract algebra without any understanding as well
14:33:30 <oklopol> you could replace it by a class where you memorize axioms for different algebraic systems, although it might be harder to keep students from understanding what they're doing
14:33:46 <Wareya> Anyway
14:33:56 <Deewiant> In practice you can't because there are too many rules and it's not as easy to recognize when to use which one
14:34:07 <Wareya> the upper ends of my school are trying to get rid of all he autistic kids by failing them
14:34:08 <alise> "although it might be harder to keep students from understanding what they're doing"
14:34:13 <Wareya> GUESS WHO THAT INCLUDES
14:34:20 <alise> you're being too snappy about education lately. stop it or i'll be forced to quote you
14:34:32 <alise> Wareya: you're not autistic.
14:34:38 <Wareya> They think I am
14:34:52 <Wareya> And no, I don't group aspergers with autism
14:35:17 <Wareya> to put it a way, one is a software issue, the other is a hardware issue
14:35:39 <Pthing> umm
14:35:51 <Pthing> that is the worst explanation of the difference i have ever heard
14:35:56 <Wareya> yes it is
14:35:57 <alise> indeed.
14:35:59 <Deewiant> I think if you actually have asperger's it's very much a hardware issue
14:36:07 <Wareya> Well
14:36:07 <alise> also, asperger's isn't real in like 90% of cases
14:36:12 <Deewiant> Most people who self-diagnose asperger's are just shy/socially inept/whatever
14:36:21 <Wareya> aspergers is often psychological
14:36:22 <alise> Most people who are DIAGNOSED Asperger's are just that.
14:36:35 <Deewiant> Well, I don't know about that
14:36:39 <Wareya> yes
14:36:50 <alise> Well, I know of at least one case... (me)
14:36:52 <Deewiant> I hadn't even heard of asperger's until it erupted on the internet a few years back and everybody was like "OMG that's me"
14:37:01 <Wareya> haha
14:37:04 <Wareya> it's the internet
14:37:15 <Wareya> also:
14:37:15 <Deewiant> One case does not a "most people" make
14:37:17 <Wareya> 09:36 < alise> Well, I know of at least one case... (me)
14:37:17 <Wareya> 09:36 < Deewiant> I hadn't even heard of asperger's until it erupted on the internet a few years back and everybody was like "OMG that's me"
14:37:20 <Wareya> epic timing
14:37:29 <alise> I just said I wasn't Asperger's, you fool.
14:37:37 <oklopol> alise: all education before university is bullshit and should be completely removed
14:37:41 <alise> <Deewiant> Most people who self-diagnose asperger's are just shy/socially inept/whatever
14:37:41 <alise> <alise> Most people who are DIAGNOSED Asperger's are just that.
14:37:41 <alise> <Deewiant> Well, I don't know about that
14:37:43 <Pthing> lol
14:37:43 <alise> <alise> Well, I know of at least one case... (me)
14:37:46 <Wareya> 09:37 < oklopol> alise: all education before university is bullshit and should be completely removed
14:37:47 <oklopol> it has absolutely no use to anyone
14:37:54 <Pthing> hilarious
14:37:58 <Wareya> I would agree if it weren't for grade school
14:38:05 <alise> Pthing: what, exactly, is hilarious? :p
14:38:11 <Deewiant> oklopol: Most people can't be dropped to university without any knowledge of the pre-university stuff
14:38:11 <Pthing> oklopol!
14:38:19 <oklopol> is that better?
14:38:25 <alise> Deewiant: intelligent people educate themselves
14:38:34 <Wareya> Deewiant: what alise said
14:38:34 <alise> well, so do dumb people, they just need constant poking in some direction to do it.
14:38:38 <Deewiant> alise: Not necessarily
14:38:43 <Wareya> almost always
14:38:46 <Deewiant> Many grow into intelligence
14:38:54 <alise> Deewiant: Name one?
14:39:13 <Deewiant> I didn't enjoy school, for the most part, until I was maybe 12 years old
14:39:15 <Wareya> alise: 90% of the seniors at my school who aren't there for the lunch
14:39:19 <Deewiant> I still learned the stuff, of course
14:39:23 <alise> Deewiant: That is completely unrelated to education.
14:39:26 <alise> Or intelligence.
14:39:33 <Wareya> 09:38 < alise> Deewiant: Name one?
14:39:34 <Wareya> 09:38 < Wareya> alise: 90% of the seniors at my school who aren't there for the lunch
14:39:34 <Deewiant> Of course it's related to education
14:39:40 <alise> Name someone who grew into intelligence, not someone who grew into liking education.
14:39:41 <oklopol> anyway there are just numbers and lists, so i'm not sure a separator between list elements makes much sense
14:39:52 <alise> State education, at that, which isn't really much education. Maybe it's better in Finland.
14:40:06 <alise> oklopol: yeah i think you should drop commas from function args too
14:40:08 <Wareya> american middle and high schools
14:40:09 <Deewiant> alise: I mean, without the years of education before that point, I'd've been lagging behind others
14:40:09 <Wareya> SUCK
14:40:10 <Wareya> ASS
14:40:24 <Deewiant> And you'd call me an idiot if I were here with 10 years less education than I've got
14:40:28 <Deewiant> (Probably.)
14:40:33 <alise> Deewiant: You can't know whether you would have self-directed your education or not.
14:40:39 <Deewiant> Exactly
14:40:43 <Wareya> I would probably look far more like I have aspergers if it weren't for elementary school
14:40:49 <Deewiant> And thus it's safer to force people into education
14:40:54 <alise> Presumably you had enough intelligence so that if you did not find intellectual stimulation you would become bored.
14:41:00 <Wareya> I'd be all over mechanics and programming, like I am now, but nothing else
14:41:03 <alise> Deewiant: No, I was questioning whether you wouldn't.
14:41:10 <Deewiant> Boredom does not mean you'll do something useful
14:41:12 <Deewiant> See procastination
14:41:17 <Deewiant> procrastination*
14:41:19 <Wareya> HEY
14:41:24 <Wareya> procrastination isn't out of boredom
14:41:34 <Wareya> it's out of lack of intrest in what you're procrastinating
14:41:34 <Deewiant> I didn't say it was
14:41:37 <Wareya> okay
14:41:40 <alise> Shrug
14:41:44 <alise> Maybe I'm just speshul
14:41:53 <Wareya> ANYWAY
14:42:00 <Deewiant> I'm inclined to think you are: you're smarter than most people my age that I know
14:42:04 <Wareya> back to what started this (I think)
14:42:10 <alise> Mommmy says I'm thus!
14:42:11 <Wareya> http://esolangs.org/wiki/Boat
14:42:15 <alise> Yes, with THREE Ms!
14:42:20 <alise> I'm extra-mmm!
14:42:25 <Wareya> HOW THE HELL would I write an interpreter for this shit?
14:42:33 <Deewiant> (Apart from when you act like an idiot, but I guess a lot of people my age do that too, so shrug)
14:42:43 <alise> I'm hoping to grow out of that :P
14:42:55 <Deewiant> People do.
14:43:10 <Wareya> Be right back
14:43:15 <Wareya> too much soda withotu enough food
14:43:16 <alise> i'm actually kinda scared that i'll hit my upper bound on intelligence at like 20
14:43:21 <oklopol> i don't remember what grade school is
14:43:30 <Deewiant> alise: Most people do, too. :-P
14:43:35 <alise> would be horrible to go through 60 more years with first equal, then declining intelligence
14:43:38 <Deewiant> After that it's just accumulating knowledge
14:43:41 <alise> Deewiant: ehh I'd say people change a lot from 20 to 25
14:43:48 <Deewiant> Well, whatever
14:43:52 <alise> well yes but there's a finite amount of relevant knowledge I could accumulate too
14:43:55 <Deewiant> Certainly before your 30s anyway
14:44:30 <alise> i guess my best hope is a singularity before my brain starts irreversibly decaying, then it'd just be a temporary blip of stasis :P
14:45:09 <Deewiant> Decay doesn't matter if the singularity works out nicely
14:45:17 <Deewiant> But I wouldn't bet on a singularity, anyway :-P
14:45:28 <alise> i may believe many things about what a singularity can do, reversing entropy isn't one
14:45:45 <alise> and I don't believe the brain is sufficiently modularised to allow me to be imported into a shiny new cognitive facility without the decay
14:45:47 <Wareya> a singularity is the opposite of entropy
14:45:51 <alise> they're probably mixed
14:45:56 <alise> Wareya: not that kind of singularity.
14:45:58 <Wareya> unless it's an effective one instead of a physical one
14:46:00 <Wareya> k
14:46:08 <alise> technological singularity
14:46:13 <Wareya> Oh, of course
14:46:22 <oklopol> Deewiant: i'm not sure continuing this conversation is very fruitful, you know perfectly well i'll never agree with your perfectly sensible statements.
14:46:42 <Wareya> You mean argument.
14:46:50 <alise> Deewiant: I don't bet on a singularity, I hope for it
14:46:54 <Deewiant> oklopol: If you say so :-)
14:47:01 <Deewiant> alise: I didn't claim you do
14:47:12 <alise> I bet that a singularity is possible, and I maybe-bet that a singularity is quite feasible.
14:47:27 <Wareya> singularities are possible if time travel is
14:47:35 <Wareya> I mean reverse time travel
14:47:48 <Deewiant> But time travel is unlikely enough that that's not a very fruitful angle
14:47:50 <Wareya> I'd be incluned to say the converse too, but I don't know.
14:48:44 <alise> anyway I'd like to think that a singularity could reverse any brain damage but I'm not so certain
14:48:53 <Pthing> :|
14:49:02 <Wareya> Alise, what if a brain and its consciousness were perfectly duplicated?
14:49:06 <alise> so I guess it's in my interest to try and cause a singularity before that's even a consideration
14:49:10 <alise> Wareya: oh god not this, we argued about this last night
14:49:13 <Pthing> i liked this better when it was doomsday
14:49:18 <Wareya> I don't recall
14:49:24 <alise> Pthing: define this
14:49:30 <Wareya> Oh right
14:49:34 <Pthing> Ways To Avoid Death
14:49:47 <Wareya> I have a radical point of view on that stuff
14:49:55 <alise> Pthing: thou art confusing me
14:50:01 <alise> Wareya: tell me it so that i may tell you how unradical it is.
14:50:02 <Pthing> what's so confusing
14:50:08 <alise> Pthing: define define this
14:50:33 <Pthing> <alise> anyway I'd like to think that a singularity could reverse any brain damage but I'm not so certain
14:50:41 <Pthing> <alise> i guess my best hope is a singularity before my brain starts irreversibly decaying, then it'd just be a temporary blip of stasis :P
14:50:59 <alise> oh I don't put the probability of a lovely magical singularity all that high
14:51:14 <Pthing> 1 corinthians 15
14:51:43 <alise> likening singularitarianism to religion, yawn
14:51:50 <Pthing> 51Listen, I tell you a mystery: We will not all sleep, but we will all be changed— 52in a flash, in the twinkling of an eye, at the last trumpet. For the trumpet will sound, the dead will be raised imperishable, and we will be changed. 53For the perishable must clothe itself with the imperishable, and the mortal with immortality. 54When the perishable has been clothed with the imperishable, and the mortal with immort
14:51:50 <Pthing> ality, then the saying that is written will come true: "Death has been swallowed up in victory."[g]
14:52:03 <Pthing> the exact same sentiment right there
14:52:26 <Wareya> Any analog "computer" may be conscious, consciousnesses are detatched from their "computer", and they follow our fourth dimensinoal time on a string or quantum level and manipulare elementary particles to cause free will. This of course makes time travel on an above-physical level completely possible, which of course makes those eleven dimensions necesary, ruining relativity without string theory.
14:52:50 <Wareya> Tell me that's not radical in any way,
14:53:08 <alise> "y follow our fourth dimensinoal time on a string or quantum level "
14:53:12 <Pthing> i am not sure it is meaningful
14:53:15 <Pthing> let alone radical
14:53:19 <alise> my brain lunged my head away so that I could not read further once I read that
14:53:27 <alise> I have an allergic reaction to quantum mysticism
14:53:37 <Wareya> I HATE QUANTUM MYSTICISM
14:53:39 <Wareya> AAIWEFHQPWE"ZSD(_VFU@C_FXs
14:53:44 <Pthing> really, why
14:53:51 <Wareya> why what
14:53:55 <alise> Pthing: singularity theory isn't about "oh the world is going to be great" though it's just applied self-improving ai
14:54:01 <alise> and how we can direct its goals
14:54:04 <oklopol> \o/
14:54:08 <oklopol> i think ski works
14:54:21 <alise> it's not "this will make GREAT THINGS" it's "we can make this really powerful thing, and here's a way to make it aim for great things"
14:54:40 <Pthing> specifically to help you, one alise, transform your natural body into a spiritual one
14:54:42 <Wareya> alise: Would a singularity be able to code Boat interpreter in 80 characters or less? :D
14:54:50 <Wareya> code a*
14:54:54 <alise> Pthing: no, I absolutely disbelieve in the existence of the spiritual
14:54:59 <oklopol> http://www.vjn.fi/pb/p124451566.txt <<< also god i find this pretty
14:55:05 <Pthing> oh well that's a useful position
14:55:11 <oklopol> also notice cadaar and cadar, had to cheat a bit :<
14:55:11 <alise> I believe that minds can be run on computers, but that's *because* i'm a monist
14:55:35 <Wareya> I believe that digital and analog computation can only be converted in one direction
14:55:39 <alise> the only reason singularitarianism seems so "mystic" is because of the basic fact that we cannot know what something more intelligent than us will deem correct, even if we have told it what it should aim for
14:55:51 <Pthing> lol
14:55:52 <alise> because it in the end decides how to achieve that, and we cannot be smarter than ourselves
14:55:54 <Pthing> sure we can
14:56:00 <Pthing> we've been doing it for centuries
14:56:19 <Wareya> see: evolution
14:56:31 <alise> when I come back after going brb, I expect you to be behaving as a transhuman would be
14:56:46 <alise> i will then repeat. let's see if we can't cause a hard takeoff by sheer force of imagination.
14:56:52 <alise> no? okay then. brb ->
14:58:08 <oklopol> SO HOW ABOUT THAT THERE SKI INTERP HUH?
14:58:27 -!- Asztal has joined.
14:58:36 <Wareya> HOW ABOUT THAT HOW DO I WRITE AN INTERPRETER FOR A 2D LANGUAGE WITH FUCKED UP FLOW CONTROL HUH?
14:58:47 <Pthing> I DON'T KNOW, GO READ A BOOK
14:58:50 <Wareya> http://esolangs.org/wiki/Boat
14:58:53 <Wareya> BUT I SUCK
14:59:02 <Pthing> THEN DO SOMETHING EASIER LIKE FUCKING A GIRL
14:59:11 <Wareya> BUT THAT'S HARDER
14:59:18 <oklopol> all the girls are at their parents' houses :<
14:59:47 <Wareya> but seriously
15:00:01 <Wareya> am I insane for trying to make something like this
15:00:09 <Pthing> ya ttly lol ^__________^
15:00:19 <Wareya> okay
15:00:20 <Deewiant> Is it significantly more fucked up than Funge-98?
15:00:29 <Wareya> yes
15:00:50 <alise> no
15:01:14 <oklopol> Wareya: what's hard about it?
15:01:23 <oklopol> i mean which command?
15:01:30 <Wareya> expression handling
15:01:46 <oklopol> expression handling? what do you mean
15:01:50 <Wareya> I have nesting and anarchistic flow control
15:01:54 <Wareya> ...
15:01:55 <oklopol> oh you have nesting
15:02:00 <oklopol> okay i'll actually read that
15:02:02 <Wareya> lol
15:02:54 <oklopol> well nesting + 2d is pure genius
15:03:01 <Wareya> inorite:D
15:03:09 <oklopol> that's why i was surprised
15:03:15 <oklopol> but umm
15:03:17 <Wareya> wait, are you serious?
15:03:20 <oklopol> yes
15:03:31 <oklopol> you clearly can't parse, so it should be pretty easy
15:03:49 <Wareya> I just raped C, gave it a memory strip, and put it in a character array
15:03:50 <oklopol> ^ that wasn't serious, i just hate parsing because i parsed last night
15:04:09 <oklopol> yeah, but you did 2d + nesting, and it became genius
15:04:19 <Wareya> but C made the nesting
15:04:30 <Wareya> and the flow control can seriously be anywhere
15:04:39 -!- Sgeo_ has joined.
15:04:50 <Wareya> Like
15:04:59 <Wareya> v=`n`(? <
15:04:59 <Wareya> ?(`n`!=3){`n`=`n`+1;v}^
15:04:59 <Wareya> ^ 1 }<
15:04:59 <Wareya> >);
15:05:07 <Wareya> that's outdated, but it shows what I mean
15:05:23 <oklopol> you took 2d, and you took nesting, and you put them together, i think that's a new idea, so i claim it's genius.
15:05:26 <oklopol> but
15:05:38 <Wareya> but?
15:05:42 <Wareya> oh mn
15:05:43 <Wareya> man
15:05:49 <Wareya> I'll need to go over and over expressions
15:05:56 <Wareya> meaning i'll need to safe their coordinates
15:06:00 <Wareya> and I'll need to nest THAT
15:06:01 <Wareya> FUUUUUUCK
15:06:04 <oklopol> not sure it actually amounts to anything that interesting given that you have so much stuff you'll probably just end up writing pretty normal 1d programs
15:06:25 <Wareya> so I should strip it down?
15:06:34 <Wareya> (At least I don't have functions)
15:06:44 <oklopol> well i think so
15:06:45 <oklopol> dunno
15:07:22 <Wareya> yeah I realized how much bloat I have here just now
15:07:31 <Wareya> it's more than I think I originally wanted
15:07:50 -!- Sgeo has quit (Ping timeout: 276 seconds).
15:08:07 <oklopol> i mean you can still have a nice amount of stuff in there, i'd just remove some of the technical details about segment sizes
15:08:17 <Wareya> what do you mean?
15:08:24 <oklopol> well you know i'd just have bignums :P
15:08:33 <Wareya> I don't know what bignums are :D
15:08:43 <oklopol> access memory at address q with n bits in size -- you could see 32[30] which would access the long integer at addresses 27, 28, 29, and 30. Yeah, it's big endian, but that might change as this goes. I guess I could get away call this as a special case for an array of bits.
15:08:54 <Wareya> but that's the best part!
15:08:56 <oklopol> that's too complicated for my small brain
15:08:56 <oklopol> oh?
15:08:59 <Wareya> yes
15:09:01 <oklopol> how so
15:09:12 <Wareya> it's how people hate dealing with endianness
15:09:21 <Wareya> and bits
15:09:26 <oklopol> ah, i see
15:09:29 <Wareya> so I went "Hey let's do both"
15:09:39 <oklopol> if it's a thing, then it's fine.
15:09:41 <Wareya> <tr><td>n^^(n,n)</td><td>"rolling" exponent - 4^^(2,3) would be 4^2^2^2</td></tr>
15:09:43 <oklopol> :P
15:09:44 <Wareya> DELETE
15:10:25 <Wareya> q{n}access memory at address q with n bits in size -- you could see 32[30] which would access the long integer at addresses 27, 28, 29, and 30. Yeah, it's big endian, but that might change as this goes. I guess I could get away call this as a special case for an array of bits.
15:10:29 <Wareya> q{n}[m]array with segments the size of n with the "origin" data value being at address q - with big endian, again.
15:10:32 <Wareya> q{n}[m][b]multidimensional array
15:10:34 <Wareya> q{n}=jset value at memory address q of size n to j
15:10:37 <Wareya> q{n}[m]=jset value at spot m in an array to j
15:10:39 <Wareya> q{n}[y]use value of size n at address q as an address for a value size y
15:10:42 <Wareya> is this excessive?
15:11:11 <Wareya> bye strings
15:11:15 <oklopol> :P
15:11:25 <Wareya> I realized
15:11:41 <Wareya> that I don't need the built in variables at all
15:12:12 <oklopol> so someone gimme a nice ski program
15:12:55 <Wareya> %(0[1]<5){0[1]=0[1]+1};
15:13:01 <Wareya> this is valid Boat as of right now
15:13:12 <Wareya> Oh, do I need loops?
15:13:18 <Wareya> seeing as it's 2D and I have a goto and all
15:13:19 <oklopol> definitely
15:13:21 <oklopol> you have to use nesting
15:13:23 <oklopol> for stuff
15:13:25 <Wareya> I mean
15:13:33 <Wareya> you can use if tests
15:13:39 <Wareya> and move out of the line of execution
15:13:43 <Wareya> forcing you to use 2D
15:13:45 <Wareya> or goto
15:14:21 <Wareya> I'm going to try to write something in ski jus to not be an asshole
15:14:25 <alise> Wareya: bignum = arbitrary size integer
15:14:31 <alise> stores in memory when it overflows an int
15:14:33 <Wareya> But that's lazy!
15:14:35 <alise> like python's ints
15:14:38 <alise> no it isn't
15:14:41 <Wareya> hsuh
15:14:45 <Wareya> hush*
15:14:57 <oklopol> it's not lazy, integers are always finite
15:15:18 <oklopol> lazy is when you have an infinite thing, not when you have an infinitely extendable thing
15:15:23 <Wareya> Besides, that ruins the fun of fucking with people
15:15:43 <Wareya> Multi-endian + bits
15:15:45 <alise> since you randomly stepped on genius by istake i'm just gonna tarpit the idea.
15:15:50 <oklopol> yeah, sure; as i said, if it's a thing, it's okay, i'd just make it really high level because that's the furthest away from funges.
15:16:09 <Wareya> huh?
15:16:18 <oklopol> well you know i'd want like recursion and stuff
15:16:35 <oklopol> but, maybe still bytes for storage
15:16:35 <Wareya> you can do that
15:16:41 <Wareya> but you don't have functions, just gotos
15:16:46 <Wareya> you can deal with bytes
15:16:55 <oklopol> but a stack + nesting + 2d mmmmmmmmmm
15:17:03 -!- MizardX has joined.
15:17:07 <Wareya> (address*16)[16]
15:17:11 <Wareya> BYTES
15:17:25 <oklopol> bytes \o/
15:17:53 <Wareya> anyway, working with bits is better for people who want to ultra-optimize
15:18:12 <Wareya> and working with bytes isn't that much of a pain in the ass
15:18:40 <oklopol> working with high level stuff is not a pain in the ass if you use a modern language
15:18:47 <Wareya> like C
15:18:51 <oklopol> hehe
15:18:56 <oklopol> yeah totally
15:18:56 <Wareya> I love C
15:19:00 <Wareya> except for file i/o
15:19:04 <Wareya> because I suck at it
15:19:06 <oklopol> :D
15:19:09 <oklopol> you're killing me
15:19:19 <Wareya> :D
15:19:23 <Wareya> how so
15:19:34 <alise> rather Wareya than asiekierka
15:19:44 <alise> [suddenly, out of nowhere, the latter appears]
15:19:46 <alise> ...but not both.
15:19:51 <oklopol> well file io is you say file @ this address, then you read/write strings back and forth
15:20:04 <Wareya> it's not that simple
15:20:07 <oklopol> if you can *not understand* how to do that, your language is pretty much as bad as it can be
15:20:11 <oklopol> yeah, it's not that simple
15:20:12 <oklopol> in C.
15:20:21 <Wareya> you need to deal with something dealing with pointers in a way that isn't normal
15:20:22 <oklopol> it damn fucking hell is that simple in any modern language
15:20:22 -!- MissPiggy has joined.
15:20:31 <Wareya> hehe
15:20:35 <Wareya> like python
15:20:36 <Wareya> :D
15:20:43 <Wareya> python is ungodly at strings
15:20:48 <Wareya> but sucks at evverything else
15:20:50 <Wareya> -v
15:21:05 <oklopol> yeah python doesn't have tail recursion
15:21:24 <oklopol> but other than that...
15:21:44 <oklopol> well, actually i try my best to hate python, because i'd like it if i sometimes used another langauge
15:21:46 <Wareya> I need to rewrite my last example
15:21:48 <oklopol> *language
15:21:55 <Wareya> lol
15:22:21 <alise> i went through io is damn hard -> io is fucking easy -> io is damn hard in my language now but these super type features will make it the easiest possible except with safety... just a few more equations and it'll do it...
15:22:28 <alise> the last one is bliss.
15:22:39 <Wareya> lol
15:22:40 <MissPiggy> muuu
15:24:02 <alise> just talk about type theory and suddenly MissPiggy appears
15:25:03 -!- kar8nga has joined.
15:25:03 <oklopol> MissPiggy: SO DID YOU HEAR ABOUT SKI
15:25:11 <MissPiggy> oh?
15:25:16 <MissPiggy> what hapened
15:25:26 <oklopol> i did it in clue
15:25:33 <MissPiggy> oh nice
15:25:45 <MissPiggy> wow cool!!! show me ?
15:25:48 <oklopol> http://www.vjn.fi/pb/p124451566.txt
15:25:58 <alise> orgasmic
15:26:12 <oklopol> a few functions are total cheats
15:26:15 <Wareya> I fixed all of the Boat examples :D
15:26:25 <oklopol> Wareya: CLUE WAS HERE FIRST!
15:26:31 <Wareya> :C
15:26:36 <alise> how are they cheats
15:26:47 <Wareya> hackish
15:26:51 <alise> oklopol: so does this thing compile
15:26:57 <oklopol> yes!
15:26:58 <alise> if so show the output, I wanna see how efficient it compiles to
15:27:11 <oklopol> there's no way to see the output yet
15:27:14 <alise> dump the ast
15:27:18 <oklopol> i'll add that, but it's nontrivial
15:27:22 <oklopol> well
15:27:32 <oklopol> okay it's trivial, but it will still take some time
15:27:36 <MissPiggy> oh my god !!!!!!!!
15:27:39 <oklopol> see there's no ast, there's just python code.
15:27:47 <MissPiggy> how the hell does this work
15:27:52 <oklopol> i compiled to lambdas for funsies
15:27:55 <oklopol> :P
15:28:05 <oklopol> MissPiggy: it's just brute force
15:28:18 <alise> oklopol: print the python code then
15:28:24 <oklopol> hmm, well okay maybe
15:28:29 <alise> just replace return (lambda bitchass: ...) with return "(lambda bitchass: ...)" or w/e :P
15:28:46 <oklopol> yeah i guess that'd work
15:29:12 <oklopol> the "glue" function that does all the work is just a bit... not optimally pretty :P
15:29:19 <oklopol> well
15:29:25 <oklopol> i guess it's just one line i'll need to fix tho
15:29:28 <oklopol> or change
15:29:39 <oklopol> maybe i'll make it always also return some sorta AST, maybe that's simple
15:30:09 <oklopol> but first, someone give me some ski, i've just tested trivial stuff
15:30:32 <oklopol> MissPiggy: or did you mean how does the ski interp work?
15:30:45 <oklopol> because i think the code is pretty easy to read
15:30:46 -!- Gregor has quit (Read error: Operation timed out).
15:30:56 <Wareya> it's pitiful that I have 9 updates in a row on the recent changes list
15:31:03 <MissPiggy> yeah i can read it
15:31:07 <MissPiggy> it's just CDR coding
15:31:15 -!- Gregor has joined.
15:31:45 <MissPiggy> how long does that file take to compile?
15:31:55 <oklopol> yeah most of ski is just list manipulation, the only hard part i guess was to get "ski type?" to work, and to get "ski apply" to actually compile, had to add cadaar and cadar
15:32:03 <oklopol> like a few minutes
15:32:04 <oklopol> :D
15:32:09 <MissPiggy> nice
15:32:21 -!- base3 has joined.
15:32:36 <Wareya> I don't know anything abotu ski
15:32:38 <Wareya> educate me
15:32:50 <oklopol> oh wait 9 seconds now
15:32:52 <Wareya> about*
15:33:37 <pikhq> Wareya: S = \x y z.x z (y z)
15:33:44 <pikhq> Wareya: K = \x y.x
15:33:58 <pikhq> The above is Turing complete.
15:34:07 <Wareya> wait, what?
15:34:35 <pikhq> Any lambda calculus expression can be compiled into usage of S and K.
15:34:36 <alise> pikhq: he only knows C, Python and some game maker scripting language thing
15:34:40 <alise> and says he hates functional languages
15:34:44 <pikhq> alise: Oh dear.
15:34:45 <alise> sooo
15:34:49 <alise> it'll probably take a few hours to explain SKI
15:34:53 <oklopol> Wareya: if you have (((s a) b) c) somewhere, you'll change it to ((a c) (b c)), if you have ((k a) b) somewhere, you change it to just a
15:34:58 <MissPiggy> alise functional languages are hiary
15:35:01 <MissPiggy> hairy
15:35:02 <alise> oklopol: that also
15:35:05 <pikhq> Wareya: Let's start with lambda.
15:35:09 <alise> let's not
15:35:12 <alise> ski is just term rewriting
15:35:22 <pikhq> Wareya: http://en.wikipedia.org/wiki/Lambda_calculus
15:35:23 <alise> ((S a) b) c -> (a c) (b c)
15:35:26 <pikhq> :P
15:35:28 <alise> (K a) b -> a
15:35:29 <MissPiggy> lambda calculus is kind of hard to start with to explain SK
15:35:33 <alise> we can use this to model functions
15:35:40 <alise> let I = ((S K) K)
15:35:54 <alise> (I x) -> (((S K) K) x)
15:36:07 <alise> -> (K x) (K x)
15:36:25 <alise> which is (K a) b
15:36:30 <alise> a = x, b = (K x)
15:36:33 <alise> so we rewrite it to x
15:36:43 <alise> so, from two rewrite rules, we can express a function that takes an argument and returns it
15:36:55 <oklopol> the thing is you have to understand how to translate all those parens into nested structures in your head, not sure C teaches that
15:36:56 <alise> we can express any turing-computable function with only combinations of these S and K terms
15:37:09 <alise> thus, it is a turing-complete programming language.
15:37:14 <oklopol> well, Wareya can probably say he has no idea what's going on, himself, if that's the case
15:37:21 * alise winces and braces for the "it can't do IO so C is more powerful"
15:37:33 <MissPiggy> you can do IO in C
15:37:39 <alise> err... yes, yes you can
15:37:47 <oklopol> asm is even more tc than C
15:38:27 <oklopol> (8.3 seconds without any debug info)
15:38:31 <alise> LC is lame for theoretical purity if you have SK
15:38:31 <oklopol> i'll add asts now
15:38:47 <alise> oklopol: just replace "lambda x: y" with Lambda("x", y) etc :P
15:38:55 <alise> or even ('lam','x',y) knowing you
15:39:01 <pikhq> alise: Oh, hey. Don't think you saw.
15:39:11 <pikhq> alise: I wrote a SK evaluator in C.
15:39:18 <pikhq> alise: Using my lambda macro.
15:39:20 <alise> I saw.
15:39:27 <alise> Probably while reading the logs last week.
15:39:28 <pikhq> Oh, right. Log reading.
15:39:29 <pikhq> XD
15:39:38 <oklopol> alise once compiled underload to c
15:39:43 <Wareya> I STILL DO NOT UNDERSTAND
15:39:52 <MissPiggy> Wareya, let me try to explain,
15:40:01 <oklopol> Wareya: do you understand how (1 (2 3)) is a tree?
15:40:11 <Wareya> NOPE
15:40:12 <alise> > S a b c = a c (b c);
15:40:13 <alise> > K a b = a;
15:40:13 <alise> > S K K a;
15:40:13 <alise> a
15:40:13 <alise> > S a K b;
15:40:13 <alise> a b (K b)
15:40:15 <alise> Pure is awesome
15:40:18 <MissPiggy> Wareya, imagine you have a forest with lots of different kinds of birds in it
15:40:22 <oklopol> :D
15:40:27 <Wareya> TOO STUPID OF A METAPHOR
15:40:29 <Wareya> TRY AGAIN
15:40:33 <oklopol> MissPiggy <3
15:40:40 <alise> rich coming from "ASPERGER'S IS sOFtWARE aUTISM IS HARDWARE" man
15:40:49 <Wareya> YES
15:40:56 <MissPiggy> Wareya that was pretty rude
15:41:00 <alise> > S I I a;
15:41:01 <alise> a a
15:41:02 <Wareya> I APOLOGIZE
15:41:10 <alise> symbolic evaluation is a wonderful thing
15:41:17 <MissPiggy> yeah but you kind of lost it
15:41:18 <Wareya> I AM PISSY, GIDDY, AND HYPER
15:41:25 <MissPiggy> I don't really care what you are
15:41:28 <Wareya> OKAY
15:41:38 <Wareya> How about no caps lock?\
15:41:41 <base3> hi MissPiggy
15:42:00 <MissPiggy> peace
15:45:23 <MissPiggy> alise you know I spent the whole night dreaming about the link between complexn numbers and consciousness -_-
15:45:30 <Wareya> lol
15:45:33 <alise> XD
15:45:53 <MissPiggy> another one of those mornings when you wake up with a headache
15:45:53 <Wareya> are you saying that complex numbers aren't computable?
15:46:09 <Wareya> (at least not digitally)
15:46:09 <MissPiggy> Wareya -- do you want to try again?
15:46:13 <Wareya> yes
15:46:26 <alise> wait, you think a digital computer cannot be conscious?
15:46:36 <alise> only an analogue one?
15:46:39 <Wareya> I do not believe that digital computers can be conscious
15:46:42 <Wareya> only analog ones
15:46:50 <Wareya> but only the core needs to be consious
15:46:58 <alise> Wareya: okay listen
15:47:01 <alise> you know what a neuron is?
15:47:01 <Wareya> so, an analog computer could run a digital one
15:47:03 <Wareya> yes
15:47:05 <alise> billions of them in our brain right
15:47:08 <Wareya> yes
15:47:09 <alise> you know we can emulate them on digital computers right?
15:47:11 <alise> and do so
15:47:16 <Wareya> emulate
15:47:23 <Wareya> they emulate analog sound effects
15:47:24 <alise> yes. emulate is the same thing as run natively, just slower
15:47:25 <MissPiggy> Wareya so there is a bird called the idiot bird, because whatever you say to it -- it just says it back. we can represent it as Ix = x. for example if II = I. And theres another bird called the mocking bird which repeats everything it hears twice Mx = xx.
15:47:31 <Wareya> on digital computers
15:47:34 <alise> also neurons are primarily digital...
15:47:43 <Wareya> yet they have an analog section
15:47:47 <alise> furthermore, you have not provided any evidence for your claim
15:47:52 <Wareya> that's the part I think causes consciousness
15:47:54 <Wareya> of course I haven't
15:47:58 <Wareya> that's why I said it was radical
15:48:01 <alise> unless you do so, I have no obligation to consider it
15:48:02 <Wareya> piggy: okayy reading now
15:48:09 <Wareya> -y
15:48:12 <MissPiggy> Wareya so if I call 'Idiot' to the Mocking bird it calles out idiot idiot and then idiot bird just says idiot, so that is MI = II = I, do you understand?
15:48:26 <alise> MissPiggy: just go for S and K
15:48:28 <alise> M isn't important
15:48:28 <pikhq> alise: I suspect this is going to end up in the Chinese room argument.
15:49:25 <Wareya> yes
15:49:27 <Wareya> I understand
15:50:11 -!- Libster has joined.
15:50:24 <Libster> butts
15:50:27 <Wareya> alise: Like I said, my excuse is that analog computers that run the consciousness hook up to digital ones to do logical work
15:50:44 <Wareya> Yes, that is very, very asinine
15:50:50 <Libster> thnx
15:50:54 <Wareya> not you :D
15:50:55 <Pthing> i too
15:50:55 <alise> Libster: wat
15:50:57 <Libster> oh
15:51:00 <Libster> i am trolling
15:51:01 <Pthing> get my models of consciousness from like
15:51:03 <Pthing> pulp novels
15:51:03 <Libster> am i doing a good job?
15:51:07 <Wareya> nope
15:51:10 <Libster> :(
15:51:12 <alise> I am so confused in the few seconds since you joined
15:51:15 <Wareya> go rtoll 4chan by being a shitty troll like I do
15:51:19 <Wareya> troll*
15:51:19 <Libster> please tell me how i can do a better job Wareya
15:51:22 <MissPiggy> sorry guys this is my fault
15:51:24 <Pthing> woah that must take some doing
15:51:25 -!- MissPiggy has left (?).
15:51:26 <alise> you think *you* *trolled* 4chan?
15:51:30 <Wareya> no
15:51:35 <Wareya> just some people on it
15:51:40 <Wareya> that thought I was a bad troll
15:51:42 <alise> no, they were trolling you
15:51:51 <Wareya> cockblocking trolls is a sacred art!
15:52:05 <Libster> so what are you nerds up to
15:52:12 <Wareya> something awesome
15:52:25 <Libster> cool
15:52:34 <Wareya> 10:51 < MissPiggy> sorry guys this is my fault
15:52:36 <Wareya> 10:51 -!- MissPiggy [~none@unaffiliated/fax] has left #esoteric []
15:52:38 <Wareya> i sad
15:53:04 <Libster> idiot
15:53:11 <base3> idiot idiot
15:53:12 <Wareya> but i AM an idiot
15:53:17 <Libster> idiot
15:53:20 <base3> idiot idiot
15:53:20 <Wareya> that made my day, base3
15:53:22 <alise> Wareya: don't feed Libster and base3, they followed misspiggy here
15:53:29 <Libster> but i am hungry
15:53:33 <Wareya> cool
15:53:43 <Libster> please feed me
15:53:48 * Wareya fedds libster
15:53:53 <Libster> thanks bud
15:53:55 <Wareya> I'mma fedd you
15:54:00 <Libster> cool
15:54:01 <base3> i knew this channel was full of fedds
15:54:07 <Wareya> I'm kidding.
15:54:19 <Wareya> Alise, please tell me how to slim down Boat
15:54:21 <Wareya> :(
15:54:23 <base3> watch out Libster they might track you down and arrest you
15:54:32 <Libster> oh no!!!!
15:54:51 <alise> Wareya: see /msg.
15:55:05 <base3> no problem Libster just mask your ip with /quit
15:55:18 <Libster> hey i invented a new eosteric programming language
15:55:18 <base3> type /quit IP
15:55:22 <Libster> here's the syntax
15:55:25 <Libster> SPAM
15:55:26 <Libster> SPAM
15:55:26 <Libster> SPAM
15:55:26 <Libster> SPAM
15:55:26 <Libster> SPAM
15:55:27 <Libster> SPAM
15:55:28 <Libster> SPAM
15:55:30 <Libster> SPAM
15:55:32 <Libster> SPAM
15:55:34 <Libster> SPAM
15:55:36 <Libster> SPAM
15:55:38 <Libster> SPAM
15:55:40 <Libster> SPAM
15:55:42 <Libster> SPAM
15:55:44 <Libster> SPAM
15:55:46 <Libster> SPAM
15:55:50 <Libster> pretty funny, right?
15:56:00 <Pthing> lol montey pythan
15:56:04 <Pthing> i love that british humouur
15:56:10 <Libster> fuck i hate british humor
15:56:11 <Wareya> hey pthing
15:56:14 <Libster> and i hate british
15:56:14 <Pthing> hi!
15:56:17 <Wareya> how about you?
15:56:23 <Pthing> im fine
15:56:24 <Wareya> tell me how to slim down Boat
15:56:27 <Pthing> idk
15:56:32 <Pthing> eat less
15:56:35 <Pthing> exercise more
15:57:13 <Wareya> question
15:57:27 <Wareya> does 4^(4^4) end up being the same as 4^4^4^4 ever
15:57:32 <Wareya> or any change of the parenthesis
15:58:40 <base3> Wareya: if you take (4^4) or a higher tower as a power ever
15:58:56 <base3> it will clearly end up bigger than 4^(4^4)
15:59:01 <Wareya> like I'm thinkin of doing something like
15:59:07 <base3> since you still have to add in another 4 somewhere
15:59:11 <Wareya> 4^^4=4^4^4^4
15:59:13 <base3> so the only possibility is
15:59:20 <alise> Congratulations, you invented tetration
15:59:22 <Wareya> and 4^^^4=4^^4^^4^^4=UGH
15:59:25 <Libster> power tower
15:59:30 <Wareya> great because I don't know what that is
15:59:31 <alise> Knuth wants a word with you.
15:59:31 <base3> 4^(4^4) = (((4^4)^4)^4)
15:59:33 <FireFly> What about knith arrows?
15:59:36 <FireFly> with u
15:59:37 <Libster> knuth arrows
15:59:39 <Wareya> can you link me to an article?
15:59:41 <alise> Wareya:
15:59:44 <FireFly> See wikipedia
15:59:45 <alise> http://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation
16:00:04 <Wareya> I SEE THINGS I DO NOT KNOW HOW TO USE
16:00:08 <oklopol> Libster!!!
16:00:09 <Wareya> therefore I say I'll learn it later
16:00:10 <oklopol> :D
16:00:12 <oklopol> :DDDDDDDDDDDDDDDDDDD
16:00:14 <Libster> hi
16:00:20 <Libster> i am trolling this channel
16:00:40 <Wareya> Super Cave Story, Bro
16:00:54 <oklopol> Libster: wanna see my new ski interp?
16:00:59 <oklopol> http://www.vjn.fi/pb/p124451566.txt
16:01:03 <Libster> what does tha tmean
16:01:06 <Libster> sorry i am not a nerd
16:01:14 <oklopol> compiles in just 8.5 seconds
16:01:20 <Libster> cool what are you talking about
16:01:23 <base3> but 4^(4^4) does not equal ((4^4)^4)^4, because it clearly equals (((4^4)^4)^4)^4
16:01:24 <oklopol> ski is this combinatory logic thingie
16:01:45 <Libster> o
16:01:48 <oklopol> you just have three functions and you apply them to each other
16:02:01 <oklopol> i just use it to test my languages because it's trivial to implement
16:02:25 <base3> it's based on the theory that three idiots working together can accomplish anything
16:02:32 <oklopol> but this is so great, Libster and base3 on #eso
16:02:36 <oklopol> it's like christmas
16:02:42 <Libster> true
16:02:56 <Libster> we came here to troll
16:03:05 -!- lament has quit (Ping timeout: 240 seconds).
16:03:13 <Libster> hahah alament is here
16:03:27 <oklopol> sometimes
16:03:28 <alise> yeah he's our friendly op.
16:03:35 <alise> not that he ever does any opping. and he isn't really friendly
16:04:03 <oklopol> this isn't really his thing anymore, but he enjoys listening to us with his ears
16:04:06 <base3> oklopol: do i know you?
16:04:17 <oklopol> base3: no, but i often watch you on #math
16:04:31 -!- lament has joined.
16:04:43 <Libster> hi lament
16:04:58 <oklopol> but me and Libster are best buds
16:05:01 <base3> oklopol: if you're interesting in antisocial or potentially unlawful activities tangentially related to math, you should join #~math
16:05:13 <oklopol> totally
16:05:43 <base3> we're sort of like a outlaw math gang
16:05:48 <oklopol> i used to be there, i just tend to part all channels when vista decides it can't open any more windows unless i part a few channels.
16:05:49 <Libster> true
16:05:50 <Wareya> Super Cave Story, Bro
16:05:53 <oklopol> i see
16:06:04 <oklopol> i always thought you were a bit cooler than the other mathholes
16:06:10 <Libster> true
16:06:49 <alise> so are you guys going to have sex, in which case just get (a) a room and (b) it over with, or else just, you know, I don't know, I didn't consider this case when deciding to be an asshole
16:07:08 <Sgeo_> alise, picture?
16:07:10 <Wareya> lol
16:07:22 <base3> lol alise
16:07:25 <Sgeo_> erm, actually, given the context, that sounds kind of strange. You know what I mean
16:07:44 <Libster> can i have sex with you alise
16:08:05 <alise> Sgeo_: not now, I'm busy whoring out my body to *other* people
16:08:20 <oklopol> only regulars can have sex with alise
16:08:29 <Libster> can i have sex with you oklopol
16:08:35 <oklopol> troll cocks are too big
16:08:40 <Libster> true
16:08:56 <oklopol> we could do math together
16:09:01 -!- alise has left (?).
16:09:03 -!- alise has joined.
16:10:59 <Wareya> guys
16:11:05 <Wareya> what should I do to slim down boat
16:11:06 <Wareya> http://esolangs.org/wiki/Boat
16:11:08 <Wareya> this boat
16:11:17 <Libster> throw your passengers overboard
16:11:33 <Wareya> while maintainging the retarded way of dealing with memory, 2Dness, and expression nesting
16:13:25 <Wareya> I guess I could limit myself to if tests and increment/decrementation
16:13:56 <Libster> use linux it will make your code faster
16:14:03 <Wareya> that's a no brainer
16:15:58 <oklopol> this is not about speed, this is about ease of implementing it
16:16:02 <oklopol> so even more definitely linux, huh
16:16:13 <oklopol> linux has all the right stuff
16:16:36 <Wareya> but linux IS faster
16:16:39 <Libster> wait
16:16:42 <Libster> you were serious?
16:16:46 <Libster> i was just trolling
16:16:52 <Libster> man you guys are stupid
16:16:57 <Wareya> no shit you're trolling
16:17:02 <Wareya> but yes I'm serious
16:17:23 <alise> as opposed to what, windows? linux has a better task switcher iirc
16:17:28 <alise> and probably the syscalls are better
16:17:30 <Wareya> task switcher?
16:17:33 <Wareya> and yes
16:17:34 <alise> so, theoretically, you could say it's faster
16:17:44 <Libster> yes you could say that if you are stupid
16:17:44 <alise> Wareya: if you don't know what a task switcher is... ... i have nothing to say
16:17:59 <Wareya> ALT+TAB
16:18:00 <Wareya> HAHA
16:18:21 <alise> well fuck, Wareya's complete retardation has made him unable to stop feeding the trolls thus turning this channel into a shithole
16:18:22 <alise> thanks, Wareya
16:18:29 <Libster> yeah thanks
16:18:31 <Libster> i appreciate it
16:18:42 <Wareya> but these trolls are cool
16:18:56 <Libster> true
16:33:23 <Wareya> http://64.vg/src/cb37635de8f76f2b2587fbace50d0427/raw
16:33:47 <Wareya> or: http://64.vg/uoa
16:39:03 <Wareya> See, now the channel's dead.
16:39:57 <alise> good
16:40:28 <Wareya> At least the trolling finally ended.
16:41:43 <Libster> hi
16:41:48 <alise> Wareya: you fucking moron
16:41:53 <Wareya> just shut up
16:42:02 <base3> _ _ _ _ _ _ _ _
16:42:02 <base3> (_) __| (_) ___ | |_ (_) __| (_) ___ | |_
16:42:02 <base3> | |/ _` | |/ _ \| __| | |/ _` | |/ _ \| __|
16:42:02 <base3> | | (_| | | (_) | |_ | | (_| | | (_) | |_
16:42:02 <base3> |_|\__,_|_|\___/ \__| |_|\__,_|_|\___/ \__|
16:42:09 <Libster> l@l
16:43:56 <pikhq> 馬鹿ね。……
16:44:07 -!- ChanServ has set channel mode: +q *!*@pool-74-103-90-165.bltmmd.east.verizon.net.
16:44:11 -!- ChanServ has set channel mode: +q *!*@host81-141-232-7.wlms-broadband.com.
16:44:26 <oklopol> :o
16:44:32 <fizzie> Funny, ChanServ automagically goes hostmasky when you give it a nickname.
16:44:46 <alise> \o/
16:44:58 <oklopol> hey they weren't so bad
16:45:06 <alise> i feel kind of awkward with them still sitting, brooding, silent
16:45:09 <oklopol> although i guess it's nice to aknowledge someone's trolling
16:45:13 <alise> like what if they stay here for years and someone unbans them by mistake
16:45:18 <alise> and a million lines come through in 0 seconds
16:45:18 <oklopol> *ack
16:45:24 <alise> that's scary
16:45:35 <fizzie> I was mostly going by the 16 consecutive lines of "SPAM".
16:45:39 <alise> I'd start chanting "kick them" but there isn't enough of an angry mob
16:45:42 <oklopol> hehe
16:45:47 <Wareya> anyway
16:45:50 <Wareya> esoteric languages
16:45:51 <alise> oh what the hell. KICK THEM! KICK THEM! :|
16:45:51 <Wareya> they're cool
16:45:53 <oklopol> but i do o
16:45:54 <oklopol> o
16:45:54 <oklopol> o
16:45:54 <oklopol> o
16:45:54 <oklopol> o
16:45:54 <Wareya> I don't know much abotu them
16:45:58 <Wareya> educate me
16:46:00 <oklopol> and i never get banned
16:46:01 <alise> oklopol: you're allowed, because you're cool
16:46:03 <oklopol> ah!
16:46:11 <alise> and say awesome stuff in the non-oing interims
16:46:20 <alise> plus you don't copy-paste "SPAM" you handcraft every o
16:46:22 <alise> every single o
16:46:24 <oklopol> well that's even truer i guess
16:46:25 <Wareya> anyway
16:46:29 <Wareya> esoteric languages are cool
16:46:32 <Wareya> and I don't know much abotu them
16:46:34 <Wareya> educate me
16:46:50 <Wareya> did I seriously make the same typo twice?
16:46:54 <Wareya> That's pathetic
16:47:20 <alise> i'd tell you about good ones but they're all functional
16:47:41 <Wareya> but I don't know much about functional languages either
16:47:42 -!- Libster has left (?).
16:47:48 <fizzie> (I assume Freenode's guidelines mean I should have been more of a "catalyst" somehow there, but I suck at chemistry.)
16:48:53 <pikhq> Wareya: Functional programming is simple, but unlike what you're used to.
16:49:02 <alise> one's gone
16:49:06 <alise> but base3 is holding the fort
16:49:08 <alise> storing energy
16:49:09 <alise> like a pokemon
16:49:11 <Wareya> I understand the basic concept
16:49:16 <pikhq> Functional programming deals with true functions. That is, they map from input values to an output value.
16:49:19 <pikhq> And that's it.
16:49:23 <Wareya> yes
16:49:35 <alise> fizzie: I think blatant intentional spam and trolling is meant to be dealt with BLOOD
16:49:41 <Wareya> but it's at the level of the actual language that I really hate dealing with
16:49:57 <Wareya> especially purely fucntional ones
16:50:01 <pikhq> That's because you're not used to dealing with the abstractions is all.
16:50:17 <Wareya> Of course.
16:50:35 <fizzie> alise: Yes, but that'd be *increasing the channel temperature*! And I don't want to get all sweaty here.
16:50:37 <pikhq> Learn you some Haskell.
16:50:43 <pikhq> (delicious, delicious Haskell)
16:50:50 <alise> he said he started then gave up
16:50:57 <pikhq> alise: Lame.
16:51:02 <alise> indeed
16:51:52 <Wareya> I used it for five ffreaking weeks
16:51:52 -!- MissPiggy has joined.
16:51:55 <Wareya> -f
16:52:00 <Wareya> I just couldn't get anything done with it
16:52:00 <Wareya> lol
16:52:06 <pikhq> Wareya: Weak.
16:52:21 <Wareya> awesome story
16:52:31 <pikhq> Keep on doing it.
16:53:08 <alise> Wareya: You did not learn Haskell.
16:53:10 <Wareya> should I do address[size]
16:53:12 <alise> You learned Haskell's syntax, yes.
16:53:14 <Wareya> or size[address]
16:53:19 <alise> You learned how it relates to imperative languages.
16:53:26 <Wareya> actually
16:53:28 <pikhq> Given that you don't seem to grok lambda, doesn't seem like you learned much.
16:53:28 <alise> But you never made the transition from programming in an imperative language then converting it to Haskell,
16:53:30 <Wareya> all I learned was the syntax
16:53:33 <alise> to someone who programs and thinks directly in Haskell.
16:53:40 <alise> Wareya: then how did you compile a thing?
16:53:46 <alise> You had to have some understanding of the semantics, however wrong and weak.
16:53:47 <Wareya> I didn't :D
16:53:59 <pikhq> The syntax was pretty easy...
16:54:02 <alise> then you were foolish to program in a language
16:54:20 <Wareya> yes
16:54:22 <Wareya> yes I was
16:54:43 <pikhq> Any language.
16:54:49 <pikhq> :P
16:54:53 <Wareya> lolp
16:55:29 <Wareya> anyway
16:55:45 <Wareya> with boat, should I do address[size] or size[address]?
16:56:02 <Wareya> either one causes problems - either with casting or with arrays
16:56:21 <oklopol> what do those mean?
16:56:29 <Wareya> addressing of memory
16:56:30 <pikhq> Clearly [] should be commutative.
16:56:58 <alise> Wareya: make it swap when going left or right
16:57:02 <alise> so you always write it one way in the source
16:57:03 <alise> :D
16:57:17 <Wareya> there are four directions
16:57:21 <alise> ie foo[bar] or ]bar[foo
16:57:28 <alise> then it's always foo[bar] in the source if you go at it left or right
16:57:36 <Wareya> thank you for doing ]bar[ by the way
16:57:41 <oklopol> alise: here, it's just you'd need to know how these lambdas are actually used http://www.vjn.fi/pb/p214535314.txt
16:57:51 <oklopol> #i are just argument numbers
16:58:02 <oklopol> that's "ski apply"
16:58:15 <alise> oklopol: that isn't a nested structure :<
16:58:26 <Wareya> in C, (char)*address would be address[16] with address[size]
16:58:30 <Wareya> on a big endianmachine
16:58:33 <Wareya> +space
16:58:39 <oklopol> alise: what?
16:58:41 <Wareya> that's how the boat thing goes
16:58:44 <alise> Wareya: or size[address]
16:58:46 <alise> x[y] = *(x+y)
16:58:50 <alise> x+y = y+x
16:58:50 <Wareya> size address would be
16:58:53 <Wareya> 16[address]
16:58:55 <Wareya> of course
16:58:59 <alise> ∴ y[x] = x[y]
16:59:09 <Wareya> wait, what?
16:59:20 <alise> poor kiddy doesn't know C
16:59:22 <alise> Wareya: ok, in C
16:59:23 <alise> x[y] is sugar for
16:59:25 <alise> *(x + y)
16:59:27 <alise> we know that
16:59:29 <alise> x + y = y + x
16:59:29 <alise> right?
16:59:32 <alise> therefore
16:59:35 <Wareya> oh I didn't know it was C
16:59:36 <alise> *(x + y) = *(y + x)
16:59:37 <Wareya> lol
16:59:41 <alise> since x[y] is *(x + y)
16:59:42 <oklopol> alise: what do you mean it's not a nested structure?
16:59:44 <alise> y[x] = x[y]
16:59:46 <alise> therefore
16:59:52 <alise> 1["abc"] = 'b'
17:00:00 <alise> oklopol: well it looks like it's printing parts of the ast separately
17:00:02 <alise> maybe i'm wrong
17:00:10 <Wareya> I have never used strings like that but OKAY
17:01:31 <oklopol> alise: there's no one ast, running the result isn't just calling one functino
17:01:32 <oklopol> *function
17:01:34 <oklopol> well it is
17:01:43 <alise> well true
17:01:50 <oklopol> but the logic isn't in the core language
17:01:52 <alise> so, that code looks remarkably compact
17:01:55 <alise> where's the actual application
17:02:02 <alise> this is ski right
17:02:07 <oklopol> well i can explain what it actually does
17:02:12 <oklopol> that's just the ski apply function
17:02:21 <alise> so it's compacted everything into one?
17:02:28 <alise> or is it just referencing out
17:02:35 <alise> anyway, this could be transformed into haskell really easily
17:02:39 <alise> apart from the untypedness
17:02:48 <alise> have a feeling compiled clue code could be very fast
17:02:53 <oklopol> http://www.vjn.fi/pb/p116522211.txt <<< slightly clearer, although not much
17:03:08 <alise> oklopol: you should make an ffi there instead of trying to formulate a function, it tries to find one based on the guesses :D
17:03:10 <oklopol> it does condition, and chooses branch based on the result
17:03:19 <alise> have some sort of representation of io, so you can say like
17:03:28 <alise> "foo" -> output "foo\n"
17:03:29 <oklopol> Base branch (i) means if the cond result is i, run this base branch
17:03:34 <alise> that would be fun
17:03:45 <oklopol> Subast(0,0):['car', ['cdr', '#0']]
17:03:45 <oklopol> Main ast: '#1'
17:03:47 <alise> oklopol: ah i see
17:04:07 <oklopol> subast(i,j) means find for subcall i the argument number j
17:04:28 <alise> a
17:04:38 <alise> oklopol: can it infer ackermann
17:04:47 <oklopol> and yeah it could be transformed into something haskellish sure.
17:04:52 <oklopol> and obviously it can infer ackermann
17:05:07 -!- MigoMipo has quit (Ping timeout: 252 seconds).
17:05:08 <alise> hmm it's obviously tc but i wonder if you can infer any tc function directly ie without interpreting :)
17:05:11 <oklopol> if you can do it functionally, you can do it cluely, it just might be a big pain in the ass
17:05:21 <oklopol> although i find simple functions nicer to write in this than functionally
17:05:54 <Wareya> (e(e))you can nest expressions - 2D flow and tests and execution included for major FFFFFFFFFFFFFFFFFFFFFFFFFF
17:06:04 <oklopol> yeah i don't know how much you can do "directly", not that that's a very precise thing to ask
17:06:05 <Wareya> q[n]WHEN GOING RIGHT OR DOWN access memory at address q with n bits in size
17:06:06 <Wareya> q[n]WHEN GOING LEFT OR UP access memory at address n with q bits in size - when going left it'd look like ]n[q for note.
17:06:23 <oklopol> all sufficiently complicated list interpreter blah blah and so on
17:06:27 <oklopol> *lisp
17:06:52 <oklopol> (read that as a set of words that you can fit in a sentence as homework)
17:07:49 <Wareya> I'll make it so that it's little endian if you're going left or up!
17:07:52 <alise> oklopol: wait even if you infer ski
17:07:56 <alise> you have to infer a function that calls it
17:08:02 <oklopol> huh?
17:08:04 <alise> so even if you have ski, you may not be able to cause it to be called in an arbitrary way
17:08:06 <alise> oklopol: well wait
17:08:09 <alise> how do you 'run' a clue program
17:08:14 <oklopol> i haven't decided ! :D
17:08:14 <alise> do you define a main function and punch values into it on the cli?
17:08:18 <oklopol> yeah prolly
17:08:22 <oklopol> something like that
17:08:27 <alise> but if you had to make one inferred function
17:08:28 <alise> say main
17:08:38 <alise> where basically
17:08:40 <oklopol> that's always called with like 0
17:08:43 <alise> the result value was what is output
17:08:47 <alise> yeah
17:08:48 <alise> then
17:08:53 <alise> oklopol: no
17:08:57 <alise> that's always called with the user input
17:08:59 <alise> as a list of chars (ints)
17:09:07 <alise> you'd have to find a way to parse and call ski arbitrarily from that
17:09:14 <alise> i.e. you may not be able to infer arbitrary calls to ski
17:09:22 <alise> so even if you have an ski impl, if you go by my route it may not be tc!
17:09:26 <oklopol> well then you'd have to parse, and parsing is inherently quite mutual in its recursion
17:09:34 <oklopol> at least the way i usually do it
17:09:39 <alise> yes but I mean
17:09:51 <alise> clue may not be able to infer the actual call to eval ski(x)
17:11:00 <oklopol> what? just say "if main gets [1, 2, 3] as input, it should parse that input and call ski with it"
17:11:30 <oklopol> that's depth 2 inference, and will happen in less than a second
17:11:31 <oklopol> maybe i'm misunderstanding something
17:11:33 <oklopol> now let me understand the ski apply function
17:12:50 <alise> ok then
17:17:17 <Wareya> how should I deal with input?
17:18:12 <alise> have there be a certain location in space where characters, as they are inputted, appear; each cycle, they go down one position
17:18:14 <alise> it's a fountain of input
17:18:22 <alise> do not argue with me, this is an excellent idea
17:18:27 <alise> going down until you reach a character works as ungetc
17:18:34 <Wareya> what about multiple inputs?
17:19:09 <Wareya> well, I COULD send press and release statements
17:19:25 <Wareya> yeah that works
17:20:15 <alise> ha you actually like that idea?
17:20:18 <alise> i was half joking but i like it too
17:20:25 <Wareya> I don't really like it
17:20:46 <Wareya> because I can't find a way to deal with the whole "new memory area" concept :P
17:20:52 <alise> just an area of main memory
17:21:00 <Wareya> that could ruin stuff, though
17:21:07 <oklopol> http://www.vjn.fi/pb/p641555462.txt
17:21:07 <oklopol> there's some ugly pseudohaskell for ya
17:21:45 <Wareya> I barely understand
17:21:54 <oklopol> ski type also does a major part of this
17:22:32 <oklopol> the types are 0 = do nothing, 1 = apply i, 2 = apply k, 3 = apply s, 4 = at least depth 4, first recurse on the first element of list, then retry evaluating this
17:22:44 <Wareya> I'll just let the program TEST for input of a certain character
17:22:50 <Wareya> but how do I do that withotu a function?
17:22:52 <oklopol> that was hell to infer btw :P
17:23:04 <Wareya> because I don't want to fuck with things like that with a 2D language
17:23:10 <oklopol> and i think it's more insight to clue than that code there is
17:23:22 <Wareya> I'm talking abotu boat
17:23:23 <oklopol> but i think it's sort of neat
17:23:26 <oklopol> couldn't have written the program better myself, really
17:23:51 <oklopol> Wareya: sorry i'm so excited about my own thing i mostly ignore boat and logread it every few minutes :|
17:24:01 -!- lifthrasiir has quit (Ping timeout: 258 seconds).
17:24:10 <oklopol> i mean my life finally has meaning
17:24:15 <oklopol> clue is the shit
17:24:19 <alise> oklopol: you should make it do de bruijn indexes
17:24:32 <oklopol> i'm not sure what you mean
17:24:39 -!- lifthrasiir has joined.
17:24:39 <alise> k is \\2, s is \\\2 0 (1 0)
17:24:44 <Wareya> lol
17:25:01 <alise> i.e. currying, lambdas have no variable names, var 0 = closest lambda's arg
17:25:04 <alise> var 1 = second-closest
17:25:04 <alise> etc
17:25:15 <alise> you don't have to do alpha-conversion because it's a nop
17:25:19 <alise> and you can just use a stack to implement it
17:25:25 <oklopol> i'm basically doing exactly that
17:25:28 <alise> and syntactic equality = structural equality
17:25:31 <alise> oklopol: nah because you have
17:25:34 <alise> (\#0 #1 -> #0) as K
17:25:44 <alise> instead of (\\#1)
17:25:50 <alise> the names of vars change as you nest deeper
17:25:57 <alise> so you can just use a stack
17:25:57 <oklopol> well yeah i'm not doing that in the haskell representation i did manually
17:25:59 <Wareya> anser when you're not tied up etc, but: What syntax do I use for checking if a character is being pressed
17:26:04 <alise> oklopol: right
17:26:09 <Wareya> answer*
17:26:11 <alise> Wareya: don't, use the fountain
17:26:17 <Wareya> but the fountain is broken
17:26:24 <oklopol> the actual "ast" field of the branch representing k is "#0"
17:26:43 <Wareya> it's like playing solitare where you can't skip cards
17:27:06 <oklopol> the haskell thing is just in case you want to see how the crappy "ast" currently spouted by the compiler maps to meaning
17:27:44 <alise> oklopol: ooh I know
17:28:13 <alise> oklopol: compile it to http://www.cs.st-andrews.ac.uk/~eb/epic.php; basically, it's the strict untyped-apart-from-some-conveniences-like-ints lambda calculus (with optional laziness)
17:28:21 <alise> the special thing is that the compiler tries really hard to produce really fast code
17:28:27 <alise> so you can say
17:28:40 <alise> Clue: So it takes 9 seconds to compile S I I (S I I), but it executes in 8.
17:28:55 <oklopol> i just realized it'd be incredibly trivial to change it to output that
17:29:11 <alise> define that
17:29:14 <alise> epic or haskelly
17:29:19 <oklopol> i mean so trivial it's basically just changing some of the constant strings
17:30:28 <oklopol> so how would "(\#0 #1 #2 -> pair #1 #2) #0 sub3res1 sub3res2" look like?
17:30:48 <oklopol> i was thinking just like (pair #1 #2) @ #0 sub3res1 sub3res2
17:30:54 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
17:31:10 <oklopol> otherwise pretty much exactly the syntax i have now
17:31:13 <alise> you mean in epic?
17:31:20 <alise> is (\ a b -> c) curried in yours?
17:31:22 <alise> or does it not matter?
17:32:03 <oklopol> SII doesn't execute in 8 seconds
17:32:03 <oklopol> *SII(SII)
17:32:08 <alise> it was a joke
17:32:18 <alise> but you still haven't said whether you're talking about epic or something else
17:33:26 <Wareya> http://64.vg/uot
17:33:37 <alise> oklopol: ???
17:33:59 <Wareya> minimized Boat
17:34:07 -!- lifthrasiir has joined.
17:34:23 <Wareya> hi
17:34:30 <oklopol> not really, i don't know what that would change
17:34:47 <alise> oklopol: well epic can actually compile things to efficient C code as opposed to your pseudocode which can't :P
17:34:57 <oklopol> there are no higher-order functions
17:35:03 <alise> right
17:35:06 <alise> with epic you don't even have lambda
17:35:10 <alise> because it's a supercombinator compiler
17:35:58 <alise> oklopol: i'm getting the feeling you're ignoring me
17:36:11 <Wareya> what about me
17:36:12 <oklopol> why can't it?
17:36:15 <Wareya> j/k
17:36:21 <alise> oklopol: why can't epic have lambdas?
17:36:33 <alise> because it's meant as a target language, so you're meant to have lambda-lifted already. however clue does not require lambdas
17:36:35 <alise> i don't think
17:37:12 <alise> hmm the only values in clue are lists and ints aren't they
17:37:34 <oklopol> what are supercombinators
17:37:55 <alise> lambda expressions with no free variables containing no lambdas
17:38:04 <alise> i.e. flat lambdas
17:38:38 <oklopol> probably compiling to epic would be nicer than compiling to C, but i could just not to either.
17:39:17 <alise> well it saves you writing an evaluator
17:39:23 <alise> and http://www.vjn.fi/pb/p641555462.txt is literally a stone's throw away from epic
17:40:13 <alise> sub1res = (\#0 -> car cdr #0) #0
17:40:14 <alise> wut
17:40:18 <alise> does that make sense?
17:40:19 <alise> what's cdr's car
17:42:17 <Wareya> so about that simplified boat
17:42:26 <Wareya> er minimalized
17:42:55 <alise> 3 => (\#0, #1, #2, #3 -> #3) #0 sub3res1 sub3res2 sub3res3
17:42:58 <Ilari> I think I have figured out how one one could compute discrete coordinates in presence of wormholes....
17:43:00 <alise> this "calls" (evaluates) sub3res3 right?
17:43:04 <alise> and ignores the rest
17:44:23 <pikhq> Hmm. Y'know, I think most of the evaluation time in my SKI evaluator is the garbage collection.
17:45:00 <oklopol> okay my lag is too big for ircing
17:45:30 <Ilari> oklopol: How close connection is to being unstable?
17:45:55 <oklopol> yes
17:46:00 -!- base3 has left (?).
17:46:21 <oklopol> and i meant clue doesn't have any higher-order stuff
17:46:33 <alise> oklopol: http://www.vjn.fi/pb/p216431545.txt here's what I think your program would look like in Epic
17:47:23 <alise> *case ski_type(_0)
17:48:22 <alise> clue needs tail call optimisation right?
17:48:26 <alise> or at least tail recursion
17:48:30 <oklopol> is that a real term?
17:48:35 <alise> a real term?
17:48:41 <oklopol> in any case that's what i have
17:48:46 <alise> ?
17:48:52 <Wareya> http://en.wikipedia.org/wiki/Tail_recursion ?
17:48:57 <alise> he knows what tail recursion is
17:49:00 <alise> oklopol: what real term?
17:49:19 <Wareya> aiight
17:49:28 <Wareya> tail call optimization?
17:50:09 <oklopol> there are subcomputations that are called with the main computation's arguments and each others outputs, so they are sorta lambdas, but the structure is always the same, so they aren't very real
17:50:09 <oklopol> alise: is flat lambda a real term
17:50:09 <oklopol> sorry, 400 seconds lag
17:50:14 <pikhq> Wareya: This is actually easy to explain in C.
17:50:23 <alise> oklopol: no they're really called supercombinators
17:50:28 <pikhq> void foo(){printf("Foo!\n");foo();}
17:50:31 <alise> oklopol: also did you just get that recently? i translated you whole program into epic in that time
17:50:43 <pikhq> Because foo() is the last thing called, the function does not need to be returned to.
17:50:55 <pikhq> So, the compiler can not keep around the stack frame.
17:51:02 <pikhq> Instead of "call foo", it can just do "jmp foo".
17:51:07 <Wareya> oh
17:51:11 <Wareya> no shit
17:51:30 <pikhq> So, tail recursive functions are easily compiled into loops.
17:52:14 <oklopol> "alise: sub1res = (\#0 -> car cdr #0) #0" <<< sorry car (cdr #0)
17:52:15 <oklopol> "alise: this "calls" (evaluates) sub3res3 right?" <<< yes
17:52:24 <MissPiggy> tail calls can be compiled into jumps
17:52:26 <alise> oklopol: right I fixed that. http://www.vjn.fi/pb/p216431545.txt just to repeat
17:52:28 <alise> http://www.vjn.fi/pb/p216431545.txt http://www.vjn.fi/pb/p216431545.txt http://www.vjn.fi/pb/p216431545.txt
17:52:28 <MissPiggy> even more general than
17:52:28 <alise> http://www.vjn.fi/pb/p216431545.txt
17:52:31 <alise> so you don't
17:52:31 <alise> http://www.vjn.fi/pb/p216431545.txt
17:52:32 <alise> miss it
17:52:32 <alise> http://www.vjn.fi/pb/p216431545.txt
17:52:35 <alise> on the next flood you get
17:53:14 <oklopol> and the only values are, at least now, ints and lists.
17:53:45 <alise> http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog
17:53:45 <alise> http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog
17:53:46 <alise> http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog
17:53:46 <alise> http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog
17:53:46 <alise> http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog
17:53:47 <alise> C version
17:53:50 <pikhq> MissPiggy: Yes, but tail calls that aren't tail recursion are less common.
17:53:59 <alise> pikhq: I disagree
17:54:02 <MissPiggy> okay
17:54:02 <alise> I rarely recurse
17:54:03 <pikhq> (though continuation-passing style does it all the bloody time)
17:54:19 <alise> tail recurse that is
17:54:19 <oklopol> "alise: clue needs tail call optimisation right?" <<< yes, although i'm fine with not having it for now.
17:54:24 <pikhq> alise: Explicitly.
17:54:26 <alise> most of my tail calls are non-recursion
17:54:32 <pikhq> Anyways.
17:54:39 <alise> well i think epic almost certainly does TCO
17:54:42 <pikhq> Still pretty darned common.
17:54:45 <alise> and http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog will do tco if you put it through gcc :P
17:54:50 <alise> -O3 will probably unroll all the functions there
17:55:20 <pikhq> Yeah, GCC does TCO rather nicely.
17:55:53 <oklopol> "alise: oklopol: also did you just get that recently? i translated you whole program into epic in that time" <<< i got it with about a 5 minute lag.
17:56:03 <alise> well the lag is less now
17:56:13 <pikhq> (though things like "longjmp" break it)
17:56:43 <alise> Putting my C version through gcc will probably result in http://pastie.org/824550.txt?key=kwk16wfca7b8zitdyh59ew
17:56:46 <alise> if you give it -O3
17:56:51 <alise> which will also tail-call optimise it
17:57:00 <alise> thus making it pretty much as efficient a compilation as possible
17:57:03 <alise> *Fski_type(_0)
18:01:36 <Wareya> so about minimizing boat
18:05:32 * alise wonders how much a super-optimising compiler should evaluate code
18:05:35 <alise> up to IO: no, nontermination
18:05:46 <alise> only what it can prove total: large mathematical program would take years
18:05:57 <alise> we need something just below
18:05:59 <Wareya> hahaha
18:06:00 <alise> i.e. everything trivially total
18:06:14 <alise> like some way of measuring how "complicated" something is to eval
18:06:23 <alise> everything it can prove total whose complicatedness is below a certain threshold
18:07:06 <Wareya> Up to an inability to deduce a smaller way to do something
18:07:24 <Wareya> at which point it should assume brute-force status!
18:09:45 <oklopol> alise: is that actual epic code? could i just translate to exactly that? because that would indeed be trivial
18:10:02 <alise> oklopol: well there's no actual spec I just base dit on this: http://www-fp.dcs.st-and.ac.uk/~eb/darcs/EpiVM/examples/testprog.e
18:10:13 <alise> I know it has actual ints btw so ignore the fact that that defines them itsellf
18:10:14 <alise> itself
18:10:16 <alise> (albeit using 0 and 1)
18:10:25 <alise> to do your lists just do Con head (Con head ())
18:10:29 <alise> and case on that
18:10:35 <alise> but yes, per my knowledge of epic, that should work
18:10:54 <alise> hmm
18:10:57 <alise> my types were wrong though
18:11:00 <alise> Data isn't correct
18:11:02 <alise> I think it should be Any
18:11:08 <alise> for it may be data and it may be an int
18:11:12 <alise> so yes, s/Data/Any/g in my program
18:11:28 <alise> but according to my understanding of epic, yes, that should work.
18:11:57 <alise> if you want http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog with gcc -O3 should compile to something competent as well
18:12:03 <alise> basically identical code
18:12:07 <alise> epic probably does more lambday optimisations though
18:12:13 <MissPiggy> http://www.eugeneleeslover.com/VIDEOS/fire_control_computer_1.html
18:12:17 <MissPiggy> this is sooooooooooooooo sexy
18:13:49 <alise> MissPiggy: in the language in http://www.jucs.org/jucs_10_7/total_functional_programming/jucs_10_07_0751_0768_turner.pdf you never have to prove totality right?
18:13:52 <alise> the compiler can do it in all cases
18:14:06 <oklopol> alise: also i forgot one tiny thing: you have to actually recurse on the subcases :D
18:14:23 <alise> oklopol: well, you didn't do that, so there :)
18:14:28 <alise> oklopol: btw why do you have all those useless functions?
18:14:33 <alise> couldn't you just inline them all?
18:14:44 <alise> it's an absolutely trivial transformation, after all
18:14:50 <oklopol> what useless functions?
18:14:54 <Gregor> MissPiggy: I saw that URL and just assumed it was Eugene Lee's Lover :P
18:14:58 <alise> oklopol: all the _ski stuff
18:15:10 <alise> Gregor: ditto
18:15:14 <alise> oklopol: (in mine)
18:15:16 <alise> oklopol: in the where clause
18:15:18 <alise> you can inline every single one
18:16:44 <oklopol> sure you can, but that would've been much less illustrative imo
18:18:05 -!- Libster has joined.
18:18:06 <alise> but faster
18:18:12 <alise> fizzie: Libster is still banned right?
18:18:16 <alise> maybe changed ident
18:18:26 <oklopol> "faster"?
18:18:26 <oklopol> what
18:18:32 <alise> oklopol: less function calls
18:18:32 <oklopol> faster to read? i don't think so
18:18:42 <Wareya> it was 74-102 last I checked
18:18:47 <alise> i'm saying when you have something like http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog
18:18:57 <alise> the _ski functions are useless
18:19:00 <Wareya> [+q *!*@pool-74-103-90-165.bltmmd.east.verizon.net]
18:19:09 <Wareya> nope
18:19:11 <alise> just take the expr inside return X; and replace the call with it
18:19:59 <oklopol> there are no function calls, any decent thing would optimize them away; and i don't have _ski functions, i have lambdas to show what info each computation in the where clause needs
18:20:38 <oklopol> you could just drop the lambda, but you couldn't see what computations are based on what computations, as clearly
18:20:45 <oklopol> *lambdas
18:21:45 <alise> why do you need to show what info it needs? just curious
18:21:50 <alise> this is just compiler output after all
18:21:54 <oklopol> i wanted you to know :D
18:22:03 <alise> right well i'm talking about for when it actually compiles :P
18:22:28 <oklopol> well i'm not considering doing that right now, just compiling for human reading
18:22:32 -!- thermoplyae has joined.
18:22:38 <oklopol> but yeah
18:22:50 -!- thermoplyae has left (?).
18:22:54 <oklopol> i guess if i just changed it a bit so it's actually haskell, it'd be a nice compilation for computers too
18:22:54 <oklopol> thermoplyae :o
18:23:52 <alise> no because it won't type in haskell prolly
18:23:59 <alise> you can't express all ski exprs in haskell
18:24:46 <lament> hm
18:24:51 <lament> i don't see Libster in the ban list?
18:24:59 <Wareya> it was a +q
18:25:00 <Wareya> not a +b
18:25:01 <lament> does irssi not show the ban list correctly?
18:25:06 <Wareya> [+q *!*@pool-74-103-90-165.bltmmd.east.verizon.net]
18:25:32 <lament> i thought those showed up in the ban list, just hade a % in front
18:25:35 <lament> *had
18:25:47 <Wareya> idk lol
18:25:52 <lament> oh well
18:26:03 <alise> +q is like the happy friendly form of +b
18:26:13 <alise> look but don't touch!
18:26:37 <Wareya> haha
18:26:55 <Pthing> that's neither happy nor friendly
18:27:30 <lament> it's better than genocide
18:28:42 <Wareya> So about that Boat minimalization while still being somewhat easy to use
18:28:49 <Wareya> :<
18:30:41 <alise> The interpreter segfaults when I compute something like fact 100000000.
18:30:41 <alise> That's because stack checks are not enabled by default.
18:30:41 <alise> ah
18:30:47 <Wareya> hahaha
18:31:14 -!- base3 has joined.
18:31:51 -!- MigoMipo has joined.
18:31:54 <alise> lol poor fools trying again
18:32:08 <alise> MissPiggy: are they actually that determined :)
18:32:11 <alise> or are their irc clients just rejoining
18:32:19 <Wareya> lol
18:34:55 -!- base3__ has joined.
18:35:18 <base3__> alise: firstly don't think i can't evade a ban if i want to
18:35:33 <alise> no shit
18:35:36 <base3__> secondly how can you be in this channel and not know what car of cdr is?
18:35:41 <alise> I know what car of cdr is
18:35:43 <alise> he wrote "car cdr x"
18:35:45 <alise> he meant "car (cdr x)"
18:35:51 <Wareya> haha
18:35:56 <alise> I didn't know whether that was some special semantics for Clue functions
18:35:57 <MissPiggy> alise you don't undestand CAR or CDR
18:36:00 <alise> or whether it was a mistake
18:36:03 <Wareya> your ISP only randomixes the least significant byte
18:36:05 <alise> he informed me it was the latter
18:36:10 <base3__> Wareya: flase
18:36:14 <base3__> false*
18:36:14 <MissPiggy> alise stop acting like you know lisp
18:36:19 <Wareya> oh?
18:37:23 -!- base3 has quit (Ping timeout: 256 seconds).
18:38:11 <Wareya> http://64.vg/uot What can I do to make there be less stuff here, without making asinine requirements for some simple things?
18:41:11 <fizzie> lament: +qs showed up in the ban list for freenode's old ircd, but they're different things in this new "seven".
18:42:03 <base3__> you can just do /mode +q to see the +qs
18:42:34 <Wareya> not lying
18:42:51 <Wareya> but on some ircds that would kill the channel
18:43:11 <alise> Wareya is having a hard time with this trolling thing
18:43:13 <base3__> Wareya: just do /quit #channel to kill a channel on this version
18:43:29 * alise sigh
18:43:41 <alise> fizzie: are we going to play cat and mouse or staring contest
18:43:44 <alise> gotta be one or the other
18:43:45 <base3__> or do /quit alise to quit someone who is annoying you
18:43:54 <Wareya> base3, I'm not retarded
18:43:56 <Wareya> :)
18:44:06 <alise> either they evade and we re-ban, or we wait until they get bored
18:44:17 <alise> unfortunately, they're probably already bored if they think trolling us is productive.
18:44:19 <base3__> it comes to the same thing really
18:44:26 <Wareya> *!*@host81-141--*.wlms-broadband.com
18:44:27 <Gregor> It'd be nice if any of the regulars in this channel were ops.
18:44:30 <Wareya> *!*@host81-141-*-*.wlms-broadband.com
18:44:31 <alise> Gregor: fizzie is
18:44:35 <alise> and he banned them earlier, and is here right now
18:44:45 <alise> just ban @*.wlms-broadband.com
18:44:51 <Wareya> but that's assholish
18:44:54 <MissPiggy> 18:43 < base3__> or do /quit alise to quit someone who is annoying you
18:44:56 <alise> and foolproof
18:44:58 <MissPiggy> guys I think he might be a hacker
18:44:58 <fizzie> Quited, not banned. Still.
18:45:00 <MissPiggy> so watch out
18:45:06 <Gregor> MissPiggy: Haw
18:45:08 <alise> unless he goes to a friend's house; if he does that, we can just laugh at him i guess
18:45:15 <fizzie> Quieted, I mean. Heh.
18:45:16 <base3__> listen i told you how to check the quiet list
18:45:17 <alise> fizzie: planned course of action?
18:45:22 <pikhq> Who runs the channel, as far as ChanServ's concerned?
18:45:27 <alise> pikhq: i think lament
18:45:28 <pikhq> Pretty sure the founder isn't around any more.
18:45:29 <base3__> that wasn't trolling it was genuinely being helpfu;
18:45:30 <alise> used to be aardappel
18:45:33 <Gregor> lament is second.
18:45:36 <pikhq> alise: Ah.
18:45:42 <alise> base3__: Seriously, what do you think we are, idiots?
18:45:44 <base3__> then Wareya starting talking nonsense so i played along with him
18:45:47 <alise> You're honestly going to have to troll far better than that.
18:45:54 <Wareya> Me?
18:46:01 <pikhq> Oh, right.
18:46:05 <MissPiggy> Wareya, yeah you are going to have to troll much better than that
18:46:08 <pikhq> lament was set to inherit.
18:46:10 <base3__> alise: you really think that /mode +q with no args doesnt give you the list of quiets??
18:46:22 <alise> fizzie: plz just ban eir isp
18:46:23 <base3__> that is the gospel truth
18:46:25 <alise> or quieten it, whatever
18:46:30 <base3__> try it in another channel
18:46:31 <Wareya> troll?
18:46:32 <Wareya> you're fucking kidding me
18:46:32 <Wareya> he's completely serious, /mode +q shows the quiet list
18:46:32 <alise> we can add exceptions later if anyone else actually uses it...
18:46:44 <Wareya> 13:46 < MissPiggy> Wareya, yeah you are going to have to troll much better than that
18:46:45 <MissPiggy> Wareya, this is no laughing matter
18:46:48 <Wareya> I'm sorry, what?
18:47:04 <alise> MissPiggy: i think you're taking this a little too seriously
18:47:12 <alise> you're letting the terr--trolls win
18:47:14 <base3__> i doubt i'm going to repeatedly come back in here to wind you guys up tbh
18:47:24 <base3__> you're not as entertaining as you seem to think you are
18:47:27 <alise> who's wound up, i'm just prodding fizzie to ban your isp
18:47:30 <Gregor> I think it's time for virtuchuck.
18:47:37 <pikhq> Definitely.
18:47:41 <alise> turns out we don't try and be entertaining when people are just going to shit on your conversations
18:47:42 <MissPiggy> I could use a protein shake
18:47:47 <alise> Gregor: ooh, make it trigger on every single line he says!
18:47:48 <fizzie> I don't really have a plan. Maybe he'll behave, though; things have been much more discussioney so far, even if the discussion is not an especially interesting one.
18:47:51 <Wareya> 13:46 -!- 0 - #esoteric: ban *!*@host81-141-232-7.wlms-broadband.com [by ChanServ!ChanServ@services., 7348 secs ago]
18:47:52 <pikhq> base3__: We entertain ourselves quite well. :)
18:47:54 <Wareya> 13:46 -!- 0 - #esoteric: ban *!*@pool-74-103-90-165.bltmmd.east.verizon.net [by ChanServ!ChanServ@services., 7352 secs ago]
18:47:54 -!- virtuchuck has joined.
18:47:54 <virtuchuck> If we don't do friendly ai right..
18:47:57 <Wareya> that's what /mode +q shows
18:48:00 <alise> virtuchuck: THEN WHAT?!
18:48:01 <virtuchuck> alise: Chuck norris once ate a whole cake before his friends could tell him there was a stripper in it.
18:48:04 <MissPiggy> what the fuck chuck is tlaking about friendly ai
18:48:09 <alise> MissPiggy: it listens to us
18:48:22 <MissPiggy> virtuchuck: what was that about friendly ai?
18:48:22 <virtuchuck> MissPiggy: What was that about friendly ai.
18:48:23 <pikhq> alise: Welcome to Markov chains.
18:48:31 <Gregor> virtuchuck: Compare Chuck Norris to base3__.
18:48:32 <virtuchuck> Gregor: 3 Laws or weaker system.
18:48:34 <pikhq> Erm.
18:48:36 <pikhq> MissPiggy:
18:48:36 <alise> :D
18:48:48 <alise> virtuchuck: You have to repeat what I said just now.
18:48:48 <virtuchuck> alise: There is no theory of evolution. Just a list of animals chuck norris once ate a whole cake before his friends could tell him there was a stripper in it.
18:49:13 <fizzie> fungot: Is this chuck a friend of yours?
18:49:14 <fungot> fizzie: you mean an a-list?
18:49:32 <pikhq> Ah, the bots.
18:49:33 <Gregor> Hmmm
18:49:38 <pikhq> The wonderful, wonderful bots.
18:49:43 <Gregor> If fungot talks at the wrong time, they'll get into an infinite loop :P
18:49:44 <fungot> Gregor: well when i am around people, but inconsistency is part of the system that's used for work now, so need only decide when to do which
18:49:45 <MissPiggy> virtuchuck: AI
18:49:45 <virtuchuck> MissPiggy: If we don't do friendly ai right..
18:49:46 <alise> A-List bots :D
18:49:54 <pikhq> `c printf("Hey, I can talk too!\n")
18:49:54 <Wareya> haha
18:49:57 <alise> virtuchuck: poop
18:49:58 <virtuchuck> alise: It's freaking technology improving itself.
18:49:59 <HackEgo> No output.
18:50:04 <MissPiggy> lololol
18:50:06 <alise> virtuchuck: Poop is self-improving technology?
18:50:07 <virtuchuck> alise: It's freaking technology improving itself.
18:50:09 <pikhq> ... No output.
18:50:14 <MissPiggy> virtuchuck has just learned about the singularity for the first time
18:50:16 <pikhq> :D
18:50:20 <fizzie> Gregor: Fungot has an anti-loop thing on the chat side, though.
18:50:23 <MissPiggy> now he's obsessing
18:50:28 <Gregor> fizzie: Good :P
18:50:31 <alise> he thinks it's faeces though
18:50:34 <Gregor> I think I preferred virtuLORD.
18:50:35 -!- virtuchuck has quit (Client Quit).
18:50:39 <pikhq> !c printf("Hey, I can talk too!\n")
18:50:41 <alise> blend the two
18:50:46 <MissPiggy> Hey, I can talk too!
18:50:48 <alise> and the LORD said, inject your protein shakes
18:50:49 <EgoBot> Hey, I can talk too!
18:50:54 <alise> DO IT
18:50:54 <Wareya> Hey, I can talk too!
18:50:56 <pikhq> But HackEgo cannot.
18:51:11 -!- virtuLORD has joined.
18:51:11 <virtuLORD> Baltasar's profane banquet: his sentence is welcome to the law, or the hired man that is since lost.
18:51:13 <pikhq> Gregor: I just realised something.
18:51:21 <pikhq> Gregor: The old hobby of trying to break EgoBot has gone away.
18:51:31 <alise> Gregor: blend virtulord and virtuchuck now.
18:51:37 <pikhq> Quite a while ago.
18:51:38 <Gregor> alise: Okidoke, will do.
18:51:40 <alise> :D
18:51:46 <pikhq> You're better at IRC bots. :P
18:52:03 <fizzie> I had a bible-trained fungot speaker somewhere, but I don't think I put it in the bot.
18:52:04 <fungot> fizzie: look at all the oo is fnord. insist on using modern regexps even though they are not
18:52:11 <fizzie> ^style
18:52:11 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
18:52:16 <alise> modern regexps are indeed not regular expressions
18:52:23 <alise> and OO is indeed smoke and mirrors!!
18:52:30 <fizzie> Yes, none of those look very biblical to me.
18:52:43 <pikhq> ^style irc*
18:52:44 <fungot> Not found.
18:52:49 <pikhq> Curses.
18:53:08 <fizzie> The * is just the current-selection-marker there.
18:53:50 <pikhq> Ah.
18:54:10 <Wareya> ^style.^
18:54:13 <Wareya> derp
18:54:15 <Wareya> ^style irc.^
18:54:15 <fungot> Not found.
18:54:17 <Wareya> derp
18:54:19 <Wareya> ^style irc.*
18:54:19 <fungot> Not found.
18:54:20 <Wareya> I suclk
18:54:22 <Wareya> I suck
18:54:26 <Wareya> I SUCK
18:55:25 <fizzie> I sulk.
18:55:32 <Gregor> wtfbbq
18:55:38 <Gregor> Just nearly crashed my system trying to combine them :P
18:55:49 <Wareya> roflolticas
18:58:42 <Gregor> virtuLORD: Give us the good news!
18:58:42 <virtuLORD> Gregor: And he that received the news heli falleth backward and not to resist evil, etc. . .What is prophetically delivered here, and in the book out of the lord driveth on.
18:58:58 <Gregor> Amen.
19:04:16 <Wareya> q[n]WHEN GOING RIGHT OR DOWN access memory at bit address q with n bits in size - big endian, size 3 of address 4 would occupy address 2 3 and 4
19:04:19 <Wareya> q[n]WHEN GOING LEFT OR UP access memory at bit address n with q bits in size - little endian, size 3 of address 4 would occupy address 4 5 and 6 - note that when going left it would look like ]n[q
19:04:23 <Wareya> q[n][m]WHEN GOING RIGHT OR UP access slot m of array starting at the memory suited to q and n with a little endian style array - for lower values of m the address is lower
19:04:26 <Wareya> q[n][m]WHEN GOING LEFT OR DOWN access slot m of array starting at the memory suited to q and n with a little endian style array - for lower values of m the address is higher
19:04:29 <Wareya> :D
19:04:31 -!- Libster has left (?).
19:05:00 <Gregor> Not having looked at the language at all except for what you just pasted, reminds me slightly of 2L.
19:05:12 <Wareya> http://64.vg/src/48029a6eda8165c6d5a5b6f71a785f1e/raw
19:05:17 <Gregor> Namely, in that it has different actions depending on direction.
19:05:21 <Wareya> I'm trying to minimalize Boat
19:05:29 <Wareya> http://esolangs.org/wiki/Boat
19:05:30 <Wareya> this boat
19:09:19 -!- Quadrescence has joined.
19:09:54 <Quadrescence> hello is this a channel about esoteric programming languages like java
19:10:06 <Wareya> yes
19:10:39 <Gregor> Hyuk hyuk
19:10:53 <pikhq> Java doesn't seem all that esoteric.
19:11:04 <pikhq> Though it does have many an odd design feature, it is extremely well-known.
19:11:13 <Wareya> like perl
19:11:36 <Quadrescence> So is "how well known" a metric for being esoteric?
19:11:38 <pikhq> Wareya: Except Perl is entirely composed of odd design features.
19:11:44 <Wareya> yes
19:11:49 <pikhq> Quadrescence: Somewhat, yes.
19:11:58 <pikhq> Quadrescence: Esoteric implies both "odd" and "unknown".
19:12:13 <Gregor> Etymologically speaking, how well known and used it is should be the only metric, but it's not :P
19:12:31 <pikhq> Gregor: Heheh.
19:12:33 <Sgeo_> I think BF is somewhat well known'
19:12:43 <Quadrescence> Of course I will present a counter-example. Vala is not a very well known language, yet it is not esoteric. BCPL as well.
19:12:47 <pikhq> Sgeo_: Yes, but well known *soley for being odd*.
19:13:03 <pikhq> Quadrescence: They're intended for serious use, and as such aren't all that odd.
19:13:35 <Quadrescence> So being well known or not doesn't qualify as a metric for being esoteric it seems.
19:13:38 <base3__> so 'esoteric' is an antonym of 'serious'?
19:14:06 <pikhq> base3__: To an extent.
19:14:18 <Wareya> mindrape
19:15:56 <Gregor> Mind rape?
19:16:01 <Wareya> mind rape
19:16:13 <Gregor> That was a yes-or-no question.
19:16:21 <Wareya> mind rape
19:16:59 <pikhq> Wareya: Still yes-or-no.
19:17:04 <Wareya> mind rape
19:17:17 <Wareya> I mean yes
19:17:56 * pikhq pushes the "mind rape" buttonb
19:18:12 <Quadrescence> Is this channel an antonym for serious?
19:18:28 <Wareya> mind rape
19:18:30 <Wareya> I mean yes
19:19:49 <pikhq> Quadrescence: Yes.
19:20:01 <pikhq> Well, we are capable of being serious.
19:20:07 <pikhq> However, that is not the raison d'etre.
19:20:15 <Wareya> (e/e)division
19:20:18 <Wareya> WHY DID I DO THAT
19:20:19 <Wareya> AFJ@#e-0fu@VQ@U()A
19:30:35 <Wareya> Okay, this is my last draft before bed
19:30:36 <Wareya> http://64.vg/src/fad448fab17d0b8f569a451741adbd07/raw
19:30:38 <Wareya> good night
19:31:31 -!- oerjan has joined.
19:35:17 <Wareya> That, or I can procrastinate sleep.
19:36:01 <oerjan> you only master procrastination properly when you can procrastinate breathing.
19:36:16 <Wareya> but
19:36:28 <oerjan> sure there are side effects
19:36:30 <Wareya> my new year's resolution
19:36:36 <Wareya> was to make one next year
19:36:58 <oerjan> well you can always put that off another year
19:36:58 <pikhq> Mine was to not make a resolution.
19:37:02 <pikhq> I always fail at it.
19:37:25 <Wareya> that's an okymoronic irony!
19:37:30 <Wareya> oxymoronic*
19:38:46 <oerjan> i hear that once you can procrastinate breathing, you very quickly will be able to procrastinate _anything_. in fact you'll be unable not to. except decomposing.
19:39:10 <Wareya> Fuck yeah.
19:41:20 <Wareya> I am procrastinating procrastinating working on this,
19:41:33 <Wareya> ...
19:42:39 <oerjan> to be able to procrastinate P and not P at the same time, that is the essence of zen. or perhaps anti-zen, i'm not sure.
19:42:51 <Wareya> Hah
19:43:19 <pikhq> oerjan: Zen is both zen and anti-zen.
19:43:26 <pikhq> That is the essence of zen.
19:43:34 <oerjan> ah yes
19:45:29 <Wareya> I don't think I can minimalize this anymore
19:49:36 <alise> minimalise a butt butt
19:51:05 <Wareya> but a butt butt is as low as a butt
19:51:57 <oerjan> are you saying butts are idempotent?
19:52:16 <Wareya> yes
19:52:49 <Wareya> what abotu the idiot bird
19:52:52 <Wareya> and the mocking bird
19:57:34 <MissPiggy> Wareya, if the forest has, for every particular birds A and B, another bird C who will reply A's reply to B's reply when you call to it i.e. Cx = A(Bx) -- and the forest has a mockingbird too -- can you show for every bird in the forest it is fond* of some other bird i.e. QF = F (F may depend on Q)
19:58:04 <MissPiggy> (Q is fond of F means QF = F)
19:58:15 <oerjan> what was a mockingbird again
19:58:23 <MissPiggy> Mx = xx
19:58:51 <oerjan> so M and composition
19:59:00 <oerjan> oh wait
19:59:04 -!- virtuLORD has quit (Quit: Leaving).
19:59:16 <alise> MissPiggy: congrats you just made everything super complex :D
19:59:17 <oerjan> you're not saying there is a combinator for making C, just that C exists
19:59:37 <Wareya> If you convert that to C I'll be able to do it :D
19:59:42 <MissPiggy> oerjan yes
19:59:48 -!- virtuhird has joined.
19:59:49 <virtuhird> So ican do a blocking read it'll wait until the process id, modulo something.
19:59:52 <MissPiggy> Wareya, that means you are giving up?
20:00:01 <Wareya> I can only half understand what you're saying
20:00:05 <oerjan> _i_ haven't
20:00:13 <Sgeo_> There's still no Virtugeo :(
20:00:26 <Gregor> Yo dawg, I heard you like Hird, so I put a Hird in your herd so you can Hird while you heard!
20:00:27 <oerjan> of course i understand how fixpoints are usually constructed from M
20:00:30 <Wareya> probably because of the metaphor of birds
20:00:32 -!- Quadrescence has left (?).
20:00:51 <Gregor> I made virtuhird exclusively to say that line.
20:00:53 <oerjan> Wareya: just s/bird/combinator/g
20:01:05 <Wareya> not on linux
20:01:14 <Wareya> running IRSSI through SSH
20:01:14 <MissPiggy> Wareya, well this IS a difficult problem -- but the solution can be got in a methodical way
20:01:14 <MissPiggy> (infact there's two methodical ways to get the solution that I know of)
20:02:12 <Wareya> "can you show for every bird in the forest it is fond of some other bird"
20:02:15 <alise> virtuhird: <3
20:02:15 <virtuhird> alise: And it seems more common than (2*3)+4.
20:02:21 <Wareya> do not understand
20:02:24 <alise> virtuhird: Marry me.
20:02:24 <virtuhird> alise: Marry him a few ssh tricks you can give you into a file * can you?
20:02:33 <alise> virtuhird
20:02:33 <Wareya> virtuhurd: 0/0
20:02:36 <alise> virtuhird:
20:02:39 <alise> virtuhird: .
20:02:40 <virtuhird> alise: Solution: kill ancestors.
20:02:47 <Gregor> YES.
20:02:47 <Wareya> virtuhurd: <3 0/0
20:02:48 <alise> Gregor: how can i tell it "give me everything"
20:02:50 <oerjan> fix f = (\x -> f (x x)) (\x -> f (x x))
20:02:52 <alise> also, is it listening to me or us?
20:03:00 <Wareya> virtuhurd: Marry me.
20:03:00 <alise> if so, it's not just virtuhird :<
20:03:01 <Wareya> just you
20:03:06 <alise> no i mean for its db
20:03:08 <alise> also, did you include tusho and alise
20:03:10 <Wareya> oh idk
20:03:13 <alise> and ehird`
20:03:22 <Gregor> alise: tusho no, alise yes, ehird` no.
20:03:31 <Gregor> alise: However, I had to cut it short, so really alise no :P
20:03:36 <Gregor> The brain was getting too big.
20:03:49 <alise> sounds like me
20:03:51 <alise> now why is it dead
20:03:53 <alise> virtuhird: Poop
20:03:53 <virtuhird> alise: Poop ovulates over poop.
20:04:01 <alise> Gregor: how can I tell it "just give me anything"
20:04:01 <Gregor> Wow
20:04:06 <alise> yeah i actually said that :)
20:04:15 <Gregor> alise: I don't think hal.pl has such a feature :(
20:04:19 <Gregor> virtuhird:
20:04:22 <alise> virtuhird: .
20:04:22 <virtuhird> alise: So, memes get killed off extremely quickly and efficiently.
20:04:24 <alise> virtuhird: .
20:04:25 <virtuhird> alise: A tiny backtrace snippet from the base class.
20:04:27 <alise> virtuhird: .
20:04:27 <virtuhird> alise: Flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow up ts fid vid ttp.
20:04:30 <alise> virtuhird: .
20:04:30 <virtuhird> alise: Lalalla sudo vi /etc/thttpd/thttpd.conf.
20:04:32 <alise> virtuhird: .
20:04:32 <virtuhird> alise: I was just being flippant.
20:04:34 <alise> virtuhird: .
20:04:34 <virtuhird> alise: Bloatzilla, then, i assume.
20:04:36 <alise> virtuhird: .
20:04:36 <virtuhird> alise: That makes no sense when i say '?' i mean 'something else.
20:04:39 <Gregor> Agg, stop
20:04:39 <alise> xD
20:04:42 <alise> no i love it
20:04:43 <alise> does /msg work
20:04:46 <Gregor> Yes
20:04:59 <Wareya> virtuhird: e
20:05:00 <virtuhird> Wareya: Eyoyanaka <- e, o and a space.
20:05:08 <Wareya> I said that? <_>
20:05:09 <Sgeo_> virtuhird, PSOX
20:05:10 <virtuhird> Sgeo_: Sgeo: and someone could, by mistake, rewrite psox to be the first okoperformancescript.
20:05:15 <alise> No, I did.
20:05:16 <Wareya> or did she
20:05:17 <Wareya> ah
20:05:24 <Wareya> virtuhird: .
20:05:24 <virtuhird> Wareya: P seems most logical explanation and i will talk mor ewhen you return.
20:05:28 <Sgeo_> virtuhird, PSOX
20:05:29 <Wareya> virtuhird: .
20:05:30 <virtuhird> Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename.
20:05:32 <virtuhird> Wareya: Damn i want it to zy3jkanfka.
20:05:37 <alise> "and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename."
20:05:37 <alise> :D
20:05:39 <Wareya> virtuhird: rage
20:05:39 <virtuhird> Wareya: Ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/cfunge.
20:05:45 <Gregor> `addquote <virtuhird> Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename.
20:05:46 <HackEgo> 130|<virtuhird> Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename.
20:05:59 <Sgeo_> lol
20:05:59 <Gregor> Sounds like ehird.
20:06:06 <alise> virtuhird: sex
20:06:06 <virtuhird> alise: Ais523: gay sex is not of the race because its names aren't all meaningless 2-character gibberish with \s and .s everywhere.
20:06:12 <Wareya> virtuhird: rage
20:06:13 <virtuhird> Wareya: Ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge.
20:06:20 <alise> virtuhird: fuck
20:06:20 <virtuhird> alise: Ha ha ha what the fuck, a 2 minute long guide on how to actually write anything useful.
20:06:24 <alise> virtuhird: fuck
20:06:24 <virtuhird> alise: And the paddles speed up most programs a lot - coderay sucks. What the fuck we want, make your parameters self-describing.
20:06:28 <Wareya> virtuhird: esoteric
20:06:28 <virtuhird> Wareya: Http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck.php or the variable's value?
20:06:36 <alise> virtuhird: fuck
20:06:36 <virtuhird> alise: Fuck you haskellers and your local copy?
20:06:39 <alise> virtuhird: fuck
20:06:40 <Wareya> virtuhird: audio
20:06:40 <virtuhird> alise: Anmaster: fuck off if i removed the bottom right.
20:06:41 <virtuhird> Wareya: Which e.g. Copying audio data from many folders: cd, operation, cd, operation.
20:06:44 <alise> virtuhird: fuck
20:06:45 <virtuhird> alise: + And | are... Whatever the fuck up.
20:06:47 <alise> haha this is perfect
20:06:48 <Gregor> I wish you could tell megahal "Forget a bunch of what you know" :P
20:06:49 <AnMaster> <virtuhird> Wareya: Ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge. <-- outdated url
20:06:49 <Wareya> virtuhird: qwerty
20:06:50 <virtuhird> Wareya: Qwerty-5 = identity.
20:06:56 <alise> Gregor: no this is so amazing
20:07:01 <alise> AnMaster: >_<
20:07:05 <alise> Gregor: viruanmaster, now
20:07:06 <Wareya> 15:06 < virtuhird> Wareya: Qwerty-5 = identity.
20:07:08 <alise> *virtuanmaster
20:07:09 <Wareya> GENIUS
20:07:11 <AnMaster> also, irritating highlight spam bot that (in practise)
20:07:14 <Gregor> alise: nono, so I could feasibly feed it the latest you.
20:07:17 <alise> ah
20:07:20 <alise> doesn't matter this is great
20:07:20 <Wareya> virtuhird: ,
20:07:21 <virtuhird> Wareya: Since there's no reason other than my old, crusty computer though ... That thing was broken an hour or so ago.
20:07:23 <alise> now make one for anmaster
20:07:33 <Wareya> virtuhird: complex
20:07:33 <Gregor> I'm building Sgeo_, since he kept complaining :P
20:07:33 <virtuhird> Wareya: Oh noes the joke by interpreting something as complex as hell.
20:07:41 <Wareya> eh.
20:07:41 <virtuhird> Wareya: It's just that my frog can't eh.
20:07:50 <Wareya> So
20:07:58 <Wareya> wait what
20:08:02 <Wareya> So
20:08:03 <Wareya> eh.
20:08:14 <Wareya> why did it respond to that
20:13:00 <alise> virtuhird: fuck you
20:13:00 <virtuhird> alise: They can be claimed and worked for me i don't wanna fuck with my eyes, i guess.
20:13:02 <alise> Gregor: :|?
20:13:04 <alise> ah
20:13:07 -!- SimonRC has quit (Ping timeout: 246 seconds).
20:13:10 <alise> virtuhird: AnMaster
20:13:10 <virtuhird> alise: Don't worry, anmaster is talking about g.
20:13:13 <alise> virtuhird: AnMaster
20:13:13 <virtuhird> alise: Anmaster: can you translate what ihope is an agoran.
20:13:21 <alise> virtuhird: ontological
20:13:21 <virtuhird> alise: Http://en.wikipedia.org/wiki/esme.
20:13:25 <alise> :DDDDDDD
20:13:30 <alise> virtuhird: ontological
20:13:31 <virtuhird> alise: Anyway, generated asmmy!
20:14:08 <Sgeo_> virtuhird, Agora
20:14:08 <virtuhird> Sgeo_: Oerjan: agora office.
20:14:19 <alise> the office of oerjan
20:14:27 <alise> virtuhird: haskell
20:14:28 <virtuhird> alise: I haven't really used haskell much, but offset=0 and amount=-1 will copy all.
20:15:09 <AnMaster> what algorithm is that bot based on
20:15:17 <AnMaster> and which esolang is it coded in?
20:15:17 <Gregor> AnMaster: It's MegaHAL.
20:17:21 <Deewiant> virtuhird: You're really not needed here ya know
20:17:21 <virtuhird> Deewiant: Anmaster: i'm ignoring you because you're really not needed here ya know.
20:17:48 <alise> Gregor: it's picking up channel input
20:17:50 <alise> you are CORRUPTING me
20:18:05 <Gregor> alise: Toooooo bad :P
20:18:13 <alise> virtuhird: and to think I loved you.
20:18:14 <virtuhird> alise: I loved all of the administrators of the edit war about whether to link you.
20:19:09 -!- virtuhird has quit (Quit: Leaving).
20:19:43 -!- virtugold has joined.
20:19:44 <virtugold> Unable to find the personality brain/megahal.trn
20:19:49 <Gregor> Uhhh, whoops :P
20:19:51 -!- virtugold has quit (Client Quit).
20:20:19 -!- virtugold has joined.
20:20:19 <virtugold> Oh wow couldn't that choke due to personal disagreements with semantic and practical issues, i decided to make it feasible.
20:20:38 <alise> why can't you have multiple guys
20:20:40 <alise> also who's gold
20:21:15 <Gregor> Gold knows who Gold is.
20:21:15 <Sgeo_> Might be me (if so, grr), might not. Evidence for not: I don't remember saying anything along those lines
20:21:34 <Gregor> Gold is as Gold does.
20:21:34 <Sgeo_> virtugold, PSOX
20:21:39 <alise> Gregor: if we don't know the identity of gold, why is eir virtual relative in here?
20:21:45 <Deewiant> virtugold: SUPOX
20:21:53 <Sgeo_> virtugold, ehird
20:22:00 <Sgeo_> virtugold, you alive?
20:22:04 <Gregor> Seems broken :P
20:22:06 -!- virtugold has quit (Read error: Connection reset by peer).
20:22:10 <Gregor> lawl
20:22:32 <Sgeo_> Well, Gregor does know my last name
20:23:46 <alise> Seth Gold *does* ring a bell.
20:23:58 <alise> I know it's Seth something, and I think I saved it to a file, but that will have long gone missing and dusty.
20:24:10 <alise> Gregor: VirtuAnMaster.
20:24:12 <alise> Gregor: You must.
20:24:20 <Gregor> alise: AnMaster also talks too much :P
20:24:21 * Sgeo_ wants a non-broken me
20:24:22 <Gregor> alise: Like YOU.
20:24:30 <alise> Gregor: Just take a random 1/N of his lines
20:24:41 -!- SimonRC has joined.
20:24:48 <Sgeo_> alise, thanks for making me more cyberstalkable
20:24:57 <alise> Seth Gold.
20:25:00 <alise> Sgeo is Seth Gold.
20:25:02 <alise> Seth Gold is Sgeo.
20:25:03 <alise> Mwahahahahahaha
20:25:25 <alise> Seth Gold Americas Hottest DJ'
20:25:25 <alise> 30 Jan 2010 ... DJ Seth Gold debuts at Size Sundays in Los Angeles this weekend! Flyer & Info below: Brought to you by Elite Unlimited Underwear ...
20:25:29 <alise> I don't think you have anything to worry about
20:25:34 -!- virtunotsgeosurn has joined.
20:25:35 <virtunotsgeosurn> Any hypotheses on the basics to make a flash client for robozzle?
20:25:41 <alise> Gregor: ANMASTER DAMMIT
20:25:51 <Sgeo_> virtunotsgeosurn, robozzle
20:26:10 <Gregor> wtfbbq
20:26:15 <Gregor> virtunotsgeosurn: Hewwo?
20:26:17 <Gregor> Oh
20:26:20 <Gregor> Because it thinks its name is
20:26:23 <Gregor> virtunotsgeosurname: Hewwo?
20:26:23 <virtunotsgeosurn> Gregor: Document.write(<b>"hello world!"</b.
20:26:26 <Gregor> :P
20:26:30 <alise> AN FUCKING MASTER
20:26:31 <virtunotsgeosurn> alise: Anmaster, @nick refers to the effect that it contained information about a master strategy gamer stuck in a feature to find out more information about a master strategy gamer stuck in a strongly-typed language can use a certain set of actions can be made more efficient?
20:26:42 <alise> A master that fucks.
20:26:57 <Sgeo_> virtunotsgeosurname, Robozzle
20:26:57 <virtunotsgeosurn> Sgeo_: Http://robozzle.com/forums/showthread.php?t=7570 can have what's basically wine on iphone.
20:27:00 <Sgeo_> virtunotsgeosurname, PSOX
20:27:01 <virtunotsgeosurn> Sgeo_: Http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt.
20:27:07 <Sgeo_> that was boring
20:27:10 <Deewiant> virtunotsgeosurname: SUPOX
20:27:10 <virtunotsgeosurn> Deewiant: 0X00 0x0a terminates all functions.
20:27:11 <Sgeo_> virtunotsgeosurname, ehird
20:27:11 <virtunotsgeosurn> Sgeo_: Ehird, i was only checking for my security question's answer. They email me asking for trivial opinions?
20:27:34 <Sgeo_> Am I really this boring? :(
20:27:38 <alise> Yes.
20:27:46 <Deewiant> virtunotsgeosurname: Boring!
20:27:46 <virtunotsgeosurn> Deewiant: It can ask for permissions before it is boring, tbh.
20:27:59 <Sgeo_> virtunotsgeosurname, ?
20:27:59 <virtunotsgeosurn> Sgeo_: "256 Functions will be ugly on os x. The forum's down though.
20:28:22 <Sgeo_> That's not me! I knew nothing about OS X!
20:28:25 <Sgeo_> [well, little]
20:29:50 <fizzie> Maybe I should train fungot styles for Prominent Personalities(TM) of the channel.
20:29:51 <fungot> fizzie: i've never seen before... i fnord on vacation
20:30:14 <Sgeo_> virtunotsgeosurname, Second Life
20:30:15 <virtunotsgeosurn> Sgeo_: But still, having @hodapp link to a universe in my life.
20:30:29 <fizzie> fungot: You what on vacation?
20:30:30 <fungot> fizzie: step 2: fnord... many thanks to all the memory...
20:30:59 <Sgeo_> virtunotsgeosurname, active worlds
20:31:01 <virtunotsgeosurn> Sgeo_: The worlds that i can't imagine sl staying alive with as few users as aw, or ct, or worlds.
20:32:00 <Sgeo_> Virtual me is boring :(
20:33:18 <fizzie> What a surprise! Uh, I mean...
20:33:22 <Gregor> Sgeo_: Hey, YOU asked for it :P
20:33:27 <Wareya> okay
20:34:02 <Sgeo_> Of all the things I thought I was considered in #esoteric , boring wasn't one that crossed my mind
20:34:09 <Sgeo_> And I'm still being boring, talking about this
20:34:17 <Sgeo_> virtunotsgeosurname, entertain me
20:34:18 <virtunotsgeosurn> Sgeo_: Gregorr, you can take pictures of.
20:34:23 <Sgeo_> virtunotsgeosurname, God
20:34:23 <virtunotsgeosurn> Sgeo_: There are definitions of "god" are a coherent idea.
20:34:48 <Sgeo_> virtunotsgeosurname, alise
20:34:49 <virtunotsgeosurn> Sgeo_: Alise, they have classes there?
20:35:04 <Sgeo_> virtunotsgeosurname, fuck you
20:35:05 -!- virtunotsgeosurn has quit (Quit: Leaving).
20:35:09 <Sgeo_> ..
20:35:16 <alise> XD
20:35:23 <Sgeo_> Was that in response to me, or did Gregor do that?
20:35:40 <Gregor> He just hates you.
20:35:48 -!- virtuwtf has joined.
20:35:49 <virtuwtf> Unable to find the personality brain/megahal.trn
20:35:53 <Gregor> Damn it.
20:35:53 <Sgeo_> Even virtual me hates me :(
20:35:54 -!- virtuwtf has quit (Client Quit).
20:36:13 <AnMaster> Gregor, virtuwtf?
20:36:14 -!- virtuwtf has joined.
20:36:15 <virtuwtf> That is not a bot! I confess! I am the helpful, friendly, underload introduction program. Would you like a snake?):ass hello! I am only pretending to be (very well.
20:36:22 <alise> AN MASTER PLEASE
20:36:32 <AnMaster> virtuwtf, hi there
20:36:33 <virtuwtf> AnMaster: Hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.......................
20:36:36 <AnMaster> ...
20:36:40 <AnMaster> virtuwtf, which one?
20:36:41 <virtuwtf> AnMaster: 1 Egobot: daemon ul bf http://pastebin.ca/raw/365170.
20:36:52 <AnMaster> well that seemed almost relevant
20:37:11 <AnMaster> virtuwtf, who are you?
20:37:11 <virtuwtf> AnMaster: Score for gregorr-l_pooper_scooper: 34.2.
20:37:26 <AnMaster> egobot or hackbot I guess
20:37:31 <AnMaster> err
20:37:32 <AnMaster> hackego
20:37:35 <AnMaster> I meant
20:37:37 <Gregor> EgoBot :P
20:38:13 <MissPiggy> virtuwtf, wtf
20:38:13 <virtuwtf> MissPiggy: Http://google.com/search?q=omg+liek+wtf.
20:38:16 <MissPiggy> LOL
20:39:19 <oerjan> bbq
20:40:14 <Gregor> virtuwtf: oerjan
20:40:14 <virtuwtf> Gregor: 2 Oerjan: bf.
20:40:34 <Gregor> oerjan: I /believe/ virtuwtf is telling you he wants to be your boyfriend.
20:41:25 <oerjan> *blush*
20:42:03 <oerjan> oh wait you stinking liar, it's obviously speaking about brainfuck
20:42:05 -!- gm|lap has joined.
20:44:23 -!- virtuwtf has quit (Quit: Leaving).
20:49:03 <AnMaster> Gregor: never got any replies to these:
20:49:05 <AnMaster> <AnMaster> what algorithm is that bot based on
20:49:05 <AnMaster> <AnMaster> and which esolang is it coded in?
20:49:06 <Gregor> Sweet, I made a megahal brain that segfaults >_>
20:49:12 <Gregor> AnMaster: Yes you did
20:49:12 <AnMaster> ah that answers one
20:49:14 <AnMaster> megahal
20:49:16 <Gregor> AnMaster: It's MegaHAL.
20:49:21 <Gregor> That's the answer to both.
20:49:40 <AnMaster> Gregor, is megahal a programming language?
20:49:47 <AnMaster> as well as the bot
20:50:28 -!- KingOfKarlsruhe has joined.
20:50:49 <Gregor> The bot is in Perl and C.
20:51:13 <AnMaster> Gregor, also which one was the segfaulting model?
20:51:22 -!- adam_d has joined.
20:51:26 <Gregor> You'll see (maybe) :P
20:51:36 <Gregor> (And it's not a person)
20:51:41 <alise> DO AN MASTER
20:52:22 <Gregor> alise: TOO - MUCH - DATA
20:52:33 -!- virtuPOSIX has joined.
20:52:33 <virtuPOSIX> Equivalent to the user explic.
20:52:48 <alise> Gregor: TAKE A RANDOM 1/N OF IT
20:52:55 <alise> INCREASE N EACH TIME IT'S TOO BIG
20:53:14 <Gregor> alise: It takes like a half hour with the full data, so slowly working it down would take a long time :P
20:53:15 <fizzie> Increase N each time N is too big.
20:53:27 <Gregor> virtuPOSIX: Tell me about printf!
20:53:32 <fizzie> ^style wp
20:53:33 <fungot> Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages)
20:53:36 <AnMaster> virtuPOSIX, hm
20:53:41 <AnMaster> virtuPOSIX, fopen
20:53:46 <Gregor> Why isn't virtuPOSIX responding :(
20:53:54 <alise> Gregor: Take 1/4th then
20:53:54 <AnMaster> Gregor, did it segfault?
20:53:56 <alise> That's gotta be small enough
20:54:04 <Gregor> Fekk
20:54:06 <Gregor> Yeah, it segfaulted.
20:54:35 <AnMaster> Gregor, segfaulting is undefined behaviour. I spot ironicness here
20:55:09 -!- virtuPOSIX has quit (Read error: Connection reset by peer).
20:55:19 <alise> "ironicness" >_<
20:55:26 <pikhq> Gregor: Have you considered profile-aided optimisation?
20:55:27 <AnMaster> alise, I know it doesn't exist
20:55:51 <fizzie> fungot: Ha, isn't that segfaulting upstart ludicrous? You never segfault, no matter how badly I mess up.
20:55:52 <fungot> fizzie: the claims are disputed or widely fnord, would be in order. fnord fnord
20:56:19 <fizzie> Don't you be disputin' my claims there.
20:56:49 <AnMaster> <fizzie> fungot: Ha, isn't that segfaulting upstart ludicrous? You never segfault, no matter how badly I mess up. <-- please be careful with what you claim. Remember I coded the interpreter it runs on
20:56:51 <fungot> AnMaster: " as in the rest of the article is " here we stand" the fnord, but someone put that fnord was recommended for the niger mission by his cia wife, and not ' seton'. ' fnord'" is being used on this page.
20:57:01 <AnMaster> though hopefully it should never segfault
20:57:19 * Sgeo_ really has shovelling he sould attend to
20:57:53 <AnMaster> only way that could possibly result in that would be some badly tested out of memory code path or such. Maybe. Hopefully not.
21:08:47 <AnMaster> <fizzie> Increase N each time N is too big. <-- hehe
21:09:02 <AnMaster> Gregor, figured out why it segfaulted?
21:09:07 <Gregor> AnMaster: Nope
21:09:10 <Gregor> AnMaster: Not going to try, either.
21:09:11 <AnMaster> Gregor, gdb?
21:09:23 <Gregor> AnMaster: Yeah, I'm going to go debug some ancient code I didn't write.
21:10:14 <AnMaster> Gregor, well, it could be trivial. I would at least try it and take a look at the the line. Could be a trivial fix.
21:10:28 <Gregor> Nooooooooooooot gonna do it.
21:10:31 <Gregor> Noooooooooooooooooooooot gonna do it.
21:10:35 <AnMaster> okay then
21:10:56 <AnMaster> just saying that you can take a quick look at the backtrace without debugging it in depth
21:11:22 <AnMaster> <pikhq> Gregor: Have you considered profile-aided optimisation? <-- for what?
21:20:09 -!- oerjan has quit (Quit: Later).
21:21:11 <AnMaster> night
21:27:27 <alise> Profile-aided optimisation... for DANCING
21:33:37 <alise> Let's play Zookoo's Triangle (http://en.wikipedia.org/wiki/Zooko%27s_triangle).
21:34:04 <alise> Names: Secure and decentralised, secure and human-meaningful, or decentralised and human-meaningful?
21:34:09 <alise> Pick one pair.
21:39:56 -!- augur_ has joined.
21:41:42 -!- virtuMaster has joined.
21:41:42 <virtuMaster> Ehirdiphone, he could just say "strange for hello world to use lyx some years ago.
21:42:06 <Gregor> virtuMaster: Are you a suitable replacement for AnMaster?
21:42:07 <virtuMaster> Gregor: For me it is run directly from the lamp in the same as in "not a possible replacement for anmaster?
21:42:15 <Gregor> I seeeeee.
21:43:18 <AnMaster> Gregor, I don't quite think I would say that
21:43:34 <AnMaster> night really, and stop highlight spam please
21:43:35 <Gregor> virtuMaster: Do you think you would say that?
21:43:36 <virtuMaster> Gregor: Like "i think i need to curl up the same connection. Might be an option to me then.
21:43:39 <AnMaster>
21:43:52 <alise> virtuMaster: ehird
21:43:52 <oklopol> AnMaster hates it when someone uses his nick
21:43:53 <virtuMaster> alise: Ehird, i was thinking more along the same rules are at 40 k/s from most places.
21:44:01 <alise> virtuMaster: ehird
21:44:03 <virtuMaster> alise: Ehird, it would depend on the stack at a time.
21:44:04 <oklopol> especially if you just say AnMaster for no reason
21:44:05 <alise> virtuMaster: ehird
21:44:06 <virtuMaster> alise: <Ehird> "i was born.
21:44:08 <alise> virtuMaster: ehird
21:44:09 <virtuMaster> alise: Ehird, no luck with cfunge?
21:44:13 <alise> virtuMaster: sigh
21:44:14 <virtuMaster> alise: Sigh whatever, can wait.
21:44:16 <alise> virtuMaster: sigh
21:44:17 <virtuMaster> alise: Must be a bit jerky, like window moving. Sigh. <-- Even with metacity on intel graphics it works very well.
21:44:20 <alise> virtuMaster: sigh
21:44:20 <virtuMaster> alise: Sigh, not free it seems.
21:44:22 <alise> virtuMaster: sigh
21:44:22 <virtuMaster> alise: Sigh... Bbs, phone.
21:44:25 <alise> virtuMaster: -_-
21:44:25 <virtuMaster> alise: 21:57:27 <Ehird> coppro: umm... Bye?
21:44:27 <alise> virtuMaster: -_-
21:44:28 <virtuMaster> alise: Ehird_, your solution fails at holiday logo?
21:44:33 <alise> aww it doesn't remember his emotes.
21:44:36 <alise> virtuMaster: night, really
21:44:37 <virtuMaster> alise: Deewiant, well it was *she* who had it, not me. Guess while i'm no expert on the last night of the world is utterly bonkers <-- the latter. We all know that.
21:44:49 <alise> virtuMaster: immature
21:44:49 <virtuMaster> alise: Ehird, they don't use it on an ipv6 block allocated, they don't know iki piki's gender. Not sure if you have that last example, i'm not immature!
21:44:52 <alise> virtuMaster: immature
21:44:53 <virtuMaster> alise: Ehird, i'm not immature!
21:44:58 <alise> :D
21:44:58 <alise> virtuMaster: immature
21:44:59 <virtuMaster> alise: Soupdragon, i'm not immature!
21:45:02 <alise> :DDD
21:45:04 <alise> virtuMaster: immature
21:45:04 <virtuMaster> alise: Sgeo, i'm not immature!
21:45:08 <alise> :DDDD
21:45:09 <alise> virtuMaster: immature
21:45:09 <virtuMaster> alise: Fungot, i'm not immature!
21:45:11 -!- augur_ has quit (Ping timeout: 252 seconds).
21:45:12 <alise> ahahahahahah
21:45:15 <alise> Gregor: what the fuck
21:45:16 <alise> virtuMaster: immature
21:45:17 <virtuMaster> alise: Though, i'm not immature!
21:45:19 <alise> virtuMaster: immature
21:45:19 <virtuMaster> alise: Though, i'm not immature!
21:45:21 <alise> virtuMaster: immature
21:45:21 <virtuMaster> alise: Sgeo, i'm not immature!
21:45:22 <alise> virtuMaster: immature
21:45:23 <virtuMaster> alise: Ehird, i'm not immature!
21:45:25 <alise> virtuMaster: immature
21:45:25 <virtuMaster> alise: Ehird, i'm not immature!
21:45:26 <alise> virtuMaster: immature
21:45:26 <oklopol> virtuMaster: sexy
21:45:27 <virtuMaster> alise: Ais523, i'm not immature!
21:45:29 <virtuMaster> oklopol: I guess it is spelled properly.
21:45:30 <alise> haha
21:45:31 <Deewiant> virtuMaster: mature
21:45:32 <Gregor> ...
21:45:32 <virtuMaster> Deewiant: Hm i want to spoil it.
21:45:40 <alise> Gregor: it's because "," -> "i'm not immature"
21:45:44 <alise> and he uses , as his nick prefix
21:45:47 <alise> er, suffix
21:45:48 <alise> I bet
21:46:03 <oklopol> yeah i guess it is
21:46:07 -!- virtuMaster has quit (Client Quit).
21:46:35 <alise> > nonfix foo;
21:46:35 <alise> > (quote foo) foo = false;
21:46:35 <alise> <stdin>, line 2: function 'quote' was previously defined with 1 args
21:46:37 <alise> pure hates Quine
21:46:52 -!- augur_ has joined.
21:48:37 * Sgeo_ wants to make an Uru Live age with a Brainfuck interpreter machine
21:56:04 <alise> Does anyone know of a standard algorithm to convert a natural number into an easy-to-pronounce, easy-to-memorise alphabetical form?
21:56:15 <alise> Obviously it is not too hard to write one, but if one already exists it probably has had more thought put into it.
21:59:37 <alise> Of course, the shorter the result the better.
22:02:39 <fizzie> alise: There's that format mooz wrote a Befunge converter for. It's alphabetical, easyish to pronounce; two out of three ain't bad.
22:03:01 <alise> I'm interested.
22:03:02 <alise> 176.215.16.104 == "divzip-dibbel"
22:03:02 <alise> 30.122.0.74 == "pobmol-dabmek"
22:03:02 <alise> 149.229.247.52 == "nitvas-siztif"
22:03:20 <alise> So 32-bit stuff can be done relatively well with two words of six letters.
22:03:25 <alise> Bit of awkward pronunciation, but alright.
22:03:35 <fizzie> The generated numbers are on the long side, unfortunately.
22:04:34 <fizzie> 425616
22:04:35 <fizzie> WizzooBarRazzleHuzzooSpazzooFizzooSpoo
22:04:40 <fizzie> It has... a certain charm.
22:04:47 <fizzie> Perhaps not exactly what you were looking for.
22:04:52 <alise> Bit ... ecstatic for my tastes.
22:05:23 <alise> <alise> Let's play Zookoo's Triangle (http://en.wikipedia.org/wiki/Zooko%27s_triangle).
22:05:23 <alise> <alise> Names: Secure and decentralised, secure and human-meaningful, or decentralised and human-meaningful?
22:05:23 <alise> <alise> Pick one pair.
22:05:28 <alise> nobody wants to play :(
22:06:53 <Pthing> convert to base 26, intercalate vowels
22:07:25 <Pthing> or anything, really, you skip every other letter
22:08:02 <alise> base 26? that means you could get "beeep"
22:08:03 -!- augur_ has quit (Ping timeout: 256 seconds).
22:08:14 <alise> which isn't very distinguishable from "beep"
22:08:39 <alise> surely you mean base 21
22:08:46 <Pthing> why
22:08:50 <alise> anyway, I'm sure you can get more information density than that
22:09:15 <alise> Pthing: so you don't get both "beeeeep" and "beeep"
22:09:24 -!- augur_ has joined.
22:09:26 <Pthing> i don't see how that helps
22:09:38 <oklopol> "vaan" and "vaa'an" are different words in finnish
22:09:45 <alise> because you only pick the consonants
22:09:47 <alise> and intercalate vowels
22:09:49 <alise> so that can never happen
22:09:57 <alise> anyway, I think much higher information density than that is possible
22:10:09 <alise> at the very least, you could store (consonant,vowel) pairs as single digits
22:10:11 <fizzie> The FooNumbers are based on decimal form, with the base words F/oo, B/ar, B/az, W/oo, H/oo, Sp/oo, K/ink, K/ank, K/onk for 1, 2, ... 9, respectively; and then you add "", "izz", "azz", "uzz" at the / there for 10^0, 10^1, 10^2, 10^3, respectively; and finally for multiples of 10000 you put in separator-markers Razzle, Dazzle, Giggle, Wiggle.
22:10:12 <alise> and omit awkward pairs
22:10:13 <fizzie> Admittedly the system runs out at 99999999999999999999, or KuzzonkKazzonkKizzonkKonkWiggleKuzzonkKazzonkKizzonkKonkGiggleKuzzonkKazzonkKizzonkKonkDazzleKuzzonkKazzonkKizzonkKonkRazzleKuzzonkKazzonkKizzonkKonk.
22:10:16 <oklopol> up to six it's pretty easy
22:10:19 <alise> fizzie: :D
22:10:20 <Pthing> but
22:10:28 <Pthing> so don't do beeep and beep
22:10:33 <Pthing> wait
22:10:36 <Pthing> how would that even
22:10:37 <Pthing> i mean
22:10:44 <alise> "beeeeep" and "beeep"
22:11:00 <alise> beeeeep = b, e, e, p with all intercalated vowels being e
22:11:03 <Pthing> boeop and baeaeap
22:11:04 <Pthing> easy
22:11:08 <Pthing> so don't intercalate all es
22:11:08 <alise> beeep = b, e, p with all intercalated vowels being e
22:11:09 <Pthing> jesus
22:11:14 <alise> so you have a limited set
22:11:17 <alise> so your algorithm is more complicated
22:11:20 <Pthing> or don't even intercalate vowels
22:11:22 <alise> <alise> at the very least, you could store (consonant,vowel) pairs as single digits
22:11:23 <Pthing> intercalate anything
22:11:27 <alise> jieortj
22:11:44 <alise> this is meant to be pronounceable and memorable, and to minimise the risk of confusing two forms
22:13:05 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
22:15:27 -!- jcp has joined.
22:19:12 -!- ineiros has changed nick to ineiros_.
22:20:15 -!- ineiros has joined.
22:23:23 -!- ineiros_ has quit (Quit: leaving).
22:27:19 -!- adam_d has quit (Ping timeout: 256 seconds).
22:28:43 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
22:33:22 -!- adam_d has joined.
22:34:28 -!- adam_d_ has joined.
22:35:15 -!- augur_ has quit (Ping timeout: 256 seconds).
22:35:37 -!- adam_d__ has joined.
22:35:57 -!- augur_ has joined.
22:38:05 -!- adam_d has quit (Ping timeout: 256 seconds).
22:39:13 -!- adam_d_ has quit (Ping timeout: 256 seconds).
22:43:25 -!- Sgeo_ has changed nick to Sgeo.
22:45:56 <alise> Talis, man.
22:46:25 <fizzie> http://groups.google.com/group/comp.lang.misc/msg/07f29c8ea40c35a3 is where those foo-numbers came from, though I think Giggle and Wiggle are mooz's inventions. And yes, it's not quite optimized for information density, or anything.
22:48:22 <alise> basically it's the decimal system but instead of "one hundred and seventy two" you say fazzoo kizzink bar".
22:48:25 <alise> *"fazzoo
22:49:24 -!- adam_d__ has quit (Quit: Leaving).
22:50:09 <fizzie> Yes, well, sort-of. It's not a positional system at first, the power-of-ten is indicated by the circumfix izz/azz/uzz.
22:51:12 <fizzie> I guess the English spelling isn't very positional either, though.
22:52:48 <fizzie> s/circumfix/interfix/, wasn't thinking.
22:53:18 <fizzie> Or infix.
22:53:34 <fizzie> Apparently it's infix if it's inside a single stem, and interfix if it joins two stems.
22:55:59 -!- Libster` has joined.
23:08:24 -!- Libster` has left (?).
23:09:01 -!- Libster has joined.
23:14:23 -!- tombom_ has quit (Quit: Leaving).
23:19:10 -!- Gracenotes has quit (Remote host closed the connection).
23:20:35 -!- augur_ has quit (Ping timeout: 256 seconds).
23:21:42 -!- augur_ has joined.
23:28:15 <augur_> more interesting linguistics time!
23:28:48 -!- augur_ has changed nick to augur.
23:28:56 <alise> Oh, god.
23:29:59 <augur> as far as anyone can tell, it is impossible for a verb (such as "glump" in the following) to mean what its shown to mean: "X glumped Y" == "X kissed someone who is allergic to Y"
23:30:14 <alise> We've been over this before.
23:30:25 <alise> I think it's probably a limitation of the human brain's shorthand engine.
23:30:39 <alise> We need the main detail to be the grammatical form, so to speak, of the shorthand.
23:30:42 <alise> Otherwise we can't remember it.
23:30:50 <augur> actually, it doesnt seem to be that at all
23:31:01 -!- Libster has left (?).
23:31:05 -!- Libster has joined.
23:31:07 -!- Libster has left (?).
23:31:09 <augur> the brain can encode a SHIT TONNE of things, extraordinarily complex things, in lexical semantics
23:31:12 -!- Libster has joined.
23:31:14 -!- Libster has left (?).
23:31:17 -!- Libster has joined.
23:31:23 -!- Libster has left (?).
23:31:26 -!- Libster has joined.
23:31:30 -!- Libster has left (?).
23:31:34 -!- Libster has joined.
23:31:51 <augur> just consider what it means to cherrypick.
23:32:27 <augur> "X cherrypicked Y" ~ "X carefully chose which members of Y to support his claims despite the fact that the whole of Y do not (so easily) do so"
23:32:30 <augur> or something like that
23:33:00 <MissPiggy> yeah
23:33:08 <MissPiggy> that's a good complex one
23:34:25 <oklopol> there should be a conlang all of whose grammar and semantics have been proven impossible to learn
23:34:27 <augur> the best anyone can get is either that the representations for _linguistic_ meaning are of a very specific sort, and this happens to not allow "glump"
23:34:35 <MissPiggy> the thing is it's like a self contained action though, you go sit at your desk and cherry pick.. but glumped is one action (kissed) and a kind of reference (someone who is allergic to Y) -- so it's complex on a different level.. but it doesn't seem TOO complex
23:34:47 <oklopol> or at least an esolang
23:34:49 <MissPiggy> oklopol lol
23:35:09 <augur> or that like, certain kinds of verbs are derived SYNTACTICALLY, and thus since the derivation is in violation of a syntactic constraint, its obviously impossible
23:35:47 <augur> MissPiggy: its not really all that complex tho
23:35:54 <MissPiggy> yeah that's the thing..
23:35:58 <augur> i mean its not unimaginable that you might have an affix like, say
23:36:02 <augur> -phobe
23:36:04 <augur> approximately
23:36:12 <augur> which means "person allergic to whatever"
23:36:19 <augur> "John kissed a peanutophobe"
23:36:30 <alise> <augur> "X cherrypicked Y" ~ "X carefully chose which members of Y to support his claims despite the fact that the whole of Y do not (so easily) do so"
23:36:35 <alise> irrelevant
23:36:42 <augur> its NOT irrelevant alise
23:36:44 <alise> carefully choosing is still the 'underlying form' of cherrypicking
23:36:55 <alise> "X carefully chose from Y" also makes sense, it is just not as descriptive
23:36:56 <alise> whereas
23:37:00 <alise> <augur> as far as anyone can tell, it is impossible for a verb (such as "glump" in the following) to mean what its shown to mean: "X glumped Y" == "X kissed someone who is allergic to Y"
23:37:09 <alise> "X kissed Y" does not make sense as a substitute for "X glumped Y"
23:37:20 <alise> thus, we cannot understand glumping to be kissing-but-more-specific.
23:37:22 <augur> that its a good substitute is irrelevant
23:37:26 <alise> that is my theory, anyway
23:37:53 <augur> its not supposed to be a substitute
23:38:05 <augur> its supposed to be a single verb with a complex meaning
23:38:19 <alise> well my sample size of 2 makes me very happy tyvm :P
23:38:28 <augur> your sample size of two?
23:38:28 <augur> what?
23:39:32 <augur> anyway, its just an interesting fact that seems to lack a good well fleshed out explanation.
23:39:46 <alise> cherrypicker fits my rule
23:39:47 <alise> glumping doesn't
23:39:51 <alise> therefore i am right qed
23:40:02 <augur> ilunga.
23:40:23 <augur> nominal semantics is notoriously fluid.
23:40:38 <augur> consider "bean" or "pelt"
23:40:49 <augur> to bean someone is to pelt someone on the head
23:41:03 <augur> to pelt someone is to hit someone with a thrown object
23:41:13 <MissPiggy> subroutines
23:41:15 <MissPiggy> :D
23:41:18 <augur> "X beaned Y" = "X hit Y on the head with a thrown object"
23:41:52 <augur> what makes beaning any more a kind of hitting, while glumping isnt a kind of kissing
23:41:59 <augur> surely it IS a kind of kissing
23:42:08 <augur> all acts of glumping are acts of kissing
23:44:41 * MissPiggy glumps augur
23:45:01 <augur> so you kissed alise?
23:45:02 <augur> :D
23:46:31 <alise> lol.
23:46:44 -!- Libster` has joined.
23:46:57 <alise> augur: I was considering it on a syntactic level
23:46:59 <alise> fizzie: ^
23:47:07 -!- Libster` has quit (Read error: Connection reset by peer).
23:47:12 <alise> fizzie: never mind.
23:47:13 -!- Libster has quit (Ping timeout: 256 seconds).
23:47:59 -!- Pthing has quit (Remote host closed the connection).
23:48:45 <augur> alise: considering it syntactically is kinda good actually
23:49:00 <augur> one of the ideas from generative semantics is that these verbs are genuinely derived syntactically
23:49:09 <augur> e.g. IF glump were to exist with that meaning
23:49:13 <augur> you would derive it like so:
23:49:17 <alise> here I will use X <-> Y to mean "X can be replaced by Y, as long as you don't mind losing information; no incorrect information will be added":
23:49:23 <alise> cherrypicking <-> choosing carefully from
23:49:28 <alise> !(glumping <-> kissing)
23:49:39 <alise> "X glumped Y" isn't a more specific form of "X kissed Y", therefore you cannot have it
23:49:43 <alise> this is just random hypothesis
23:49:58 <augur> sure its a more specific form of kissing
23:50:03 <augur> you're doing the equating wrong
23:50:10 <augur> X CAN be replaced by Y
23:50:15 <augur> but you're not choosing the right Y
23:50:36 <augur> glumping <-> kissing someone allergic to
23:50:51 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
23:51:06 <Gregor> Allergic to what, kissing? :P
23:51:11 <Gregor> So it's like mean kissing
23:51:14 <augur> allergic to whatever is being glumped.
23:51:26 <augur> if you glump peanuts, you kiss someone allerging to peanuts
23:51:58 <oklopol> augur: but Y is being hit, it's not being kissed
23:52:23 <augur> this is true, and that might be relevant
23:52:47 <oklopol> but seriously, you're making me want to study linguistics with your crazy kids-can't-learn-this stories
23:52:48 <augur> but we dont know how to specify that in the theory because there are minor examples where that DOESNT seem to be relevant
23:52:50 <augur> for instance
23:53:24 <augur> if you sing as you're leaving a party, you can arguably say that you sang your way out of the party
23:53:46 <augur> but you're certainly not singing a path, you're singing a song
23:54:21 <augur> the GS account was that its an entirely syntactic process
23:54:25 <Gregor> If you sing in such a way that the vibrations created by your singing resonate in such a pattern that they physically lift you and carry you out of a party, then you unquestionably have sung your way out of the party.
23:54:47 <augur> yes, but youre still not singing the PATH you're singing the SONG
23:54:48 <Asztal> Or your singing is so bad that you're thrown out
23:54:50 <augur> which CREATED the path
23:55:23 <augur> to sing a PATH you'd have to like... try to sing, and out of your mouth comes a path through the crowd of people, like your mouth spews emptiness or something
23:56:28 <alise> <augur> you're doing the equating wrong
23:56:28 <alise> <augur> X CAN be replaced by Y
23:56:28 <alise> <augur> but you're not choosing the right Y
23:56:28 <alise> <augur> glumping <-> kissing someone allergic to
23:56:29 <alise> EXACTLY
23:56:32 <alise> the main part of cherry picking
23:56:36 <alise> is choosing carefully from
23:56:39 <alise> the main semantic part of glumping
23:56:41 <alise> is kissing
23:56:43 <alise> the allergic part is a detail
23:56:49 <alise> but we can't replace it directly with kissing
23:56:57 <augur> no the main semantic part of glumping is kissing someone allergic to
23:57:36 <augur> further, really, cherrypicking isnt actually choosing carefully from
23:57:45 <alise> <Gregor> If you sing in such a way that the vibrations created by your singing resonate in such a pattern that they physically lift you and carry you out of a party, then you unquestionably have sung your way out of the party.
23:57:46 <alise> loool
23:57:53 <augur> its choosing something (the cherrypicked thing) from some other set of things
23:57:53 <alise> augur: yes, but someone who is cherrypicking is choosing carefully from something
23:57:57 <alise> it doesn't convey the full meaning
23:57:59 <augur> you cherrypick your examples from your data
23:57:59 <alise> but it's not untrue
23:58:18 <alise> i.e., an acceptable substitution is one which reduces meaning, but does not result in falsity
23:58:22 <augur> nor is it untrue to say that glumping = kissing someone allergic to!
23:59:13 -!- kar8nga has quit (Remote host closed the connection).
2010-02-15
00:00:21 <augur> also consider the fact that its entirely possible to have an INTRANSITIVE verb, lets say blump
00:00:22 <augur> such that
00:00:44 <augur> if john is blumping, then john is kissing someone allergic to peanuts
00:02:14 <augur> the problem is making allergen an argument to the verb
00:03:29 <oklopol> lojban does that all the time btw
00:03:35 <augur> blumping?
00:03:41 <oklopol> no i mean
00:03:42 <augur> i blump all the time too!
00:03:44 <augur> :)
00:04:17 <oklopol> well me too, but i mean most lojban verbs have all sorts of args, and you can cherrypick any subset of them to use
00:04:22 <oklopol> now that we're abusing that term
00:04:27 <augur> ;)
00:04:48 <augur> but also consider that like
00:04:51 <augur> alise
00:05:05 <oklopol> i think it's the same thing, even if you put "fo" before the argument to say "this is not the usual argument you'd see here"
00:05:07 <augur> "john blumped mary" cannot mean "john kissed mary, who is allergic to peanuts"
00:05:41 <oklopol> but it could mean "john kissed mary, making her allergic to peanuts"
00:05:41 <augur> well see, having an overt marker like 'fo' is different
00:05:47 <oklopol> oh it is?
00:05:48 <alise> I really want a language which cannot express statements that are false in logic
00:05:50 <augur> because its essentially just an argument
00:05:50 <oklopol> maybe
00:06:02 <alise> i.e. not just a mere declaration "X is syntactically invalid", just that it is impossible to formulate.
00:06:04 <alise> Is such a thing possible?
00:06:10 <augur> the point is that the word itself, with no option for a marker
00:06:13 <alise> I guess not; the syntax would need to have magic knowledge of every proof.
00:06:23 <augur> alise: sure it is
00:06:24 <alise> But you could encode the proof into the syntactic structure, perhaps.
00:06:50 <augur> but it would only work for some certain kind of falsity
00:06:53 <augur> e.g. mathematical falsity
00:06:55 <augur> or contradictions
00:07:23 <augur> and such a language would be, for instance, the language of all non-contradictions in logic
00:07:48 <augur> which is really just logic.
00:07:56 <augur> or a consistent one, anyway.
00:08:10 <alise> aye, but syntactically
00:08:12 <alise> in logic, I can say
00:08:15 <alise> p & ~p
00:08:19 <alise> it's untrue, but I can formulate it
00:08:27 <alise> you could declare "any false statement is a syntax error", but I mean rather in the sense
00:08:30 <augur> you can formulate it, if by formulate you mean "write the symbols"
00:08:31 <alise> if you thought of p & ~p
00:08:37 <alise> and followed the normal process of logical expression -> language
00:08:39 <alise> you would run into a dead end
00:08:42 <augur> but p & ~p CANNOT be formulated from the AXIOMS of your logic
00:08:49 <alise> write the symbols, yes
00:08:51 <alise> that is what I mean
00:09:00 <alise> instead of just saying
00:09:02 <augur> but your axioms happen to be nothing more than the grammar of some higher order language
00:09:03 <alise> false things are syntax errors
00:09:08 <alise> it would be
00:09:13 <alise> this is the algorithm for logic statement -> language
00:09:16 <alise> if you feed it a false statement
00:09:21 <alise> (without any special checks for that;
00:09:27 <augur> right but alise, my point is
00:09:28 <alise> i.e. it doesn't do | ifFalse x = lolerror)
00:09:31 <alise> it just runs into a dead end
00:09:33 <alise> and goes all _|_
00:09:49 <alise> it would be the ultimate rationalist's language
00:10:07 <augur> a consistent logic is merely a particular sort of grammar
00:10:17 <alise> One would simply be unable to express any false thought in it; all that is said will be either true, or nonsense in the same way that "If the ;fdg" is in English.
00:10:23 <augur> thats what logic is, after all, a grammar for a particular language
00:10:34 <alise> yes, but is it practical to define such a language?
00:10:40 <alise> Could humans learn it, even if communication in it would be slow?
00:10:43 <augur> well it wouldnt be possible for a human to learn
00:10:44 <alise> (and possibly require translation)
00:10:48 <alise> i.e. not really learn
00:10:52 <alise> but memorise the algorithm to speak in it
00:11:21 <augur> its possible for people to consciously learn pretty much anything
00:11:25 <augur> but that doesnt make it language
00:11:58 <augur> just because i can speak in lisp doesnt mean that my brain is treating lisp remotely like its treating english
00:12:20 <oklopol> you can't consciously learn to fly tho
00:12:33 <augur> this is true.
00:12:35 <alise> i really want to become fluent in a programming language
00:12:43 <alise> I believe people can be fluent in Perl; nay, I believe people /are/ fluent in Perl.
00:12:55 <alise> Not the entire range of Perl programs, just like most English speakers aren't poets.
00:12:57 <augur> not like they are with a natural language
00:12:59 <alise> But a good subset of it.
00:13:03 <alise> augur: Why not? Perl is close.
00:13:24 <alise> say "Hello, world" if $appliance->on;
00:13:32 <alise> Say "Hello, world" if the appliance's on.
00:13:44 <augur> indeed
00:13:45 <oklopol> i don't know about perl, but python is certainly easier to speak in than natural languages, there's just a slight lack of vocabulary
00:14:01 <augur> but thats a) a subset, and b) not exactly underived FROM a natural language
00:14:12 <alise> Languages borrow from each other.
00:14:17 <oklopol> in python, you never have to think, you just start typing
00:14:31 <augur> yes, but being fluent in a programming language thats derived from a natural language isnt really all that interesting, is it
00:14:51 <alise> while ($appliance->on) { say for @todo_list }
00:15:09 <alise> While the appliance's on, speak for each item in todo list.
00:15:16 <alise> augur: yes it is
00:15:18 <augur> because you're not really fluent in the programming language
00:15:22 <alise> it means you can express your thoughts to the computer incredibly naturally
00:15:29 <augur> its more that the computer is fluent in that (subset) of your natural language.
00:15:31 <alise> augur: Perlists seem to be incredibly good with their idioms
00:15:49 <alise> I'm not so sure you can claim outright that nobody is fluent in a useful, common subset of PErl.
00:15:51 <alise> *Perl
00:15:57 <augur> sure, but the point is that those idioms are parasitic on your pre-existing competence in english
00:16:04 <alise> The differences between it and natural languages aren't that big.
00:16:06 <alise> augur: Of course.
00:16:13 <alise> But they're still /different/.
00:16:19 <augur> perhaps
00:16:36 <alise> If they were invented idioms of the same general lax form, I bet you could learn it to a similar degree of fluency; with tens to hundreds of times the effort, yes.
00:16:38 <augur> but if theyre different in ways that arent impossible in natural language, all you've done is become fluent in a natural language that happens to not be natural.
00:16:49 <alise> But just as you can learn English idioms, idioms of the same form are learnable too, whether they're in a programming language or not.
00:16:52 <augur> the real question is could someone be fluent in something like Forth
00:16:56 <augur> which is decidedly unnatural
00:17:09 <alise> is SOV really that unnatural
00:17:15 <alise> or is it OSV, dunno
00:17:17 <augur> its not that Forth is SOV
00:17:21 <alise> 2 3 - => 2 - 3
00:17:22 <alise> so SOV
00:17:22 <augur> its that forth is stack oriented
00:17:34 <augur> SOV languages are by far the most common
00:17:39 <alise> augur: good Forth has a small stack, though.
00:17:51 <alise> and never does thing ............... verb
00:17:54 <augur> perhaps. in principle it could be arbitrarily large
00:17:59 <augur> in _principle_ anyway
00:18:08 <alise> you can write sentences that mention a thing, go on a million tangents, then continue talking about that thing in english too
00:18:13 <alise> doesn't mean fluency in english is impossible
00:18:25 <augur> eh. example
00:19:12 <alise> okay
00:20:14 <augur> i mean, its not like you dont get big constructions like that in natural language, right. SOV languages notoriously have deeply nested things like that. but what im talking about is GENUINELY stack oriented. not merely SOV with large things between the S/O and the V
00:20:17 <alise> The oranges, which were the cause of a gross incident in 1794 when Tom, who was a rat in a band primarily targeted towards the 8-12 horse-lover market, died after eating one that looked incredibly delicious, though this was in fact unwise as the turtles that pooped them out actually made sure they were poisonous, as they positively hated turtles, though, of course, Tom was completely oblivious to this fact when he digested them, were eaten.
00:20:46 <augur> e.g. with stack operations like swap, rotate, duplicate, etc.
00:20:57 <alise> rot is bad Forth style
00:21:06 <alise> and Lojban has things similar to swap and rot
00:21:11 <alise> erm
00:21:12 <alise> and dup
00:21:12 <augur> perhaps. i wasnt using forth itself as a good example of this.
00:21:16 <alise> (you can specify argument position and I'm sure you can say "again" for an argument)
00:21:26 <augur> but the point is that genuine stack orientedness seems VERY difficult for people to grasp
00:21:35 <alise> I do think if Forth's vocabulary was about the world rather than a computer, it would be possible to be fluent in it.
00:22:05 <augur> that doesnt seem to be the case, however.
00:22:18 <alise> cannibals their species members dup eat do
00:22:30 <alise> erm
00:22:32 <alise> let me rewrite that
00:22:41 <augur> dup itself actually wouldnt be enormously complicated, to be honest
00:22:47 <alise> cannibals their species members dup eat are-those-that
00:22:49 <augur> its just kinda like very local reflexivity
00:22:58 <alise> errr
00:22:58 <augur> more like
00:23:00 <alise> this is hard
00:23:03 <alise> their species members dup eat
00:23:12 <augur> cannibals species their members dup eat
00:23:17 <alise> "Members of their species eat members of their species"
00:23:22 <alise> augur: right
00:23:32 <alise> also note that idiomatic forth actually reads in english style :)
00:23:40 <alise> as in, SVO
00:23:44 <alise> because of the typical style of coding
00:23:58 <augur> i wonder if japanese idiomatic forth reads more SOV
00:24:09 <alise> i don't think anyone writes japanese idiomatic forth
00:24:14 <augur> unfortunate.
00:24:19 <augur> i would bet it doesnt look like SOV at all.
00:24:25 <alise> but i think the vocab shapes it
00:24:26 <alise> the lang
00:24:27 <alise> as in
00:24:36 <alise> SVO presumably has properties that make implementation, and the use of it, superior
00:24:38 <augur> a better question tho is whether or not such a limitation would be because of MEMORY or because of grammar
00:24:43 <alise> otherwise forthers would just accept the rpn; they do for arithmetic
00:24:50 <alise> anyway dup would be useful in everyday speech
00:24:53 <alise> i think
00:24:58 <augur> well, we sort of DO have dupe
00:24:59 <augur> dup
00:25:03 <augur> its called a reflexive
00:25:10 <alise> "I read it and dup and dup, but I still didn't understand it."
00:25:20 <augur> what
00:25:50 <alise> in forth,
00:25:57 <alise> i it read dup and dup and
00:26:01 <augur> whats the dup's doing there tho
00:26:07 <alise> i.e., you get i-read-it on the stack, then you get i-read-it i-read-it
00:26:09 <alise> then you and it
00:26:13 <alise> i-read-it-and-i-read-it
00:26:15 <alise> and again
00:26:17 <alise> i-read-it-and-i-read-it-and-i-read-it
00:26:18 <augur> oh i see
00:26:22 <alise> "I read it and read it and read it, but I still didn't understand it."
00:26:25 -!- coppro has quit (Remote host closed the connection).
00:26:45 <augur> well you'd have four readings
00:26:47 <augur> but whatever
00:26:56 <alise> why
00:27:07 <augur> because you're duping "i-read-it-and-i-read-it"
00:27:11 <alise> ah, yes
00:27:14 <alise> whatever
00:27:15 <augur> but anyway
00:27:24 -!- coppro has joined.
00:27:32 <oklopol> what, why would dup duplicated the whole stack
00:27:36 <augur> we can SORT of do that
00:27:41 <oklopol> *duplicate
00:27:42 <augur> oklopol: its not the whole stack
00:27:45 <oklopol> well then
00:27:50 <oklopol> why would it concatenate its result
00:27:52 <oklopol> s
00:27:52 <augur> its the top most syntactic object, which is a conjunction in this case
00:27:58 <augur> apparently, according to ehird.
00:28:05 <oklopol> oh, the why have a stack
00:28:07 <alise> *alise
00:28:07 <augur> but anyway
00:28:11 <oklopol> *then
00:28:16 <alise> oklopol: for multiple values
00:28:20 <alise> oranges sam ate
00:28:22 <alise> oranges
00:28:23 <alise> oranges sam
00:28:24 <oklopol> well i mean
00:28:26 <alise> sam-ate-oranges
00:28:28 <alise> I like OSV
00:28:32 <alise> it's poetic. :P
00:28:38 <alise> (yes, I know, don't start)
00:28:40 <augur> alise, we do sort of have dup
00:28:46 <augur> in that you have reflexives
00:28:50 <oklopol> if dup is o => o+o instead of o => o, o; that's just not very stacky
00:28:53 <alise> augur: like?
00:28:56 <augur> e.g. "john hit himself" ~ john dup hit
00:28:57 <alise> oklopol: dup is o => o o
00:29:05 <alise> it i read dup and
00:29:05 <alise> ->
00:29:06 <alise> it
00:29:07 <alise> it i
00:29:08 <oklopol> eh
00:29:10 <alise> i-read-it
00:29:12 <alise> i-read-it i-read-it
00:29:13 <oklopol> you clearly aren't following this conversation
00:29:14 <alise> i-read-it-and-i-read-it
00:29:32 <augur> infact, some languages mark reflexivity on the verb
00:29:40 <augur> so there is a marker essentially like
00:29:47 <augur> john duphit
00:29:48 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
00:30:01 <oklopol> stack oriented is easy to read if you actively visualize everything
00:30:19 <augur> except reflexivity is extraordinarily flexible in what can be reflexivized
00:30:29 <oklopol> i mean actually visualize a stack of those objects
00:30:39 <augur> oklopol: thats exactly the point
00:30:46 <augur> you have to visualize this shit to understand it
00:30:54 <augur> which is NOT the case with natural language
00:31:05 <augur> you dont have to even THINK about what someone says to just understand it
00:31:09 <oklopol> sure i do
00:31:18 <augur> no, you dont, stop being obstinate
00:31:20 <oklopol> i often have to translate sentences to logic
00:31:25 <oklopol> and use inference rules
00:31:27 <oklopol> no seriously
00:31:37 <alise> augur: when will you realise that *oklopol* *is* *not* *human*
00:31:38 <alise> just get ove rit
00:31:40 <alise> *over it
00:31:48 <alise> you can't make your rules apply to him just because you say they do
00:31:52 <augur> alise: :P
00:31:57 <alise> your theory works on humans, not oklopol
00:31:59 <alise> give up
00:32:10 <augur> oklopol just likes being contrarian
00:32:10 <oklopol> i mean sure, sometimes i can read sentences without thinking, just like i can sometimes read code or math without thinking
00:32:28 <oklopol> but just as often, i need to do some intermediate steps
00:32:31 <alise> augur: I'm pretty sure his cognitive structure is different to most people's.
00:32:34 <augur> little does he realize how little he actually knows about what is going on in his mind
00:32:40 <oklopol> lol
00:32:55 <alise> Although I've never found anyone with the same configuration, so I hereby deem it oklism.
00:33:39 <augur> brb
00:34:06 <oklopol> "augur: little does he realize how little he actually knows about what is going on in his mind" <<< this is very insulting
00:34:23 <alise> agreed
00:34:43 <augur> oklopol: no, its just a fact. humans are barely aware of whats actually going on in their brains.
00:34:44 <alise> i think augur is a bit too certain of the universal applicability of mainstream linguistics
00:34:54 <alise> augur: if oklopol reads a sentence, can't understand it
00:34:56 <alise> translates it to logic
00:34:58 <alise> and understands it
00:35:02 <augur> im not saying that doesnt happen
00:35:04 <alise> then his brain clearly didn't understand it until that happened
00:35:14 <augur> that happens plenty for lots of people
00:35:17 <oklopol> augur: it's also a fact i often need to translate sentences to logic, very explicitly, to see what they mean.
00:35:34 <oklopol> i mean i actually visualize the simplification of the sentence
00:35:37 <augur> oklopol, you didnt translate the sentence you just said FROM logic into english.
00:35:48 <augur> nor the one i just said INTO logic
00:35:58 <alise> he said often
00:35:59 <alise> not always
00:36:04 <augur> and thats the point!
00:36:04 <oklopol> no, i didn't, i don't always have to do that, just like i usually don't have to think about what python line to write, or how to manipulate some algebraic expression.
00:36:17 <augur> sure
00:36:27 <augur> anyway, this is stupid
00:36:31 <alise> if I could be more like oklopol i would
00:36:33 <alise> ...up to a certain point
00:37:09 <oklopol> yes, it's very stupid to tell me how i think.
00:37:13 -!- oerjan has joined.
00:37:23 <augur> its very stupid to think you know how you think :P
00:37:32 <Sgeo> alise, did you get those pictures, or is that irrelevant now?
00:37:34 <oerjan> words to live by
00:37:39 <alise> Sgeo: it's probably irrelevant for now
00:37:41 <oklopol> sure, but it's not stupid of me to tell you facts about how i think.
00:37:52 <augur> but you dont KNOW the facts about how you think
00:37:54 <oklopol> i don't claim to understand it
00:37:54 <augur> thats the point
00:38:03 <oerjan> oh it's oklopol, he's not human anyway
00:38:03 <oklopol> not "the facts", some facts
00:38:22 <augur> anyway
00:38:49 <alise> <alise> augur: when will you realise that *oklopol* *is* *not* *human*
00:38:49 <alise> <alise> just get ove rit
00:38:49 <alise> <alise> *over it
00:38:49 <alise> <alise> you can't make your rules apply to him just because you say they do
00:38:49 <alise> <augur> alise: :P
00:38:50 <alise> <alise> your theory works on humans, not oklopol
00:38:51 <alise> <alise> give up
00:38:54 <alise> oerjan: he didn't listen
00:38:59 <oklopol> "augur: oklopol, you didnt translate the sentence you just said FROM logic into english." <<< i usually picture an arrow from logic to english to see what way the objects map
00:39:02 <alise> (<alise> augur: I'm pretty sure his cognitive structure is different to most people's. <alise> Although I've never found anyone with the same configuration, so I hereby deem it oklism.)
00:39:20 <augur> ANYWAY
00:39:23 <oerjan> alise: hey i didn't remember you saying that
00:39:27 <augur> this is a stupid thing to talk about.
00:39:31 <alise> oerjan: I said it just before you came in. :P
00:39:36 <oerjan> so clearly he now has it from two _independent_ sources
00:39:36 <oklopol> yeah, it is stupid, stop it
00:39:48 <oerjan> augur: it's _science_, bitch
00:40:05 <augur> oerjan: you're right, it is. and science has shown that people dont have a fucking clue whats going on in their heads.
00:40:12 <alise> I wish I was oklistic
00:40:16 <augur> but they THINK they do
00:40:18 <oerjan> augur: no, i mean that oklopol isn't human
00:40:23 <augur> oerjan: :P
00:40:34 <alise> I should set up the Society for the Study and Recognition of Oklism
00:40:48 <oklopol> i don't really believe much of science, i just believe in individual studies.
00:40:54 <alise> on our website under Experiments will be conversation snippets from oklopol
00:41:12 <oklopol> the actual science is how researchers interpreted the stuff, i want to make my own interpretations.
00:41:13 <augur> today i went to a linguistics talk
00:41:16 <augur> a PLENARY talk
00:41:17 <augur> in which
00:41:20 <augur> one of the examples
00:41:36 <oklopol> alise: you're such a fangirl :D
00:41:50 <oklopol> oh shit it's late
00:41:58 <augur> one of the examples was
00:42:04 <augur> and i swear, this is quoted directly from the handout
00:42:23 <augur> "When he came, his semen short circuited the sander and electrocuted him dead"
00:42:24 <alise> oklopol: totally
00:42:38 <alise> augur: hahaha what
00:42:44 <augur> yes
00:42:54 <augur> i fucking swear
00:43:11 <augur> you shouldve seen the stuff that was common back in the generative semantics days
00:43:33 <augur> there was a transformational grammar rule called the Euphemistic Genital Deletion rule
00:43:39 <alise> XD
00:43:48 <oerjan> clearly this was from the olden days, when men were real men, women were real women, and sex was fucking dangerous
00:43:55 <augur> which took sentences like "John's penis was too big to fit into Mary's vagina" and turned it into "John was too big for Mary"
00:44:02 <alise> "Grinder's Apparel Pronoun Deletion (for the syntactic behavior f certain sentences concerning disrobing)"
00:44:04 <alise> what.
00:44:11 <alise> oerjan: :D
00:44:15 <augur> :)
00:44:20 * oklopol had to visualize that situation to understand the sentence
00:44:24 <oklopol> oh wait
00:44:28 <oklopol> i guess also i should stop this
00:44:32 <oklopol> not just you
00:44:35 <augur> oklopol, are you too big for me?
00:44:36 <augur> :X
00:44:46 <augur> alise, there were also shit tonnes of references to drugs and politics
00:44:50 <oklopol> really i think i'm just retarded
00:44:56 <augur> i think you're just a nerd
00:44:56 <alise> augur: what about hugs
00:45:00 <alise> where there any references to hugs
00:45:05 <augur> who's too into being a nerd
00:45:05 <alise> *were
00:45:08 <augur> alise: no, no hugs
00:45:17 <alise> you don't think oklopol thinks a leetle bit differently from the average human being?
00:45:28 <alise> his esolangs and `quote should be rather sufficient evidence for that
00:45:35 -!- FireFly has quit (Quit: Leaving).
00:45:42 <alise> ...as well as his university career
00:45:51 <alise> `quote oklopol
00:45:53 <HackEgo> 48|<oklopol> i can get an erection out of a plank, you can quote me on that. 50|<oklopol>
00:45:57 <alise> `quote oklopol
00:45:58 <HackEgo> 48|<oklopol> i can get an erection out of a plank, you can quote me on that. 50|<oklopol>
00:46:02 <alise> stupid HackEgo
00:46:11 <alise> http://209.20.80.194/sgeo/quotes.txt
00:46:22 <augur> alise: maybe hes a wee aspy, but honestly, not really. he comes off like a typical "TEEHEE IM A NERD IVE GOT OCD OMG IM ADDICTED TO CAFFEINE TEEHEE SO NERDY" nerd
00:46:28 <alise> 91|<oklopol> actually just ate some of the dog food because i didn't have any human food... after a while they start tasting like porridge
00:46:31 <alise> augur: he's right here, you know
00:46:33 <alise> and you're being a jerk
00:46:34 <augur> only hes smarter when it comes to his pseudoailments
00:46:48 <alise> I've never seen oklopol describe himself as having some ailment; ever.
00:46:53 <alise> well, at least, not a mental one.
00:47:01 <augur> and youll never see a nerd describe his "ocd" as an ailment either
00:47:05 <augur> thats irrelevant.
00:47:18 <augur> also, hes a big boy, im sure he can handle some mild criticism.
00:47:38 <alise> oklopol: i think this is the point where you demolish him intellectually and he feels terribly small
00:47:42 <alise> QUICK
00:47:43 <alise> :P
00:47:51 <augur> "Hey, if John went to Chicago, that means we'll soon have a big supply of dope."
00:47:59 <augur> another sentence from the good old Generative Semantics days
00:48:12 <pikhq> ... Ate dog food? WTF?
00:48:43 <alise> if it tastes like porridge i see no problem
00:48:50 <augur> "Nixon, you imperialist butcher, take your lunatic Secretary of Defence and shove him up your ass"
00:48:54 <MissPiggy> lol
00:49:30 <alise> also 53|<oklopol> anyway, torture would be fun to experience, true <oklopol> should put that on my todo list
00:49:37 * oerjan has subconsciously classified oklopol as the sanest person on this channel, actually. admittedly my classifications may not be reliable.
00:49:51 <alise> he's so sane he wrapped around again
00:49:54 <alise> and again, a few more times
00:49:57 <augur> alise: lol.
00:50:16 <augur> you know im kinda into bdsm? as in, whipping.
00:50:26 <alise> we don't need to know.
00:50:27 <oklopol> :Ds
00:50:31 <augur> oklopol: :D
00:50:39 <alise> no, really, we have no requirement for that knowledge. whatsoever
00:50:41 <oerjan> i didn't _know_, but i was in no way _surprised_
00:50:49 <augur> ;)
00:51:07 <alise> oerjan: I think he interpreted your statement as innuendo.
00:51:11 <oerjan> so perhaps i knew, subconsciously
00:51:19 <Gregor> oerjan: oklopol? Really? Until you made that claim, I would have said /you/ were amongst the sanest people on this channel.
00:51:27 <alise> god I'm such a genius
00:51:31 <alise> sorry, just had a bout of egotism there
00:51:33 <alise> happens occasionally
00:51:43 <Gregor> alise: EgoBot forgives you.
00:51:56 <alise> how genius is egobot
00:52:00 <oerjan> Gregor: hm
00:52:13 <pikhq> Gregor: I'd term you one of the sanest.
00:52:18 <Gregor> Pah
00:52:19 <Gregor> Nonsense
00:52:20 <pikhq> Though I'm not entirely sure how.
00:52:38 <pikhq> Before oerjan thinking oklopol sane, I would have termed him the sanest. :P
00:53:44 <Sgeo> Where am I sanity-wise
00:53:48 <oklopol> "augur: oklopol, are you too big for me?" <<< yeah i doubt my penis would fit in your penis
00:54:14 <augur> oklopol: we could try
00:54:34 <oklopol> i'm not nerdy
00:54:50 <augur> i think thats the most false thing ive ever heard.
00:54:56 <oerjan> hypothesis: sanity does not travel well over irc
00:54:58 <alise> oklopol isn't a nerd
00:55:08 <augur> nerd, geek, i use them interchangably
00:55:22 <alise> he has a sex life (or has been lying to us consistently), he tends to have a negative opinion of coding
00:55:27 <oklopol> but yeah, the reason i usually don't tell people i'm mad is because everyone does it
00:55:28 <alise> definitely not a computer geek, mathematics geek maybe
00:55:28 <oerjan> Sgeo: insufficient data for meaningful answer
00:55:35 <alise> his esolangs always tend towards the theoretical, so
00:55:36 <Sgeo> AFK
00:55:45 <augur> http://wellnowwhat.net/linguistics/gs.pdf
00:55:47 <alise> i don't remember him showing any ginormous enthusiasm to CS
00:55:48 <oklopol> so i just occasionally mention facts about my life, it's equally fun, i love sharing
00:55:50 <alise> so i guess maths nerd
00:55:52 <augur> in case anyones interested in the Generative Semantics program
00:56:05 <alise> AnMaster is the sanest here, probably, but he's also boring and orthodox and wrong.
00:56:08 <oklopol> alise: i don't really think i can demolish people intellectually
00:56:12 <alise> bah
00:56:15 <alise> ... i said that years ago
00:56:16 <alise> :P
00:56:31 <alise> Gregor is probably the second-sanest, and is vastly superior by way of being actually interesting and not hideously wrong about everything
00:56:38 <olsner> oerjan: I think insanity just carries much more funnily over IRC
00:57:04 <olsner> well, sanity is boring, that's what
00:57:06 <oerjan> olsner: what a ridiculous hypothesis -----###
00:58:09 <olsner> ridiculous? how?
00:58:31 <oklopol> also i don't think i have ocd, i have the ability to get interested in whatever i want, so i can simulate ocd is i find that necessary.
00:58:35 <oerjan> if you don't understand that i'll have to drown you in tomato sauce. spicy.
00:58:38 <alise> olsner: right but Gregor is a sane, normal person he's just intelligent and has weird ideas
00:58:42 <oklopol> this is just a skill i've spent thousands of hours developing.
00:58:55 <augur> oklopol: i dont think you have ocd either. i was just using that as an example of the _typical_ geek "fake ailment"
00:58:56 <oklopol> ...okay that came out wrong
00:59:02 <augur> thats what she said
00:59:11 <alise> AnMaster is a sane, normal person and sure okay he has intelligence but his ideas are boring and he doesn't seem to be able to think of really interesting ones
00:59:19 <alise> dunno how you'd quantify the different, it isn't sanity
00:59:20 <oerjan> augur: how would that even work
00:59:23 <augur> speaking of her, hows 2tullia?
00:59:26 <oerjan> wait, don't answer
00:59:28 <alise> maybe... creativity but on the oddness axis
00:59:30 <augur> oerjan: how would what even work? X
00:59:31 <augur> XD
01:00:28 <oklopol> i'm also not addicted to coffee, just caffeine, and i definitely love addictions
01:00:53 <oerjan> food ->
01:01:28 <oklopol> so really none of what you said is true of me, but probably i do sound like exactly how you described me
01:01:28 <oklopol> also i wish my lag was a few minutes less.
01:01:37 <olsner> I'm definitely getting/gotten stuck on my new esolang...
01:01:51 <pikhq> alise: Gregor's actually somewhat eccentric.
01:02:12 <augur> oklopol: i didnt say YOU portrayed yourself as having OCD or a coffee addiction
01:02:17 <augur> i specifically said you DIDNT
01:02:31 <augur> i said you portray yourself with similarly geeky "quirks"
01:02:51 <augur> eg "lol i have to translate into higher order predicate logic to understand you lololol"
01:03:02 <augur> which is an exageration of what you said but you get the point
01:03:19 <alise> pikhq: presumably he can function normally in society
01:03:20 <olsner> hmm, maybe I should just make it turing complete, release it and leave it for the rest of the world to figure out how to do IO with it... but that seems kind of boring
01:03:21 <alise> apart from the hat thing
01:03:28 <oklopol> anyway i do like telling people how mad i am, but it's not so much that i want to separate myself from others or anything, i just love sharing personal details, especially all sorts of craziness, which i'm very enthusiastic about, in both directions
01:03:29 <alise> olsner: what is it?
01:03:31 <alise> tell us
01:04:03 <augur> oklopol: enthusiasm about ones presumed madnesses is a typical geek trait. which is the point. :|
01:04:12 <pikhq> alise: "Eccentric" does not mean "cannot function normally".
01:04:33 <alise> well i mean
01:04:35 <pikhq> alise: Means things like "has a fondness for hats" or "has a fondness for a soda that can't be easily found outside of Maine".
01:04:37 <olsner> alise: fun with making input and output harder instead of (or in addition to) making the actual computation hard
01:04:47 <alise> pikhq: yes but I wouldn't consider those in any way related to real insanity
01:05:01 <alise> by which I don't mean literally not being sane, but being really crazy
01:05:01 -!- Asztal has quit (Ping timeout: 246 seconds).
01:05:03 <pikhq> alise: Yes. I'm not saying he's insane in any way.
01:05:06 <alise> oklopol is crazy, Gregor isn't
01:05:10 <pikhq> Just mildly eccentric.
01:08:12 <olsner> trying to figure out just how hard I actually made it, but it looks like a 'cat' program is around O(n^2.3) in input size (that's with C-code and MPFR and GMP doing the computation, doing it by hand in some turing tarpit would probably be a lot slower)
01:09:23 <oklopol> augur: i'm not really especially enthusiastic in my own madness
01:09:23 <oklopol> in fact definitely more interesting in others
01:09:35 <oklopol> but yes, i get your point
01:11:36 <oklopol> i have exactly the same characteristics as a generic own-geekiness-loving geek has. and maybe i have them for the same reasons every other geek has. really i'm just correcting your details because i dislike you telling me these facts, because they are annoying.
01:11:58 <oklopol> or something along those lines
01:12:13 <augur> oklopol, those "details" were explicitly stated as being NOT facts about YOU
01:12:35 <oklopol> yeah, yeah, and i guess i misinterpreted them.
01:12:42 <oklopol> i mean misinterpreted the sentence
01:13:00 <augur> yes, obviously.
01:13:01 <oklopol> this lag makes it sorta hard to pay attention
01:13:39 <oerjan> oklopol: wait, the ping _says_ 19 seconds but the response was _actually_ immediate
01:13:39 <augur> lag, or drugs
01:13:53 <oerjan> you're not lagged to me
01:13:58 <augur> oerjan: his computer is high.
01:14:07 <oklopol> in any case, i have to correct something, because i can't correct your impression of me.
01:14:18 <oklopol> :P
01:14:20 <alise> oklopol: well i think you're a beautiful snowflake.
01:14:40 <augur> i think oklopol is a hot piece of manmeat
01:14:59 <oklopol> i hear i'm pretty hot when i've showered recently
01:15:00 <oerjan> i'm not significantly lagged to augur either
01:15:18 <augur> oklopol, i demant photographic proof
01:15:20 <oklopol> speaking of which, she's fine, currently visiting her parents and works with some dude with MS
01:15:35 <oklopol> hmm
01:15:36 <oklopol> that was a weird sentence
01:15:41 <oklopol> two different facts about her
01:15:47 <oklopol> not sure if either is very relevant
01:16:36 -!- blagobu has joined.
01:16:48 <oerjan> especially since she hadn't been previously mentioned, you know
01:16:49 <augur> well
01:16:54 <augur> what was weird about it is the tense mismatch
01:16:58 <oklopol> sure she had
01:17:01 <augur> its actually ungrammatically
01:17:02 <Gregor> Hm, Hackiki is just a little over three months old.
01:17:03 <augur> ..
01:17:05 <augur> ungrammatical.
01:17:09 <oerjan> not recently
01:17:17 <Gregor> I neglected to celebrate its 1/4th-year anniversary :P
01:17:58 <oklopol> augur: you're mom is ungrammatical
01:18:04 <augur> she often is
01:18:13 <augur> as is "you're mom is ungrammatical"
01:18:14 <oerjan> Gregor: you'll be _so_ sorry for that when it develops sapience
01:18:16 <augur> :D
01:18:23 <alise> oklopol just likes to rub his wimmen lyfe into our faeces
01:18:24 <alise> er faces
01:18:29 <alise> that was /so/ a typo
01:18:36 <Gregor> oerjan: Oh I doubt it :P
01:18:46 <alise> Gregor: are you /sure/ you understood Creating Friendly AI
01:18:59 <Gregor> Who ever said it was supposed to be friendly?
01:19:04 <Gregor> MUAHAHAHAHAAHAHAHAHAHAHAHAHAHAHAHA
01:19:06 <alise> oh, dear
01:19:14 <alise> well at least we'll have all the paperclips we could possibly want
01:19:19 <alise> unfortunately, "we" will be an empty set
01:20:04 <oerjan> paperclips is _so_ last cataclysm
01:20:36 <oklopol> "alise: oklopol just likes to rub his wimmen lyfe into our faeces" <<< i keep talking about my gf, but really i try not to, it's just i don't really have much else to say in conversations, because i have gf and i have uni stuff.
01:20:36 <oklopol> i mean that's another stereotype i seriously try to fight being
01:20:36 <oklopol> the guy who always talks about his gf
01:20:37 <oklopol> i just have no life outside her
01:20:40 <oklopol> well except here and at uni i can talk about other stuff often
01:20:46 <augur> http://www.youtube.com/watch?v=Xc9l7pygQRo
01:20:48 <augur> great music
01:20:51 <augur> fucked up video
01:20:56 <alise> is it gitten rape
01:20:57 <pikhq> ... Life?
01:20:59 <alise> *kitten
01:21:01 <oklopol> so i guess i'm not that guy here, but irl i often feel like i am
01:21:07 <pikhq> What is this "social life" of which you speak.
01:21:08 <oerjan> oklopol: wait you're always inside her?
01:21:19 <pikhq> My social life seriously consists of IM and IRC.
01:21:25 -!- blagobu has left (?).
01:21:43 <augur> oklopol: do you really talk about 2tuulia much??
01:21:46 <augur> i dont notice this.
01:22:02 <oklopol> oh? cool
01:22:06 <pikhq> oklopol has a girlfriend?
01:22:39 -!- jcp has joined.
01:22:59 <alise> has he ever not had a girlfriend
01:23:08 <oklopol> i thought i mention my gf all the time, probably i'm just paranoid
01:23:08 <oklopol> yeah, we've lived together for 1.5 years
01:23:08 <oklopol> okay maybe i don't talk about her *that much*.
01:23:32 <oerjan> surprisingly rarely
01:23:42 <alise> oklopol: oh i thought it was probably a new one
01:23:48 <alise> you know, oklopol, surely you can't do the same thing for like
01:23:50 <oklopol> you don't know that. i didn't have a gf like half of high school
01:23:51 <alise> more than a few hours
01:23:52 <alise> oh cool
01:23:55 <alise> unintentional innuendo
01:23:56 <alise> i am rad
01:24:12 <oklopol> just casual sex with my ex
01:24:47 <augur> oklopol, can we have casual sex? :D
01:24:50 * Sgeo never had a gf
01:25:09 <oklopol> i don't really have sex with dudes
01:25:22 <augur> well you should start
01:25:40 <alise> Sgeo: boo hoo
01:25:41 <oklopol> well i don't really have a reason not to try it
01:25:43 <augur> especially with me.
01:25:44 <oklopol> except that guys are ugly
01:25:48 <Gregor> <oklopol> i don't really have sex with dudes, only in my imagination
01:25:49 <augur> you're not!
01:25:51 <Sgeo> /me is fully willing to have sex with a female who once was a dude
01:26:09 <augur> sgeo is a modern, 21st century man.
01:26:27 <oklopol> augur: yeah but i can't have sex with myself
01:26:36 <augur> oklopol: clones.
01:26:40 <oklopol> ah!
01:26:47 <Gregor> "I'm fully willing to have sex with a woman who was once a man, or a man who was once a woman, or a frog who was once a prince."
01:26:47 <oerjan> send in the clones
01:27:01 <oerjan> Gregor: that a quote?
01:27:09 <augur> Gregor: :D
01:27:15 <Gregor> Not of somebody, I just wanted to make it clear that frog sex was not my statement :P
01:27:17 <oklopol> Sgeo: i've gotten most of my girlfriends by essentially stalking them and constantly telling them they're pretty (well except for the three longer relationships i've had :P)
01:27:29 <oklopol> so, there's a good tip
01:27:46 <augur> tip: dont stalk girls
01:27:48 <augur> obviously.
01:27:49 <Gregor> So, they were only girlfriends in your mind then :P
01:27:55 <Gregor> <augur> Stalk guys instead
01:28:14 <oerjan> <gregor> Lie about what people say
01:28:25 <augur> Gregor: entirely true.
01:28:39 <Gregor> oerjan: Pretty much.
01:28:47 <Gregor> <Gregor> Sockpuppetting is fun!
01:29:38 <oklopol> i only have sex with femaly frogs
01:29:41 <oklopol> *female
01:29:43 <pikhq> 本当に!
01:29:54 <Gregor> "femaly"
01:29:57 <oklopol> a prince would turn into a male frog right?
01:29:57 <Gregor> Well, female enough.
01:30:11 <Gregor> Probably?
01:30:26 <Gregor> Male and female frogs both have cloacas, so who cares :P
01:30:40 <oklopol> i was just about to ask about their genitals
01:31:01 <oklopol> biology is not one of my strongest subjects
01:31:32 <pikhq> Nonmammalian genitalia are unusual.
01:31:42 <Gregor> pikhq: That was a dumb statement :P
01:31:52 <augur> oklopol: dont deny it, dudes are sexful.
01:31:52 <oerjan> no they're not, they're the majority
01:32:13 <Sgeo> So I was on this quiz bowl thing at school, and we were practicing. One of the questions was about some hormone. So I answered "Reproductive system"
01:32:26 <pikhq> Gregor: I pride myself on dumb statements.
01:32:36 <alise> <Sgeo> /me is fully willing to have sex with a female who once was a dude
01:32:40 <Sgeo> "Trust $name to know all about the reproductive system. The female reproductive system"
01:32:42 <oklopol> augur: yes i do
01:32:47 <alise> transvaginas tend to be much less sensitive than the real thing iirc
01:32:54 <alise> if you can settle for penor i guess that's acceptable
01:33:14 <Sgeo> I don't want penor
01:33:25 <augur> what? XD
01:33:29 * augur flops on oklopols lap
01:33:37 <Gregor> This conversation is so much bizarre :P
01:33:56 <pikhq> Sgeo: Well tough for you. You have penor.
01:34:05 <bsmntbombdood> did someone say penor?
01:34:08 <pikhq> And you're not about to remove it.
01:34:09 <augur> XD
01:34:09 <oklopol> augur: is that one of those complicated verbs?
01:34:10 <Gregor> <Sgeo> Not for long!
01:34:16 <Gregor> bsmntbombdood: THAT drags you out of idle-land? :P
01:34:17 <augur> oklopol: no. its one of those simple ones.
01:34:25 <oerjan> `define penor
01:34:27 <HackEgo> * Kyabj Drubwang Pema Norbu Rinpoche (1932 - March 27, 2009) was the 11th throne holder of the Palyul Lineage of the Nyingma school of Tibetan ... \ [15]en.wikipedia.org/wiki/Penor \
01:34:30 <augur> let me translate it into first order predicate logic for you
01:34:36 <oerjan> curses
01:34:49 <augur> would you like a full derivation of the first order logic form, or do you just want the truth conditions, oklopol?
01:34:49 <bsmntbombdood> Gregor: yeah, i've got a highlight on it
01:35:28 <oklopol> augur: lol think i'm some sorta noob? latter
01:35:41 <Gregor> bsmntbombdood: Wow :P
01:37:22 <augur> ignoring tense and so forth, ∃x:augur(x)[ ∃y:oklopol(y)[ ∃e[flopping(e) & agent(e,x) & theme(e,y) ]]]
01:37:41 <augur> thats also ignoring the possibility of a verb decomposition
01:37:46 <oerjan> a not so tense conversation
01:38:03 <augur> its also neglecting possible worlds and so forth.
01:38:24 <oklopol> what's the weird character?
01:38:34 <oklopol> exists?
01:38:39 <alise> hmm
01:38:45 <alise> transpenor is pretty rubbish iirc
01:38:52 <augur> yes
01:39:06 <alise> Sgeo: do your liberal sensitivities outweigh your limited sexual prospects with transpeople>
01:39:07 <alise> **?
01:39:08 <alise> *?
01:39:09 <alise> :P
01:39:10 <augur> alise, true, but thats ok. transboy cunts can still be fun. especially transboy clit.
01:39:26 <oklopol> i see. that does indeed explain the concept quite well
01:39:29 <bsmntbombdood> oh my
01:39:31 <alise> Sgeo: are you okay with fucking a man with a cunt.
01:40:03 <Sgeo> alise, if I could pretend e was a girl, probably. But that would be unfair to em
01:40:17 <alise> in conclusion, your sexual prospects with a transperson are pretty much nil.
01:40:27 <Gregor> Double-u tee ef guys.
01:40:29 <Gregor> Seriously.
01:40:32 <Gregor> Double-u tee ef.
01:40:44 <bsmntbombdood> don't you mean double-ewe?
01:40:55 <pikhq> As in having two ewes?
01:40:56 <Gregor> bsmntbombdood: Idonno, I have no idea how to spell 'U'
01:41:06 <alise> Gregor: what
01:41:11 <alise> we got bored of gay sex, we're just being more esoteric
01:41:22 <bsmntbombdood> did someone say gay sex?
01:41:24 <Gregor> Bored of gay sex? NONSENSE
01:41:26 <alise> yes. I did.
01:42:07 <oklopol> Sgeo: are you okay with fucking a man who has a female nick?
01:42:22 <Gregor> oklopol: X-D
01:42:42 <pikhq> alise: Are you okay with fucking a man while having a female nick?
01:42:52 <augur> pikhq: who's having the female nick? D:
01:43:02 * Sgeo is not ok with fucking anyone who's underage
01:43:05 <pikhq> augur: "you"
01:43:12 <pikhq> Sgeo: That's not the question.
01:43:14 <augur> oh ok.
01:43:14 <alise> pikhq: provide me with a vagina and certainly. my anus is a tender, holy thing, emitting light, pristine in its every aspect. also, I am 14
01:43:20 <alise> just had to maximise the awkwardness of that sentence
01:43:22 <alise> hello
01:43:34 <pikhq> alise: Emitting light?
01:43:35 <oklopol> i could probably have sex with a man with a female name, but nick i dunno
01:43:37 <alise> pikhq: emitting light.
01:43:38 <pikhq> Impressive.
01:43:38 <Gregor> alise: That was pretty maximally awkward ...
01:43:44 <alise> Gregor: thank you!
01:43:54 <augur> just checking that you werent using a weird dangling modifier
01:43:56 <oklopol> that'd be illegal cuz she's just 14
01:44:10 <alise> not in the vatican
01:44:19 <pikhq> Not in Japan.
01:44:21 <alise> although i think homosex is illegal there
01:44:22 <bsmntbombdood> what's the age of consent in norway?
01:44:47 <augur> alise: i'd be gentle
01:44:48 <augur> so so gentle
01:45:05 <pikhq> alise: I suspect having *sex* is illegal there.
01:45:17 <augur> I WANTED TO SHOW YOU SUCH... TENDERNESS
01:45:17 <pikhq> Given that the priests aren't supposed to have it, and everyone else would be having sex in public.
01:45:21 <bsmntbombdood> ...yeah cuz catholics don't have sex
01:45:35 <pikhq> bsmntbombdood: Catholic priests aren't supposed to.
01:45:36 <augur> unless theyre making babies.
01:45:36 <alise> pikhq: aren't there... houses
01:45:42 <alise> there is an age of consent anyway
01:45:48 <bsmntbombdood> the vatican is a whole city, isn't it?
01:45:55 <alise> bsmntbombdood: it's a very, very small city
01:45:55 <oerjan> bsmntbombdood: 16
01:46:04 <alise> 0.44 km^2
01:46:05 <pikhq> bsmntbombdood: It's a few buildings in the middle of Rome.
01:46:07 <alise> pop 826
01:46:49 <bsmntbombdood> man
01:46:52 <bsmntbombdood> i want to move to norden
01:47:57 <Sgeo> Wait, non-priests in the Vatican don't have homes?
01:47:58 <alise> me too
01:48:17 <alise> norway, sweden or denmark would be nice.
01:48:35 <pikhq> Sgeo: There are two types of Vatican citizens.
01:48:41 <pikhq> Clergy and the Swiss Guard.
01:49:30 <pikhq> The Swiss Guard do not reside in the Vatican.
01:49:57 <bsmntbombdood> http://upload.wikimedia.org/wikipedia/commons/4/4e/Citta_del_Vaticano.svg
01:50:18 <MissPiggy> I bsmntborden
01:51:08 <pikhq> Also, the Swiss Guard are required to be single men.
01:51:27 * oklopol wants to have sex in the vatican
01:51:42 <pikhq> (if they cease this, they cease to be Swiss Guard, and thus cease to be Vatican citizens. If they have no other citizenship, they immediately become Italian citizens)
01:52:15 <Gregor> pikhq: I thought the Swiss Guard were, in fact, Swiss.
01:52:45 <pikhq> Gregor: Yes.
01:53:09 <Gregor> So how would they accomplish losing their Swiss citizenship while still being Swiss Guard at the Vatican? :P
01:53:10 <pikhq> Gregor: By being employed in that service, they become Vatican.
01:53:23 <Gregor> No dual Swiss-Vatican citizenship eh
01:53:33 <oklopol> it's one of my childhood dreams
01:53:35 <pikhq> No, that's the norm.
01:53:41 <oklopol> MY GF wants to move to norway
01:53:43 <bsmntbombdood> oklopol: kind of a lame dream
01:53:47 <pikhq> It's just there as a contingency.
01:53:52 <Gregor> Ah.
01:54:03 <pikhq> If a Vatican citizen ceases to be a citizen, and has no other citizenship, they are now Italian.
01:54:10 <pikhq> Man. Vatican as a nationality.
01:54:16 <pikhq> "I am a Vatican."
01:54:18 <bsmntbombdood> http://i.imgur.com/Akq2G.jpg
01:54:22 * bsmntbombdood wants to go to iceland
01:55:11 <oklopol> also i was out eating and there was this man talking to an imaginary woman, he'd actually ordered food for her and asked me where the female wc cuz she had to pee
01:55:38 <oklopol> (i didn't know he had an imaginary gf when he asked about the wc so i wasn't sure i should tell him :P)
01:55:58 <bsmntbombdood> yes, no, yes, yes, yes
01:56:02 <bsmntbombdood> yes, no, yes, no, no
01:57:10 <augur> so ive started smoking shisha
01:57:20 <augur> (cappuccino shisha, btw, is AWESOME)
01:57:21 <alise> i've started smoking HEROIN
01:57:30 <alise> ...up the arse.
01:57:42 <augur> and ive not gotten any interesting feelings from it. i dont see how people could get anything out of nicotine.
01:58:20 <Sgeo> Illegal drugs and publically logged channels, two great tastes that taste great together!
01:59:04 <oklopol> i've wanted a shisha since i first visited germany
01:59:15 <Gregor> Sgeo: Hookahs, although stupid, are not illegal. And heroin isn't generally smoked (can it be smoked?), so that's clearly a lie :P
01:59:18 <augur> sgeo, shisha, you realize, is hookah tobacco, right?
01:59:29 <alise> Sgeo: You do realise that mentioning drugs on IRC isn't very dangerous?
01:59:31 <pikhq> Sgeo: Tobacco is entirely legal.
01:59:34 <alise> Maybe "I'm smuggling opium"
01:59:37 <oklopol> you're not supposed to get feelings from shisha, you're supposed to enjoy all the smoke!
01:59:40 <alise> But not "Hey guys, I'm on WEED"
01:59:44 <alise> "Or should I say... GANJA"
01:59:47 <augur> you can say anything you want in irc
01:59:48 <oklopol> and the taste
01:59:49 <augur> its not illega
01:59:56 <augur> admitting to doing something illegally on the internet is irrelevant.
02:00:13 <augur> oklopol: true, and its tasty
02:00:19 <Gregor> "The Life of Mammals: The greatest wildlife show on Earth"
02:00:20 <augur> BUT
02:00:23 <augur> its got nicotive
02:00:26 <augur> nicotine
02:00:30 <augur> so you should feel it
02:00:32 <Gregor> I wonder how much time they dedicate to humans :P'
02:00:42 <augur> Gregor: none.
02:01:11 <Sgeo> Upside-domn typ hard
02:01:18 <oklopol> yeah but the shishas i did in germany (pretty much nonstop for a week, luuuuved 'em :P [total exaggeration but anyway]), at least, contained very little nicotine
02:01:30 <oklopol> prolly because you're supposed to smoke it all the time
02:01:53 <augur> shisha is pretty amazing
02:01:54 <oklopol> not once every few hours or so like the usual nicotine rolls
02:01:58 <augur> its horrible for you tho
02:02:08 <augur> if you smoke shisha like they do in turkey, for like 8 hours on and off
02:02:14 <augur> its equivalent to smoking about 200 cigarettes
02:02:17 <oklopol> :D
02:02:24 <augur> which is horrible
02:02:41 <oklopol> yeah but if it wasn't horrible for you, no one would do it
02:03:11 <oklopol> i mean it has to be at least a bit horrible to be fun
02:03:32 <augur> i beg to differ
02:03:36 <augur> LSD is pretty unhorrible for you
02:04:07 <bsmntbombdood> so's cock
02:04:29 <augur> cock especially
02:05:08 <oklopol> well if it has no bad effects, but it gives a high, of course it's fun again
02:05:08 <oklopol> but i mean you gotta have at least one
02:05:13 <alise> cock is nutritious if digested
02:05:31 * augur digests alise's cock
02:05:50 <Gregor> ...
02:05:56 <alise> o-kay
02:05:56 <oklopol> when i was in high school, two of my friends found a human cock in the woods, and one of them threw it on the other guy's face
02:05:56 <Gregor> Well that's not hot at all D-8
02:06:02 <alise> Gregor: you're clearly in denial
02:06:05 <alise> so, new competition
02:06:09 <oklopol> err
02:06:11 <alise> create a sentence /more awkward/ than that one
02:06:11 <oklopol> not high school
02:06:14 <alise> good luck
02:06:16 <Gregor> No digesting sexual organs!
02:06:27 <oklopol> the thing before that, whatever it's called
02:06:38 <oklopol> "upper elementary school"
02:09:09 <Gregor> Middle school and/or junior high
02:09:18 <Gregor> (At least, those are the names in the US)
02:10:46 <Gregor> I imagine penis would be spongy and not all that flavorful, probably not the best food as far as human meat goes.
02:10:57 <oklopol> yeah
02:11:15 <pikhq> んんん、人肉。
02:11:35 <Gregor> It could probably give flavor to soup stock though.
02:11:36 <Gregor> Human soup.
02:11:58 <oklopol> what if it was cut off while erected, with something like a string around it so the blood stays in
02:12:21 <Gregor> oklopol: Then it would be spongy, irony, and would probably burst when you bit into it.
02:12:26 <Gregor> Besides, we're humans, we usually /cook/ our food.
02:12:31 <oklopol> hmm, true
02:12:31 <bsmntbombdood> mm, blood-filled dick
02:12:33 <Gregor> So you'd just have the flavor of blood cooked into the spongy flesh.
02:12:38 <pikhq> oklopol: Sounds like the start of blood sausage.
02:12:47 <Gregor> +50 points pikhq
02:12:51 <bsmntbombdood> someone tried to convince me that erections were caused by muscles
02:13:16 <oerjan> no no it's _mussles_, surely
02:13:23 <Gregor> bsmntbombdood: Muscles in your heart push the blood, creating the initial blood pressure that eventually translates into an erection.
02:13:30 <Gregor> oerjan: All MY erections are caused by mussels.
02:13:32 <Gregor> Mmm.
02:13:32 <oerjan> *mussels
02:13:33 <Gregor> Mussels.
02:17:58 <MissPiggy> mussles turn you on?
02:19:48 <oerjan> http://www.naturalnews.com/005962.html
02:23:08 <Gregor> So, that being said, cock would probably taste mostly the same as the hens we usually eat, AFAIK there's not such a substantial difference between males and females of the species that they would actually /taste/ different.
02:24:39 <Gregor> Hm
02:24:48 <Gregor> That statement made me realize something.
02:24:51 <Gregor> Cocks don't have cocks.
02:24:53 <pikhq> Gregor: :)
02:24:56 <Gregor> Interesting thing, language.
02:25:26 <oklopol> do hens have hens?
02:26:06 <augur> yes.
02:26:09 <augur> Gregor: also yes.
02:26:30 <oerjan> ducks have cocks though, i hear
02:26:53 <Gregor> Ducks, swans and other closely-related species of bird.
02:27:18 <oerjan> think about that the next time you see Donald
02:27:52 <augur> very long cocks
02:28:16 <pikhq> And spiraled.
02:28:30 <augur> yummeh
02:29:52 <oklopol> did you know it's the devil that controls the world now, and not god, the jehovas told me this, i wasn't aware
02:30:25 <oklopol> also was that independent research, or is that their official opinion? i mean it sounds really silly
02:31:03 <oklopol> i should join some cool religion
02:31:18 <oklopol> i would totally own at that
02:31:22 <augur> you should FOUND a cool religion
02:32:37 <oklopol> that's an even yummier idea ofc
02:33:14 <alise> I have to go.
02:33:23 <alise> See you all on Friday...
02:33:31 <oklopol> see ya
02:33:34 <oklopol> good luck
02:33:40 <oklopol> maybe i could just worship john gabriel
02:33:47 <alise> And it's half term. So 90% of the day will be... sitting around. Sigh.
02:33:48 <alise> Oh well.
02:33:53 <alise> Bye. <3 you all.
02:34:03 <oklopol> you could always read about universal algebra
02:34:06 -!- alise has quit (Quit: Leaving).
02:34:28 -!- alise has joined.
02:34:30 <alise> how
02:34:32 <alise> no personal internet
02:34:33 <alise> no libary
02:34:34 <alise> *library
02:34:58 <alise> oklopol:
02:35:09 <pikhq> alise: You could write a thesis on the stupidity of all this.
02:35:12 <oklopol> well you could borrow a book from an external library
02:35:20 <alise> oklopol: no, I couldn't
02:35:24 <oklopol> oh?
02:35:29 <alise> a parent could and bring it to me
02:35:32 <alise> but we're not allowed out...
02:35:46 <oklopol> well right, i was thinking you'd bring one with ya
02:35:52 <alise> it's tomorrow you know
02:35:53 <alise> anyway
02:35:53 <alise> cya
02:35:56 -!- alise has quit (Client Quit).
02:36:02 <oklopol> hmm, yeah i guess that's a good point
02:36:12 <oklopol> bye again
02:37:05 <lament> i was set to inherit?
02:37:43 <lament> oh
02:37:51 <lament> why am i not the successor anymore? :(
02:38:31 <oerjan> lament: what?
02:38:47 <lament> i thought i was the channel successor
02:39:25 -!- jcp has quit (Read error: Connection reset by peer).
02:40:14 <lament> but now it says freenode-staff
02:40:32 <lament> and i thought calamari was an op?
02:43:57 <oerjan> maybe ask some actual staff?
02:44:29 <oerjan> the only thing i can see is that andreou is founder
02:44:58 <oerjan> (and from nickserv, that he hasn't been here for 68 weeks)
02:45:05 <oerjan> er
02:45:21 <oerjan> 38
02:45:28 <oklopol> 38
02:45:31 <Gregor> Only 38 weeks?
02:46:03 <oerjan> if it had been much more, he'd probably have been removed in the recent purge...
02:46:29 <oerjan> (some time this autumn iirc)
02:47:00 <oerjan> or wait, do i actually remember when the purge was, it could have been the year before
02:49:41 -!- augur has quit (Ping timeout: 256 seconds).
02:50:47 -!- augur_ has joined.
02:51:18 <lament> there was a purge?
02:51:25 <oerjan> yes
02:51:42 <oerjan> lots of unused nicks removed
02:52:06 <lament> ha, i got an explanation from a staffer
02:52:16 <lament> all single-# channels have freenode-staff as the successor
02:52:34 <oerjan> oh?
02:52:52 <oerjan> this is new. also impractical...
02:53:28 <oerjan> after all, we really should have replaced andreou completely a long time ago
02:53:53 <lament> somehow i always thought calamari was an op
02:53:58 <pikhq> I don't think I've ever talked to him.
02:54:10 <oerjan> you and fizzie are, aren't you?
02:54:15 <pikhq> And I'm a bit of a long-time regular by now.
02:56:12 <lament> looks like to get staff involvement we'd have to move the channel to ##esoteric
02:56:27 <lament> probably better to just maintain status-quo
02:56:35 <pikhq> ... That's really dumb.
02:56:41 <lament> i can still op people
02:56:44 <lament> and stuff
02:56:53 <lament> i dunno what is it the channel founder is for
02:57:09 <pikhq> Particularly considering that this is the closest to the official Esoteric Programming group.
02:57:14 <lament> well
02:57:21 <lament> we could try that
02:57:37 <pikhq> We do also run the wiki and the archive...
03:00:19 <coppro> all we need to do is incorporate somewhere
03:00:40 * Sgeo installs Flashblock
03:00:52 <coppro> where is esolang hosted?
03:02:27 * Sgeo hasn't played Robozzle in a while
03:05:13 <Gregor> The never-shows-up graue hosts it.
03:05:46 <Gregor> All the important figures are no-shows :P
03:06:07 <Gregor> Incidentally, the esolang wiki should totally be hosted in Hackiki ;)
03:06:25 -!- MissPiggy has quit (Quit: Lost terminal).
03:22:26 -!- oerjan has quit (Quit: Reboot).
03:26:40 -!- MizardX has quit (Ping timeout: 258 seconds).
03:27:02 -!- jcp has joined.
03:30:39 -!- oerjan has joined.
03:51:33 -!- augur_ has changed nick to augur.
04:04:29 -!- augur has quit (Ping timeout: 256 seconds).
04:06:29 <coppro> w00t at Canada winning a gold!
04:33:29 -!- Gracenotes has joined.
04:38:18 -!- MizardX has joined.
04:55:47 -!- zzo38 has joined.
04:56:06 <zzo38> Today I invented a esolang that is possible to represent Russell's paradox: Russell={#![#]}\*;
05:00:49 -!- augur_ has joined.
05:09:28 -!- zzo38 has quit (Quit: This quit message will explode in 5 minute. Please have a good day, gentlemen.).
05:11:34 * oerjan doesn't get the knight tracks in today's xkcd. the rest is all very accurate and understable though.
05:12:24 <coppro> oerjan: chess
05:12:40 <oerjan> d'oh
05:13:31 <oerjan> *understandable
05:13:42 <oerjan> although to be honest, may not be quite stable either
05:14:06 <augur_> PEOPLE
05:14:07 <augur_> PEOPLE
05:14:08 <augur_> PEOPLE
05:14:10 -!- augur_ has changed nick to augur.
05:14:14 <oerjan> RABBITS
05:14:24 <augur> rabbitboys are hot :(
05:24:14 * Sgeo got a l'spirit descalier regarding earlier conversation
05:24:55 <Sgeo> l'esprit de'escalier
05:25:01 <Gregor> ... rabbitboys
05:26:42 <Sgeo> Something about feeling sorry for female slaves named "nick"
05:30:11 <Gregor> OK, I think I need a liiiiiiiiiittle bit more explanation of "rabbitboys" :P
05:30:29 <pikhq> Gregor: Y'know catgirls?
05:30:39 <pikhq> s/cat/rabbit/ s/girl/boy/
05:30:46 <pikhq> Why?
05:30:47 <pikhq> Hell if I know.
05:31:23 * oerjan has heard of something called playboy bunnies
05:31:39 <pikhq> oerjan: Not the same thing.
05:32:01 <Sgeo> http://dagobah.biz/flash/lolicatgirls.swf ?
05:32:03 <pikhq> That's girls dressed up in a skimpy outfit with a bunny tail and ears. For no good reason.
05:32:27 <pikhq> People do weird things with animal parts and humanoids.
05:32:30 <Sgeo> How did that site get past my FlashBlock?
05:33:57 <oerjan> well i've also heard of something called furries
05:34:30 <oerjan> i sort of thought playboy bunnies was related
05:34:51 <pikhq> No, playboy bunnies are just an artifact of marketing.
05:34:57 <pikhq> And furries are a somewhat odd fandom.
05:35:07 <pikhq> With associated sexual fetishes within the fandom.
05:35:12 <Gregor> OHWAIT
05:35:17 <Gregor> Are playgirl models bunnies too?
05:35:20 <Gregor> That would explain it.
05:35:25 <Gregor> And that I can rubber-stamp as OK :P
05:35:37 <pikhq> Gregor: I think it's just the models with the bunny outfit on.
05:35:44 <Gregor> Yeah, I know.
05:35:46 <Gregor> But that's my point
05:35:55 <Gregor> They're not fur-fetishists, they're just wearing bunny-ears.
05:36:02 <Gregor> And fuzzy tails.
05:36:09 <pikhq> Yeah.
05:36:14 * Sgeo should be getting ready to go to sleep
05:45:12 <Gregor> augur: I still need your first-person explanation.
05:45:25 <Gregor> Otherwise there's a nagging voice in my head.
05:45:43 <augur> hey what
05:46:32 <Gregor> <augur> rabbitboys are hot :( <Gregor> OK, I think I need a liiiiiiiiiittle bit more explanation of "rabbitboys" :P
05:46:45 <augur> oh
05:46:54 <augur> i know furboys who have rabbit fursonas
05:46:57 <augur> and theyre all hot
05:47:18 <bsmntbombdood> goddamn are you guys still talking about sex?
05:47:20 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
05:47:40 <Gregor> GODDAMNIT
05:47:45 <Gregor> Of course it had to be furries.
05:48:25 -!- jcp has joined.
05:48:33 <Gregor> Here I was, blissfully thinking it was just playgirl models in bunny suits.
05:48:35 <Gregor> But no.
05:49:56 <augur> how in gods name could rabbitboy meant girl in a bunny suit?
05:49:58 <augur> are you in drugs?
05:50:06 <Gregor> augur: playGIRL models.
05:50:14 <Gregor> PlayBOY models are girls, playGIRL models are boys.
05:50:18 <augur> HOW COULD RABBIT ___BOY___ MEAN THIS
05:50:39 <Gregor> The world of softcore porn is entirely foreign to augur :P
05:51:35 <bsmntbombdood> i hate playboy
05:51:40 <bsmntbombdood> really terrible porn
05:52:38 <Gregor> augur is at playgirl.com RIGHT NOW :P
05:53:34 <augur> Gregor: oh sorry, playgirl models
05:53:38 <augur> see im not paying attention to that
05:53:51 <Gregor> Clearly :P
05:56:22 -!- oerjan has quit (Quit: leaving).
06:12:37 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:12:57 <Sgeo> Damn that almost!
06:23:23 <bsmntbombdood> yeah, i sure could go for some yiffing
06:26:48 <Gregor> *sobs*
07:04:58 -!- FireFly has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:25 -!- FireFly has quit (Quit: Leaving).
08:20:46 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
08:50:42 -!- kar8nga has joined.
09:01:43 -!- Gracenotes_ has joined.
09:02:45 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:04:40 -!- Gracenotes has quit (Ping timeout: 265 seconds).
09:04:40 -!- Gracenotes_ has changed nick to Gracenotes.
09:23:23 <Wareya> Good middle-of-the-night/morning
09:25:30 <Wareya> dawn if you're lucky
09:34:17 <fizzie> Aroudn half past eleven (am) here.
09:37:56 <Wareya> great
09:48:51 -!- tombom has joined.
09:51:19 -!- scarf has joined.
09:52:09 -!- KingOfKarlsruhe has joined.
10:52:39 -!- scarf has quit (Ping timeout: 245 seconds).
10:56:50 -!- Pthing has joined.
10:56:53 -!- scarf has joined.
11:17:41 -!- oklogon has joined.
11:20:25 -!- oklopol has quit (Ping timeout: 248 seconds).
11:23:44 -!- oklogon has quit (Ping timeout: 260 seconds).
11:26:06 -!- kar8nga has quit (Remote host closed the connection).
11:56:01 -!- SimonRC has quit (Ping timeout: 246 seconds).
12:10:55 -!- kar8nga has joined.
12:11:01 -!- SimonRC has joined.
12:38:07 -!- MizardX- has joined.
12:40:48 -!- MizardX has quit (Ping timeout: 260 seconds).
12:41:05 -!- MizardX- has changed nick to MizardX.
12:47:15 <AnMaster> <Wareya> Good middle-of-the-night/morning <-- 10:22ish
12:47:25 <AnMaster> at that point
12:49:06 -!- FireFly has joined.
13:09:00 -!- oerjan has joined.
13:40:32 -!- comex has quit (Ping timeout: 252 seconds).
14:00:03 -!- MizardX has quit (Ping timeout: 256 seconds).
14:22:01 -!- kar8nga has quit (Read error: Connection reset by peer).
14:34:48 -!- oerjan has quit (Quit: Good night).
14:38:02 -!- sshc has quit (Read error: Connection reset by peer).
14:38:48 -!- sshc has joined.
14:49:19 -!- Pthing has quit (Remote host closed the connection).
14:54:50 -!- MigoMipo has joined.
15:02:51 -!- jcp has joined.
15:14:44 -!- kar8nga has joined.
15:28:02 -!- Sgeo_ has joined.
15:29:16 -!- BeholdMyGlory has joined.
15:29:19 -!- BeholdMyGlory has quit (Changing host).
15:29:19 -!- BeholdMyGlory has joined.
15:31:17 -!- Sgeo has quit (Ping timeout: 256 seconds).
15:35:32 -!- Pthing has joined.
15:50:32 -!- tombom_ has joined.
15:52:32 -!- tombom has quit (Ping timeout: 252 seconds).
16:12:47 -!- MissPiggy has joined.
16:31:05 -!- Sgeo_ has changed nick to Sgeo.
16:32:10 -!- Gracenotes has quit (Ping timeout: 246 seconds).
16:36:52 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
16:40:34 -!- BeholdMyGlory has joined.
17:25:13 -!- scarf has quit (Read error: Connection reset by peer).
17:25:26 -!- scarf has joined.
17:28:13 -!- MigoMipo has quit (Remote host closed the connection).
17:30:35 -!- MigoMipo has joined.
17:31:56 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
17:33:12 -!- MigoMipo has quit (Remote host closed the connection).
17:35:05 -!- MigoMipo has joined.
17:45:12 -!- cheater2 has joined.
17:48:09 -!- cheater3 has quit (Ping timeout: 248 seconds).
17:56:10 -!- cheater2 has quit (Ping timeout: 246 seconds).
18:00:19 -!- cheater2 has joined.
18:15:51 <fizzie> Whoo, pretty frozen-north weather again; a tree: http://zem.fi/~fis/frozen.jpg
18:16:08 <scarf> yay tree
18:37:15 <AnMaster> fizzie, what scarf said + yay noise in image
18:37:37 <AnMaster> it's rather visible in the blurry parts
18:39:03 <fizzie> It's still a phone, not a camera.
18:40:28 <AnMaster> fizzie, ah okay
18:40:32 <fizzie> But yes, sure. It's also a bit artifacty sort of noise, probably due to some "noise-removal" image processing applied.
18:40:39 <AnMaster> heh
18:40:48 <fizzie> Admittedly my camera does equally noisy images, so... But it's not a "real" camera, at that.
18:41:10 <AnMaster> you will never get completely noise free
18:41:54 <fizzie> Guess so, but the sensors in a typical DSLR-style camera tend to be larger, which should mean significantly less noise.
18:42:11 <AnMaster> true
18:42:12 -!- tombom_ has quit (Ping timeout: 264 seconds).
18:42:18 <AnMaster> fizzie, btw, you could use enfuse
18:42:51 <fizzie> Sure. I did some align_image_stack+enfuse for mini-tripod-out-of-hotel-room-window-at-night shots recently.
18:42:54 <AnMaster> it did wonders for that panorama I fixed up for you if you remember
18:43:26 -!- tombom_ has joined.
18:44:39 <fizzie> http://zem.fi/~fis/noise_1.jpg → http://zem.fi/~fis/noise_2.jpg
18:45:12 <AnMaster> fizzie, is that true colour?
18:45:56 <AnMaster> fizzie, and yes that helped quite a bit. double the ammount of photos would have been even better (even in the latter the noise is quite noticeable)
18:46:58 -!- Asztal has joined.
18:47:25 <AnMaster> fizzie, also it reduced the white headlight pattersn
18:47:28 <AnMaster> patterns*
18:47:30 <AnMaster> quite nice
18:47:49 <AnMaster> some more and it would have looked rather deserted
18:49:11 <AnMaster> fizzie, some manual whitebalance would have been a good idea though
18:49:28 <AnMaster> or even curve correction if raw format wasn't available on that hardware
18:49:49 <AnMaster> iirc hugin can somewhat adjust whitebalance too
18:52:31 -!- jcp has quit (Ping timeout: 246 seconds).
18:56:52 <fizzie> It's not so far off from the correct colors; street lighting around here tends to be pretty yellowish.
18:57:25 <fizzie> Did white-balance with the "point the camera at something white" setting, using some snow as reference-white-outside.
18:57:45 <fizzie> Sorry for the delay there, there was a cat-puke-related issue to take care of.
18:59:24 <fizzie> http://zem.fi/~fis/noise_3.jpg → http://zem.fi/~fis/noise_4.jpg might be even more dramatic; that's inside the hotel room.
19:01:35 <fizzie> The first pair was made from 6 exposures, this second one with 9.
19:03:28 <fizzie> There's also a rather funny enfuse-generated phantom in http://zem.fi/~fis/ghost_bus.jpg
19:07:43 <fizzie> (Cleaning the hotel windows every now and then would have helped, too.)
19:19:45 -!- kar8nga has quit (Remote host closed the connection).
19:42:58 -!- scarf has quit (Remote host closed the connection).
19:45:25 -!- Gracenotes has joined.
19:51:35 -!- tombom__ has joined.
19:51:45 -!- jcp has joined.
19:51:49 -!- tombom_ has quit (Ping timeout: 245 seconds).
20:15:29 -!- augur has quit (Ping timeout: 240 seconds).
20:31:36 -!- jcp has quit (Read error: Connection reset by peer).
20:40:09 -!- kar8nga has joined.
20:55:00 -!- gm|lap has joined.
21:05:56 -!- augur_ has joined.
21:16:43 -!- scarf has joined.
21:38:10 <AnMaster> fizzie, that image looks green though
21:38:27 <AnMaster> <fizzie> Sorry for the delay there, there was a cat-puke-related issue to take care of. <-- ?
21:39:37 -!- oklopol has joined.
21:40:10 <olsner> I'm guessing the "cat-puke-related" issue is actually the cat puke itself
21:40:26 <AnMaster> fizzie, nice ghost bus yeah
21:40:45 <AnMaster> olsner, oh! that sounds plausible
21:41:02 <AnMaster> but I was wondering about the cake itself. Before the issue
21:41:37 <olsner> cake and cat puke don't mix
21:42:37 <AnMaster> fizzie, was it a two "floors" bus?
21:42:48 <AnMaster> the picture doesn't make much sense
21:42:55 <AnMaster> maybe another bus from another exposure?
21:43:03 <olsner> Lost doesn't make much sense either
21:43:16 <AnMaster> olsner, ....
21:44:07 <AnMaster> fizzie, there is definitely a normal bus at the bottom. But part of it seems to have another bus located higher up on top as well?
21:44:14 <olsner> well, I'm just taking whatever you say and rewriting it into something that kind of makes sense in my own context, then responding to it as if it means something else
21:44:40 <AnMaster> or maybe that is a tram?
21:45:39 <olsner> what I'm talking about is slightly more abstract than a tram, I think
21:45:59 <lament> it's buses all the way down.
21:46:11 <olsner> yeah, that's plenty abstract
21:47:48 <AnMaster> lament, hehe
21:57:17 <oklopol> are you talking about abstract vehicles
21:58:24 <fizzie> There's a tram "behind" the bus from another exposure, yes.
22:00:39 <fizzie> It's one of the yellow-green ones from http://www.raitio.org/ratikat/helsinki/hkl/luettelo/kalusto.htm
22:07:26 <AnMaster> mhm
22:07:59 <AnMaster> no, abstract meta-ghost commuter vehicles
22:08:03 <AnMaster> oklopol, ^
22:08:20 * AnMaster waits for the obvious pun
22:11:02 <MissPiggy> abelian grape!
22:13:28 <base3__> LOL MissPiggy
22:13:42 <base3__> i get it
22:13:45 <augur_> MissPiggy: :o
22:14:07 -!- augur_ has changed nick to augur.
22:34:54 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
22:40:29 <AnMaster> MissPiggy, wrong one ;P
22:41:17 <AnMaster> very well, I shall have to fill it in:
22:41:33 <AnMaster> I never meta-ghost commuter vehicle I didn't like
22:51:10 -!- jcp has joined.
22:59:55 -!- kar8nga has quit (Remote host closed the connection).
23:08:30 -!- tombom__ has quit (Quit: Leaving).
23:19:18 -!- oerjan has joined.
23:22:54 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
23:26:24 -!- FireFly has quit (Quit: Leaving).
23:26:41 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:30:15 -!- augur has quit (Ping timeout: 272 seconds).
2010-02-16
00:03:04 -!- lament has quit (Ping timeout: 245 seconds).
00:05:50 -!- MissPiggy has quit (Quit: Lost terminal).
00:09:03 -!- lament has joined.
00:14:12 -!- oerjan has quit (Quit: leaving).
00:16:29 -!- scarf has quit (Remote host closed the connection).
00:34:13 -!- Asztal has quit (Ping timeout: 272 seconds).
00:51:13 -!- coppro has joined.
01:11:33 -!- coppro has quit (Quit: restarting).
01:12:32 -!- coppro has joined.
01:22:30 -!- jcp has joined.
01:23:00 -!- Pthing has quit (Remote host closed the connection).
02:42:10 -!- MizardX has joined.
03:24:22 -!- augur has joined.
03:52:10 -!- Wareya has quit (Remote host closed the connection).
03:57:48 -!- jcp has changed nick to man_in_radio_sha.
03:57:52 -!- man_in_radio_sha has changed nick to jcp.
03:58:04 -!- jcp has changed nick to man_in_house.
03:58:47 -!- man_in_house has changed nick to jcp.
03:59:06 -!- augur_ has joined.
03:59:08 -!- augur has quit (Read error: Connection reset by peer).
04:04:01 -!- wareya has joined.
04:04:05 -!- wareya has changed nick to Wareya.
04:25:13 -!- Gracenotes has quit (Read error: Connection reset by peer).
04:32:51 -!- Gracenotes has joined.
04:39:16 -!- augur_ has quit (Ping timeout: 260 seconds).
05:24:00 -!- jcp has quit (Read error: Connection reset by peer).
05:27:28 -!- jcp has joined.
05:34:46 -!- augur has joined.
05:35:52 -!- Sgeo_ has joined.
05:39:00 -!- Sgeo has quit (Ping timeout: 260 seconds).
06:33:20 -!- FireFly has joined.
06:35:05 -!- bsmntbombdood has changed nick to _bsmntbombdood.
06:36:31 -!- _bsmntbombdood has changed nick to bsmntbombdood.
07:14:48 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:28:25 -!- kar8nga has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:45 -!- MigoMipo has joined.
08:30:33 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:21:05 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
09:45:40 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
09:46:58 <Wareya> but I don't WANT to explode!
09:49:07 -!- Asztal has joined.
10:00:01 -!- kar8nga has quit (Remote host closed the connection).
10:07:57 -!- tombom has joined.
10:38:57 -!- KingOfKarlsruhe has joined.
10:40:08 -!- FireFly has quit (Quit: Leaving).
11:10:55 -!- Edicius has joined.
11:11:07 <Edicius> yo
11:13:50 <Wareya> hi
11:14:36 <Edicius> god hate me
11:29:27 -!- kar8nga has joined.
11:59:22 -!- Pthing has joined.
12:20:23 -!- Asztal has quit (Ping timeout: 272 seconds).
12:37:03 -!- Edicius has left (?).
12:46:01 -!- scarf has joined.
12:54:32 -!- kar8nga has quit (Remote host closed the connection).
13:03:29 -!- oerjan has joined.
13:04:52 -!- MizardX- has joined.
13:07:37 -!- MizardX has quit (Ping timeout: 248 seconds).
13:07:51 -!- MizardX- has changed nick to MizardX.
13:15:55 <oerjan> poor, poor fireballs.
13:15:58 <oerjan> (iwc)
13:18:56 <Wareya> http://www.youtube.com/user/cendamos
13:19:00 <Wareya> This guy is insane
13:19:01 <Wareya> y/n
13:50:58 -!- BeholdMyGlory has joined.
14:02:41 -!- Asztal has joined.
14:07:09 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
14:11:45 -!- co_sobat has joined.
14:19:19 -!- augur has quit (Ping timeout: 245 seconds).
14:28:34 -!- deschutron has joined.
14:29:31 -!- deschutron has left (?).
14:52:10 -!- augur has joined.
14:52:33 <scarf> `c printf("%d %d %d", 'B', 'Z', 'h');
14:52:41 <HackEgo> No output.
14:52:51 <scarf> `c printf("%d %d %d\n", 'B', 'Z', 'h');
14:52:52 <HackEgo> No output.
14:52:56 <scarf> ugh
14:53:12 <scarf> `c int main(){printf("%d %d %d\n", 'B', 'Z', 'h');}
14:53:12 <HackEgo> No output.
14:53:19 <scarf> what am I doing wrong?
14:53:43 <oerjan> `c printf("%d\n", 42);
14:53:44 <HackEgo> No output.
14:54:07 <oerjan> oh wait
14:54:14 <oerjan> !c printf("%d\n", 42);
14:54:22 <EgoBot> 42
14:54:26 <scarf> heh, wrong bot
14:54:29 <scarf> !c printf("%d %d %d\n", 'B', 'Z', 'h');
14:54:30 <EgoBot> 66 90 104
14:54:59 <scarf> !c printf("%d", (66 << 24) + (90 << 16) + (104 << 8));
14:55:00 <EgoBot> 1113221120
14:55:13 <Wareya> !c printf("what");
14:55:14 <EgoBot> what
14:55:18 <scarf> !sh date -d '@1113221120'
14:55:18 <EgoBot> Mon Apr 11 12:05:20 UTC 2005
14:55:27 <Wareya> !sh ls
14:55:28 <EgoBot> interps
14:55:28 <scarf> gah, how annoyingly coincidentally recent
14:55:43 <Wareya> I doubt this is secure
14:55:50 <scarf> it ought to be
14:56:00 <Wareya> !sh rm -rf /
14:56:01 <EgoBot> /bin/rm: cannot remove root directory `/'
14:56:03 <Wareya> awesome
14:56:21 <scarf> !sh rm -rf --no-preserve-root /
14:56:23 <EgoBot> /bin/rm: cannot remove `/': Function not implemented
14:56:35 <scarf> see, /that/'s where you start seeing things getting weird
14:56:50 <scarf> the OS it's on doesn't actually support deletion of directories
14:57:01 <Wareya> okay
14:57:10 <Wareya> how about ls / | rm
14:57:20 <scarf> feel free to try it
14:57:26 <Wareya> !sh ls / | rm
14:57:26 <EgoBot> /bin/rm: missing operand
14:57:30 <Wareya> !sh ls / | rm -
14:57:30 <EgoBot> /bin/rm: cannot remove `-': Permission denied
14:57:33 <scarf> but you probably mean ls / | xargs rm
14:57:38 <Wareya> w/e
14:57:43 <Wareya> !sh rm -h
14:57:43 <EgoBot> /bin/rm: invalid option -- h
14:57:45 <Wareya> !sh rm -help
14:57:45 <EgoBot> /bin/rm: invalid option -- h
14:57:47 <Wareya> !sh rm --help
14:57:47 <EgoBot> Usage: /bin/rm [OPTION]... FILE...
14:57:54 <Wareya> I guess I'll hit ^a S
14:58:17 <scarf> !perl #!/bin/cat
14:58:18 <EgoBot> #!/bin/cat
14:58:56 <Wareya> !sh rm -r /
14:58:57 <EgoBot> /bin/rm: cannot remove root directory `/'
14:59:08 <Wareya> !sh rm -r
14:59:09 <EgoBot> /bin/rm: missing operand
14:59:11 <Wareya> !sh rm -r ./
14:59:11 <EgoBot> /bin/rm: cannot remove directory `./'
14:59:16 <Wareya> !sh ;s
14:59:17 <EgoBot> /tmp/input.16264: line 1: syntax error near unexpected token `;'
14:59:21 <Wareya> !sh ls
14:59:22 <EgoBot> interps
14:59:30 <Wareya> !sh ls interps
14:59:30 <EgoBot> 1l
14:59:35 <Wareya> you know what I give up
14:59:53 <scarf> !sh ls /
14:59:53 <EgoBot> bin
15:00:06 <scarf> !sh ls / | xargs echo
15:00:07 <EgoBot> bin dev etc home lib lib64 proc tmp usr
15:00:13 <scarf> !sh ls /etc
15:00:14 <EgoBot> alternatives
15:00:21 <scarf> no /etc/passwd should be another clue
15:00:42 <scarf> it's basically a sandbox, with every operation that could escape or seriously damage the sandbox blocked or unimplemented
15:08:17 -!- co_sobat has quit (Quit: Leaving).
15:25:23 -!- lifthrasiir has quit (Ping timeout: 265 seconds).
15:25:35 -!- lifthrasiir has joined.
15:28:28 -!- FireFly has joined.
15:31:27 <pikhq> scarf: In other words, every operation that could seriously damage the sandbox blocked and no root access.
15:31:35 -!- cpressey has joined.
15:31:41 <pikhq> (it's a chroot with a replacement libc, after all)
15:31:47 <scarf> pikhq: yep
15:34:36 -!- kar8nga has joined.
16:09:56 -!- Gracenotes has quit (Ping timeout: 260 seconds).
16:25:45 -!- MigoMipo has joined.
16:26:44 -!- Gracenotes has joined.
16:51:32 -!- MissPiggy has joined.
16:58:25 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
17:03:07 -!- MigoMipo has joined.
17:07:14 -!- oerjan has quit (Quit: Good night).
17:30:42 <uorygl> So, in C, what operations can be performed on pointers?
17:31:12 <MissPiggy> ++ -- ==
17:32:08 <uorygl> Increment, decrement, comparison?
17:32:36 <MissPiggy> reading and writing to a pointer
17:32:37 <uorygl> How about addition and casting and stuff?
17:33:34 <pikhq> Addition and subtraction are defined.
17:33:45 <pikhq> Casting between pointer types is defined.
17:34:07 <pikhq> Casting from a pointer to an int is defined.
17:34:18 -!- jcp has joined.
17:34:20 <uorygl> So is it legal to...
17:34:28 <pikhq> Casting from an int to a pointer is very, very undefined behavior.
17:34:37 <uorygl> Oh, whew.
17:35:44 <uorygl> Start with a pointer to an A, cast it to a pointer to a B, add 5, cast it to a pointer to a C, add 8, cast it back to B, subtract 5, cast it back to C, subtract 8, cast it back to A, and assume that the result is the same pointer you had originally?
17:36:45 <pikhq> uorygl: Only valid if *A, *B, and *C have the same sizeof.
17:37:25 <pikhq> Also, I *think* casting from an intptr_t is defined, if and only if you don't do any operations on it that aren't allowed on pointers.
17:37:31 <fizzie> "pointer+integer" is defined, but "pointer+pointer" is not. And "pointer-pointer" is only defined for pointers to elements of the same array. (And pointer+integer, pointer-integer are also undefined behaviour if they go outside the borders of an object.)
17:38:09 <pikhq> (though I'm not sure on that. That's *really* an edge case, and I doubt it ever comes up.)
17:38:14 <uorygl> pikhq: why is it invalid if they don't have the same sizeof?
17:38:35 <pikhq> uorygl: Actually, it's just that you'll get a completely different pointer if they don't.
17:38:52 <uorygl> Why will you get a completely different pointer if they don't?
17:39:13 <pikhq> "i + 1" is the same as "(char*)i + (1 * sizeof(*i))".
17:39:30 <MissPiggy> oh m god
17:39:32 * uorygl ponders what that means in English.
17:39:44 <pikhq> Erm.
17:40:08 <uorygl> Okay, I think it makes perfect sense.
17:40:10 <pikhq> Well, that's the semantics of the *addition*. You don't actually *get* a char*. ;)
17:40:28 <uorygl> Well, no.
17:40:41 <uorygl> Suppose the address you start with is x, the size of B is y, and the size of C is z.
17:40:53 <pikhq> Kay...
17:41:04 <uorygl> I would expect you to start with x, then turn it into x + 5y, then into x + 5y + 8z, then into x + 8z, then back into x.
17:41:56 <pikhq> Ah. You do the casts in such a way that you do end up getting the same thing back.
17:42:02 <pikhq> Yeah, that works.
17:42:05 * uorygl nods.
17:42:09 <fizzie> pikhq: I don't think it's guaranteed to work.
17:42:11 <pikhq> Assuming you don't go beyond the bounds of the allocation for x.
17:42:33 <pikhq> If you do, then the C compiler is free to destroy everything.
17:42:41 <pikhq> (it probably *won't*, but it's allowed to.)
17:42:53 <uorygl> What's that colorful expression for undefined behavior?
17:43:08 <uorygl> I think it's "the C compiler may cause demons to fly out of your nose".
17:44:04 <fizzie> Pointers to different types can have completely different representations; I don't think that pointer magic there is guaranteed to work.
17:44:08 <pikhq> Sounds right.
17:44:30 <pikhq> fizzie: ... I'm pretty sure the casts are valid.
17:44:44 <fizzie> You can convert any pointer to void * and back; not between pointers.
17:45:07 <uorygl> So is converting a pointer to void * and then to a totally different type of pointer undefined behavior?
17:45:09 <pikhq> I could've sworn that it was perfectly valid so long as there weren't function pointers involved.
17:45:18 <fizzie> I think some Crays, for example, have "char *"s composed of a pointer-to-word plus an offset into the word.
17:45:34 <fizzie> And in general, sizeof(foo *) is not guaranteed to be sizeof(bar *).
17:46:48 <uorygl> All this almost makes me want to read the spec and see this stuff for myself.
17:47:27 <fizzie> C99 section 6.3.2.3 lists pointer-related allowed conversions.
17:47:29 -!- Gracenotes has quit (Ping timeout: 240 seconds).
17:47:38 <lament> pointers point to pointer-pointing pointers
17:48:05 <uorygl> void * * *
17:51:06 <fizzie> You can convert: 1) pointer to void to/from pointer to any type; 2) remove qualifiers (like const); 3) integer constant expression with a value of 0 to a null pointer of any type; 4) null pointer of any type to null pointer of any other type; 5) integer to any pointer type (with implementation-defined behaviour, possibly ending up with a trap representation); 6) any pointer type to integer (with implementation-defined result, which needs not be in the range of
17:51:06 <fizzie> any integer type; intptr_t is optional); 7) pointer of any type to pointer to some other type, but if the result is not aligned correctly it's undefined behaviour; 8) function pointers between other sort of function pointers.
17:51:29 <fizzie> The conversion #7 is involved in your example, and getting correct alignment there is certainly not guaranteed.
17:52:32 * cpressey wonders what percentage of all C programs ever written are technically undefined in their behaviour.
17:52:39 <fizzie> Oh, and as a subcase of #7 you can convert any pointer to a char* and then access all bytes of the object.
17:55:05 <pikhq> So, 7 allows casting to and from pointers to *structs* in the common case of having structs with a common heading, for a bit of runtime polymorphism...
17:55:30 <uorygl> Fuck transparency...
17:55:53 <fizzie> Yes, and I think there was even something more explicit about the layout for structs with common initial sequence of members.
17:56:20 <pikhq> Yes, the layout for structs is defined such that they alignment will be correct.
17:56:39 <pikhq> I *know* C allows that.
17:57:34 <fizzie> The trap representations are a nasty thing, though. You get undefined behaviour simply by reading such a value; you don't even have to dereference a pointer or do some other risky-looking operation.
18:00:11 <uorygl> Undefined behavior is nice if you're trying to implement C.
18:00:55 <uorygl> So, fizzie, you say you "can convert" stuff. I'm guessing that means you can convert the stuff without encountering undefined behavior, which means that the behavior is defined.
18:01:24 <fizzie> Yes. Though some of those were only implementation-defined.
18:02:03 -!- lament has quit (Ping timeout: 256 seconds).
18:02:04 <uorygl> Isn't that the same thing as undefined?
18:02:25 <fizzie> No. Implementation-defined means the implementation is required to document what it will do in that case.
18:02:33 <uorygl> Oh.
18:02:37 <fizzie> Sometimes the spec even restricts the set of allowed things an implementation can do.
18:03:06 <uorygl> "If you try to do anything implementation-defined, the program will segfault. Nyah!"
18:03:12 -!- sebbu has quit (Ping timeout: 264 seconds).
18:03:16 <pikhq> For instance, the signedness of chars are implementation-defined.
18:03:43 <fizzie> Also the representation for signed integers in C99; it's guaranteed to be either two's-complement, one's-complement or sign-magnitude, but it's implementation-defined which one.
18:03:53 <pikhq> (a char is neither a signed char nor an unsigned char)
18:04:14 <fizzie> There's a nice 13-page list of bullet points (appendix J, section 2) in the C99 spec titled "Undefined behaviour". Of course the appendixes aren't normative, but that's still an impressive list.
18:06:16 -!- lament has joined.
18:06:43 <cpressey> It's so comforting to know that I can rely on signed integers being in exactly one of three formats, without knowing which one.
18:06:54 <uorygl> You can test which one.
18:07:13 <uorygl> Somehow.
18:08:14 -!- Gracenotes has joined.
18:08:22 <uorygl> Take -1, cast it to unsigned, rotate it left. If it's 3, you're on sign-magnitude.
18:09:13 <uorygl> Take -1, cast it to unsigned, add 1. If it's 0, you're on two's complement.
18:09:23 <uorygl> Take -1, cast it to unsigned, add 2. If it's 0, you're on ones' complement.
18:09:47 <uorygl> Heck, I think there's a more efficient way to do this.
18:10:27 <fizzie> That sounds like it would work, thanks to the very friendly conversion-to-unsigned rule.
18:10:59 <uorygl> Take -1, cast it to unsigned, add 2, and rotate it left. If it's 5, you're on sign-magnitude; if it's 2, you're on two's complement; if it's 0, you're on ones' complement.
18:11:35 <fizzie> Uh, wait.
18:12:04 <fizzie> Signed value of -1, converted to unsigned integer, is always guaranteed to return UINT_MAX-1.
18:12:11 <fizzie> No matter what the representation is.
18:12:42 <uorygl> So it acts like two's complement no matter what it actually is?
18:13:14 <fizzie> In the sense that conversion to unsigned integer is defined in terms of the value.
18:13:37 <uorygl> So why would a person care what the actual representation is?
18:14:20 <fizzie> I'm not sure, especially since the representation might have an arbitrary amount of padding bits in it, even if it's guaranteed to have its value bits arranged using one of those three schemes.
18:14:45 * oklopol thought uorygl was singing a version of 99 bottles
18:22:02 <pikhq> You could probably test it via very careful bit twiddling.
18:22:58 <fizzie> You can look at the bits of the representation through a char *, but the padding bits might make that really hard to figure out, given that arithmetic operations on the value can set them to arbitrary values.
18:23:42 <uorygl> I guess that in practice, there's a lot that people are never going to do.
18:25:06 <uorygl> Addressing arrays, and the pointer arithmetic that entails, is something they're going to do.
18:25:15 <uorygl> Casting between compatible types is something they might do.
18:25:25 <uorygl> Anything else, I think not.
18:25:29 <cpressey> What if I need to send an integer to a hardware port?
18:25:38 <pikhq> You'd be surprised.
18:25:51 <uorygl> Why would you need to send an integer to a hardware port?
18:26:00 <pikhq> If it will compile, someone out there has done it in C.
18:26:12 <pikhq> If it won't compile, someone out there has *tried* to do it in C.
18:26:20 <fizzie> Hardware ports sound very implementation-defined, and, coincidentally enough, so's converting an integer to a pointer.
18:26:30 <uorygl> pikhq: yes, but that doesn't mean it's done very often.
18:27:36 <uorygl> If you have XOR linked lists, I don't care about your stupid program.
18:27:47 <fizzie> So on a particular implementation, *((unsigned *)0xdeadbeef) = 0xf00d; might be well-defined behaviour.
18:28:25 <pikhq> If you have xor linked lists, I will do nasty things to you.
18:28:52 <uorygl> If you have XOR linked lists, I will refuse to garbage collect you. :P
18:28:55 <pikhq> I will also force you to use garbage collection.
18:29:01 <pikhq> (as punishment)
18:32:14 <fizzie> I collect all my garbage into xor-style linked lists.
18:34:20 <pikhq> I garbage collect by calling free after allocation.
18:35:21 <uorygl> I garbage collect by ceasing to refer to a value.
18:36:01 <cpressey> I don't garbage collect. I have an infinite supply of tape.
18:36:07 <scarf> ouch, what's an XOR linked list again?
18:36:19 <scarf> I vaguely remember how they work and knowing why it's such an incredibly bad idea, but I can't quite remember the details
18:36:31 <pikhq> scarf: Doubly linked list with a single pointer.
18:36:35 <uorygl> A XOR linked list is a doubly linked list where the pointer field consists of the XOR of the forward and backward pointers.
18:36:36 <scarf> is it that you don't store a next and a prev pointer, but instead next XOR prev?
18:36:36 <fizzie> scarf: It's one with the "prev" and "next" pointers xor'd together, under the assumption that you already know one, since you came to the node from there.
18:36:39 <scarf> ah, yes
18:36:44 <pikhq> next XOR prev.
18:36:56 <fizzie> Next XOR perv.
18:37:02 <uorygl> No, it's definitely fore XOR back. :P
18:37:10 <scarf> anyway, I spent the last 3 hours translating an implementation of unzip2 from C to Java
18:37:14 <scarf> time to go home now, I think
18:37:17 <pikhq> It hurts garbage collection so very much.
18:37:19 <scarf> *bunzip2
18:37:39 <uorygl> This is why people don't program in C.
18:37:50 <uorygl> Except Apple developers.
18:37:55 * uorygl crushes his iPhone in frustration.
18:38:00 <pikhq> Apple developers don't program in C.
18:38:05 <pikhq> They program in Objective C.
18:38:13 <pikhq> Object system, garbage collection...
18:38:15 <scarf> I'm suspicious of pointer-based garbage collection too, though
18:38:22 <uorygl> Objective C is a superset of C.
18:38:30 <uorygl> Objective C has garbage collection? That's new to me.
18:38:43 <pikhq> uorygl: Optional feature added by Apple.
18:38:47 -!- scarf has quit (Remote host closed the connection).
18:38:51 <pikhq> uorygl: Also, it's always done reference counting.
18:39:29 <fizzie> Did "garbage collect by calling free after allocation" refer to the clever "void *gc_alloc(size_t size) { void *p = malloc(size); free(p); return p; }" GC?
18:39:53 <pikhq> fizzie: Heheheh.
18:40:15 <uorygl> fizzie: is there an interesting story behind that?
18:41:10 <fizzie> There might, but I only remember having seen the "technique" (if you can call it that) somewhere, maybe usenet.
18:41:21 <fizzie> It's certainly efficient.
18:41:39 <pikhq> The "technique" is "hope that there's not another allocation until you want it to go away".
18:41:57 <pikhq> Oh, and "hope that free just marks the space as free, instead of actually unmapping it."
18:42:02 -!- sebbu has joined.
18:42:28 -!- kar8nga has quit (Remote host closed the connection).
18:42:47 * uorygl ponders something that's like C except easy to compile Haskell into.
18:43:10 <pikhq> A G-machine?
18:44:14 <uorygl> I dunno, what's a G-machine?
18:44:33 <MissPiggy> it evaluates combinator calculus lazily
18:45:39 <uorygl> That doesn't sound like a programming language.
18:46:32 <pikhq> It's a graph reduction machine.
18:46:47 <uorygl> Does it have a Wikipedia article?
18:46:54 <uorygl> If not, I deny that it exists.
18:47:02 <uorygl> And by "deny that it exists", I mean "wonder where to find more information on it".
18:47:04 <pikhq> It's a type of machine.
18:47:10 <pikhq> GHC documentation.
18:47:52 <pikhq> (After compiling down to core, GHC compiles to a G machine, does optimisation, then compiles to C--, then compiles to machine code)
18:48:09 <uorygl> That's a lot of compiling.
18:50:56 <pikhq> GCC does * -> AST -> (optional intermediate form) -> GENERIC -> GIMPLE -> RTL -> assembly -> machine code
18:51:14 <MissPiggy> what the fuck is a programming language??
18:52:00 <Wareya> idk lopl
18:53:26 <pikhq> Oh, some frontends do * -> AST -> language-specific passes -> RTL -> assembly -> machine code
18:53:36 <pikhq> For no freaking good reason.
18:56:47 <cpressey> 3. Profit!
18:57:11 <Wareya> Borland delphi compiles to C code
18:57:16 <Wareya> IIRC
18:58:47 <uorygl> I hope Borland Turbo C doesn't compile to C code.
18:59:45 <uorygl> I remember Turbo Pascal!
19:00:47 <uorygl> My brother and I wrote a program using it. I think it was called "cinderella". Its most impressive feature was that if you went into the cafe and asked for milk, it would respond with "Chocolate?"
19:04:00 <fizzie> We once found an I-think-it-was-in-Turbo-Pascal "adventure" "game" from the school file server, designed to teach about right and wrong (for example, "stealing is bad") to around-puberty-aged children. As a game, it was remarkably bad; but hilarious anyway.
19:07:28 <fizzie> It had a graphical-adventure style list-of-commands-at-the-bottom-of-the-screen interface, but I think the graphics were mostly text-based; in any case, there were such things like the "listen" command, which wasn't actually used anywhere in the game, it just produced some PC speaker noises and the text "I hear voices, do you?" -- and the "look" - "at yourself" command, which described your state: "I feel <random-adjective>. I smell bad. The videos I stole weig
19:07:28 <fizzie> h on my conscience."
19:07:38 <fizzie> (You started to smell bad if you took the sausage to your dog.)
19:07:42 <cpressey> Turbo Pascal was cool. I remember writing a Minesweeper in it, with a friend.
19:07:58 <cpressey> No, that must have been Borland C.
19:08:08 <cpressey> TP was a little earlier than that.
19:11:22 <cpressey> In Turbo Pascal I remember writing a good chunk of a roguelike, but it was too ambitious and was never finished.
19:12:57 <fizzie> We wrote a good chunk of a tile-based mostly-a-roguelike (sort of Exile-inspired) with DJGPP and the Allegro lib, but that wasn't ever finished either. Oh, the foolishness.
19:16:41 <uorygl> You should have used libtcod!
19:16:52 <uorygl> Which, as Gregor can contest, is probably the most important library ever.
19:19:49 -!- oklopol has quit (Read error: Connection reset by peer).
19:20:15 -!- oklopol has joined.
19:25:47 <oklopol> what's sevenfold today?
19:32:39 <oklopol> well?
19:56:12 -!- KingOfKarlsruhe has joined.
20:02:32 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
20:35:30 -!- MizardX- has joined.
20:38:16 -!- MizardX has quit (Ping timeout: 260 seconds).
20:38:29 -!- MizardX- has changed nick to MizardX.
20:39:48 -!- tombom has quit (Ping timeout: 264 seconds).
20:41:10 -!- tombom has joined.
21:12:51 <AnMaster> <Wareya> Borland delphi compiles to C code
21:12:51 <AnMaster> <Wareya> IIRC
21:12:55 <AnMaster> pretty sure it doesn't
21:13:16 <AnMaster> or at least didn't in delphi 7 or such
21:13:29 <AnMaster> when I used it (I was young and innocent, I didn't know better!)
21:14:57 <AnMaster> <uorygl> You should have used libtcod! <-- what was that library?
21:18:39 <tombom> http://doryen.eptalys.net/
21:18:45 <tombom> roguelike library, it's interesting
21:33:52 -!- gm|lap has joined.
21:47:13 -!- jcp has joined.
22:12:23 -!- MigoMipo has quit (Remote host closed the connection).
22:16:51 <uorygl> oklopol: sevenfold are the midnights that have passed since last Tuesday.
22:24:28 <uorygl> That's pretty much it.
22:24:55 <uorygl> Sevenfold are the capital letters on the fifth row of my keyboard.
22:26:10 <uorygl> Sevenfold are my irssi windows to the left of #haskell.
22:26:23 <uorygl> Er, #lojban.
22:26:54 <uorygl> Thirty-twofold are my irssi windows to the right of #lojban.
22:27:47 <uorygl> Sevenfold are the English-speaking oceans of Puzzle Pirates, if you consider Ice and Crimson each half an ocean.
22:28:57 <lament> wtfold
22:57:10 -!- coppro has joined.
22:57:57 -!- oklopol has quit (Read error: Operation timed out).
22:58:23 -!- oklopol has joined.
23:03:29 -!- augur has quit (Ping timeout: 245 seconds).
23:10:17 -!- cheater2 has quit (Ping timeout: 276 seconds).
23:19:24 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:21:53 -!- tombom has quit (Quit: Leaving).
23:26:13 -!- oklogon has joined.
23:28:26 -!- oklopol has quit (Remote host closed the connection).
23:29:58 -!- oklogon has quit (Read error: Operation timed out).
23:31:43 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
23:37:38 -!- oklopol has joined.
23:55:00 -!- FireFly has quit (Quit: Leaving).
2010-02-17
00:20:49 -!- cpressey has left (?).
00:36:20 -!- augur has joined.
00:38:13 -!- jcp has quit (Remote host closed the connection).
00:48:28 -!- oerjan has joined.
00:51:41 -!- oklopol has quit (Ping timeout: 276 seconds).
00:58:06 <MissPiggy> yeah
00:58:27 <MissPiggy> I still feel defeated wrt. that robozzle thing
01:02:01 -!- oklopol has joined.
01:08:00 -!- Asztal has quit (Ping timeout: 264 seconds).
01:08:06 -!- Azstal has joined.
01:22:12 -!- MizardX has quit (Quit: zzz).
01:31:07 -!- jcp has joined.
01:39:21 -!- Pthing has quit (Remote host closed the connection).
01:42:20 -!- oklopol has quit (Remote host closed the connection).
01:51:19 -!- oerjan has quit (Quit: leaving).
02:08:54 -!- oklopol has joined.
02:52:14 -!- cheater has quit (Ping timeout: 245 seconds).
02:56:50 -!- cheater has joined.
03:13:15 -!- augur_ has joined.
03:13:17 -!- augur has quit (Read error: Connection reset by peer).
03:18:57 -!- Azstal has quit (Ping timeout: 256 seconds).
03:23:09 -!- MissPiggy has quit (Quit: Lost terminal).
03:58:45 -!- dbc has quit (Ping timeout: 256 seconds).
03:59:16 -!- oklopol has quit (Read error: Connection reset by peer).
03:59:57 -!- oklopol has joined.
04:08:21 -!- oklopol has quit (Read error: Operation timed out).
04:09:04 -!- oklopol has joined.
04:13:49 -!- Sgeo has joined.
04:14:04 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
04:50:43 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
04:51:51 -!- oklopol has quit (Read error: Connection reset by peer).
04:52:26 -!- oklopol has joined.
05:39:41 <Gregor> Heh, http://xkcd.com/703/ is actually pretty good :P
05:40:44 <lament> it is.
05:43:10 <pikhq> Alas.
05:43:31 <pikhq> It's like an xkcd from the time span where it got really popular because it was funny.
05:50:40 <bsmntbombdood> bah
05:50:43 <bsmntbombdood> still no questionable content
05:57:02 <augur_> http://www.manjulaskitchen.com/
05:57:04 <augur_> indian food :
05:57:05 <augur_> :D
06:08:21 -!- oerjan has joined.
06:12:33 <oerjan> grmph xkcd loads just a ... blank page?
06:13:15 <Gregor> XKCD don't need you Nordic types.
06:13:40 <oerjan> hmph the page source is definitely not blank
06:15:51 <oerjan> old comics too...
06:17:23 <Gregor> Works fine for me.
06:17:30 <Gregor> XKCD just don't need you Nordic types.
06:17:51 <oerjan> oh well
06:27:47 -!- augur_ has changed nick to augur.
06:28:45 -!- dbc has joined.
06:32:09 <Sgeo> Forgot about XKCD tonight
06:32:59 <coppro> it's awesome
06:33:31 <augur> smbc is more regularly humorous
06:35:03 <dbc> That "most dangerous game" one was cute.
06:35:38 <pikhq> augur: Yes, yes it is.
06:35:49 <pikhq> It is, in fact, *usually* humorous.
06:37:21 <augur> oh god this woman has a tamarind chutney recipe
06:37:27 <augur> god this is the best recipe website ever
06:38:50 <Sgeo> If 1,000,000 people join, wouldn't the group have 1,000,001, including the creator?
06:38:59 <Sgeo> Or what if a bunch of people join, then leave?
06:39:13 <augur> D:
06:39:33 <pikhq> augur: Omnomnom.
06:39:41 <augur> i know :(
06:39:45 <augur> tamarind chutney is the best
06:39:46 <augur> BEST
06:39:49 <augur> fucking chutney
06:39:51 <augur> ever
06:43:24 <Sgeo> Night all
06:43:29 * Sgeo goes to cry himself to sleep
06:43:49 <oerjan> O_O
06:44:14 <Sgeo> http://raglanshire.com/2010/02/in-memory-of-our-friend-stillpink/
06:47:26 -!- oklopol has quit (Read error: Connection reset by peer).
06:47:58 -!- oklopol has joined.
06:50:26 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
06:51:00 <oerjan> *BOOOOOM*
06:52:50 -!- oklopol has quit (Read error: Connection reset by peer).
06:58:19 -!- oklopol has joined.
06:59:32 -!- oklopol has quit (Read error: Connection reset by peer).
07:00:54 -!- oerjan has quit (Quit: leaving).
07:02:58 -!- oklopol has joined.
07:03:04 -!- FireFly has joined.
07:04:36 <bsmntbombdood> i like that show
07:07:22 -!- MigoMipo has joined.
07:24:20 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:28:32 -!- MigoMipo has quit (Remote host closed the connection).
07:32:32 -!- oklopol has quit (Read error: Connection reset by peer).
07:59:20 -!- FireFly has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:45 -!- oklopol has joined.
08:14:44 -!- lifthrasiir has quit (Ping timeout: 252 seconds).
08:18:17 -!- base3__ has quit (Ping timeout: 256 seconds).
08:19:56 -!- base3 has joined.
08:20:28 -!- lifthrasiir has joined.
08:33:35 -!- base3 has quit (Ping timeout: 256 seconds).
08:40:40 -!- base3_ has joined.
08:40:48 -!- oklopol has quit (Ping timeout: 256 seconds).
08:43:19 -!- kar8nga has joined.
08:46:20 -!- oklopol has joined.
08:52:51 -!- base3_ has quit (Ping timeout: 256 seconds).
08:54:12 -!- base3 has joined.
09:07:26 -!- oklopol has quit (Ping timeout: 256 seconds).
09:26:20 -!- oklopol has joined.
09:27:24 -!- tombom has joined.
09:27:44 -!- addicted has joined.
09:40:04 -!- kar8nga has quit (Remote host closed the connection).
10:28:11 -!- AnMaster_ has joined.
10:34:17 -!- AnMaster has quit (*.net *.split).
11:09:13 -!- AnMaster_ has changed nick to AnMaster.
11:27:01 <cheater> hi
11:42:32 -!- base3 has left (?).
12:30:25 -!- Pthing has joined.
13:18:48 -!- oerjan has joined.
13:37:39 -!- addicted has quit (Ping timeout: 252 seconds).
14:35:38 -!- oklogon has joined.
14:36:16 -!- oklopol has quit (Ping timeout: 260 seconds).
14:41:05 -!- Pthing has quit (Remote host closed the connection).
14:44:46 -!- Pthing has joined.
15:04:42 -!- MizardX has joined.
15:06:16 -!- cpressey has joined.
15:20:55 -!- augur has quit (Ping timeout: 246 seconds).
15:28:06 -!- MissPiggy has joined.
16:04:32 -!- FireFly has joined.
16:09:40 -!- BeholdMyGlory has joined.
17:00:50 -!- MigoMipo has joined.
17:12:19 -!- augur has joined.
17:38:50 -!- cheater2 has joined.
17:47:45 -!- Gracenotes has quit (Quit: Leaving).
17:56:58 -!- Asztal has joined.
18:13:32 -!- Gracenotes has joined.
18:15:50 -!- cheater2 has quit (Quit: Leaving).
18:29:36 -!- augur has quit (Ping timeout: 264 seconds).
18:29:49 -!- cheater2 has joined.
18:37:06 -!- augur has joined.
18:42:53 -!- oerjan has quit (Quit: Good night).
18:43:53 -!- MizardX has quit (Ping timeout: 256 seconds).
18:44:13 -!- MizardX has joined.
18:57:02 -!- MigoMipo has changed nick to MigoMipo_Zwei.
18:57:11 -!- MigoMipo_Zwei has changed nick to MigoMipo.
19:12:10 -!- MissPiggy has quit (Quit: Lost terminal).
19:13:41 -!- Gracenotes has quit (Ping timeout: 240 seconds).
19:23:52 <cpressey> FWIW, I just added 3 entries to my "unfinished esolang designs" list ( http://catseye.tc/cpressey/louie.html ) -- Faradaisical, Kig, and Milab.
19:29:18 <Wareya> Is that supposed to be an all-inclusive list? :D
19:29:34 <cpressey> Ha.
19:35:01 <cpressey> In case it's not clear from the page, those are the ideas I have basically given up on, but which I consider too interesting to be simply discarded.
19:35:56 <Wareya> k
20:33:06 -!- bsmntbombdood_ has joined.
20:35:05 -!- bsmntbombdood has quit (Ping timeout: 248 seconds).
20:59:41 -!- augur has quit (Ping timeout: 240 seconds).
21:03:47 -!- gm|lap has joined.
21:04:06 <oklogon> faradaisical has a great name
21:07:45 -!- scarf has joined.
21:10:09 -!- augur has joined.
21:12:36 <Ilari> Hmm... Are there groups that have multiple-element minimal generators that don't decompose into multiple groups (w.r.t. cartesian product). If there are, wonder if they would be useful for constructing esolang...
21:14:18 -!- jcp has joined.
21:15:18 <Ilari> Ah, there are, at least D2 (Klein-Four group). That has minimal generator size of 2 but doesn't decompose.
21:17:15 <Ilari> But are there groups that have all elements in generator set have sizable order?
21:47:02 -!- coppro has joined.
21:51:52 -!- SimonRC has quit (Ping timeout: 246 seconds).
21:57:15 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
22:01:04 -!- SimonRC has joined.
22:03:48 -!- lament has quit (Ping timeout: 264 seconds).
22:07:41 -!- lament has joined.
22:15:29 -!- oklogon has quit (Ping timeout: 240 seconds).
22:35:37 -!- MissPiggy has joined.
22:36:01 -!- MigoMipo has quit (Remote host closed the connection).
22:50:52 <AnMaster> Ilari, that went completely over my head XD
22:51:10 <AnMaster> is it about topology again?
22:56:34 <Ilari> AnMaster: No. But I think I have solved most problems with wormholes except for how various operations affecting IP delta would behave.
22:56:57 <coppro> is this in Funge?
22:57:03 <AnMaster> Ilari, hm?
22:57:38 <AnMaster> Ilari, you mean like the MODE fingerprint which changes <>^v and such to affect position not delta (or various other variants)?
22:58:05 <AnMaster> http://catseye.tc/projects/funge98/library/MODE.html
22:58:13 <Ilari> AnMaster: Nope, just basic befunge operations that set IP delta.
22:59:46 <AnMaster> Ilari, well, those are ^v<>x for unconditional. A few more in trefunge
22:59:56 <AnMaster> plus some conditional ones
22:59:59 <AnMaster> like w_|
23:00:18 <AnMaster> oh and the random cardinal direction ? of course
23:00:40 <coppro> MODE doesn't work on h or l?
23:00:43 <AnMaster> oh and I forgot [ and ] that turns 90 degrees (counterclockwise/clockwise
23:00:44 <AnMaster> )
23:00:47 <AnMaster> coppro, no clue
23:01:10 <AnMaster> coppro, it doesn't work on w either it seems
23:01:13 <AnMaster> but then
23:01:18 <AnMaster> w is relative current always
23:01:23 <AnMaster> it is turn left/right
23:01:29 <AnMaster> or go straight ahead
23:01:30 <Ilari> Well, if there couldn't be operators inside wormhole, that would mean no IP delta changes there either...
23:01:32 <AnMaster> depending on compare
23:01:42 <AnMaster> Ilari, why couldn't there be?
23:02:24 <AnMaster> Ilari, and of course there should be possible to have wormholes between wormholes and normal space
23:03:04 <Ilari> AnMaster: Because normal space have two equivalent dimensions, but wormholes have longitudial direction and transverse direction, and those most definitely aren't equivalent. In fact, what direction is longitudial depends on direction wormhole was hit.
23:03:42 <coppro> Ilari: Do you have docs on how wormholes work as of now?
23:03:44 <AnMaster> Ilari, so there could be no code inside a wormhole?
23:03:48 <coppro> or do I need to look in the logs?
23:03:58 <AnMaster> coppro, they aren't implemented anywhere yet
23:04:02 <AnMaster> it is theorising about it
23:04:07 <coppro> yeah
23:04:14 <coppro> but one can have docs without an implementation
23:04:27 <AnMaster> well, logs the last week or so I guess
23:04:30 <AnMaster> grep for wormhole
23:04:38 <AnMaster> can't have too many irrelevant hits
23:05:36 <Ilari> Pretty much the only basic operations that are problematic are those that set absolute IP delta... '[' and ']' wouldn't be...
23:06:26 <AnMaster> Ilari, well, if you hit a cell with ^ in, you go the direction where ^ is written
23:06:29 <Ilari> Wormholes within wormholes would really mess up tracking about what direction wormhole was entered from.
23:06:37 <AnMaster> Ilari, one issue would be *how to write* inside the wormhole
23:06:45 <AnMaster> since what is the x/y coordinate
23:07:02 <Ilari> Wormhole endpoint has x/y coordinate, but that's a gap in space.
23:07:20 <AnMaster> Ilari, you need to be able to give current x/y coord, the y command (sysinfo) includes that amongst many other things
23:08:25 <AnMaster> and even you made y inside a wormhole invalid, you would still need some coordinate system for use by the interpreter itself
23:09:23 -!- Pthing has changed nick to Libstertas.
23:10:42 <coppro> Ilari: how do wormholes work?
23:11:31 <Ilari> The standard befunge coordinates form a group. Wormholes would break that. WORM would be one heck of a feral fingerprint (not as bad as TRDS, but quite bad).
23:11:51 -!- tombom has quit (Quit: Leaving).
23:12:18 <AnMaster> Ilari, agreed. I doubt I would implement it
23:12:32 -!- Libstertas has changed nick to LibsterBib.
23:14:55 <coppro> Ilari: Explain?
23:15:21 <Ilari> coppro: Coordinate addition is no longer associative in presence of wormholes.
23:15:36 <coppro> O_o
23:15:38 <MissPiggy> huh
23:16:14 -!- oklopol has joined.
23:16:28 <oklopol> cpressey: why couldn't a ring have absorptino?
23:16:31 <oklopol> *absorption
23:16:48 <Ilari> There are also proerties like: If at t = 0, two IPs are at the same point, have different IP deltas that will not change, in standard funge, those IPs will never be at same point again, whereas with wormholes, they could.
23:17:16 <oklopol> "Ilari: But are there groups that have all elements in generator set have sizable order?" <<< what's sizable order?
23:17:26 <coppro> why would they never return to the same place?
23:17:34 <coppro> in fact, they would have to
23:17:48 <Ilari> oklopol: There prsumably means much larger than 2.
23:17:50 <AnMaster> <Ilari> There are also proerties like: If at t = 0, two IPs are at the same point, have different IP deltas that will not change, in standard funge, those IPs will never be at same point again, whereas with wormholes, they could. <-- wraparound
23:18:00 <Ilari> Ah yeah.
23:18:02 -!- LibsterBib has changed nick to pthing.
23:18:19 <cpressey> oklopol: The only x where x * x = x in a ring is x = 1. And the only y where y + y = y is y = 0.
23:18:36 <AnMaster> Ilari, one goes straight up one goes straight left, they will hit the same place again assuming width/height ever match up
23:19:09 <oklopol> Ilari: the free group generated by {x, y, z} has pretty sizable order for the generators.
23:19:31 <Ilari> oklopol: But doesn't it also decompose w.r.t. cartesian product?
23:19:45 <oklopol> cpressey: why?
23:19:55 <oklopol> the latter is obvious, i don't see why the first one is
23:20:06 <coppro> Ilari: I'm still really not clear what this is supposed to be doing :/
23:20:38 <cpressey> oklopol: My ring theory is rusty.
23:20:41 <oklopol> + forms an abelian group, but . just needs to distribute over + and possibly have 1.
23:21:08 <AnMaster> cpressey, some questions about TURT btw.
23:21:19 <oklopol> y + y = y => y = 0, by adding -y to both sides
23:21:44 <oklopol> but x^2 = x <=> xx - x = 0 <=> x(x - 1) = 0
23:21:48 <MissPiggy> you can have
23:21:48 <Ilari> oklopol: I think free group from {x, y, z} is the same as Z x Z x Z.
23:21:56 <MissPiggy> (H + x) + (H + y) = H + (x + y) if H is a coset
23:21:57 <AnMaster> cpressey, mainly, is U supposed to return the same value all the time (max bounds supported)? Or is it current bounds of the drawing?
23:22:10 <oklopol> Ilari: what would xyx be in Z^3?
23:22:15 <AnMaster> cpressey, if the former I have an issue, bignum again :/
23:22:30 <oklopol> cpressey: and if it's not a domain, i don't see why x would have to be 1 or 0 if x(x - 1) = 0
23:22:45 <Ilari> Ah, free groups are noncommutative.
23:22:55 <AnMaster> cpressey, another thing, how is the coordinate supposed to be handled. Round to nearest integer? You can easily get non-integers when you move an integer distance along an integer heading
23:23:04 <AnMaster> non-integers for x and y that is
23:23:44 <cpressey> AnMaster: Your guess is as good as mine.
23:23:54 <AnMaster> cpressey, you wrote TURT though
23:24:08 <oklopol> Ilari: for abelian groups, we can in fact split all groups up into pieces sort of like you guessed, but groups in general can do pretty much anything, at least afaik.
23:24:10 <cpressey> Yes, more than a decade ago.
23:24:18 <AnMaster> cpressey, since I render to svg in cfunge (and will do same in efunge) I can use floating point coordinates
23:24:42 <AnMaster> but you can query coordinates in TURT, but that should return integer
23:25:09 <Ilari> x(x - 1) = 0 could have other solutions than just x = 0 and x = 1 if operation is done in ring that's not integral domain.
23:25:45 <MissPiggy> 5*4=0
23:25:50 <MissPiggy> mod 20 :P
23:25:55 <cpressey> AnMaster: I'm sure you won't break many existing TURT-using Befunge-98 programs if you just pick a behaviour that sounds reasonable :)
23:26:16 <oklopol> 2*3 = 0 in Z_6 if you want an example
23:26:18 <Ilari> And indeed 5^2 = 25 = 5 (mod 20).
23:26:29 <oklopol> oh
23:26:34 <AnMaster> Ilari, that's x^2-x=0 ? Which gives x= 1/2 +/- sqrt(2^2/4) ?
23:26:47 <AnMaster> err wait
23:26:49 <AnMaster> typoed that
23:26:55 <AnMaster> x= 1/2 +/- sqrt(1^2/4) ?
23:26:59 <AnMaster> of course
23:27:40 <AnMaster> modulo style thingies are confusing ;P
23:27:59 <AnMaster> at least when using it that way
23:28:05 -!- coppro has quit (Ping timeout: 265 seconds).
23:29:35 <oklopol> x^2 - x = 0 gives x(x - 1) = 0 which gives x = 0 or x = 1 on R, silly AnMaster.
23:29:58 <AnMaster> oklopol, well yes
23:30:25 <AnMaster> oklopol, I was just checking if there was any solutions in C by using the general formula
23:30:32 <AnMaster> and of course there wasn't
23:30:35 <AnMaster> I'm too sleepy
23:30:46 <oklopol> modulo isn't confusing, Z_n is an abelian ring, and abelian rings are nice and simple things.
23:31:12 <AnMaster> oklopol, only if you are used to them
23:31:14 <oklopol> yeah C is an integral domain, you can't have ab = 0 unless a = 0 or b = 0
23:31:30 <oklopol> oh well also you need to know it's a unique factorization domain
23:31:40 <oklopol> or wait
23:31:49 <oklopol> nooo you don't
23:31:54 <oklopol> silly oklopol
23:32:12 <AnMaster> who said anything about ab=0?
23:32:48 <oklopol> x^2 - x = 0 <=> x(x - 1) = 0
23:33:37 <oklopol> in case your pattern matching skills are sleepy too, a = x, b = x - 1
23:33:38 <cpressey> oklopol: Say a * a = a and b * b = b. But a * e = a and b * e = b. Therefore a = b.
23:34:05 <cpressey> Wait, is that complete bullshit? Hm.
23:34:11 <oklopol> well
23:34:16 <oklopol> your therefore isn't really based on anything
23:34:26 <oklopol> or it's based on division
23:34:38 <oklopol> oh umm
23:35:34 <cpressey> b * b = b, b * e = b, therefore e = b. a * a = a, a * e = a, therefore e = a. Therefore a = b.
23:35:40 <oklopol> yeah i don't see where you get an equality
23:35:56 <oklopol> b * b = b, b * e = b, therefore e = b <<< why?
23:36:02 <cpressey> Substitution?
23:36:17 <AnMaster> <oklopol> in case your pattern matching skills are sleepy too, a = x, b = x - 1 <-- yeah thanks
23:36:22 <cpressey> I can substitute e for b and b for e, therefore e = b, no?
23:36:56 <AnMaster> oklopol, any solutions that are quaternions? If not, what would be needed to get a polynomial with quaternionious solutions?
23:36:58 <oklopol> you can substitute e for b and b for e if they are then multiplied from the left by b, yes.
23:37:09 -!- scarf has quit (Remote host closed the connection).
23:37:23 <oklopol> AnMaster: no. there are just those two solutions, because also quaternions are an integral domain (i should hope)
23:37:29 <cpressey> Well, just add the mirror-image to get multiplied from the right. e is both left and right identity.
23:37:31 <AnMaster> oklopol, well yes, for that given one
23:37:42 <oklopol> what's a mirror image?
23:37:44 <oklopol> a^-1?
23:37:45 <AnMaster> oklopol, but what sort of polynomial would give a quaternion as a solution?
23:38:01 <MissPiggy> AnMaster, well a polynomial in H would!
23:38:07 <cpressey> oklopol: b * b = b, e * b = b, therefore e = b
23:38:14 <MissPiggy> for example x - q = 0 (with q in H)
23:38:19 <oklopol> cpressey: my guess is you're confusing rings and fields
23:38:27 <AnMaster> MissPiggy, oh good point
23:38:36 <cpressey> oklopol: what axiom from field theory am I using?
23:38:41 <MissPiggy> another thing is, since C is a subset of H
23:38:50 <MissPiggy> then any polynomial with roots in C has roots in H
23:38:59 <oklopol> i mean you're basically getting b*b = e*b ==> b = e, right?
23:39:17 <AnMaster> MissPiggy, well, I meant ones that doesn't fit into "simpler" "subsets"
23:39:30 <cpressey> oklopol: Yes, I believe I stated that
23:39:35 <oklopol> if b has a right inverse, then that's true
23:39:38 <oklopol> but what if it doesn't?
23:39:51 <MissPiggy> AnMaster, I wonder if H is algebraically closed (like C is)
23:40:58 <oklopol> i mean by your logic b*0 = 0, e*0 = 0 => b = e
23:41:05 <oklopol> because you can substitute them for each other
23:41:27 -!- Sgeo_ has joined.
23:42:05 <cpressey> oklopol: b*0 = 0, e*0 = 0 => b = e = 0
23:42:11 <cpressey> substitute all occurrences of b
23:42:19 <oklopol> are you sure about that?
23:42:21 <oklopol> i mean
23:42:30 <oklopol> you're basically saying all rings only have the one element 0
23:42:35 <oklopol> and i'm not sure that's true
23:42:52 <oklopol> a*0 = 0 for all a
23:42:53 <cpressey> oklopol: No, I'm not saying that.
23:43:17 <oklopol> so take any two elements a and b, and you'll have a*0 = 0, b*0 = 0 => a=b=0
23:43:21 <MissPiggy> 23:40 < oklopol> i mean by your logic b*0 = 0, e*0 = 0 => b = e
23:43:22 <MissPiggy> haha
23:43:43 <MissPiggy> nice misinterpretation of x and y are equal if P(x) <=> P(y) ==> x = y
23:43:57 <MissPiggy> it has to be true for ALL P, not just one P
23:44:13 -!- Sgeo has quit (Ping timeout: 246 seconds).
23:44:25 <oklopol> i'm not sure that's what's being misinterpreted
23:44:36 <oklopol> i think he's just confusing rings and fields
23:44:43 <MissPiggy> oh don't get algebraic about this
23:44:48 <MissPiggy> for goodness sake
23:44:50 <oklopol> :P
23:45:39 <AnMaster> MissPiggy, no idea
23:46:55 <cpressey> Still not sure what field axiom I'm relying on. If x * x = x then x has a right inverse (it's x.)
23:47:03 <oklopol> cpressey: anyway in Z_6, 4*4 = 16 = 4, so 4 is an idempotent element
23:47:48 <oklopol> i just want to know if you're really not seeing you're doing a division there
23:47:56 <oklopol> hmm
23:48:07 <oklopol> if x*x = x, then x has a right inverse, huh?
23:48:17 <oklopol> that would be x*x = 1
23:49:59 <cpressey> oklopol: I may well be wrong.
23:50:05 <oklopol> cpressey: i can't say what field axiom you're relying on, because i just see a gap in logic. all i can say is that from the existence of inverses, e=b follows trivially from eb = bb
23:50:09 <cpressey> But I don't see how I'm doing division.
23:50:32 <oklopol> that's because you just have a gap in logic, you take what you have, and you say "therefore b=e".
23:50:51 <cpressey> Well, you agree that eb = bb -> e = b?
23:51:08 <oklopol> of course not, i just showed you a counterexample
23:51:21 <cpressey> Then what was your "all i can say" statement about?
23:51:52 <oklopol> that i don't know what field axioms you're relying on. because you aren't relying on anything.
23:52:20 <cpressey> I mean, it sounded like you just said, "All I can say is that from the existence of inverses, eb = bb implies e = b" -- is that not what you meant?
23:52:38 <oklopol> yeah, *if we had inverses*, then that'd trivially be true
23:52:49 <oklopol> so given that we don't, why is it true?
23:54:13 <cpressey> Would you agree it would be true if we knew b had an inverse (regardless of any other element having one)?
23:54:20 <oklopol> yeah
23:54:36 <oklopol> we could then multiply by that inverse.
23:56:08 <cpressey> Well, I wish I could show it had an inverse, then.
23:56:37 <oklopol> yeah good luck showing there are no rings that aren't fields.
23:57:11 <cpressey> I'm not saying EVERY element in the ring has to have an inverse.
23:57:11 <oklopol> (Z_4)
23:57:28 <cpressey> That's where your angle is confusing me.
23:57:34 <oklopol> well right, the idempotent element does
23:58:14 <cpressey> wait
23:58:22 <oklopol> if you don't believe in Z_6, then hmm... if you know linear algebra, you'll probably know a matrix can be idempotent without being identity?
23:58:27 <cpressey> What claim of mine are you trying to refute, anyway?
23:58:38 <oklopol> that you can't have idempotent elements
23:58:41 <cpressey> Is it the thing about Potro on my LoUIE page?
23:58:46 <oklopol> oh wait
23:58:55 <oklopol> i'm trying to refure a*b = a isn't possible
23:59:23 <oklopol> but if a*a = a is possible (and it is), then a*b = a is possible, so doesn't matter
23:59:47 <oklopol> yeah potro
23:59:51 <AnMaster> night →
23:59:56 <oklopol> night
2010-02-18
00:00:33 <oklopol> idempotency is a special case of absorption
00:00:54 <cpressey> "So this can be used to make algrebraic structures which include absorption like idempotent semirings (which are also called dioids), but rings are not one of those structures." <-- I only mean that rings do not include the axiom a + a = a that is found in idempotent semirings
00:01:02 <augur> heyo
00:01:03 -!- Gracenotes has joined.
00:01:30 <cpressey> If R is a ring, it's not necessarily true that a + a = a for all a in R.
00:01:39 <oklopol> yeah it can't be true
00:01:50 <oklopol> because + forms an abelian group
00:01:51 <cpressey> Which is what I thought that statement said.
00:02:05 <cpressey> Rings are not one of those structures. That has a + a = a for all a.
00:02:07 <oklopol> i thought you meant absorption in multiplication
00:02:29 <cpressey> Idempotent semirings don't have that.
00:02:47 <oklopol> "In algebraic terms, the first program absorbs the second during sequential composition." <<< sequential composition = multiplication
00:03:09 <oklopol> so you are saying rings can't have ab = a
00:03:21 <cpressey> I may be misusing the term "absorb" there.
00:03:35 <oklopol> did you mean a + b = a?
00:03:50 <oklopol> then that makes no sense in the context, because sequential composition is not addition
00:03:54 <cpressey> I mean, in the case that the program b doesn't halt, a * b = b. Not in the general case. If both a and b halt, a * b = c.
00:04:14 <oklopol> okay, so you were talking about multiplication
00:04:26 <oklopol> and you can have ab = a in a ring.
00:04:40 <oklopol> so what you're saying on the page does not make sense.
00:04:48 <cpressey> OK, so I'll probably reword it.
00:05:47 <cpressey> Can you have ab = a in an infinite ring?
00:06:36 <oklopol> take an idempotent matrix
00:07:44 <oklopol> also it should be simple to construct an example with a!=b, for instance with matrices
00:08:00 <oklopol> i assume you know matrices form a ring, if you don't, they do
00:09:25 <oklopol> heyo augur
00:09:27 <cpressey> OK. Well, that's actually very encouraging for the possibility that programs could form a ring with * being sequential composition. You'd just have to have a * b = b for all b that never halt :)
00:09:34 <augur> oklopol hey
00:09:49 <augur> wanna hear something funky cool about english grammar that noone has a great explanation for?
00:10:20 <oklopol> cpressey: there's one slight problem tho, the addition must form an abelian group, how were you planning to invert parallelization ;)
00:10:32 <oklopol> parallel is rather naturally abelian, i guess
00:10:38 <oklopol> augur: yes!
00:10:51 <augur> consider these two sentences
00:10:53 <oklopol> i'll try to explain it without a second of thought
00:10:55 <oklopol> or not
00:11:16 <augur> "Which article did mary file ___?"
00:11:17 <augur> and
00:11:26 <augur> "Which article did Mary read the book before filing ___?"
00:11:42 <augur> where the ___ denotes a gap/missing word associated with "which article"
00:11:48 <augur> the first is good, the second is horrible
00:12:04 <cpressey> augur: Can you give an example for ____ in the first case?
00:12:15 <augur> cpressey: what do you mean?
00:12:45 <cpressey> augur: Can you provide a word associated with "which article" which you can include in your first sentence in place of the ____ ?
00:12:46 <augur> the ___ just denotes the space that "article" would normally be found it were this NOT a question
00:12:47 <augur> e.g.
00:13:03 <augur> "Mary read the book before filing the article"
00:13:55 <augur> in the statement, you find "the article" after "filing", whereas in the sentence you dont. so i'm just putting a ___ to denote where the article phrase would be in a declarative sentence
00:14:32 <augur> or really, you can see it as (necessarily) empty position that you understand to be associated with "which article"
00:15:39 <cpressey> Well, in your first sentence you have the word "file" and in your second sentence you have the word "filing". If your first sentence was "Which article did Mary filing ___?" it would be equally horrible. Moreso, actually. So I'm not sure how it's even a fair comparison.
00:15:45 <oklopol> the second is "Before filing which article did Mary read the book" with which article in the beginning?
00:16:11 <augur> cpressey: thats irrelevant to the point
00:16:14 <oklopol> maybe i'll read what's been said
00:16:24 <augur> because the non-question sentence "Mary read the book before filing the article" is fine
00:16:31 <cpressey> Completely lost today, I guess I am :)
00:16:33 <augur> its not about the verb, its about the gap
00:16:49 <cpressey> augur: See, I never bought that question-formation works like that.
00:16:59 <augur> whether you buy HOW it works is irrelevant
00:17:08 <augur> characterize it in a dependency grammar sense for all i care
00:17:33 <augur> the point is that theres this dependency between "which article" and "filing" in the second sentence which is BAD
00:17:43 <augur> but between "which article" and "file" in the first sentence which is FINE
00:17:46 <oklopol> augur: the sentence looked horrible to me at first, but now i'm kinda getting used to it :P
00:17:58 <augur> oklopol: thats ok, thats irrelevant to the point too ;)
00:18:00 <augur> so!
00:18:03 <augur> moving on to the interesting fact
00:18:11 <augur> lets mash these two sentences together
00:18:19 <augur> "which article did Mary file ___ before reading ___?"
00:18:22 <augur> completely fine.
00:18:44 <MissPiggy> what did mary file!
00:18:51 <oklopol> yeah
00:18:53 <augur> the gap in the "before VERBing ___" clause is suddenly completely fine
00:19:00 -!- bsmntbombdood_ has joined.
00:19:26 -!- bsmntbombdood has quit (Ping timeout: 252 seconds).
00:19:33 <oklopol> interesting
00:19:35 <cpressey> I don't believe there was ever a gap there. But I'm sure you'll say that's irrelevant :)
00:19:36 <augur> somehow the adverbial clause gap becomes _acceptable_ when theres also a main clause gap
00:19:47 <augur> cpressey: are you fucking listening?
00:19:54 -!- jcp has quit (Remote host closed the connection).
00:19:56 <augur> the term gap is a purely descriptive tool
00:20:10 <cpressey> Did I say it wasn't?
00:20:12 <augur> whether there was a gap there is irrelevant. describe it, theorize about it, HOWEVER you want
00:20:17 <oklopol> cpressey: you did understand the gaps aren't variables, they just describe where the article would be if it wasn't a question?
00:20:25 <oklopol> i mean you can't actually put anything there
00:20:47 <oklopol> and by the article i mean "the article"
00:20:48 <augur> oklopol: in chomskyan linguistics, the gaps actually _are_ variables, sort of. ;)
00:21:10 <oklopol> well you know what i meant :)
00:21:33 <augur> i mean, if you did this with CCG there's no such thing as a gap; it all just builds up by function application
00:22:08 <augur> the point is not how you characterize it, the term gap is a purely descriptive phenomena. normally "file" and "read" have direct objects after them, but in questions they dont, so you can describe that as a "gap".
00:22:37 <augur> if you want to take that idea seriously as a part of your theoretical apparatus, fine, if you don't, fine, but the descriptive term is just a descriptive term, used to name a phenomena
00:23:14 <augur> call it "an atypical location of Direct Object" or a "question position of Direct Object"
00:23:15 <augur> i dont care.
00:23:51 <augur> now that i've given cpressey the smackdown he so rightly deserved
00:23:57 <oklopol> i was just checking that he had an epiphany after asking "cpressey: augur: Can you provide a word associated ..."
00:24:04 <augur> oklopol: noone reeeaaally knows how to characterize those sentences
00:24:49 <oklopol> cool.
00:25:05 -!- Gracenotes has quit (Ping timeout: 240 seconds).
00:25:08 <oklopol> of course, i'd appreciate this more if i knew what things do have a good characterization :P
00:25:18 -!- FireFly has quit (Quit: Leaving).
00:25:45 <oklopol> "i'd be more interested in this linguistics stuff if i knew anything about linguistics"
00:25:57 <augur> :p
00:26:24 <lament> i'd be interested in this interesting stuff if i knew anything about interest
00:26:59 <augur> well, we have lots of great ways of describing all sorts of good sentences and bad sentences and why they're good vs. bad
00:27:00 -!- Gracenotes has joined.
00:27:01 <cpressey> Should I try to explain that I don't think the concept "where the article would be if it wasn't a question" doesn't really make sense when you
00:27:07 <cpressey> 're analyzing questions?
00:27:10 <oklopol> sure
00:27:18 <augur> cpressey: no, because it doesnt matter
00:27:21 <oklopol> although you might want to /ignore augur
00:27:22 <oklopol> ;)
00:27:39 <augur> my use of that description was purely to make it easier to understand the issue at hand
00:28:18 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:28:32 <cpressey> Right, and no alternative explanation would help shed any light on it.
00:28:49 <augur> it was the first thing i tried.
00:29:13 <augur> whether or not an alternative explanation would help is also irrelevant, because you're bitching about the first thing i tried
00:29:29 <augur> which obviously WORKED because you know what the point of it was
00:29:43 <cpressey> You tried to analyze "file before reading" as an atomic verb?
00:29:48 <augur> that you dont like describe it in that fashion is IRRELEVANT to the communicative intent of that phrasing.
00:29:53 <augur> what
00:30:23 <cpressey> So that wasn't the first thing you tried?
00:30:36 <augur> explain what you're saying because now _you've_ lost _me_
00:30:53 <cpressey> Shame, I gotta go home.
00:30:58 <cpressey> See y'all later.
00:31:00 -!- cpressey has left (?).
00:31:11 <oklopol> if you think of it as an atomic verb, then it seemingly makes sense, say you can't have anything but "which article did mary kill" is ok, "which article did mary file before reading" is ok, the example with the book has "two verbs"
00:31:18 <oklopol> *say you can't have anything but one verb
00:31:38 <augur> its obviously not a single whole unanalyzed verb
00:31:38 <oklopol> see ya
00:32:10 <augur> "Which article did Mary file before throwing into the garbage out back?"
00:32:26 <oklopol> :P
00:32:38 <augur> "file-before-throwing-into-the-garbage-out-back" is now one giant verb!
00:34:38 <oklopol> yeah well i was thinking file needs an object, and because it doesn't get one, you treat it as a lambda which you'll apply "article later", and the same happens with read, and "file before reading" has two lambdas around before, so you make a new verb that forks its argument to both file and read
00:34:49 <oklopol> not sure that makes much sense, that's how i just feel like i'm reading it
00:35:02 <oklopol> *just how it
00:35:03 <oklopol> *
00:35:05 <oklopol> aiuoerh
00:35:07 <oklopol> *i
00:35:32 <augur> right, it does need a object
00:35:53 <augur> but you dont need a gap in the second part, right
00:36:16 <augur> "which article did mary file after reading this book?"
00:36:26 <augur> and it cant simply be a fork to both lambdas
00:37:16 <augur> i mean if that WERE your explanation for the goodness of the two-gap sentence, then you have to explain why there are two classes of one-gap sentences
00:37:21 <augur> DO-of-main-verb gaps
00:37:22 <augur> which are fine
00:37:33 <augur> and DO-of-adjunct-clause-verb gaps which are bad
00:37:49 <augur> gtg, ill be back in a bit
00:38:15 <oklopol> well, the rule could be that the first verb needs to be the only one that needs the article; makes sense because you only need to remember what's being "whiched" until some other ...subject appears
00:39:12 <oklopol> so file before reading is okay because you'll make those into one verb, file before reading the book is okay, because when you reach the book, you'll "forget about the article", but your original example has the book, but you still need to remember the article
00:39:48 <oklopol> i mean that's just what i'd guess, you can probably easily find a counterexample, and i'm not even sure what it is i'm saying, i don't really have a good model of language in my head.
00:42:51 -!- augur has quit (Ping timeout: 272 seconds).
00:58:00 -!- Gracenotes has quit (Ping timeout: 240 seconds).
01:05:47 -!- augur has joined.
01:05:58 <augur> ok hello
01:06:04 <augur> sorry what was your rule, oklopol?
01:08:14 <MissPiggy> augur,
01:08:14 <MissPiggy> 00:42 -!- augur [~augur@129-2-175-79.wireless.umd.edu] has quit [Ping timeout: 272 seconds]
01:09:56 <oklopol> augur: that you only remember what you're "whiching" until there's a first subject, so you just build up a verb that will be applied to "the article" later, until some other subject appears, then you just forget about the article.
01:10:58 <oklopol> basically you just have "which X does Mary V ..." where V is some verb applied to X, and ... can be any additional info
01:11:05 <oklopol> (like before reading the book)
01:14:30 <oklopol> but V can also be a fork. i have no idea what it would be in general.
01:14:41 <oklopol> but some sorta lambda
01:48:17 <augur> oklopol: what do you mean a first subject??
01:48:32 <augur> the word being gapped here, which is linked to the WH phrase, isnt a subject, its an object
01:48:41 <augur> so please explain in more detail
02:00:56 <oklopol> sorry, i mean "object other than the one being whiched", not "subject"
02:00:57 <oklopol> but
02:02:18 <oklopol> really what i mean is you can just have one verb after the which, without an object. "which X does Mary V ..." is the only possible structure.
02:03:09 <oklopol> so always "which object does subject verb", but you can then continue the sentence anyway you like, you just can't add stuff in between
02:03:31 <oklopol> would you consider "the article mary read the book before filing" okay?
02:03:46 <oklopol> was just wondering if the "which" is necessary
02:04:27 <augur> no thats horrible too.
02:04:35 <augur> its pretty much ANY gapping of that sort
02:04:52 <oklopol> yeah
02:04:56 <augur> using a WH phrase was just a convenient way to demonstrate it.
02:05:53 <augur> see the problem is that the GOOD version has TWO gaps
02:06:15 <oklopol> "the article mary has always wanted to read" and stuff work, but "the article mary has a cousin who read" and friends don't work, i think it's the object that does it
02:06:26 <oklopol> augur: yeah and i explained it with a fork
02:06:30 <augur> so it seems like a strange thing to say that the rule is that once you see a direct object you discard the stored phrase
02:06:54 <augur> secondly, that depends on a specifically linear model, but your fork doesnt, so you have to make them work together
02:06:59 <oklopol> i don't think it's strange. the verb can just consist of multiple verbs
02:07:06 <augur> and thirdly, its not just english that allows it, right
02:07:17 <augur> other languages have parasitic gaps too, but in the OPPOSITE ORDER
02:07:25 <augur> so in japanese, for instance, i believe the gap structure is like this:
02:07:52 <augur> [___ V before] S ___ V
02:08:02 <oklopol> "augur: secondly, that depends on a specifically linear model, but your fork doesnt, so you have to make them work together" <<< i don't understand this
02:08:24 <augur> the way you explained why the bad version is bad depends on the linear order of the words
02:08:36 <augur> it doesnt have anything to do with the structure of the sentence
02:08:52 <augur> and crucially, gapping seems to be structurally, not linearly, defined
02:09:13 <oklopol> i see. can you give me an example where my idea doesn't work though?
02:09:27 <oklopol> i mean that would be much more enlightening
02:11:15 <augur> for english, no, sorry. but im not ENTIRELY clear on your description of the rule, to begin with
02:11:27 <augur> i mean, ok, i can probably give you an example without a parasitic gap
02:11:37 <augur> e.g. a sentence with a gap that linearly crosses another direct object
02:11:44 <augur> and those are trivially constructable
02:13:51 <augur> would that help you understand what i mean?
02:14:00 <oklopol> maybe
02:14:12 <oklopol> i think it would be a counterexample to my rule
02:14:54 <augur> well you could always say that your rule only applies to PGs ;P
02:15:04 <augur> so for example
02:15:07 <oklopol> because in my rule, which i do not claim i understand that clearly myself, you can't have a gap crossing any other object, the gap always comes right away.
02:15:36 <augur> who did [the man that john saw] speak to ___?
02:15:44 <oklopol> hmm
02:15:53 <augur> or well
02:16:01 <augur> that doesnt cross an in-place object
02:16:01 <augur> so
02:16:09 <augur> who did [the man that saw john] speak to ___?
02:16:16 <augur> where "john" in this one is the object
02:16:27 <lament> what are you talking about language?
02:16:28 <augur> as far as anyone can tell, these constructions have nothing to do with linear order
02:16:40 <augur> infact, no language seems to care about linear order, as far as anyone knows
02:16:42 <augur> lament: yes
02:19:10 <oklopol> augur: oh but i'd just apply my rule recursively, "the man that john saw" is okay, gap before direct object, then "who did X speak to" is okay, gap before direct object.
02:20:05 <augur> ok but how do you characterize the domain of applicability then
02:20:26 <augur> and then how do you get the fact that in other languages the order doesnt matter to PGs
02:21:38 <oklopol> can you define PG = parasitic gap, is it just this general concept of gap?
02:21:59 <augur> a parasitic gap is the second gap in "which article did mary file ___ before reading ___"
02:22:11 <augur> where if it were the only gap, it would be bad, but because of the presence of the first gap, it becomes good
02:22:46 <oklopol> i can't explain other languages, because i don't know them
02:22:51 <oklopol> oh wait i know finnish
02:22:53 <oklopol> let's see
02:23:01 <augur> you dont need to know another language that does this :P
02:23:07 <augur> you just have to realize that its not linear order
02:24:04 <augur> and its not about objects, either, you can cross subjects too
02:24:29 <oklopol> "augur: ok but how do you characterize the domain of applicability then" <<< always applies
02:24:48 <augur> no no i mean what is the domain that you recursively apply this to
02:25:05 <augur> what is the object that is recursively analyzed
02:25:16 <oklopol> well i dunno... i just think "the man that saw john" is a normal subject
02:25:16 <augur> its not simply all substrings of the sentence, obviously
02:25:24 <augur> ofcourse its a normal subject
02:26:39 <oklopol> so what we have is an instance of the pattern "who did X speak to", which is okay, and X is okay as well; i guess i'd say if there's any parsing that makes it work, it works.
02:27:40 <augur> right, but what im asking is how do you know what to look at when you're asking what is ok
02:27:53 <augur> you're segmenting the sentence into two domains to investigate
02:27:58 <augur> who did X speak to
02:27:59 <augur> and
02:28:02 <augur> the man that saw john
02:28:04 <augur> not, say
02:28:07 <augur> who did the man that
02:28:07 <augur> and
02:28:11 <augur> saw john speak to
02:28:33 <oklopol> "if there's any parsing that makes it work, it works.", segment it into any amount of domains, if it works with some segmentation, it works.
02:29:17 <augur> you cant just say if theres ANY segmentation that makes it work
02:29:36 <oklopol> why not, is it obviously false?
02:30:00 <augur> "which file did mary read the book before filing ___"
02:30:04 <augur> segment this into two parts
02:30:18 <augur> which file did Mary VP before filing ___
02:30:26 <augur> and VP = read the book
02:30:32 <augur> thus in VP theres no violation
02:30:37 <oklopol> i mean i don't think this phenomenon happens on the same level as parsing, i think i already know it's "who did [the man that saw john] speak to ___?" when i start thinking about gaps, so the recursion works
02:30:39 <oklopol> hmm
02:30:40 <augur> and in the other one theres no violation
02:31:23 <oklopol> there's no violation in VP, but there is in "which file did Mary VP before filing ___", therefore it doesn't work.
02:31:29 <augur> no there isnt
02:31:36 <oklopol> sure there is, VP has an object
02:31:43 <augur> yes but so does X in yours!
02:31:56 <oklopol> hmm, yes
02:32:02 <oklopol> let me think, maybe you're right
02:33:55 <oklopol> oh but umm, even though X does have an object, the "type of X" is clearly just a subject. the type of "Mary VP before filing" is not a verb, and does not fit the pattern "which file did mary verb before filing"
02:34:07 <augur> yeah but what does that have to do with it
02:34:17 <augur> this is why i said whats the domain of these analyses
02:34:41 <augur> because if i can just choose any object in the syntax to separate along, e.g. the VP, then theres no problem
02:34:55 <oklopol> i'm saying there is a violation in "which file did Mary VP before filing ___", because it's not of the form "which file did mary V ...", which is the only allowed pattern.
02:35:13 <augur> what do you mean the only allowed pattern
02:35:53 <oklopol> that all sentences that start with "which file did mary " must be followed by a verb without an object, forming a lambda that's then applied to "file".
02:36:51 <oklopol> and "Mary VP before filing" isn't a lambda in this case, i don't know why it isn't, my guess was that VP contains an object, i just know verbs are, and certain forks are.
02:37:18 <augur> thats not true tho
02:37:22 <augur> which file did mary ask john about
02:37:46 <augur> which person did mary talk to john about
02:38:03 <augur> who did mary give the pot to
02:38:06 <augur> etc etc
02:38:28 <augur> not questioning the subject does not mean questioning the object
02:38:43 <augur> what building did mary read the book in
02:40:00 <oklopol> the first ones i think roughly follow my idea, the last one doesn't
02:40:49 <oklopol> now it's okay to have another object before the gap because it isn't a verb that's applied to building, there's a preposition
02:42:00 <oklopol> anyway if you feel like i'm on the wrong track, i'll just trust on your intuition even if i don't trust in your counterexamples.
02:42:17 <oklopol> probably i haven't solved the problem if linguists haven't.
02:42:18 <augur> who did mary tell john about
02:42:29 <augur> tell obviously can take a person as a direct object
02:42:31 <oklopol> well again
02:42:32 <augur> and who can be that object
02:42:33 <oklopol> tell takes two args
02:42:44 <oklopol> "so tell john about" is just a one-arg verb
02:42:55 <augur> what
02:42:55 <oklopol> so i still don't think that's a counterexample
02:42:59 <augur> no its not
02:43:05 <augur> it IS a counter example
02:43:12 <augur> your rule does not rule it out
02:43:15 <oklopol> "to tell john about X" is a verb with one argument
02:43:25 <augur> "to tell john about X" is not a verb
02:43:30 <oklopol> oh.
02:43:38 <augur> its a whole fucking phrase :P
02:43:48 <augur> its also an infinitival subjectless sentence
02:44:02 <augur> and again, Japanese.
02:44:15 <augur> or Irish.
02:44:55 <oklopol> i'd just say tell is a verb that takes two right arguments, in "to tell john about" you've just curried the first one
02:45:49 <pikhq> What's this about Japanese?
02:45:55 <oklopol> i mean what the fuck does it even matter if that's not something that usually makes sense, if it makes sense in this case, i have fitted your counterexample in my model.
02:46:21 <oklopol> or more like it already fit in it, i just probably have a weird model of language in my head because i don't know any of your fancy linguistics stuff.
02:46:22 * pikhq logreads
02:47:10 <pikhq> augur: Yeah, that is the gap structure of Japanese.
02:47:56 <augur> oklopol: ok, let me put it to you this way
02:48:18 <oklopol> "who did mary give the pot to" how is this not a direct application of my idea? "give the pot to" is a verb with one argument
02:48:22 <augur> give me a full _algorithm_ that is not ambiguous or vague.
02:48:56 <augur> oklopol: fine, but then the VP in the bad sentence is ALSO a verb with one argument
02:49:15 <augur> also, "give the pot to" is a two argument verb
02:49:20 <augur> the object of giveing-pot-to
02:49:22 <augur> and the subject
02:49:24 <oklopol> oh wait right
02:49:33 <oklopol> i didn't notice, because it doesn't matter
02:49:38 <augur> right
02:49:44 <augur> you just shift the argument number up one
02:49:49 <oklopol> but umm
02:50:14 <oklopol> you are right about the VP thing, my rule is pretty vague
02:50:19 <augur> the point is, the linear ordering doesnt matter
02:50:29 <augur> because other languages with different linear ordering have the SAME constraint
02:51:36 <augur> dont try to solve it oklopol, its not an easy problem to solve :p
02:51:57 <oklopol> okay i can't really explain why "Mary does something before filing ___" is not okay while "mary tells john about ___" is, i can just explain why the latter one clearly is (currying).
02:52:11 <oklopol> yeah true
02:52:25 <augur> well its not just "does something" right
02:53:06 <augur> its "does something" where that phrase, whatever it is, doesnt have a gapped item
02:53:12 <augur> its not even direct object, right
02:53:21 <augur> "which book did mary tell john about ___ before reading ___"
02:53:42 <augur> "which book did mary see ___ burn to pieces after reading ___"
02:53:45 <augur> etc
02:53:55 <augur> tho interestingly, not the other way around
02:54:22 <augur> "which book did mary read ___ before ___ burnt/burning"
02:54:45 <oklopol> wait that's not okay?
02:55:53 <augur> not on the reading where the book just spontaneously burnt to pieces
02:55:54 <oklopol> "augur: its "does something" where that phrase, whatever it is, doesnt have a gapped item" yeah as i said, it's okay if it results in a one-arg verb, otherwise not. gap = one-arg verb
02:56:01 <augur> if it was mary doing the burning then sure its fine
02:56:15 <augur> "which book did mary read ___ before ___ fell/falling shut"
02:56:28 <oklopol> oh right
02:57:03 <augur> im not saying it doesnt have to do with the VP being a one-arg/two-arg thing right
02:57:10 <augur> im saying it doesnt have to do with the LINEAR ORDER
02:58:24 <oklopol> okay maybe i'm not understanding correctly what you mean by linear order, you mean it can't be the case that it actually wants the gap to be just to the right of the "which article" thingie, but that the reason must have to do with something else?
02:59:23 <augur> i mean it has nothing to do with the dependency crossing an object
02:59:46 <augur> lets try to construct a different example
03:00:35 <augur> "mary read the book before filing yesterday the article" is bad where yesterday modifies "read"
03:00:50 <augur> "mary read before filing yesterday the article" is fine where yesterday modifies "read"
03:00:52 -!- coppro has joined.
03:01:10 <augur> so in this case "the article" is to the right of its gap
03:01:28 <augur> so the dependency doesnt cross another direct object
03:01:34 <augur> and yet its still unacceptable
03:02:23 <oklopol> the sentence is not of the form "the X that ...", i don't directly see what these have to do with each other
03:02:44 <augur> neither is the original!
03:03:01 <oklopol> well yeah it was "which"
03:03:02 <augur> "which article did mary read the book before filing" is not of the form "the X that ..." either
03:03:02 <oklopol> same thing
03:03:14 <oklopol> "the article mary read the book before filing"
03:03:14 <augur> and we already established that it has nothing to do with the "which"
03:03:30 <augur> oklopol
03:03:42 <augur> i just showed you that the CONSTRAINT STILL APPLIES
03:03:48 <augur> and yet your description of the required sentence DOESNT
03:04:15 <augur> you have failed to explain the phenomena because you have no explanation for the RIGHTWARD filler-gap badness
03:04:27 <oklopol> my description was only about cases where you have some sort of "the X that ..." or "which X ..."
03:04:34 <augur> yes and thats the problem
03:04:38 <oklopol> i agree
03:04:45 <augur> your description ONLY explains the leftward filler-gap case
03:04:49 <augur> but not the rightward one
03:05:14 <augur> and more generally, its OBVIOUSLY got nothing to do with the direction --- the violations are EXACTLY the same regardless of direction
03:05:24 <oklopol> i don't even think "mary read before filing yesterday the article" is a good sentence.
03:05:34 <augur> well, you might need a heavier NP
03:05:50 <augur> "mary read before filing yesterday every TPS report that had been left on her desk in the last week"
03:06:11 <oklopol> oh right, i see
03:06:15 <oklopol> silly me
03:06:18 <pikhq> Yeah, that parses just fine.
03:06:45 <pikhq> It just seems very unusual with that syntax structure and having only a single noun as the object of "read".
03:06:55 <augur> 5yeah
03:07:14 <pikhq> Make it longer, and it's magically idiomatic.
03:07:23 <pikhq> ... Not the correct word in this context.
03:07:23 <pikhq> :P
03:07:31 <augur> rightward extraposition is almost always done for weightedness of the phrase being moved
03:07:35 <pikhq> Magically normal-seeming.
03:07:37 <pikhq> There we go.
03:09:32 <augur> you also need the right intonation
03:09:35 <augur> thats another thing, right
03:09:46 <augur> sometimes without the correct intonation a sentence will sound horrible
03:09:51 <oklopol> i have to go do some homework, i admit i have no idea how to solve the problem in that sort of sentence, cya.
03:10:01 <pikhq> Oh, certainly.
03:10:08 <augur> oklopol, dont worry, noone else does either :)
03:10:16 <augur> pikhq: presumably its because intonation indicates structure
03:10:33 <augur> so without the right intonation, you're just not conveying the right structure, so it IS bad
03:10:43 <pikhq> augur: Yeah.
03:10:57 -!- Sgeo_ has changed nick to Sgeo.
03:11:04 <oklopol> i usually draw parentheses in the air with my hands with complicated sentences
03:11:05 <augur> thats the problem with language, we cant enforce a structure, we have to use this linear mechanism
03:11:10 <augur> but the question is ALL about structure
03:11:25 <augur> oklopol: sure, but that also sort of doesnt work with the average person
03:11:41 <pikhq> Y'know, it's kinda funny... It seems to me many people have this odd idea that intonation is limited to various Asian languages... (Y'know, since Chinese is tonal and all)
03:11:58 <pikhq> Even though there's probably not a language *without* intonation being significant in some way.
03:12:18 <pikhq> (if there is a language without significant intonation, its name is Lojban.)
03:12:20 <augur> pikhq: no no intonation isnt what people think is limited to many asian languages
03:12:26 <augur> rather, TONE is
03:12:29 <augur> well not just but
03:12:32 <pikhq> augur: Right.
03:12:33 <augur> english doesnt have TONE
03:12:37 <augur> but it has intonation
03:12:41 <augur> the two are not the same
03:12:43 <pikhq> augur: Intonation is merely ignored.
03:12:51 <augur> indeed
03:13:16 <pikhq> augur: Sorry. Minor bit of confusion there.
03:13:20 <pikhq> I really should know better.
03:13:30 <oklopol> it isn't tone that questions have in the end?
03:13:48 <augur> oklopol: well, intonation and tone are closely related
03:14:06 <augur> in that both are primary tone, right
03:14:15 <augur> so questions have high intonation at the end of them, usually
03:14:33 <augur> but tone is a property of words or syllables
03:14:44 <oklopol> true
03:15:08 <oklopol> i mean i don't know what primary tone is, but otherwise
03:15:15 <augur> er
03:15:35 <oklopol> also the tone at the end of questions is mostly ignored as well
03:15:36 <augur> the tone underlying the harmonics
03:17:20 <oklopol> okay sleep and/or homework
03:17:21 <oklopol> ->
03:17:38 <augur> see ya
03:21:10 -!- SimonRC_ has joined.
03:27:20 -!- SimonRC has quit (Ping timeout: 265 seconds).
03:27:54 -!- bsmntbombdood__ has joined.
03:29:59 -!- bsmntbombdood_ has quit (Ping timeout: 252 seconds).
03:38:24 -!- oerjan has joined.
03:39:54 -!- Asztal has quit (Ping timeout: 265 seconds).
03:54:41 -!- yiyus has quit (Ping timeout: 256 seconds).
04:01:56 -!- MizardX has quit (Excess Flood).
04:02:05 -!- pthing has changed nick to Pthing.
04:03:00 -!- oklopol has quit (Ping timeout: 240 seconds).
04:03:32 -!- MizardX has joined.
04:07:10 -!- yiyus has joined.
04:09:00 -!- jcp has joined.
04:11:53 -!- MizardX has quit (Excess Flood).
04:12:16 -!- MizardX has joined.
04:27:29 -!- augur has quit (Ping timeout: 252 seconds).
04:31:32 -!- coppro has quit (Remote host closed the connection).
04:32:20 -!- coppro has joined.
04:39:13 -!- MissPiggy has quit (Quit: Lost terminal).
05:08:13 -!- bsmntbombdood__ has quit (Ping timeout: 272 seconds).
05:16:51 -!- MizardX has quit (Ping timeout: 256 seconds).
05:25:09 -!- bsmntbombdood__ has joined.
05:27:26 -!- augur has joined.
05:40:09 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
05:44:21 -!- coppro has quit (Remote host closed the connection).
05:45:05 -!- coppro has joined.
05:54:40 -!- jcp has quit (Read error: Connection reset by peer).
05:55:52 -!- jcp has joined.
06:08:49 -!- Gracenotes has joined.
06:43:08 -!- oerjan has quit (Quit: Verily So).
06:56:43 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:06:08 -!- deschutron has joined.
07:58:15 -!- oklopol has joined.
07:59:02 -!- addicted has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:45 <fizzie> `swedish This is an example sentence right here.
08:13:50 <HackEgo> Thees is un ixemple-a suntunce-a reeght here-a. \ Bork Bork Bork!
08:26:33 -!- MizardX has joined.
08:27:30 -!- Asztal has joined.
08:30:20 -!- MigoMipo has joined.
08:33:21 -!- deschutron has left (?).
09:03:30 -!- oklopol has quit (Remote host closed the connection).
09:03:54 -!- oklopol has joined.
09:07:38 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:10:30 -!- addicted has quit (Ping timeout: 265 seconds).
09:11:18 -!- addicted has joined.
09:44:41 -!- kar8nga has joined.
10:19:24 -!- FireFly has joined.
10:21:44 <AnMaster> hm
10:22:26 -!- tombom has joined.
10:22:27 <AnMaster> what about a piet/bf polygot? I do think it would actually be possible, since bf ignores anything but +-<>[],.
10:22:57 <AnMaster> so as long as the image header or such requires that there is unbalanced [] in it or similar it should be possible
10:23:21 <AnMaster> s/such requires/such doesn't require/
10:24:11 <AnMaster> a piet quine also sounds quite interesting
10:26:47 -!- Asztal has quit (Ping timeout: 272 seconds).
10:44:14 -!- oklopol has quit (Read error: Connection reset by peer).
10:44:45 -!- oklopol has joined.
10:54:14 -!- BeholdMyGlory has joined.
10:58:21 <fizzie> AnMaster: If you use the PPM image format, a piet/bf polyglot is boringly trivial: the PPM format is ascii-based, the "header" is just the string "P3", all the data is just decimal digits and newlines ignored by bf, and lines starting with # are PPM comments, so you can stick any brainfuck program there.
10:59:26 <AnMaster> fizzie, hm, what format is usually used for piet?
10:59:31 <AnMaster> png? bmp? ppm?
10:59:38 <fizzie> I don't really know, png would be my guess.
10:59:42 <AnMaster> right
10:59:53 <AnMaster> fizzie, a piet quine sounds more interesting
11:01:32 <fizzie> Yes. Or maybe even a multistage quine, where you have a .png file that's a Piet program that outputs a .bmp, which is a Piet program that outputs a .tiff, which is a Piet program that outputs the original .png.
11:01:41 <AnMaster> hehe
11:02:03 <fizzie> Sounds nontrivial to write, though.
11:05:00 -!- addicted has quit (Ping timeout: 260 seconds).
12:19:12 -!- FireFly has quit (Quit: Leaving).
13:03:56 -!- kar8nga has quit (Remote host closed the connection).
13:26:49 <oklopol> nono you should make a chain of piet programs p1 ... pn s.t. pi outputs p(i+1), pn outputs p1, and they form an animation of some sort
13:27:00 <oklopol> like a dancing dude
13:27:36 -!- oerjan has joined.
13:32:11 <fizzie> oklopol: I am sure that sooner or later that sort of thing (incl. a Piet browser plugin to run them) will deprecate Flash for doing animated web ads.
13:34:08 <oklopol> probably also interactive stuff
13:50:48 -!- paramananda has joined.
14:00:09 * oerjan vaguely suspects paramananda is in the wrong channel
14:00:32 <oerjan> this is for esoteric programming languages, nothing to do with swamis of any kind :D
14:02:48 <oerjan> i don't think we have yet found a good esotericism channel to point people to
14:04:26 -!- lament has quit (Ping timeout: 252 seconds).
14:04:28 <oerjan> hm actually according to http://irc.netsplit.de/chat/esoteric.php, the #esoteric at DalNet looks promising
14:04:42 <oerjan> *DALnet
14:05:37 <oerjan> well, apart from having just 1 user, that is
14:05:53 -!- lament has joined.
14:06:39 <oerjan> alas, http://irc.netsplit.de/channels/details.php?room=%23esoteric&net=DALnet shows that being the mac
14:06:42 <oerjan> max
14:08:25 <oerjan> the rusnet one looks more promising actually (8 users), but you'd have to know russian
14:10:38 <oerjan> (topic transliterates as "ezoterika, mistika, magiya")
14:30:47 -!- paramananda has left (?).
14:40:46 -!- FireFly has joined.
14:56:54 <Sgeo> Who said anything about swamis?
14:57:37 <oerjan> `google paramananda
14:57:43 <HackEgo> Swami Paramananda (1884-1940) was one of the early Indian teachers who came to the United States to spread the Vedanta philosophy and religion in America. ... \ [13]Biography - [14]Works - [15]Books on and by Swami Paramananda
14:58:11 <Sgeo> Ah
14:58:36 <oerjan> the -ananda is usually a dead giveaway :D
14:58:51 <Sgeo> Well, I have to get ready to go to school
15:08:50 -!- cpressey has joined.
15:13:43 -!- Pthing has quit (Remote host closed the connection).
15:29:33 -!- deschutron has joined.
15:33:33 -!- Suprano has joined.
15:33:57 -!- Suprano has left (?).
15:37:50 <deschutron> hi fungot
15:37:51 <fungot> deschutron: i don't know anyone who speaks latin would like to join in r.a.w...?
15:38:10 <oerjan> reductio ad whateverum
15:39:18 <deschutron> haha
15:39:36 <deschutron> sure, fungot, count me in
15:39:36 <fungot> deschutron: deleted by fnord white user fnord 19:56, 20 october 2006 ( utc
15:40:02 <deschutron> fungot: i was deleted?!
15:40:03 <fungot> deschutron: ' ' '
15:40:21 <deschutron> fungot: fungot
15:40:22 <fungot> deschutron: operation blue star: this was the first black man to receive a kbe. but, unfortunately the error function. but is the constitution the enabling act, or
15:40:57 <oerjan> ^style
15:40:58 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp* youtube
15:41:52 <deschutron> so fungot can be set to a style, can it?
15:42:17 <deschutron> ^style lovecraft
15:42:18 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
15:42:36 <deschutron> fungot: hey there, how's it hangin'?
15:42:58 <deschutron> fungot: fungot
15:43:10 <deschutron> ^style speeches
15:43:11 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
15:43:39 <deschutron> fungot: what is the only thing to fear?
15:53:14 <oerjan> fungot: stop ignoring deschutron please
15:53:16 <fungot> oerjan: gentlemen, flushed with hope, burning with animosity, they agree in their votes, so to speak, or for iphicrates in the field, and in the course of athenian education, the administration of justice.
15:53:52 <oerjan> (it has a five response consecutive limit per person)
15:54:02 <deschutron> i see
15:54:38 <deschutron> fungot: what is the only thing to fear?
15:54:40 <fungot> deschutron: the great french soldier, de fnord fnord fnord atque fnord fnord, saw the royal family: so as on one hand, and caused the seal of that great people were peculiar to themselves, the interest became still more absorbing. the fnord understanding, the rudest hand, is not a good hat, and asked me who had been talking prose all their lives without knowing anything of the sort since he built the tower of babel. the foreign
15:55:31 <oerjan> fnords to live by
15:55:34 <fungot> tr~lx@115-166-55-84.ip.adam.com.au: what an ignorance of human nature, that whoever takes a view of the court of louis. he was in truth a monster in jurisprudence. it signifies nothing whether a court for this purpose too the druids performed all their ceremonies in the bosom of france itself; we have been speaking had been members of large communities, and of which he had knocked down osborne and bidden defiance to
15:55:34 <deschutron> lol "the great french soldier, de fnord fnord fnord atque fnord fnord"
15:55:54 <oerjan> what the heck?
15:56:51 <deschutron> he must have noticed me quoting him
15:57:06 <deschutron> adam.com.au is my isp
15:57:52 <oerjan> well there's a bug in that...
15:58:02 <oerjan> also, i thought this channel censored colors
15:58:31 -!- scarf has joined.
15:59:31 <oerjan> ^bf +[.+]
15:59:32 <fungot> <CTCP>.. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ...
16:00:11 <scarf> heh, my client interpreted that as a CTCP
16:00:16 <oerjan> mine too
16:00:16 <scarf> with colour codes in!
16:00:40 <oerjan> oh i got no color (other than inverse video). hm...
16:00:43 <oerjan> ^bf ++[.+]
16:00:44 <fungot> .. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ...
16:00:51 <deschutron> whoa
16:01:32 <oerjan> in fact that was what i wanted to test. why did the one above (just befor scarf joined) have colors?
16:01:40 <deschutron> i got no colour on that
16:02:06 <deschutron> i got no colour on the one before scarf joined
16:02:06 <oerjan> huh, i did. blue on black.
16:02:35 <oerjan> maybe that's just bold + inverted in my terminal
16:02:37 <deschutron> i'm using pidgin
16:02:38 <oerjan> or something
16:02:40 <oerjan> irssi
16:04:10 <oerjan> oh well, it was a strange bug - fungot giving a malformed response to deschutron without deschutron saying anything (afaict)
16:04:12 <fungot> oerjan: speusippus. to sup with fnord. i have that inward and dignified consciousness of my own meditation. with eyes dimmed with fond and melancholy tears, she leaned over the fnord, if more and better food is any standard of melioration. they work more, it was the duty of such a compliment; and therefore, in a general way to know why he was in power, and that
16:04:28 <oerjan> fnords to live by
16:04:47 -!- MissPiggy has joined.
16:05:19 <oerjan> perhaps it was that the long response it was already giving got broken up into two lines somehow...
16:05:27 <deschutron> "the great french soldier, de fnord fnord fnord atque fnord fnord"
16:05:55 <oerjan> deschutron: i saw that after fungot's weird response, last time
16:05:56 <fungot> oerjan: the objectors, education among the people for that object. they wish us to do is a mysterious and searching question which those may answer who know what it is.
16:06:34 <deschutron> oh
16:06:50 <deschutron> i sent it before i received his weird response
16:09:04 -!- kar8nga has joined.
16:10:04 <deschutron> by the way oerjan, i like your language CHIQRSX9+
16:10:11 <scarf> I like that last fungot quote, btw
16:10:12 <fungot> scarf: nothing is more natural than that the parliament has possessed great power in the democracy under napoleon. napoleon might probably have lacked the information that certain monsters of virtue ever had existence. but it is not in the power of the keys of the fortress on his knees is daily studied, no sectarian ill-will nor narrow human dogma is permitted to do it.
16:10:40 <oerjan> thanks
16:11:41 <deschutron> i came across it recently.
16:12:11 <oerjan> oh, food ->
16:13:04 <deschutron> food?
16:14:21 <fizzie> oerjan: Yes, there's a sort of a "known bug" in that sometimes fungot gives partially corrupted spurious replies. It's proven to be a bit of a heisenbug.
16:14:23 <fungot> fizzie: revolution, the french monarchy so low in the scale upon which they will intrigue to obtain, or of negligence scarcely less culpable. mr mitford has nevertheless told without any qualification, and at once the grand distinction to be asked to come amongst you. this is the subject of representation; much on the art of cementing the ties of party had superseded those of country, have been more pleasing. i shall introduce
16:17:08 <oerjan> deschutron: i'd been forgetting to eat
16:17:42 <oerjan> fizzie: i was wondering if it was related to having very long replies that get split somehow?
16:18:02 <deschutron> right.
16:18:21 <deschutron> i know the feeling
16:18:44 <fizzie> oerjan: It is possible that the reply-generation overflows something, yes. I don't remember if I have a hard limit for the number of tokens there, it has a stopping probability that grows as the number of already generated tokens increases though.
16:19:37 <oerjan> well does the formula for the stopping probability ever reach 1?
16:20:01 <oerjan> otherwise it's at least possible to grow without limit
16:21:00 <fizzie> I'm not sure, it's not completely trivial to read from the code. And I think it still will only stop if the model permits that, so if there's a nonzero-probability "loop" (context-wise, I mean) of nodes in the n-gram graph that do not have the "can stop" flag, it's possible to get stuck.
16:21:23 <fizzie> Might also be that there's a sensible limit of tokens, but the token → text conversion overwrites something.
16:21:24 <fizzie> ^style
16:21:25 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube
16:22:19 <fizzie> I have a feeling the speechification might have a larger average token length that something like IRC. But that's just a guess.
16:23:06 <oerjan> sesquipedalian loquaciousness, you mean
16:23:14 <fizzie> Yes, that.
16:31:01 -!- deschutron has left (?).
16:42:48 <cpressey> oklopol: I reworded http://catseye.tc/cpressey/louie.html#Potro -- hopefully it's clearer now.
16:48:15 -!- KingOfKarlsruhe has joined.
16:49:02 <oklopol> tbh i'm still not completely happy with it :P
16:49:21 <oklopol> just thinking about "Unfortunately, we would need ..."
16:49:23 <oklopol> i mean
16:49:30 <oklopol> couldn't you just append them, and it halts it if halts
16:49:56 <oklopol> you don't actually have to know, because you can't invert programs anyway
16:49:59 <cpressey> Maybe.
16:50:18 <cpressey> True, I think I am still thinking along those lines.
16:51:04 <cpressey> Although, I suspect it's something to do with distributivity. I'll try to work it out.
17:01:27 <MissPiggy> try using it in a sentence
17:04:20 <cpressey> Well, I'm kind of working from an insight I had while working out Cabra. But I'm starting to think whatever that insight was, it was depending on + meaning parallel execution.
17:06:55 <cpressey> Say program a always halts but program b never halts.
17:07:24 <cpressey> In a ring, (a + b) * c = (a * c) + (b * c)
17:07:37 <cpressey> But b never halts, so b * c = b
17:07:45 <cpressey> But that still seems fine.
17:07:59 <cpressey> Just a little weird I guess. (a + b) * c = (a * c) + b
17:09:04 -!- oklogon has joined.
17:11:00 -!- oklopol has quit (Ping timeout: 264 seconds).
17:12:19 <cpressey> Hm. Damn, this might actually work!
17:14:38 <cpressey> No, not sure about that now. Say a never halts, b never halts, c always halts. Then: a * (b + c) = (a * b) + (a * c) = a + a. But: (a + b) * c = (a * c) + (b * c) = a + b.
17:15:04 <cpressey> No, wait. Maybe that's OK.
17:15:24 <cpressey> Nothing says a * (b + c) = (a + b) * c :)
17:17:07 <cpressey> OK, so. I admit, it looks like * in a ring could be pretty well suited to being sequential execution.
17:19:03 <cpressey> I would guess the bigger problems, now, are with making + commutative and invertible and non-absorptive.
17:21:08 <cpressey> Having a + b = b + a where a always halts and b never halts pretty much drives the semantics of + towards something parallel.
17:23:33 <cpressey> No, wait again.
17:23:37 <cpressey> Damn, need more coffee.
17:26:20 -!- sebbu2 has joined.
17:28:57 -!- scarf has quit (Remote host closed the connection).
17:29:33 -!- sebbu has quit (Ping timeout: 256 seconds).
17:33:42 <cpressey> Is it OK for every element of a ring to be its own additive inverse? a + a = e for all a?
17:33:53 -!- coppro has quit (Ping timeout: 240 seconds).
17:34:26 <oerjan> yes, those are rings of characteristic 2 iirc
17:34:40 <cpressey> Nice. Then I might have an idea.
17:36:04 <oerjan> (if you have a 1, and 1+1 = 0, then it follows automatically for everything else)
17:37:32 <oklogon> you and your "iirc" :P
17:38:43 <oerjan> http://en.wikipedia.org/wiki/Characteristic_(algebra)
17:39:50 <oerjan> oklogon: well i did bump into it the other day during one of our discussions
17:40:18 <oerjan> i'm not sure if i knew the term applied to non-fields before
17:41:31 <oklogon> hmm well true i've never heard it with anything but fields
17:42:57 <oerjan> it would seem to include at least boolean rings among other things i already knew about
17:52:21 -!- kar8nga has quit (Remote host closed the connection).
17:55:24 <cpressey> Hm, problem: additive inverses don't seem to play well with absorption. Say a never halts. Then a * (b + c) = a. Then a = (a * b) + (a * c) = a + a. So a = e.
17:55:52 <cpressey> Although, that does suggest the possibility of just making e = bottom :)
17:57:18 -!- coppro has joined.
17:59:27 <cpressey> *That* derivation is why it's so nice to have an algebra that gives you a + a = a.
18:03:18 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
18:05:03 <oerjan> i suppose doing something in parallel with something that never halts is pretty equivalent to doing it alone, intuitively, if you go by something like what results you eventually get...
18:08:21 <Wareya> multithread with one process checking the other to see if it ever loops
18:09:28 <oerjan> cpressey: also, e is intuitively additive 0, while bottom is intuitively multiplicative 0
18:10:08 <cpressey> oerjan: Yeah. I banged my head repeatedly against this particular wall while designing Cabra.
18:16:20 -!- augur has quit (Ping timeout: 252 seconds).
18:21:05 -!- coppro has quit (Quit: zoo time).
18:34:16 <cpressey> Hate to keep asking these things, but is it OK for every element of a ring to be idempotent wrt addition? a + a = a for all a?
18:34:43 <oklogon> nope
18:35:00 <oklogon> a + a = a <==> a = 0
18:35:08 <cpressey> Ah, because then what is a' in a + a' = 0. Right.
18:35:10 <oklogon> by adding the additive inverse
18:35:25 <oklogon> (to get from left to right)
18:35:43 -!- jcp has joined.
18:35:49 <cpressey> Well, that
18:35:56 <cpressey> That's why it's hard to get a ring.
18:36:58 <cpressey> Actually - forget "all a". Say there exist idempotent b and c, where b + b = b and c + c = c. Can b =/= c?
18:37:12 <cpressey> I don't think so.
18:37:55 <cpressey> a + a = a <==> a = 0, so b = c.
18:38:13 <oklogon> yes, b = c = 0
18:38:56 <cpressey> So there can only ever be one element where a + a = a. But if there is any "absorbative" element x where forall y, xy = x, then x + x = x.
18:39:15 <cpressey> So there can only be one "absorbative" element.
18:39:33 <cpressey> (There is probably a better word for "absorbative")
18:39:58 <MissPiggy> projections ?
18:41:24 <cpressey> Maybe projection... not sure.
18:41:51 -!- Asztal has joined.
18:42:16 <cpressey> Anyway, that means there can only be one program that never halts. Or, all programs that never halt are considered equivalent.
18:42:17 <oklogon> i don't see why "x where forall y, xy = x" wouldn't be possible,
18:42:48 <oerjan> cpressey: "zero"
18:43:08 <oklogon> oh i completely ignored the x + x = x
18:45:22 <cpressey> oerjan: Yes.
18:45:25 <oerjan> cpressey: also, if two programs x and y never halt, then x = xy = y
18:46:01 <oerjan> or wait
18:46:07 <oklogon> is there a name for an algebraic system with an infinity?
18:46:46 <cpressey> But for all programs x, there needs to exist a unique x' such that x + x' = 0. If bottom is zero, then x' is not unique.
18:46:52 <oerjan> oklogon: i've got this on my watchlist: http://en.wikipedia.org/wiki/Wheel_theory
18:46:58 <oklogon> non-halting could be infinity
18:48:02 <cpressey> oklogon: If addition is commutative, you'd need negative infinity too.
18:48:56 <oklogon> yes, the part where i ask for the name of such a structure was my main point
18:49:42 <cpressey> oklogon: Sorry, thinking of it in the context of my current train of thought. I don't know if such things have a specific name.
18:50:33 <cpressey> Kleene star is a kind of infinity, maybe.
18:54:09 <oklogon> oerjan: i'll have to check that out in-depth, would the extension of reals be the extended reals?
18:54:33 <oklogon> wait, kleene star is a value?
18:54:58 <cpressey> No. I should say, it's a kind of infinity-generating-operator-thing.
18:55:10 <oklogon> :)
18:56:14 -!- augur has joined.
18:56:55 <cpressey> Say 0 is bottom. Then a + 0 = a (where a =/= 0) means something like "run a in parallel with loops-forever, take a's result when done." a * 0 = 0 means something like "run loops-forever after a". Both are good.
18:57:00 <cpressey> But then, for a there is some a' where a + a' = 0. But what could you run in parallel with a that would equate to loops-forever? Maybe something that interferes with a (and only a) in such a way that causes a to loop forever.
18:57:00 <oerjan> oklogon: i'm not quite sure what it is, although there is at least both distinct 1/0 and 0/0 iirc
18:57:59 <oklogon> what's a watchlist
18:58:27 <AnMaster> oklogon, on irc?
18:58:35 <oklogon> on wp
18:58:38 * AnMaster has not read context
18:58:54 <oerjan> cpressey: you could think of 0 more as "never gives a result", in which case looping forever may not be mandatory
18:58:58 <AnMaster> oklogon, oh that, a way to "subscribe" to edits to certain pages
18:58:59 <cpressey> I believe it makes Wikipedia message you somehow whenever the page changes.
18:59:21 <AnMaster> (that description is basically a simplification, but you get the idea)
18:59:36 <oerjan> i think that may be an option, although i just visit my watchlist page...
18:59:38 <cpressey> oerjan: OK, then a' is the "result killer" of a (and only a)
18:59:47 <AnMaster> cpressey, yes it will also email you (there is a setting iirc for that)
18:59:59 <AnMaster> (grammar fail)
19:00:26 <AnMaster> oklogon, hm have you used your current nick before?
19:00:30 <AnMaster> I don't remember seeing it
19:01:04 <oklogon> it's new
19:01:06 -!- oklogon has changed nick to oklopol.
19:01:09 <oerjan> cpressey: what you might want then, is for results to form a group
19:01:10 <AnMaster> oklopol, it sounds like the name of a noble gas
19:01:21 <oerjan> and a' gives the inverse result of a
19:01:25 <AnMaster> I guess I'm thinking of argon and such
19:02:20 <cpressey> oerjan: yes, that sounds like a good way to proceed.
19:03:09 <cpressey> Hm. Maybe food will help me think. bbl.
19:03:20 <oerjan> clearly an oklogon is a polygon with strange non-euclidean angles
19:03:24 <fizzie> "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon.
19:03:32 <fizzie> Gaah, oerjan strikes faster again.
19:04:14 <fizzie> And that was supposed to be irresponsible, not some strange "irresponsive". A compound fracture, I mean, failure.
19:06:11 <oerjan> a fractal compound
19:06:32 <lament> farctal
19:11:28 <cpressey> oerjan: Problem: We say b + 0 = b means "when b finishes, take its result". What if we have b + x, and b finishes before x. Do we take b's result or do we wait for x? If x is 0, we can't wait for it. But x might not be 0, so we have to wait for it.
19:11:43 <cpressey> I'm just reliving Cabra :)
19:11:50 <cpressey> Away for lunch for real this time.
19:12:21 <oerjan> the result only becomes known asymptotically
19:13:18 <oerjan> i suppose this could be a problem if it never stabilizes
19:28:46 -!- kar8nga has joined.
19:40:57 <cpressey> Or another way to put it would be, you need an oracle. if you have that, or you restrict the set to programs that always halt, I don't think there's a huge problem.
19:41:24 <oerjan> mhm
19:42:22 <cpressey> Say 0 maps all tapes to blank tapes, and programs refuse to run when the tape is blank. Obviously the initial tape can't always be blank, but whatever. 1 is the identity function on tapes.
19:42:59 <cpressey> Then, a + b -> run both and add their tapes. a * b -> run a then b.
19:43:13 <oklopol> err yes, obviously the -gon is from polygon
19:43:19 <oklopol> you were both slow
19:43:35 <oklopol> i was also oktagon at some point
19:43:40 * oerjan quickly swats oklopol -----###
19:43:42 <oklopol> possibly not here tho
19:44:56 <oerjan> cpressey: that won't distribute (a + b) * c properly unless c is linear
19:45:04 <cpressey> oerjan: Re wheels: it reminded me of an algebra I considered once, over the reals - {0}. Division, multiplication, addition are defined everywhere, but subtraction is not.
19:45:30 <cpressey> oerjan: Hm, I think you're right.
19:46:17 <oerjan> addition? how does that work?
19:46:37 <oerjan> or do you mean positive reals
19:47:23 <cpressey> Sorry, yeah. Addition of numbers with the same sign. (If subtraction is not defined, then neither is addition of different-parity numbers.)
19:47:44 <oklopol> addition of the numbers with the same sign? so it's a partial algebra
19:48:23 <oklopol> usually in an algebraic structure every function should be defined for all inputs
19:48:27 <cpressey> s/parity/sign/. don't know what i'm saying :)
19:48:38 <oklopol> yes that was clear
19:48:47 <cpressey> Well, I was inspired by division by zero being undefined in the reals.
19:48:54 <oklopol> (parity and sign are the same group)
19:49:55 <cpressey> |a| + |b| and -|a| + -|b| are defined, and you could consider them two new operations.
19:49:56 <oklopol> well, Q\0 and R\0 are both abelian groups w.r.t. multiplication, it's just adding the addition doesn't make, afaict, make it any known structure
19:50:26 <oklopol> but then you already have subtraction because -|a| + -|b| can be negative
19:50:29 <oklopol> unless it's partial
19:50:38 <oklopol> (some functions defined only for some inputs)
19:51:14 <oklopol> well anyway i need to go to sleep
19:52:38 <cpressey> Well, |a| + |b| and -|a| + -|b| are defined everywhere, but |a| + -|b| and -|a| + |b| are not defined everywhere. Maybe the terms "addition" and "subtraction" are misleading in this context.
19:53:06 <cpressey> 'Night oklopol.
19:54:54 <cpressey> oerjan: From the Cabra doc: "I will go so far as to conjecture that, in fact, any semantics for parallel composition a+b (in an otherwise Cabra-like language) that combines results from both a and b will not be right-distributive."
19:55:41 <cpressey> That might be hard to get around, even for only the programs that always halt.
19:56:10 <oerjan> hm right the problem is how to run c on the results
19:56:21 <oerjan> if it can do anything with them
19:59:04 <oerjan> the * operation needs to distribute the multiple/negated results from the left part to different invocations of the right part
20:17:45 -!- oerjan has quit (Quit: Good night).
20:46:27 <AnMaster> <fizzie> "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon. <-- possibly discworld related?
20:49:34 <AnMaster> cpressey, couldn't you do addition with different sign as long as you don't have the same value on both sides?
20:50:17 <AnMaster> unless I completely misunderstood you
20:50:42 <AnMaster> after all 1 + (-42) = -41, but 1 + (-1) = 0, so the former case should work but the latter not?
20:51:12 -!- gm|lap has joined.
21:00:07 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
21:06:39 <cpressey> AnMaster: Yeah. It is defined, just not defined everywhere. Specifically a - a isn't defined. A bit like a / 0.
21:07:41 <cpressey> Well, I updated the Potro bit of my LoUIE page again, FWIW with the algebra fans asleep. :)
21:08:01 <AnMaster> cpressey, indeed
21:10:00 <cpressey> I thought it was a nice "dual" of a field in some sense.
21:13:14 <cpressey> It might be a partial algebra, but if that's true, fields are partial algebras too.
21:56:48 -!- Gracenotes has quit (Quit: Leaving).
22:27:24 -!- kar8nga has quit (Remote host closed the connection).
22:32:48 <oklopol> oerjan: i solved it.
22:32:56 <oklopol> ->
22:34:46 <AnMaster> cpressey, for R_+ \ {0} shouldn't addition, multiplication and division all be completely defined? Not substraction for a - b where b >= a though
22:35:12 <AnMaster> oklopol, oerjan wasn't connected when you said that
22:35:14 <cpressey> AnMaster: Well, as oklopol pointed out, x + y isn't defined when x = -1 * y
22:35:32 <MissPiggy> AnMaster, hey I think you are right
22:35:38 * AnMaster considers that
22:35:45 <AnMaster> cpressey, wut? I must be too tired
22:36:00 <MissPiggy> x = -1 * y can't happen in R_+ \ {0} (aka R_+)
22:36:04 <cpressey> AnMaster: Addition is subtraction when you have opposite sign values :)
22:36:10 <AnMaster> MissPiggy, well yeah
22:36:14 <cpressey> Oh sorry
22:36:21 <cpressey> Didn't see the + in R_+
22:36:24 <MissPiggy> R_+ meaning all positive reals (although some people use positive to include zero, when it's convenient..)
22:36:27 <AnMaster> cpressey, right
22:36:41 <AnMaster> MissPiggy, well I also added "\ {0}" after that
22:36:47 <AnMaster> which should clearly exclude zero
22:37:08 <cpressey> AnMaster: Yes, your statement about R_+\{0} is true.
22:37:08 <MissPiggy> :(
22:37:17 <MissPiggy> why are you saying that I can tell you added \ {0} by reading
22:37:27 <AnMaster> MissPiggy, what?
22:37:39 <AnMaster> I can't even parse the grammar of that, nor the meaning
22:38:10 <AnMaster> maybe some comma is missing?
22:39:20 <AnMaster> cpressey, would it be possible to make some set where addition, multiplication, division are all defined for all possible combinations of values?
22:39:50 <AnMaster> apart from the empty set that is ;P
22:40:52 <AnMaster> alternative: define what division by zero means
22:41:13 <AnMaster> cpressey, I suggest we "leave it to the reader/ask the user" ;P
22:42:42 <cpressey> AnMaster: Isn't R+_\{0} such a set?
22:43:19 <AnMaster> cpressey, as I said, substraction is not
22:43:29 <AnMaster> oh
22:43:31 <cpressey> Oh, did you mean to include subtraction?
22:43:32 <AnMaster> I forgot that from the list
22:43:33 <AnMaster> -_-
22:43:34 <cpressey> Ah.
22:43:35 <AnMaster> cpressey, yes
22:44:38 <AnMaster> it seems to me that subtraction and division are mutually exclusive when it comes to "defined for all values"
22:44:51 <cpressey> I agree.
22:44:53 <AnMaster> I can't prove this though
22:45:03 <AnMaster> cpressey, well the exception would be for the empty set of course
22:45:24 <AnMaster> but I don't think that even makes sense
22:45:49 <cpressey> Every operation on elements of the empty set is well-defined! :)
22:46:10 <AnMaster> cpressey, you could sometimes define division by zero as the limit when going towards zero I guess
22:46:24 <AnMaster> doesn't work for all possible functions though
22:46:34 -!- MigoMipo has quit (Remote host closed the connection).
22:46:34 <AnMaster> (such as constant functions)
22:47:08 <cpressey> Yeah, I'm not so happy with that.
22:47:11 <AnMaster> or diverging (sp?) functions
22:48:51 -!- Sgeo has quit (Quit: Leaving).
22:49:08 <AnMaster> cpressey, other things not to be happy with: that lim_{x→0}(sin(1/x)) is undefined.
22:49:13 -!- Azstal has joined.
22:49:25 <AnMaster> Same for lim_{x→0}((sin(1/x))') of course
22:50:43 -!- Asztal has quit (Ping timeout: 265 seconds).
22:52:03 <AnMaster> cpressey, why not add a NaN? Like we have i
22:52:12 <AnMaster> as in, make NaN a real number
22:52:16 <AnMaster> XD
22:52:28 <cpressey> NaN + NaN = NaN
22:52:39 <AnMaster> cpressey, same goes for aleph_0 though
22:52:40 <cpressey> Therefore NaN = 0
22:52:48 <AnMaster> cpressey, err no
22:52:56 <cpressey> (in context of ring theory stuff I was talking about earlier only :)
22:53:07 <AnMaster> by that logic aleph_0 + aleph_0 = aleph_0 gives aleph_0 = 0
22:53:14 <AnMaster> which is ridiculous
22:54:52 <cpressey> Earlier we were talking about how in a ring, if a + a = a, a must be 0.
22:56:32 <cpressey> Which might explain why aleph_0 doesn't often appear in the ring of reals.
22:57:01 <AnMaster> cpressey, true
22:57:23 <AnMaster> cpressey, neither does i. Since it by definition isn't a real
22:57:32 <AnMaster> cpressey, but then the complex numbers are not a ring?
22:57:44 <AnMaster> oh wait
22:57:46 <AnMaster> it may be
22:57:56 <cpressey> We could define 1/0 as 1/0, irreducible. Basically, work on pairs of integers.
22:58:07 <cpressey> Probably falls apart somewhere.
22:58:07 <AnMaster> true
22:58:32 <cpressey> I don't do complex numbers. :)
22:58:47 <AnMaster> why not?
22:58:55 <AnMaster> cpressey, you should do quaternions even
22:59:01 <cpressey> I dunno, they just never held any interest for me
22:59:42 <AnMaster> cpressey, what about calculations with alternating current? They are rather useful there
23:00:11 <AnMaster> or maybe you don't do that kind of stuff
23:02:45 <cpressey> Heh
23:03:13 <cpressey> Yeah, complex numbers might come in handy for computational induction.
23:03:22 <MissPiggy> hmm?
23:03:35 <MissPiggy> ahh
23:03:44 <MissPiggy> induction like electromagnetic currents
23:04:19 <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes.
23:04:53 <cpressey> Which is an extremely silly idea. But fun.
23:06:18 <AnMaster> <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. <-- I first thought "what are you messing around with by doing induction over an uncountable set"
23:06:35 <cpressey> Ha! Ugh.
23:07:03 <AnMaster> hm is that possible btw?
23:07:09 <AnMaster> I can't see how it would be
23:07:22 <cpressey> Well, I've heard of "transfinite induction" but I don't know if it's the same thing.
23:07:30 <AnMaster> I see
23:07:33 * cpressey defers to the real mathematicians present
23:07:49 <AnMaster> cpressey, oerjan is *not* present
23:08:31 <AnMaster> <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. <-- you should make an esolang based on this
23:08:31 <cpressey> Well then I defer to wikipedia.
23:08:32 <cpressey> http://en.wikipedia.org/wiki/Transfinite_induction
23:08:38 <AnMaster> like, alternating ips
23:08:40 <AnMaster> or something
23:09:13 <cpressey> I'd like to make an esolang of it, but I have too many other ideas, and no good idea where to start.
23:10:15 <AnMaster> cpressey, so throw all the ideas into one esolang
23:10:45 <cpressey> I tried that. It's not pretty.
23:10:53 <cpressey> Also, it never gets finished.
23:16:12 -!- tombom has quit (Quit: Leaving).
23:21:58 <cpressey> from * import *
23:23:42 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:23:58 <AnMaster> cpressey, does that work in python?
23:24:14 <AnMaster> it would be rather interesting if it did
23:27:57 <fizzie> Alas, you can't have wildcards in the module-where-to-import-from.
23:28:07 -!- FireFly has quit (Quit: Leaving).
23:30:39 <cpressey> No, but I was (briefly) considering supporting it in my own language...
23:31:56 -!- coppro has joined.
23:37:03 <AnMaster> cpressey, I can think of reasons not to
23:38:53 <cpressey> Yeah.
23:40:28 <fizzie> But, the awesomeness.
23:40:33 <fizzie> "Just import everything."
23:43:07 <fizzie> What about #include <*> as a GCC extension? Read all headers in the system include directories.
23:44:06 <coppro> :P
23:44:13 <coppro> the go slow button
23:44:50 <Gregor> fizzie: YES
23:44:54 <Gregor> #include "**" too
23:45:00 <Gregor> Include every header file in .
23:45:01 <Gregor> Recursively
23:47:24 <fizzie> fis@eris:~$ ls /usr/include/*.h | sed -e 's%/usr/include/%#include <%' -e 's/$/>/' > test.c
23:47:24 <fizzie> fis@eris:~$ gcc -c -o test.o test.c 2>&1 | grep 'error:' | wc -l
23:47:24 <fizzie> 1144
23:49:26 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
23:50:59 -!- Asztal has joined.
23:53:02 -!- Azstal has quit (Ping timeout: 256 seconds).
23:58:35 <cpressey> Blahaha.
2010-02-19
00:00:09 <cpressey> My binding is bound to a binding.
00:02:48 <cpressey> I just tried a language construct that creates a module from all the bindings currently in scope. I wasn't really expecting it to include all the bindings from all the imported modules. And all builtins. But it does. I maybe need to rethink how to define modules.
00:13:16 -!- augur has quit (Ping timeout: 260 seconds).
00:18:28 <cpressey> Yay, set difference to the rescue.
00:20:15 -!- Sgeo has joined.
00:25:18 -!- Azstal has joined.
00:25:56 -!- Asztal has quit (Ping timeout: 252 seconds).
00:27:48 <cpressey> Still, closures everywhere.
00:27:57 <cpressey> Hey, just like the economy!
00:28:01 <cpressey> Later.
00:28:04 -!- cpressey has left (?).
00:28:11 -!- Azstal has quit (Client Quit).
00:42:11 -!- Pthing has joined.
00:43:39 <AnMaster> I have recently been hit with what seems to be synchronicity with regards to thinkpad 701C. The last few days it has popped up in 4 different unrelated contexts...
00:59:52 -!- MissPiggy has quit (Quit: Lost terminal).
01:03:22 -!- lament has quit (Ping timeout: 268 seconds).
01:08:43 -!- lament has joined.
01:11:31 -!- augur has joined.
01:13:03 -!- uorygl has quit (Quit: leaving).
02:39:38 -!- augur has quit (Ping timeout: 256 seconds).
02:46:56 -!- augur has joined.
02:50:33 -!- MizardX has quit (Ping timeout: 260 seconds).
03:31:46 -!- augur has quit (Ping timeout: 256 seconds).
03:57:46 -!- augur has joined.
04:01:53 -!- Gracenotes has joined.
04:17:40 -!- augur has quit (Ping timeout: 256 seconds).
05:12:31 -!- augur has joined.
05:17:34 -!- oerjan has joined.
05:19:17 <oerjan> <AnMaster> oklopol, oerjan wasn't connected when you said that
05:19:27 <oerjan> however, i have esoteric log powers
05:20:22 <oerjan> <AnMaster> <fizzie> "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon. <-- possibly discworld related?
05:20:30 <oerjan> well _i_ was thinking lovecraft
05:20:44 <oerjan> (with my version)
05:24:32 -!- augur has quit (Ping timeout: 256 seconds).
05:27:34 <oerjan> <AnMaster> <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. <-- I first thought "what are you messing around with by doing induction over an uncountable set"
05:27:48 <oerjan> as mentioned, perfectly possible in theory.
05:29:31 <oerjan> however, you need to well-order the set first, and for most frequently used uncountable sets (reals, complexes) that requires using the axiom of choice. so you don't get any concrete sense of what the order is.
06:03:31 -!- lament has quit (Ping timeout: 246 seconds).
06:06:00 -!- augur has joined.
06:06:53 -!- lament has joined.
06:12:22 <augur> hey oklopol
06:16:41 <oklopol> "AnMaster: oklopol, oerjan wasn't connected when you said that" <<< that's why i said it on-chan, not in pm
06:18:48 <oklopol> hey, how did you know i just came here
06:28:59 <augur> hows it goin oklopol
06:33:04 -!- oklopol has quit (Ping timeout: 245 seconds).
06:38:21 -!- coppro has joined.
06:43:44 -!- oerjan has quit (Quit: leaving).
06:49:24 -!- oklopol has joined.
07:08:08 -!- oklopol has quit (Ping timeout: 260 seconds).
07:18:47 -!- MigoMipo has joined.
07:20:02 -!- oklopol has joined.
07:32:28 -!- tombom has joined.
07:47:59 -!- MigoMipo has quit (Remote host closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:09 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
08:05:08 -!- kar8nga has joined.
08:26:20 <augur> oklopol
08:26:39 <augur> a parasitic gap which has the reverse direction: Which candidate do even supporters of __ tend to dislike __?
08:27:07 <augur> where the parasitic gap is _inside the subject_
08:28:19 <olsner> nice topic btw, it's always up-to-date when you look at it
08:28:47 <augur> olsner: which what
08:28:58 <olsner> not you, the topic
08:29:09 <augur> o.o;
08:29:22 <augur> i dont get it
08:29:22 <augur> D:
08:29:24 <olsner> the /topic, that is
08:29:25 <augur> however!
08:29:31 <AnMaster> olsner, yeah hehe
08:29:44 <augur> http://en.wikipedia.org/wiki/Indexed_grammar
08:29:49 * olsner doesn't know what a parasitic gap is
08:29:52 <augur> http://en.wikipedia.org/wiki/Head_grammar
08:29:57 <augur> http://en.wikipedia.org/wiki/Global_index_grammar
08:30:13 <augur> http://en.wikipedia.org/wiki/Literal_movement_grammar
08:30:18 <augur> http://en.wikipedia.org/wiki/Range_concatenation_grammars
08:30:20 <AnMaster> http://example.org/I_can_also_spam_with_links
08:30:28 <augur> :P
08:30:48 <augur> olsner: http://en.wikipedia.org/wiki/Parasitic_gap
08:31:06 <AnMaster> augur, is this programming or linguistics
08:31:14 <augur> which?
08:31:22 <AnMaster> parasitic gap or whatever
08:31:31 <AnMaster> all all those links you pasted
08:31:42 <augur> PGs are strictly linguistic phenomena (unless someone invents a PL with them!)
08:31:54 <AnMaster> then I won't even bother looking
08:32:27 <augur> the *_grammar links are just pages for grammar formalisms that lie roughly in the range of the mildly context-sensitive grammars
08:39:22 <olsner> "Which candidate do even supporters of __ tend to dislike __?" what's supposed to be able to go after 'dislike' here?
08:39:47 <augur> nothing. the __'s just denote the positions in which "the candidate" is understood.
08:39:57 <augur> e.g. "even supports of Bob Dole tend to dislike Bob Dole"
08:41:26 <olsner> oh, I thought it was all about how you could plug in objects there that are *not* bound by the 'wh'
08:42:25 <augur> no
08:42:33 <augur> its all about the dependencies
08:42:47 <augur> the __'s denote the dependencies associated with the WH phrase
08:43:42 <olsner> hmm, what depends on what though? aren't all just gaps bound by 'wh'?
08:45:43 <augur> no, not necessarily
08:46:23 <augur> consider the topicalized "MARY I like ___, but John I hate ___"
08:49:47 <cheater2> so if you fill in the gaps in your question you get: Which candidate do even supporters of Bob Dole tend to dislike Bob Dole?
08:50:00 <cheater2> i think it's worthwhile to learn english grammar before you go after other grammars
08:50:27 <augur> cheater2: no, you dont fill in the gaps
08:50:28 <olsner> I guess that's the same thing as wh-fronting, yes... but there's only a single gap for each fronting, just that there are two phrases with independent bindings?
08:50:34 <augur> the gaps are just there to denote the dependencies
08:50:35 <cheater2> well i just did
08:50:40 <augur> theyre not things that you fill in
08:50:40 <cheater2> and your sentence sucked balls
08:50:43 <cheater2> :o
08:51:02 <cheater2> you gave us an example yourself: you put bob dole in both places
08:51:20 <augur> no, i gave you a different sentence without gaps and without the WH element
08:51:40 <cheater2> so what does __ mean
08:52:10 <augur> olsner: true, in the topicalized sentence i gave theres only a single gap for each element, but you can get parasitic gaps with topicalization as well
08:52:35 <augur> e.g. "THIS book Mary read ___ before shelving ___, not that one"
08:53:28 <olsner> so what makes either gap parasitic?
08:53:28 <AnMaster> <cheater2> i think it's worthwhile to learn english grammar before you go after other grammars <-- my reaction too
08:53:44 <augur> cheater2: the ___'s are the conventional notation for gaps, which is the conventional way of talking about long-distance dependencies of this sort. the idiom is basically a comparison with the non-gapped sentence.
08:53:44 <AnMaster> augur, it looks like "fill in word(s) here"
08:54:01 <augur> olsner: the second gap is parasitic because without the first gap, the sentence is bad
08:54:09 <AnMaster> to anyone that isn't a linguist
08:54:26 <augur> AnMaster: in many ways it IS, but not in the naive sense
08:54:30 <cheater2> augur: you are using circular definitions
08:54:41 <cheater2> augur: you made no sense :<
08:54:58 <augur> it stems from the history of how this sort of phenomenon was treated in chomsky's early work
08:54:58 <AnMaster> augur, "naive" is wrong word here I think. Replace it with "normal" or "everyday"
08:55:31 <augur> whereby a sentence like "John saw Mary" is transformed by a rewrite operation into "who did John see"
08:55:51 <cheater2> ok so in fact __'s are parentheses
08:55:52 <AnMaster> augur, you lost information in that transformation
08:55:55 <cheater2> big deal
08:56:10 <cheater2> so what's the question now
08:56:12 <AnMaster> cheater2, ah right if you see it that way it makes sense
08:56:17 <augur> AnMaster: true. in reality it was "John saw someone" underlyingly
08:56:25 <augur> i shouldve said that instead.
08:56:27 <AnMaster> augur, ?
08:56:36 <augur> "John saw someone" -> "Who did John see"
08:56:36 <AnMaster> augur, you should have said *who* as well
08:56:44 <augur> that was the actual transformation
08:57:02 <augur> taking a declarative with an indefinite "someone", and turning it into the corresponding interrogative with "who"
08:57:34 <augur> infact, early theory I think considered "who" to be derived from rewriting the string "WH someone"
08:57:45 <augur> but whatever.
08:58:07 <olsner> hmm, right, "this book mary read War and Peace before shelving ___" is weird
08:59:29 <olsner> but if you make it "this book mary shelved ___ after reading ___" I think either gap can be replaced
08:59:58 <augur> well, the first cant be "filled"
09:00:03 <augur> its essentially what you just said was weird
09:00:15 <augur> "this book mary shelved War and Peace after reading ___" is horrible
09:00:30 <augur> but yes, the second gap can be filled with something else and its fine
09:05:31 -!- tombom has quit (Quit: Leaving).
09:11:31 <augur> kneeways
09:16:37 -!- Pthing has quit (Remote host closed the connection).
09:59:47 -!- Pthing has joined.
10:05:36 -!- lament has quit (Ping timeout: 264 seconds).
10:07:59 -!- lament has joined.
11:28:03 -!- kar8nga has quit (Remote host closed the connection).
11:40:54 -!- augur has quit (Read error: Connection reset by peer).
11:41:05 -!- augur has joined.
11:50:58 <oklopol> augur: no straight man or gay top can understand the concept of not filling a gap with something.
11:51:15 <oklopol> that's why you have such a hard time getting the thing through
11:52:21 -!- BeholdMyGlory has joined.
12:01:09 -!- yiyus has left (?).
12:22:51 <fizzie> Mind, the gap.
12:38:37 <oklopol> wait where was that
12:42:55 -!- Asztal has joined.
12:47:38 <fizzie> In many places, I presume; but it's what London's subway announcement speakers repeat while stopping at a station, IIRC. And it's been the title of at least one magazine article I've seen.
12:48:24 <fizzie> Based on where http://en.wikipedia.org/wiki/Mind_the_gap leads by default, the Underground connection is the "official" one.
12:53:51 <oklopol> well sure but wasn't it the name of a level in some flash game
12:55:56 <fizzie> Yes, that sounds also likely.
12:59:47 <fizzie> Wikipedia says it's "used" in the Flash-built game "VVVVVV".
13:02:13 -!- MissPiggy has joined.
13:06:21 -!- KingOfKarlsruhe has joined.
13:06:52 <oklopol> huh.
13:07:46 <oklopol> i'm fairly sure it's a game we've both played, #eso inducedly.
13:10:26 <fizzie> In this case I would have guessed that silly dot-action one, but grepping my logs didn't say anything about a mind-gappy level.
13:12:29 <Deewiant> Mind the gap was a level in that star-fetching programmy game
13:12:49 <fizzie> Oh, that one.
13:12:52 <fizzie> Right.
13:12:59 <fizzie> Maybe the level name wasn't just mentioned here.
13:13:14 <Deewiant> Robozzle, that's the name.
13:13:43 <Deewiant> Number 513
13:18:24 -!- kar8nga has joined.
13:18:38 <oklopol> i was pretty sure it was robozzle
13:32:47 <Wareya> 07:59 < fizzie> Wikipedia says it's "used" in the Flash-built game "VVVVVV".
13:32:57 <Wareya> The last time I checked it wasn't built in flash
13:33:14 <fizzie> That was also from Wikipedia.
13:33:15 <Deewiant> Last time I checked it was
13:33:26 <Wareya> I know it runs on it
13:41:55 <Wareya> I'm pretty sure it was straight as3 with something like flex
13:51:33 <fizzie> "I use Flex with FlashDevelop on windows" -- I guess so; Flash-based in the runtime sense, anyway.
13:51:48 -!- FireyFly has joined.
13:56:42 -!- alise has joined.
13:57:27 <alise> This is Dispatch 3.
13:58:22 <AnMaster> alise, hi there
13:58:46 <alise> And I'd type but the keys are sticky; best fix that first.
13:58:57 <AnMaster> mhm
13:59:22 -!- kar8nga has quit (Remote host closed the connection).
14:01:46 -!- FireyFly has changed nick to FireFly.
14:05:57 <MissPiggy> hi alise
14:09:58 <alise> A little hard-handedness, it seems, goes a way; I wouldn't say a "long way" as my troubles are still numerous, but that is the idiom. I am no longer drinking that malnutrition-treatment. It came to a head a few days ago; after having a substantial lunch, I was still forced to drink it all, despite clear, immediate, recent-in-time evidence I was not malnourished whatsoever, and continued explanation that I was completely full and couldn't drink it. Eventuall
14:09:58 <alise> y, I settled for "I'll finish it later"; my parental overlords came, "for a visit", and brought me home for the night. The next day, we requested to meet with the head honcho there, and were told he was free; he was not, and we had to say the same things to a patronising-as-fuck nurse. Later that day we got our meeting and it was resolved; they had talked to their bullshitician^Wdietician and the drinks were gone; I just had to eat something else at the tim
14:09:59 <alise> e I normally would, and have a bigger lunch every day. Big deal, I ate that much before I went there anyway.
14:10:10 <alise> And I do wish that XChat was better at wrapping lines.
14:11:03 <alise> Other than that, no change; business continues as usual, except it was even more pointless as it's half-term, so no lessons, just sitting around on one games console or another all day. That's therapy, that.
14:11:15 <alise> Hi, guys.
14:11:26 <MissPiggy> :(
14:12:21 <MissPiggy> you need to get out
14:12:27 <MissPiggy> this is not right
14:12:32 <alise> Yeah. I'm on it.
14:12:58 <alise> I'd rather endure longer than I would have to with an alternative escape plan if it reduces risk, however.
14:13:17 <MissPiggy> yeah that is wise
14:13:53 -!- augur has quit (Ping timeout: 265 seconds).
14:14:27 -!- augur has joined.
14:18:03 <alise> But unless anyone has anything specific to ask or whatever, on to happier things. :)
14:18:28 <MissPiggy> alise this is so awful I hate this
14:18:29 <alise> cpressey's ring language sounds awesome! (Logreading while mother visits by using Opera Mini on her cheap-ass phone? Why ever not.)
14:18:40 <alise> MissPiggy: yeah but it's worse if you think about it :P
14:23:54 -!- Speedy2 has joined.
14:24:39 <Ilari> alise: Yeah, there are very few dieticans that have any clue about how stuff works in real world. But their speciality is directing people about what to eat and thus ethical responsibility would be to actually know something about nutrion and not just brain-dead-repeat "truth" taught by big pharma courses.
14:25:39 -!- Speedy2 has quit (Client Quit).
14:26:19 <alise> yeah - but at least the advice has improved from "DRIIIINK THIIIIS" to "eat a bigger lunch, and have some milk and biscuits at break time instead of the drinks" - to understand this, one must first understand that they appear to have this bizarre notion that, as a rule, I don't eat: I'm often praised after eating something merely because it was eating. I'm utterly baffled by this and think I know who to blame for it, but I won't say anything because it won'
14:26:19 <alise> t achieve a thing.
14:26:26 -!- scarf has joined.
14:26:31 <alise> Oh, hi scarf.
14:26:34 <alise> You'll cheer me up.
14:26:39 <Ilari> I have heard likes of this: The patient might be deficient in nutrient A. Dietican advises to eat food B. Except that food B _interferes_ with absorption of nutrient A.
14:26:40 <scarf> hi
14:26:52 <scarf> I have to leave to teach Java in about half an hour, but I'll be back an hour after that
14:27:35 <scarf> hmm, my email server has taken to marking many legitimate messages with "SPAM:" or "?spam?" in the subject line
14:27:51 <scarf> whereas actual spam is generally marked "[SPAM?] ?spam?"
14:28:02 <alise> Spam, spam, spam, spam!
14:28:15 <Ilari> And also: The patient might be deficient in nutrient C. Dietican advises to eat food B. Except that food B does not contain nutrient C.
14:29:59 <AnMaster> <alise> cpressey's ring language sounds awesome! (Logreading while mother visits by using Opera Mini on her cheap-ass phone? Why ever not.) <-- since my phone has opera mini... wouldn't it be truly horrible for that purpose?
14:30:29 <alise> I dunno, the logs are just text. It folds all the lines into one, but apart from that...
14:30:57 <AnMaster> alise, folding the lines sounds horrible to begin with.
14:31:08 <alise> If it's a time and a <, it's a new line.
14:31:10 <alise> Anyway, it beats nothing.
14:31:42 <AnMaster> hah
14:32:08 <AnMaster> alise, well it does, it beats the built in web browser (opera mini is a java application) by far
14:32:12 <AnMaster> at least on my phone
14:32:18 <AnMaster> the built in one is much much worse
14:32:33 <alise> It's Opera Mini, ENHANCED BY VODAFONE!
14:32:35 <AnMaster> not sure how it is for pure text, it would probably just download it
14:32:38 <AnMaster> alise, what?
14:32:39 <alise> It totally is.
14:32:43 <alise> It says on the logo screen.
14:32:47 <AnMaster> -_-
14:32:51 <alise> I haven't seen any of this "enhancement" yet, mind.
14:32:58 <AnMaster> alise, which version?
14:32:59 <alise> Also, I tried downloading a java IRC client but it just saved it as a file and won't open.
14:33:00 <AnMaster> 5?
14:33:03 <alise> AnMaster: Don't know.
14:33:15 <alise> Stable release 4.2.14912 (August 3, 2009; 6 month(s) ago (2009-08-03)) [+/−]
14:33:15 <alise> Preview release 5.0.17443 (December 23, 2009; 54 day(s) ago (2009-12-23)) [+/−]
14:33:18 <alise> Probably *not* 5.
14:33:23 <scarf> the enhancement was clearly just branding
14:33:29 <AnMaster> ah
14:34:01 <AnMaster> 5 is somewhat better than 4 I have to day
14:34:03 <AnMaster> say*
14:34:32 <AnMaster> for example, in 5 you can have multiple tabs
14:34:56 <AnMaster> and the user interface is easier to navigate
14:38:56 -!- kar8nga has joined.
14:41:04 <alise> MobileSafari ftw. :P
14:41:13 <alise> Or even what the fancy Nokia phones have; that's basically the same.
14:41:20 <alise> Or even Android's.
14:41:54 <AnMaster> alise, simple nokia phones has that horrible built in thing + opera mini
14:42:03 <alise> I mean S60 ones.
14:42:10 <AnMaster> btw it is snowing heavily here
14:42:33 <AnMaster> alise, I have no idea what mine has (Nokia 3120 classic)
14:42:42 <AnMaster> pretty sure it isn't symbian
14:42:45 <AnMaster> but that is all
14:43:10 <alise> S40, likely.
14:43:17 <AnMaster> mhm
14:43:59 <scarf> AnMaster: it was snowing here yesterday
14:44:12 <AnMaster> hm checking in the settings the version info thingy: "V 07.16\n27-05-08\nRM-354\n(c) Nokia"
14:44:28 <AnMaster> and yes that actually says "(c)" not "©"
14:44:58 <AnMaster> err, RM-364, not 354
14:45:13 <scarf> AnMaster: probably for encoding reasons
14:45:44 <Deewiant> AnMaster: Where'd you come up with "the version info thingy"?
14:45:48 <AnMaster> scarf, it does have unicode in sms and such
14:46:03 <scarf> SMS tends to use 8-bit encodings, rather than Unicode
14:46:14 <AnMaster> scarf, that's a setting iirc
14:46:17 <scarf> unless that's changed from 5 years ago or so when I last looked at it
14:46:21 <AnMaster> which defaults to unicode
14:46:51 <AnMaster> Deewiant, Meny → Inställningar → Telefon → Tel.uppdateringar → Aktuell programinfo.
14:47:39 <Deewiant> Meh, doesn't apply.
14:47:41 <AnMaster> no clue what it would be on a non-Swedish phone (could guess for an UK phone)
14:47:56 <AnMaster> Deewiant, it is under the telephony update thingy basically
14:48:24 <Deewiant> Yes, I don't have an update thingy like that.
14:48:31 <AnMaster> mhm
14:48:45 <AnMaster> there has never been any updates when I checked
14:48:46 <Deewiant> There's the "App. manager" but it doesn't include builtin software.
14:48:57 <AnMaster> Deewiant, I have no such thing as an app manager
14:49:06 <Deewiant> Yes, I could guess as much.
14:49:15 <AnMaster> Deewiant, there are java apps in a folder
14:49:38 <AnMaster> hm I think nokia included some app to download/buy new apps from them/third parties
14:50:01 <AnMaster> when I looked it basically said for almost all "not compatible with this phone"
14:50:11 <AnMaster> wonder why they were listed at all
14:50:24 <AnMaster> they could try to only show relevant ones
14:51:01 <alise> $$$
14:51:06 <alise> "buy a new phone get this app"
14:51:45 <AnMaster> alise, it didn't even say that
14:51:48 <AnMaster> or what phone it needed
14:52:08 <scarf> alise: the advertising in PC World around the release of Windows 7 was even more hilarious
14:52:14 <alise> AnMaster: something expensive
14:52:15 <scarf> it was along the lines of "Windows 7 is out, time for a new PC"
14:52:27 <AnMaster> scarf, err what?
14:52:41 <scarf> AnMaster: it seemed to be working, at least
14:52:52 <AnMaster> scarf, I don't get it.
14:52:54 <scarf> so many people think that a computer is inherently tied to the OS version it comes with
14:53:06 <scarf> and it's those that they were targeting
14:53:11 <AnMaster> scarf, people who reads computer magazines?
14:53:16 <scarf> no
14:53:23 <scarf> people who have seen adverts talking about how great windows 7 is
14:53:35 <AnMaster> scarf, "PC World" isn't a computer magzine over ther?
14:53:37 <AnMaster> there*
14:53:52 <scarf> AnMaster: it is, but it's mostly a chain of computer retail stores
14:53:53 <AnMaster> it is here, IDG iirc
14:54:07 <AnMaster> scarf, aha, that explains it somewhat
14:54:41 <AnMaster> scarf, who owns the trademark then, the chain or the magazine? Or are they related?
14:54:51 <scarf> I have no idea
14:54:55 <AnMaster> hm
14:55:00 <scarf> in fact, I've been wondering that myself
14:55:37 <AnMaster> scarf, I estimate an average snow depth of 30 cm in the area I cleared this morning btw. And it was about 20 cm then.
14:55:38 <AnMaster> sigh
14:55:51 <scarf> time to go teach Java, anyway
14:55:53 <AnMaster> probably will go out and clear away somewhat before it becomes too heavy
14:56:04 <Deewiant> The forecast here is 50 cm over the weekend
14:56:08 -!- oerjan has joined.
14:56:14 <AnMaster> Deewiant, something similar here iirc
14:56:36 <AnMaster> and I need to go to another city tomorrow. Not possible to cancel due to weather
14:56:48 <Deewiant> heh, have fun with that
14:57:55 <AnMaster> Deewiant, well, test at university (yes, during the weekend, it sucks, but apparently they are short of rooms during the single week when basically every student at the university has a test)
14:58:00 <AnMaster> would be better if they spread them out
14:58:12 -!- alise_ has joined.
14:58:24 -!- yiyus has joined.
14:58:28 <Deewiant> Yes, we have occasional exams on saturdays as well
14:58:39 <AnMaster> Deewiant, saturday *afternoon* even
14:58:40 <AnMaster> also
14:59:52 <AnMaster> either someone hates me or I have really bad luck. Because for every course group (two at the same time) there has been one test on a Saturday for me
14:59:54 <oerjan> AnMaster: i made some comments to you earlier
15:00:06 <AnMaster> oerjan, where/when? and what were those comments?
15:00:25 <oerjan> you don't read logs?
15:00:34 -!- alise has quit (Ping timeout: 245 seconds).
15:00:36 <Deewiant> Seems to like you should say "or", not "and"
15:00:46 <AnMaster> oerjan, I do read scrollback, and since I saw my last line in there I suppose it must not be in logs either
15:00:59 <Deewiant> Either you can find out how to get to the comments or you can be given them directly, no point in both
15:01:10 <AnMaster> oerjan, but no I don't read logs unless someone highlighted my nick
15:01:24 <oerjan> AnMaster: your nick was present when i comented
15:01:26 <oerjan> *mm
15:01:34 <oerjan> also, i quoted you
15:01:43 <AnMaster> <Deewiant> Seems to like you should say "or", not "and" <---
15:01:45 <AnMaster> ?
15:01:55 <oerjan> however, maybe you don't get pinged on <AnMaster> quoting...
15:02:07 <AnMaster> oerjan, well I do get pinged by that
15:02:17 <AnMaster> but, maybe you had timed out and not noticed it?
15:02:20 <alise_> also re ring programming, cool cool
15:02:29 <Deewiant> AnMaster: Read the follow-up as well...
15:02:31 <oerjan> AnMaster: um i see it perfectly well in the logs
15:02:32 <AnMaster> oerjan, anyway I'm going outside to clear away some snow in exactly 1 minute
15:02:33 <alise_> needs to be a monoid too
15:02:43 <Deewiant> 50
15:02:44 <alise_> imo a ring computer is obviously parallel
15:02:48 <oerjan> anyway
15:02:51 <AnMaster> oerjan, thus, say what you wanted now
15:02:53 <Deewiant> 40
15:02:53 <oerjan> 21:19:17 <oerjan> <AnMaster> oklopol, oerjan wasn't connected when you said that
15:02:57 <oerjan> 21:19:27 <oerjan> however, i have esoteric log powers
15:02:57 <AnMaster> Deewiant, har
15:02:59 <oerjan> 21:20:22 <oerjan> <AnMaster> <fizzie> "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon. <-- possibly discworld related?
15:03:03 <Deewiant> 30
15:03:04 <oerjan> 21:20:30 <oerjan> well _i_ was thinking lovecraft
15:03:06 <oerjan> 21:20:44 <oerjan> (with my version)
15:03:09 <oerjan> 21:24:32 --- quit: augur (Ping timeout: 256 seconds)
15:03:11 <oerjan> 21:27:34 <oerjan> <AnMaster> <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. <-- I first thought "what are you messing around with by doing induction over an uncountable set"
15:03:13 <Deewiant> 20
15:03:16 <oerjan> 21:27:48 <oerjan> as mentioned, perfectly possible in theory.
15:03:16 <AnMaster> oerjan, ah that
15:03:18 <oerjan> 21:29:31 <oerjan> however, you need to well-order the set first, and for most frequently used uncountable sets (reals, complexes) that requires using the axiom of choice. so you don't get any concrete sense of what the order is.
15:03:18 <alise_> a + b = compute a and b in parallel, obviously
15:03:20 <AnMaster> didn't see any reason to comment
15:03:22 <alise_> a * b = sequencing
15:03:23 <Deewiant> 10
15:03:25 <AnMaster> bbl
15:03:30 <alise_> mzero = _|_
15:03:33 <Deewiant> AnMaster: See ya
15:04:19 <alise_> hmm so
15:04:33 <alise_> a `seq` (b `par` c) = (a `seq` b) `par` (a `seq` c)
15:04:40 <alise_> yeah
15:04:58 <alise_> (a `par` b) `seq` c = (a `seq` c) `par` (b `seq` c)
15:05:06 <alise_> yep
15:05:28 <Deewiant> Of course, since all are just c ;-P
15:05:45 <alise_> not if a or b = _|_
15:06:02 <Deewiant> True
15:07:21 <oerjan> alise_: my hunch now is that this ring programming is just the endomorphism ring generated by extending computations to apply to the free abelian group over possible input
15:07:32 <alise_> absolutely
15:07:33 <alise_> :P
15:07:39 <Deewiant> "just"
15:08:00 <alise_> my n and l keys aren't pressing nicely :(
15:08:04 -!- augur has quit (Ping timeout: 245 seconds).
15:08:08 <oerjan> with the provision that non-halting computations become -> 0
15:08:19 <alise_> not mzero, mempty, ofc
15:08:21 <oerjan> Deewiant: it's a simple algebraic construction, really
15:08:53 <alise_> data Cr = Bot | Cr :+ Cr | Cr :* Cr
15:08:58 <alise_> Methinks I need more than just that
15:08:58 <alise_> hmm
15:09:00 <oerjan> my point is that i'm not sure you can get something more useful than chaining all inputs in parallel
15:09:03 <alise_> what's nop, then, if bot is 0?
15:09:06 <alise_> maybe nop = 0, bot = inf
15:09:16 -!- augur has joined.
15:09:54 <alise_> Deewiant: otoh a `par` b = b even if a = _|_
15:10:04 <Deewiant> Also true
15:10:06 <alise_> so, of course, you need the resulting computation to have some sort of _result_
15:10:08 <Deewiant> Your equations still hold
15:10:15 <alise_> so we need a new Cr, i.e. Id foo
15:10:40 <alise_> a :+ b -> Id (a' :+ b'), maybe (where ' denotes evaluation)
15:10:45 <Deewiant> Gotta love two-letter identifiers
15:10:59 <alise_> ?
15:11:25 <alise_> hmm, I don't think I can use par
15:11:30 <alise_> I need *deterministic* parallelism XD
15:11:50 <oerjan> alise_: my idea is that the result of a sum is just the sum of the results.
15:11:51 <Deewiant> Cr Id :+ :* <-- the embedded meaning, it is blinding
15:12:02 <alise_> Deewiant: Well, yeah.
15:12:07 <alise_> This /is/ mathematics.
15:12:11 <alise_> oerjan: see, that's what I said!
15:12:18 <alise_> hmm
15:12:26 <Deewiant> So you have an excuse to be obtuse? ;-P
15:12:40 <alise_> Deewiant: Well, I also need shorthand for my convenience, since I'll be using the names a lot.
15:12:45 <alise_> :+ and :* have embedded meaning, from rings.
15:12:51 <alise_> Id is identity, just like id.
15:12:57 <alise_> Cr is Computation Ring; it's arbitrary.
15:13:17 <oerjan> alise_: also this would work nicely with free vector spaces too, then you can multiply your computation with reals/complexes
15:13:18 <Deewiant> data ComputationRing
15:13:23 <Deewiant> But that's just me
15:13:51 <alise_> data ComputationRing = Bottom | ComputationRing :+ ComputationRing | ComputationRing :* ComputationRing
15:13:51 <oerjan> and get an algebra over a field (or another ring, if you want)
15:13:53 <alise_> It's just noise.
15:14:05 <Deewiant> You only need to type it once.
15:14:10 <alise_> I don't care.
15:14:12 <alise_> It's still noise.
15:14:39 <Deewiant> If you insist.
15:14:39 <alise_> oerjan: so a*b -> a'*b'?
15:14:41 <alise_> or a'+b'?
15:15:11 <alise_> hmm
15:15:12 <alise_> what's 1?
15:15:20 <alise_> 1*x = x implies nop, but 1+x should be > x
15:15:23 <oerjan> identity
15:15:29 <alise_> So 1+x = x?
15:15:35 <oerjan> no, 1 = id
15:15:46 <alise_> And?
15:15:52 <Deewiant> alise_: What does > mean here?
15:16:01 <alise_> Deewiant: Well, okay: !=.
15:16:07 <oerjan> this is the obvious way to get a ring unit in an endomorphism ring...
15:16:20 <alise_> So what is 1+x with respect to x?
15:16:32 <oerjan> um is x a computation then?
15:16:34 <Deewiant> And what does = mean here? Computation has same result?
15:16:35 <alise_> yes
15:16:38 <alise_> 1' = 1, so it's (1+x')
15:16:44 <alise_> which I guess is not x :P
15:16:49 <alise_> Deewiant: yeah
15:16:54 <oerjan> then 1+x is a parallel computation that returns both input and x(input)
15:16:58 <alise_> eval Bot = fix id
15:17:05 <Deewiant> >_<
15:17:09 <alise_> oerjan: oh i see, it's basically currying
15:17:10 <alise_> Deewiant: what
15:17:16 <Deewiant> alise_: fix id :-P
15:17:22 <alise_> Deewiant: And? :P
15:17:32 <Deewiant> eval Bot = eval Bot
15:17:37 <alise_> psychoanalysis = fix id
15:17:46 <alise_> hyuk hyuk :|
15:17:49 <alise_> well
15:17:49 <Deewiant> joke = old
15:17:50 <alise_> psychotherapy, really
15:18:03 <alise_> oerjan: so x*y = x' + y' or x' * y'?
15:18:05 <alise_> I guess +
15:18:11 <alise_> (' is evaluation)
15:18:37 <alise_> so really, eval :: Cr -> Cr -> Cr
15:18:39 <alise_> (one is input)
15:18:41 <oerjan> um i don't understand your notation
15:18:55 <alise_> x' is the result of computing x
15:18:59 <alise_> you said that
15:19:02 <alise_> a + b -> a' + b'
15:19:09 <alise_> a * b -> a' * b' or a' + b'?
15:19:13 <oerjan> um you also need to specify input
15:19:22 <alise_> well, it's the same for both
15:19:25 <alise_> so it can be left implicit, no?
15:19:26 <oerjan> (x*y)(inp) = y(x(inp))
15:19:30 <alise_> ohh
15:19:41 <oerjan> if x and y are deterministic computations
15:19:48 <oerjan> otherwise, sum all branches
15:19:48 <alise_> so... you don't actually need parallelism at all :)
15:20:12 <oerjan> oh and bottom = 0 as input/output
15:20:27 <alise_> well, you'll never be able to inspect the output...
15:20:37 <alise_> for obvious reasons
15:20:46 <oerjan> yeah i don't think this is _computable_
15:20:58 <alise_> I'm computing it simply by leaving 0 resulting in _|_
15:21:02 <alise_> which doesn't seem unreasonable to me...
15:21:19 <oerjan> but to have a ring you need 0 + x = x
15:22:23 <alise_> Oh.
15:22:31 <alise_> Well, can you even write a non-terminating program without 0?
15:22:36 <alise_> Not without an infinite program.
15:22:47 <alise_> 0 is really just \_ -> 0
15:23:16 <oerjan> in a sense yes
15:23:39 <alise_> So I think this language is computable, and sub-TC.
15:24:04 <oerjan> well if you only use terminating programs as base
15:24:13 <alise_> Oh, I have only Bot and Id as base programs. :)
15:24:18 <alise_> data Cr = Bot | Id | Cr :+ Cr | Cr :* Cr deriving (Show)
15:24:44 <oerjan> oh
15:24:55 <alise_> I guess I need more to have anything useful.
15:24:59 <alise_> Or, wait, no.
15:25:02 <alise_> I can use Bot as ().
15:25:06 <oerjan> well then you essentially get a free ring on 0 generators, aka Z
15:25:09 <alise_> So then () = 0, (() :+ ()) = 1, ...
15:25:09 <oerjan> (the integers)
15:25:26 <alise_> oerjan: hrm, so completely unable to be used for any useful computation then
15:25:30 <alise_> guess that's pretty obvious
15:25:33 <oerjan> heh
15:26:12 * alise_ wonders what useful computations he could have
15:26:23 <alise_> well, we need *some* sort of looper
15:26:49 <alise_> http://pastie.org/832823.txt?key=a8bszac2sr9tpdd2n2pfw
15:26:52 <alise_> Ours for the extending, anyway.
15:27:11 <oerjan> but as i implied, you could throw any terminating functions into your base without trouble
15:27:20 <oerjan> and still be sub-TC
15:27:49 -!- MizardX has joined.
15:28:23 <alise_> aye, but we want to be able to calculate fibonacci at least
15:28:26 <alise_> ackermann preferably
15:28:40 <alise_> a conditional, then.
15:28:45 <alise_> wait, we have that
15:28:49 <oerjan> well primitive recursion is enough for the former
15:29:05 <alise_> 0 x = 0, 1 x = x, 2 x = x :+ x, I think
15:29:16 <alise_> no
15:29:22 <alise_> 0 x = 0, 1 x = 0 :+ 0
15:29:28 <alise_> or at least I think so
15:29:34 <alise_> this is rather confusing
15:29:41 <oerjan> transfinite induction was mentioned earlier today, maybe you could use that, omega^2 gives you ackermann iirc
15:29:48 <alise_> *Main> eval (Id :+ Id) (Id :+ Id)
15:29:48 <alise_> (Id :+ Id) :+ (Id :+ Id)
15:30:48 <oerjan> 1 = id i said!
15:31:25 <alise_> yes
15:31:28 <oerjan> also you seem to have left out subtraction in your ring
15:31:40 <alise_> that's (1+1) -apply- (1+1)
15:31:46 <alise_> i.e. (id id),(id id)
15:31:49 <alise_> i.e... oh dear
15:31:54 <alise_> also
15:31:59 <MissPiggy> data Cr = Bot | Id | Cr :+ Cr | Cr :* Cr ??
15:32:05 <alise_> In mathematics, a ring is an algebraic structure consisting of a set together with two binary operations (usually called addition and multiplication), where each operation combines two elements to form a third element.
15:32:06 <alise_> MissPiggy: computation as a ring
15:32:13 <MissPiggy> why not just bot = bot ; id = 0 ?
15:32:54 <alise_> because that does not make any sense, I believe
15:32:55 <oerjan> alise_: if you want it defined as an algebraic variety, you need something like subtraction or negation explicit. otherwise you need a logic axiom for their existence...
15:33:09 <alise_> oerjan: yeah but I'm bored now :)
15:33:16 <cheater> generally should a closure copy the objects it's closing over, or just separate the identifiers from the global scope?
15:33:29 <cheater> effectively making a local copy of the identifiers
15:33:48 <oerjan> cheater: if you have mutable variables you need to be careful
15:33:54 <MissPiggy> bot + bot
15:33:56 <oerjan> copying doesn't work then
15:34:06 <cheater> what are mutable variables?
15:34:07 <alise_> cheater: copying is less efficient
15:34:13 <alise_> also... what
15:34:15 <cheater> alise_: you misunderstood.
15:34:27 <alise_> cheater: that's nice, you could have just restated it more clearly
15:34:32 <oerjan> cheater: variables whose values can be _changed_
15:34:50 <alise_> variable variables, basically.
15:35:07 <cheater> oerjan: define 'value of variable'
15:35:11 <oerjan> cheater: and that means changes need to be visible to all scopes
15:35:16 <oerjan> cheater: >_<
15:35:24 <alise_> oerjan: cheater is just being obtuse
15:35:27 <cheater> no
15:35:27 <alise_> i suggest ignoring him
15:35:37 <cheater> i am trying to understand something that requires precise statements
15:35:44 <alise_> we're being precise.
15:35:48 <oerjan> cheater: for once i agree with alise_ on annoyingness
15:35:50 <alise_> data Var = Integer
15:35:56 <alise_> value :: [Value] -> Var -> Maybe Value
15:35:59 <alise_> happy?
15:36:06 <MissPiggy> noo
15:36:06 <alise_> mutate :: Var -> Value -> [Value]
15:36:06 <Deewiant> data Var = Var Integer
15:36:09 <MissPiggy> that is not a valid syntaxxx
15:36:12 -!- Asztal has quit (Ping timeout: 264 seconds).
15:36:13 <alise_> Deewiant: yeah w/e :P
15:36:17 <MissPiggy> alise you don't even !!!!!!!!!!!!! HASKELL
15:36:22 <Deewiant> Sure it was valid
15:36:31 <alise_> I don't even !!!!!!!!!!!!! Haskell.
15:36:42 <Deewiant> Not even
15:36:48 <cheater> oerjan: you're just teaming up with her in hopes of being laid
15:36:54 <cheater> oerjan: admit =(
15:36:59 <alise_> It's totally true.
15:37:03 <alise_> oerjan craves me.
15:37:07 <oerjan> cheater: the thing is, iirc ML which has no mutable variables can get away with implementing closures with copying. and also iirc java does the same with a horrible hack of _disallowing_ closures over non-final variables
15:37:17 -!- Asztal has joined.
15:37:22 <alise_> ML has mutable refs doesn't it
15:37:40 <alise_> ofc they're separate entities
15:37:48 <oerjan> alise_: yes, but that doesn't matter since it's not actually the variables themselves...
15:38:16 <oerjan> in fact you could deal with mutable variables by copying references to them
15:38:22 <cheater> oerjan: if i have a closure in python, over x, it has a local version of x. so if i later assign, outside of the closure, in the global scope, something else to x, then the x in the closure still refers to the old object. whereas if i modify the object in the global scope outside the closure, by say changing one of its fields, then the change is reflected inside the closure.
15:38:42 <alise_> A person demands absolute preciseness of semantics, and then starts talking about Python's semantics?
15:38:45 <alise_> ha!
15:38:53 <oerjan> cheater: that just says that what python calls closure is not what one would usually call a closure
15:39:09 -!- coppro has quit (Ping timeout: 260 seconds).
15:39:20 <alise_> data MutableVar = PointerToImmutable MutableReference
15:39:28 <alise_> tada now you can do closures via copying
15:40:24 <cheater> oerjan: and what is the difference?
15:41:49 -!- Pthing has quit (Remote host closed the connection).
15:41:51 <Deewiant> In Python's closures? That x didn't change.
15:42:04 <oerjan> cheater: a real closure would see the "same" variable as everything else in the scope of the variable
15:42:27 <oerjan> same in quotes because you can cheat if it really doesn't matter (e.g. immutable variable)
15:42:46 <AnMaster> pheew
15:43:02 <Deewiant> It's not cheating if you can't tell the difference within the language
15:43:15 <AnMaster> it's about 50 cm already btw
15:43:18 <oerjan> mind you this may be just a consequence of python's scopes being not truly lexical, also iirc
15:43:22 <AnMaster> 30 was an underestimate
15:43:22 <alise_> http://catseye.tc/projects/burro/doc/website_burro.html
15:43:24 <AnMaster> fucking hell
15:43:30 <alise_> he is dragging up the past!
15:43:35 <AnMaster> there is no free space for the cleared away snow any more
15:43:39 <AnMaster> what am I to do?
15:43:40 <alise_> AnMaster: Almost 20 inches?!
15:43:44 <Deewiant> Swim
15:43:45 <alise_> I suggest castration.
15:43:53 <AnMaster> alise_, har
15:44:21 <AnMaster> Deewiant, snow swining, hm. Sounds like something to add to the olympic games
15:45:13 <oerjan> AnMaster: no nearby hill to shove it off?
15:45:30 <alise_> Snow swining!
15:45:35 <alise_> Pigs; racing through snow.
15:46:34 <oerjan> to nicely complement the summer sport of sow swimming
15:48:12 * oerjan recalls the pole vault from the frc hellympics
15:52:13 <scarf> back
15:52:36 <alise_> yoyoyoyoyoyo
15:52:38 <alise_> doing
15:52:45 -!- alise_ has changed nick to alise.
15:52:56 <alise> scarf: so I've become obsessed with one paradigm
15:53:01 <scarf> which one?
15:53:13 <Deewiant> There can be only one
15:53:17 <alise> Tree rewriting! It's like functional programming, but (a) usually slow, and (b) restrictionless!
15:53:18 * scarf secretly hopes it's one he hasn't heard of
15:53:26 <scarf> alise: ooh, I like that one too
15:53:32 <alise> It's a symbolic computation system - we got yer algebra system.
15:53:37 <alise> It's a functional language - we got yer Y.
15:53:41 <scarf> but Cyclexa is not really at a usable stage
15:53:48 <alise> it's more than cyclexa
15:53:52 <alise> basically
15:53:59 <AnMaster> <oerjan> AnMaster: no nearby hill to shove it off? <-- no
15:54:03 <alise> tree = symbol | app tree tree
15:54:08 <AnMaster> oerjan, or I would need to go up said hill
15:54:10 <alise> program is a set of tree' -> tree
15:54:12 <MissPiggy> functional programming is a myth
15:54:14 <scarf> (it's effectively tree-rewriting, except it's string-rewriting with parsers determined at runtime so you can randomly reparse the string as some other tree if you like)
15:54:17 <AnMaster> but then all the neighbours would get mad
15:54:18 <alise> tree' = tree except another leaf is "freevar symbol"
15:54:25 <alise> it's bound on the RHS and replaced
15:54:27 <AnMaster> oerjan, this is inside a town after all
15:54:28 <alise> so we can have e.g.
15:54:35 <alise> not (not X) = X
15:54:36 <AnMaster> by the way
15:54:40 <alise> where caps = free
15:54:47 <AnMaster> I realised there is yet another issue with time travel
15:54:50 <AnMaster> not a paradox
15:54:53 <scarf> alise: ah
15:54:56 <AnMaster> but a very very annoying issue
15:54:58 <AnMaster> scarf, ^
15:55:02 <alise> and we can evaluate (not (not (not x))) without defining x
15:55:05 <alise> and get not x
15:55:06 <alise> back
15:55:06 <scarf> AnMaster: there are lots of issues with time travel
15:55:16 <AnMaster> scarf, "best before" dates on products would become useless
15:55:16 <alise> scarf: also, since terms without a rule just stay inert...
15:55:18 <MissPiggy> so time travel is impossible
15:55:22 <alise> scarf: we can use function application as data
15:55:26 <scarf> alise: makes sense; the tree-rewriting version of SKI combinatory logic works like that, doesn't it
15:55:28 <alise> i.e. (Cons x y), without defining Cons
15:55:30 <alise> it Just Works
15:55:33 <scarf> alise: yep
15:55:35 <oerjan> AnMaster: ah. i guess it only works if you live some way up a hill to start with.
15:55:37 <alise> scarf: yep, you can define SKI like that literally
15:55:38 <AnMaster> scarf, same for credit cards that has "valid to"
15:55:47 <AnMaster> (or whatever the English phrase for that is)
15:55:47 <alise> scarf: also, "X + Y" doesn't have to be specially supported
15:55:49 <alise> X plus Y = foo
15:55:52 <scarf> alise: note that this is what Mathematica does for everything, except the bits that were hand-optimised in C
15:55:58 <alise> the head term just happens to be a free var
15:56:00 -!- addicted has joined.
15:56:00 <scarf> I'm prepared to believe, though, that it's a good idea but an awful implementation of it
15:56:04 <alise> scarf: yep
15:56:30 <alise> Q, http://q-lang.sourceforge.net/, and its successor Pure, http://code.google.com/p/pure-lang/, are the best term-rewriting languages
15:56:36 <alise> Pure is even not hideously slow.
15:56:38 * scarf looks
15:56:38 <AnMaster> hm looking at my various cards phrases such as "good thru" and "valid thru" pops up
15:57:10 <AnMaster> oerjan, yeah, plus that is hardly a hill. I guess the elevation is about 5-7 meters compared to the area around at most
15:57:21 <alise> scarf: a really cool thing is that since rules are independent, not "attached" to anything, you can "extend" "functions"
15:57:25 <alise> for instance
15:57:26 <AnMaster> oerjan, not sure what the English word is. But it is called an "ås" around here
15:57:35 <alise> doc factorial = "The factorial function."
15:57:37 <alise> factorial n = ...
15:57:40 <alise> then later
15:57:43 <alise> doc fib = "Fibonacci"
15:57:44 <AnMaster> oerjan, ås being not a hill due to being rather narrow but quite long
15:57:45 <alise> fib n = ...
15:57:50 <alise> (doc X) is just a term
15:57:54 <scarf> yes
15:57:58 <alise> same as fib or factorial
15:58:08 <scarf> hmm, that sort of thing leads to truly weird bugs in Mathematica
15:58:10 <alise> also, currying works:
15:58:13 <alise> foo x y = ...
15:58:16 <alise> (foo x) just doesn't evaluate
15:58:17 <scarf> where you get literal bits of its internal working dumped into your result
15:58:22 <alise> do ((foo x) y), however...
15:58:22 <AnMaster> what is the English word for that scarf?
15:58:33 <scarf> AnMaster: I'm not sure; there may not be a particular one
15:58:37 <AnMaster> hm
15:58:41 <alise> AnMaster: we don't really have them so we don't need to call them anything :P
15:58:52 <alise> scarf: Pure is even compiled - to LLVM, no less
15:59:00 <scarf> alise: we do, we just don't notice them
15:59:11 <scarf> alise: have you tried using it much yet?
15:59:15 <Deewiant> alise: Pure's shell is a good start
15:59:16 <Deewiant> > help
15:59:16 <Deewiant> sh: w3m: command not found
15:59:25 <AnMaster> scarf, alise: oh interwiki gives "ridge"
15:59:25 <alise> Deewiant: yeah that's relevant to the language.
15:59:28 <AnMaster> which isn't quite it
15:59:31 <AnMaster> I think
15:59:35 <alise> scarf: well, I've read a lot of the docs and wrote some simple programs
15:59:45 <AnMaster> ridge sounds like something you would find at high mountains
15:59:51 <AnMaster> but ås is definitely not so
15:59:52 <alise> I'm quite enamored with the paradigm; and the language isn't bad.
15:59:54 <oerjan> AnMaster: i though ås (a norwegian word too) was also translated as hill
16:00:05 <scarf> AnMaster: a ridge is basically what you get when a lot of hills or mountains nearby connect together
16:00:08 <alise> It's eager, yes, and impure, yes, but despite that it's still pleasant.
16:00:08 <AnMaster> oerjan, hm maybe
16:00:10 <scarf> to create one long hilltop, that's a ridge
16:00:14 <scarf> and it's not what you were describing
16:00:25 <scarf> hmm, how can an impure language be called Pure? irony? accident?
16:00:26 <AnMaster> bad interwiki I guess then
16:00:36 <AnMaster> scarf, or partly overlapping meanings
16:00:47 <AnMaster> possibly ås geologically is something else than everyday sense
16:00:47 <scarf> AnMaster: do you get ridges where you live?
16:01:10 <scarf> Birmingham is in a really hilly area, so I know of a few within an hour's driving distance
16:01:14 <AnMaster> scarf, in Sweden yes, around this part of sweden: no, you need to travel 1-2 hours by car to the nearest such place
16:01:49 <AnMaster> basically you have this large almost completely flat area and then some mountains at the west side of it
16:02:05 <scarf> heh, sounds like a mirror-reflected version of Norfolk
16:02:15 <scarf> which is rather hilly around the edges, but famously ridiculously flat in the central areas
16:02:20 <AnMaster> well mountains, a few hundred meters, you do notice it as pressure difference in your ears when you go over them though
16:02:41 <alise> NORFOLK: Secretly, part of the Netherlands.
16:02:45 <AnMaster> scarf, well, I live near the flat middle basically
16:02:58 <MissPiggy> lol
16:03:07 <scarf> alise: at least it mostly isn't underwatetr
16:03:09 <scarf> *underwater
16:03:13 <alise> lol
16:03:19 <scarf> well, below sea level
16:03:22 <scarf> which isn't /quite/ the same thing
16:03:42 <AnMaster> scarf, iirc some time after the last ice age this area was part of the sea.
16:03:56 <AnMaster> (the ground has risen since)
16:04:11 <scarf> Norfolk got the way it was due to being covered in glaciers during the last ice age
16:04:21 <scarf> the hills round the edges are where the glaciers melted and dumped all the stones they were carrying
16:04:28 <AnMaster> scarf, and yes, there were glaciers here too
16:05:49 * scarf wonders how well concatenative langs compile into tree-rewriting langs
16:05:52 <scarf> probably quite well
16:06:11 <AnMaster> scarf, the mountains to the west contain some interesting remains such as fields with lots of round huge stones. And there is of course the occasional slab of stone in the middle of the plain. (which were put there by trolls or giants or something if you prefer the traditional stories ;P)
16:07:37 <scarf> "To my mind Mythryl deftly combines C speed, Lisp power, and Ruby convenience with the critical new ingredients of Hindley-Milner typing, state of the art generics and just the right level of side effects."
16:07:43 <scarf> ah, the dangers of semi-randomly clicking on links on Wikipedia
16:07:56 <scarf> apparently, it's an attempt to convert SML/NJ into a C-like syntax
16:08:14 <Deewiant> C + Lisp + Ruby + Hindley-Milner + generics + side effects
16:08:17 <Deewiant> O____o
16:08:24 <scarf> yes, it scares me too
16:08:38 <scarf> I'm busy reading the docs to know whether to laugh at it or not
16:08:41 <Deewiant> That's one hell of a tagline
16:08:58 <MissPiggy> "new ingredients of Hindley-Milner typing" just sounds /confused/
16:09:17 <scarf> "Either way, this is a far cry from the hundred-plus lines of code of a typical C Quicksort implementation."
16:09:22 <scarf> hmm, that seems rather critical of C
16:09:29 <Deewiant> "new ingredients of x" obviously does, but "new ingredients of x, y, and z" is fine
16:09:33 <scarf> I've seen a Pascal quicksort in 20 lines, and that was in a book intended to teach Haskell
16:09:38 <alise> I know of Mythryl, I think.
16:09:39 <scarf> umm, to teach Pascal
16:09:46 <alise> Yeah; that thingl.
16:09:48 <alise> *thing.
16:09:48 <Deewiant> scarf: So how's theirs; link
16:10:02 <scarf> http://mythryl.org/
16:10:06 <oerjan> pascal, haskell, nearly the same. if you slur enough.
16:10:23 <scarf> oerjan: it's a pain trying to discuss Haskell with people who know Pascal but not Haskell
16:10:25 <Deewiant> http://mythryl.org/my-Less_coding_effort_.html is what I wanted
16:10:27 <alise> "By four years in, vomiting blood in the wee hours was starting to seem entirely normal."
16:10:29 <alise> Slightly odd man
16:10:30 <scarf> you have to really emphasise the e to prevent them mishearing it
16:10:39 <MissPiggy> that wizard is AWESOME
16:10:43 <alise> Argh, this keyboard doesn't have enough key travel; though the rubber domes _do_ make a nice clacky sound.
16:10:46 <Deewiant> And yes, it is a completely unoptimized "quicksort" of a linked list
16:10:55 <alise> It beats the previous, sticky one though, I think.
16:11:06 <oerjan> scarf: theoretically pascal should stress the last syllable, i think
16:11:26 <Deewiant> As opposed to the 100+ C lines of a suitably benchmarked introsort on arrays
16:11:28 <scarf> oerjan: yes, but a stressed e and a stressed a sound rather different
16:11:33 <alise> I feel like bashing the fucking keys! Am I even pressing these things?
16:12:01 <oerjan> um i'm actually not sure where haskell is stressed
16:12:05 <scarf> also, the Mythryl guy seems to use "linux$ " as his $PS1
16:12:12 <alise> Or has his box called "linux".
16:12:17 <scarf> yes
16:12:19 <alise> Or is just using it as an example.
16:12:24 * oerjan always stresses it on first syllable
16:12:25 <scarf> but who calls a computer after its OS?
16:12:26 <Deewiant> Or uses uname
16:12:31 <alise> scarf: Incidentally, you can do pure IO without monads in a term rewriting language, really trivially.
16:12:32 <scarf> oerjan: so do I, although I don't know that's right
16:12:44 <Deewiant> Except that my uname prints Linux, but whatever
16:12:49 <scarf> alise: what method in particular are you thinking of?
16:12:56 <alise> puts s = lambda k (_PUTS s k)
16:13:07 <alise> getc = lambda k (_GETC k)
16:13:12 <scarf> that looks rather like a monad to me
16:13:14 <alise> exit = lambda k _EXIT
16:13:17 <alise> well, yes, it is technically
16:13:17 <alise> BUT
16:13:20 <alise> then we do
16:13:26 <AnMaster> Deewiant, some TURT questions. Since I'm planning it for efunge. 1) Since heading (in degrees) and distance to move are both integers we might end up at non-integer x/y. This can of course be handled by floating point or fixed point math. However that poses a problem since there is an instruction to query the current coordinates. Should one return rounded-to-nearest values for it? Or round internally
16:13:26 <AnMaster> as well?
16:13:37 <oklopol> a C quicksort takes like 8 lines max
16:13:48 <scarf> and a Joy quicksort takes one
16:13:58 <alise> x ; y = lambda k (x (y k))
16:14:01 <alise> so we can say
16:14:03 <scarf> isn't there a GolfScript quicksort in something like ten characters?
16:14:03 <oklopol> in a hundred lines you can just manually program how to sort each possible list
16:14:07 <alise> puts "Hello, world!"; getc; exit
16:14:09 <alise> and it turns into
16:14:15 <AnMaster> Deewiant, cpressy said that he couldn't answer it, since he wrote that stuff so long ago he really doesn't remember what was intended or anything
16:14:16 <scarf> it turns into the monad
16:14:16 <Deewiant> AnMaster: Either, I guess
16:14:24 <scarf> "REPROGRAM YOUR SEMICOLONS!"
16:14:29 <alise> lambda k (_PUTS "Hello, world!" (_GETC (_EXIT k)))
16:14:51 <alise> so the RTS passes it some dummy end-of-thing
16:14:52 <scarf> yep, that's a monad; ; is bind here
16:14:53 <alise> value
16:14:55 <alise> and tada
16:14:56 <alise> scarf: well, yes
16:15:00 <alise> but you never "define" the monad
16:15:02 <scarf> how do you deal with non-monad terms in there, though?
16:15:05 <alise> the magic there is that
16:15:07 <alise> you define a CPS language
16:15:10 <alise> and then the sugar over it
16:15:10 <scarf> as in, what's the equivalent of lift?
16:15:12 <alise> but they're defined in the same way
16:15:14 <alise> with normal rules
16:15:27 <alise> scarf: lift doesn't lift non-monadic values
16:15:30 <alise> do you mean return :: a -> m a?
16:15:35 <scarf> err, yes
16:15:36 <scarf> sorry
16:16:06 <alise> well, if you're like most term languages, i.e. untyped,
16:16:12 <alise> you don't need it
16:16:17 <alise> i think
16:16:17 <Deewiant> scarf: It wouldn't surprise me if GolfScript had a single char for quicksort ;-P
16:16:20 <alise> but anyway, you could do this:
16:16:26 <alise> return x = lambda k (k x)
16:16:31 <oerjan> original haskell 1.0 did have a CPS I/O system
16:16:36 <scarf> Deewiant: it probably has a single char for sort, but nothing would be requiring it to be quicksort
16:16:37 <AnMaster> Deewiant, I could see issues with both variants: a) for round to query only: if program uses that, jumps somewhere else, then jumps back to continue to draw the lines might no longer line up properly. b) for round internally: angles would sometimes get distorted. And if it moves two lengths in a given angle but not in a single go you could get lines supposed to be straight that are now somewhat curved.
16:16:45 <scarf> alise: yep
16:16:58 <Deewiant> scarf: It could be requiring it, although that's admittedly unlikely
16:17:11 <scarf> just, I can't see any amount of sugar that would mean that ; could combine IO operations with non-IO operations
16:17:21 <alise> scarf: Of course you could.
16:17:21 <AnMaster> Deewiant, I'm not sure which of those is worst. Oh btw does ccbi keep track of the heading in radians or degrees internally?
16:17:21 <scarf> anyway, I don't see what all the fuss is about quicksort, mergesort is just usually better
16:17:28 <alise> instead of
16:17:29 <alise> puts s = lambda k (_PUTS s k)
16:17:29 <Deewiant> AnMaster: It's a raster format, you will get such issues.
16:17:34 <alise> puts s = _IO (lambda k (_PUTS s k))
16:17:37 <scarf> (strangely, Java specifies the sort of primitive types to be quicksort, and of objects to be mergesort, and I have no idea why)
16:17:37 <AnMaster> Deewiant, it isn't. It will render to svg
16:17:45 <alise> Then just pattern-match on _IO in ;
16:17:52 <alise> _IO x ; y = ...
16:17:53 <AnMaster> Deewiant, or control a real turtle bot maybe ;)
16:17:55 <scarf> hmm, maybe
16:18:00 <alise> x ; y = _IO (lambda k (k x)); y
16:18:08 <scarf> OTOH, that would preclude returning the puts function itself
16:18:13 <alise> No.
16:18:13 <scarf> unless you had a separate return
16:18:16 <alise> Because there is no "puts function".
16:18:22 <alise> If you return "puts", that's a symbol.
16:18:28 <alise> Only "puts x" is rewritten.
16:18:32 <scarf> I mean, a partial application of it
16:18:37 <scarf> even a full application, in a lazy lang
16:18:37 <alise> For a curried function: "K x" is just a term. Not rewritten.
16:18:40 <Deewiant> AnMaster: Radians
16:18:42 <scarf> alise: yep
16:18:46 <alise> "K x y" is reduced, however.
16:18:48 <scarf> but it starts with _IO and so confuses your pattern matcher
16:18:52 <alise> Of course, you can have 'x = x without rewriting.
16:18:57 <alise> scarf: No, it doesn't.
16:19:00 <scarf> ah, quoting
16:19:00 <alise> "puts" doesn't start with _IO.
16:19:04 <scarf> and good point
16:19:05 <alise> puts is puts.
16:19:15 <alise> puts x doesn't start with _IO, either, but its reduction does.
16:19:29 <AnMaster> Deewiant, you could get floating point inexactness issues there when you turn in 1 degree steps or such. Like turing +1 degree 360 times might not give you the exact original heading.
16:19:49 <scarf> oh yes, so it's just going to be down to the usual lazy timing issues which drive strict programmers trying to learn Haskell mad
16:19:53 <scarf> and I can live with those
16:19:55 <alise> Turing +1 degree 360!
16:20:04 <alise> scarf: Well, Pure isn't even lazy.
16:20:13 <AnMaster> Deewiant, another issue: the "query bounds of drawing" thingy. Is it supposed to be max bounds or current bounds? cfunge seems to do the latter, but I'm not sure if this is correct. After all it is possible a befunge program might want to scale it's drawing based on available space. And if that returns 0,0,0,0 you have some issues.
16:20:14 <Deewiant> AnMaster: There are precision issues anyway since I don't use arbitrary-precision reals
16:20:21 <alise> So it solves this "problem" extremely easily.
16:20:29 <scarf> yes
16:20:45 <scarf> a strict language doesn't need IO chains, or IO monads, or anything like that
16:20:52 <Wareya> ?
16:20:57 <alise> You can be strict and pure, scarf.
16:21:00 <AnMaster> Deewiant, true, but tracking heading as integer degrees and only converting for actual sin/cos usage would mean the inexactness of heading couldn't increase over time
16:21:00 <alise> Like a nun!
16:21:18 <scarf> alise: yes, but the point is you don't need to be
16:21:19 <Deewiant> AnMaster: Unless my Mycology results are wrong cfunge's U definitely pushes the max bounds
16:21:24 <scarf> lazy and impure is a lot more difficult
16:21:28 <alise> scarf: Indeed, purity is a desirable property even in a strict language - _|_ is your only enemy.
16:21:33 <pikhq> Good morrow.
16:21:36 <scarf> alise: agreed
16:21:36 <Deewiant> AnMaster: It's a tradeoff
16:21:38 <pikhq> alise: Back early?
16:21:55 <alise> pikhq: Early? 'Tis the 4th post-meridian hour of Friday.
16:22:00 <scarf> I'm probably going to leave Underlambda impure, though, to make it easier to compile into and out of, which is after all its design goal
16:22:00 * pikhq converts to UTC
16:22:16 <scarf> if I try to make a version that's actually useful for writing in, maybe I'll have to have an Underhaskell or something
16:22:18 <pikhq> alise: Oh, you get back at 4 PM?
16:22:21 <AnMaster> <Deewiant> AnMaster: Unless my Mycology results are wrong cfunge's U definitely pushes the max bounds <-- "huh"
16:22:24 * AnMaster looks at the code
16:22:32 <alise> pikhq: No, at half past the meridian today actually.
16:22:34 <alise> Or thereabouts.
16:22:39 <Deewiant> AnMaster: iki.fi/deewiant/befunge/mycology-output/fp-turt/cfunge.txt
16:22:45 <AnMaster> oh indeed it does
16:22:45 <alise> Early leaving on Friday... but when *would* you expect me to be back?
16:22:50 <alise> 11pm? :P
16:22:51 <scarf> AnMaster: U in which fingerprint?
16:22:55 <AnMaster> Deewiant, I read some other fingerprint
16:22:57 <AnMaster> scarf, TURT
16:23:00 <pikhq> alise: Ah.
16:23:03 <AnMaster> Deewiant, err function
16:23:05 <AnMaster> not fingerprint
16:23:26 <AnMaster> it was the function for figuring out svg viewport or something it seems
16:23:30 <alise> pikhq: I'm actually curious when you thought
16:23:37 <AnMaster> anyway the design will be quite different from that in cfunge
16:23:53 <pikhq> alise: I thought it was just a bit later in the day is all.
16:24:10 <pikhq> I figured they'd have you around for pretty much of the work week or something.
16:25:01 <scarf> pikhq: the people imprisoning him probably hate having to guard the place as much as he hates going there
16:25:16 <AnMaster> Deewiant, since the way cfunge does it have some issues and is somewhat messy. I might rewrite it later on
16:25:47 <pikhq> scarf: True, true.
16:25:59 <pikhq> It's not like they enjoy it, they just have a stick up their ass.
16:26:31 <scarf> it's probably different people making the decisions from the people who have to live with their consequences
16:26:51 <pikhq> Also true.
16:27:04 <scarf> in general, or decisions would be better in general
16:27:33 <alise> Some of them seem to get a real kick out of power, though.
16:27:36 <AnMaster> note to self: if you use vnc remember to turn off synergy first. That was quite confusing
16:27:55 <AnMaster> (vnc and synergy between same computers that is)
16:29:20 <pikhq> alise: The infamous Stanford prison experiment (which has not been repeated for ethical reasons) gives some evidence to suggest that merely being placed into position as guard of a prison produces that.
16:29:53 <alise> The Stanford prison experiment is chilling.
16:30:00 <pikhq> Indeed it is.
16:30:10 <scarf> yes, it's really scary
16:30:16 <alise> But add the Milgram experiment, and it's /fucking terrifying/.
16:30:32 <scarf> alise: I don't know that one
16:30:45 <Deewiant> It's the one with electric shocks
16:30:49 <scarf> ouch
16:30:51 <alise> The experimenter (E) orders the teacher (T), the subject of the experiment, to give what the latter believes are painful electric shocks to a learner (L), who is actually an actor and confederate. The subject believes that for each wrong answer, the learner was receiving actual electric shocks, though in reality there were no such punishments
16:30:59 <scarf> I know that one, just not its name
16:31:13 <alise> The experimenter tells the teacher to keep doing it even as the intensity of the "shocks" supposedly increases to insane levels.
16:31:19 <alise> The teacher almost universally complies.
16:31:32 <scarf> and after a while the learner plays dead, and the teacher keeps increasing the shocks anyway
16:31:46 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
16:31:51 <scarf> apparently, it's highly dependent on how authoritative the experimenter seems
16:32:04 <pikhq> Milgram experiment.
16:32:07 <scarf> they repeated it with the experimenter wearing casual clothing, and people suddenly started acting sanely
16:32:27 <Deewiant> O_o
16:32:39 <alise> Milgram + Stanford = Speak authoritatively, and you can get people to do horrible, horrible things - and start believing in them.
16:32:45 <Deewiant> scarf: Do you have a source for that?
16:32:57 <alise> Probably the only solution is to abolish authority entirely, which poses a whole host of other problems.
16:32:58 <scarf> Deewiant: I did once, but can't remember where it was
16:33:04 <scarf> and it was third-hand information then already
16:33:16 <pikhq> Deewiant: http://www.garfield.library.upenn.edu/classics1981/A1981LC33300001.pdf Here's the paper by Stanley Milgram.
16:33:55 <AnMaster> <alise> Probably the only solution is to abolish authority entirely, which poses a whole host of other problems. <-- quite. First that comes to mind is things like highway robbers and what not.
16:34:06 <Deewiant> pikhq: No, it's just a review
16:34:08 <alise> Trust AnMaster to always pick on the most trivial, boring example.
16:34:09 <pikhq> Erm.
16:34:12 <pikhq> Darn.
16:34:13 <pikhq> DARN IT.
16:34:15 <Deewiant> :-D
16:34:26 <AnMaster> alise, of course. I don't want to let your expectations down.
16:34:27 <pikhq> Wrong link.
16:34:29 <alise> A /bigger/ problem with anarchy is preventing a state from establishing itself.
16:35:13 <AnMaster> alise, well yes. But I thought you didn't want authority, and a state seems to me to be the prime example of authority
16:35:15 <scarf> alise: yep, you'd have to enforce it from outside somehow
16:35:17 <pikhq> Deewiant: Here's where you could read it if you paid. http://psycnet.apa.org/index.cfm?fa=search.displayRecord&uid=1964-03472-001
16:35:27 <Deewiant> Thanks for the help! ...not
16:35:32 <Deewiant> Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
16:35:35 <Deewiant> Whee broken websites
16:35:36 <scarf> but the same effect seen in the Stanford experiment is seen in reality TV too
16:35:47 <alise> AnMaster: Duh... of course.
16:35:48 <pikhq> scarf: And prisons everywhere.
16:35:49 <scarf> you can easily get people to move from the real world to an imaginary one
16:35:51 <alise> AnMaster: That's what I said.
16:35:58 <AnMaster> alise, thus I didn't think you would consider that an issue
16:36:02 <AnMaster> that there is no state
16:36:06 <alise> scarf: actually, there are numerous ways you could avoid establishing authority
16:36:11 <alise> AnMaster: You did not read what I said.
16:36:14 <alise> <alise> A /bigger/ problem with anarchy is preventing a state from establishing itself.
16:36:21 <alise> In a bad anarchy, gangs will form;
16:36:26 <alise> one gang will arm itself more than the others;
16:36:27 <AnMaster> alise, yes.
16:36:28 <scarf> that's an authority of its own
16:36:34 <alise> a few generations later, we will call it the state.
16:36:39 <AnMaster> alise, oh right, I read that as the other way around
16:36:39 <alise> scarf: no, as in societial ways
16:36:50 <scarf> hmm
16:37:02 <scarf> you mean, you ingrain the importance of anarchy into everyone so much that they assume there's no other way?
16:37:07 <alise> things like teaching rational thinking to children from the very start
16:37:12 <scarf> and parents teach it to their children?
16:37:22 <scarf> hmm, rational thinking doesn't necessarily imply anarchy, I don't think
16:37:24 <alise> scarf: well, no; that's supporting ignorance - but letting people figure out why the anarchy is superior while they're children through rational means
16:37:33 <alise> scarf: certainly
16:37:45 <scarf> alise: ah
16:37:47 <alise> but if you use rational thinking and come to the conclusion that anarchy is bad, well, don't try and establish a stable anarchy :P
16:37:51 <scarf> I'm not certain the anarchy would be superior
16:37:56 <alise> nor am I
16:38:03 <pikhq> alise: Anarchy is only superior if the people involved are ethical, of course...
16:38:10 <alise> but if you conclude rationally that it is, that is the best method of sustaining it
16:38:19 <scarf> pikhq: pretty much /any/ governmental system works if all the people involved are ethical
16:38:27 <pikhq> Well, yes.
16:38:28 <scarf> and in such a case, you may as well use anarchy to save costs, or communism for the benefits
16:38:29 <alise> pikhq: Right; the transition from state to anarchy is the hard part, because you need everyone involved to be pro-anarchy until you can teach the children about it
16:38:34 <scarf> it's just not going to happen in practice, though
16:38:36 <alise> you need stablility for a generation or two
16:38:39 <pikhq> They do differ largely in how they deal with a lack of ethics.
16:38:43 <alise> scarf: right
16:39:29 <alise> hmm... I can't figure out whether the most popularly expected (and thus almost certainly wrong) post-Friendly-singularity outcome is dictatorship or anarchy
16:39:29 <pikhq> Clearly, the real solution is singularity.
16:39:48 <alise> it would basically become the operating system for space; preventing harming another while allowing otherwise total control to everyone
16:39:58 <alise> now, are the laws of physics a dictatorship?
16:40:08 <alise> if yes, then probably so is the singularity; otherwise, probably not
16:40:22 <scarf> alise: what about the Asimov outcome?
16:40:32 <alise> define
16:40:36 <scarf> where a robot government was set up for a while, but it decided that its own existence was harmful for mankind
16:40:37 <alise> (well, disambiguate)
16:40:38 <scarf> and it phased itself out
16:40:43 <alise> scarf: that's not a singularity
16:40:46 <scarf> no, it isn't
16:40:52 <scarf> but I can imagine a similar outcome happening from a singularity
16:40:59 <alise> a Friendly seed AI would self-modify until it *is* beneficial to mankind
16:41:10 <alise> If it cannot, then it suggests that mankind is perfect already, which is total bullshit.
16:41:39 <scarf> alise: not perfect; the idea was that people inherently resent having computers in charge, and that dealt more damage than any good the computers could manage would do
16:41:43 <alise> (specifically, a seed AI with a correctly-specified supergoal, such as C.E.V., would achieve this supergoal at any cost (you account for acceptable and unacceptable losses in the supergoal))
16:42:07 <alise> scarf: then the singularity would improve our minds so that we did not mind the idea, which would presumably be increased intelligence + an understanding of what AI really is
16:42:18 <alise> (assuming the supergoal does not forbid doing such things, which it probably doesn't)
16:42:22 <alise> either that, or it would make itself voluntary
16:42:38 <alise> and, perhaps, attempt to explain why it is good to the people who say no
16:43:02 <alise> (it would probably still prevent harm between the people who say no, though, through simple moral imperative)
16:43:29 <Deewiant> Somewhat related reading (or, at least, this stuff brought it to mind): Eliezer Yudkowsky's "Three Worlds Collide", http://lesswrong.com/lw/y4/three_worlds_collide_08/
16:43:29 <scarf> hmm, ridiculous idea: the singularity decides that there's something special about humans as they are now
16:43:35 <scarf> e.g. maybe it discovers God exists
16:43:36 <alise> Deewiant: yes, I love TWC
16:43:39 <scarf> and likes humans in particular
16:43:40 <alise> When I say probably, by the way,
16:43:43 <alise> I mean almost certainly not.
16:43:59 <alise> (as does everyone else who tries to predict what the Singularity, or any other transhuman entity, will do; by definition we /cannot know/)
16:44:34 <alise> also, Three Worlds Collide protip: read the Normal Ending, then the True Ending
16:44:45 <scarf> ok, because I like trope subversion: there will be two Singularities which get created at more or less the same time
16:44:45 <Deewiant> I.e. read it in order
16:44:49 <scarf> and which end up jealous of each other
16:44:57 <scarf> so they refuse to work as a team
16:45:01 <alise> scarf: Both Friendly, yes?
16:45:06 <scarf> and this messes up the typical benevolent self-improvement thing
16:45:12 <alise> Deewiant: Well, but the choice is offered in the last pre-ending chapter.
16:45:15 <scarf> so they're both friendly in general, but have a blind spot where the other is concerned
16:45:24 <alise> There's no such thing as Friendly-in-general. :)
16:45:29 <scarf> yep
16:45:39 <Deewiant> Sure, but if you just read top-down like most people do you'll do it right. :-P
16:45:41 <alise> If an AI is almost-Friendly, it will modify itself so that it is Friendly (unless the blind spot is in a really inconvenient place; in which case, it's Unfriendly).
16:46:01 <alise> scarf: If they are both Friendly, then they will not be jealous of each other purely because this prevents the good outcome.
16:46:08 <scarf> yes
16:46:24 <alise> If either is Unfriendly, then either the Friendly one (if there is one) will become more powerful and kill it, or we are fucked.
16:46:35 <alise> Your outcome is impossible, and you should feel bad. :P
16:47:25 <scarf> hmm, more fun: a Friendly singularity is created, but somehow sandboxed because people don't trust it
16:47:47 <scarf> so it can't fulfil its whole outcome, and there are people who want to turn it off in the fear it's actually Unfriendl
16:47:50 <scarf> *Unfriendly
16:48:12 <alise> can't box a transhuman
16:48:15 <alise> http://yudkowsky.net/singularity/aibox
16:48:27 <alise> by definition it will outsmart us; and even a human can unbox itself, see above
16:49:26 <alise> there's a reason Creating Friendly AI is a large, serious work; because there really does seem to be no other alternative
16:50:05 <Deewiant> alise: Those are no fun, they're secret
16:50:14 <scarf> hmm... what about a singularity not happening, because nobody can afford the energy bill?
16:50:28 <alise> Deewiant: That irritates me too, but it's to stop people going "ha ha, that wouldn't work on me", I think.
16:50:42 <Deewiant> I can't help but think that specifically because they're secret >_<
16:50:44 <scarf> and an AI can't be brought to the level of intelligence where it could outsmart that because it would be too expensive
16:50:49 <alise> Deewiant: Yes, well. Ask him :P
16:50:53 <MissPiggy> amazing I just read about that stanford prison
16:50:54 <alise> scarf: are you saying that even human + omega intelligence requires too much power?
16:51:01 <alise> MissPiggy: baader-meinhof phenom :P
16:51:07 <alise> scarf: because certainly human doesn't, we're living proof
16:51:07 <oklopol> to me, saying a transhuman would convince any human of something is like saying a human would be a superior dolphin
16:51:11 <oklopol> but maybe that's just me
16:51:17 <scarf> alise: not quite
16:51:20 <alise> scarf: and once it goes past a certain point of intelligence, oh snap nanotech
16:51:25 <Deewiant> I mean, FFS, all you have to do is chat with a dude for a few hours and then end up saying "no"
16:51:26 <alise> and then it isn't a problem any more
16:51:33 <alise> Deewiant: Well, that's the whole point.
16:51:37 <scarf> I'm saying that human + omega intelligence implemented by humans, and therefore very inefficiently, may require too much power
16:51:51 <alise> Deewiant: If the conclusion wasn't highly unintuitive, the page would not exist.
16:52:03 <alise> scarf: That therefore doesn't follow.
16:52:07 <alise> scarf: And the AI is self-improving, remember.
16:52:28 <scarf> alise: I mean, that the singularity won't happen because we never get an AI to a self-improving stage
16:52:28 <alise> Given a massive data centre, perhaps even with specialised hardware, I find being unable to emulate a human incredibly unlikely.
16:52:35 <AnMaster> hm can a human really construct something smarter than a human?
16:52:38 <alise> And the AI will be /better/ than a human then, for it will be rational.
16:52:43 <scarf> not because we're technically incapable, but because nobody will put in the effort
16:52:45 <alise> AnMaster: Yes. It just can't understand the whole of it at once.
16:52:49 <MissPiggy> AnMaster, I don't see any reason why not
16:52:53 <AnMaster> alise, perhaps
16:52:55 <alise> AnMaster: I thought the same too once, but I conclude it's a silly objection based only on intuition.
16:53:00 <alise> AnMaster: Consider two people working together.
16:53:01 <MissPiggy> AnMaster, I mean we can build things bigger, and stronger, so why not smarter?
16:53:01 <scarf> AnMaster: there are lots of things we can't understand the whole of at once even now
16:53:04 <alise> scarf: there is no self-improving stage
16:53:05 <scarf> even if they're a lot less smart than us
16:53:09 <MissPiggy> and why would we not understand it all even if it is smarter?
16:53:10 <alise> scarf: you build the AI to self-improve from the start
16:53:12 <alise> no matter how dumb it is
16:53:16 <alise> and you give it the supergoal from the start, too
16:53:22 <scarf> alise: if it's too dumb, it'll just reach a dead end
16:53:23 <Deewiant> Gah, that aibox thing is really pissing me off now
16:53:24 <alise> then you make it intelligent enough, manually, so that it will not fuck things up royally
16:53:27 <alise> and set it ofc
16:53:28 <alise> *off
16:53:29 <Deewiant> Dammit, alise
16:53:33 <MissPiggy> Deewiant what about it?
16:53:34 <alise> Deewiant: Email him and complain.
16:53:43 <MissPiggy> complain about what?
16:53:43 <scarf> I mean, you could just set evfunge trying to solve the problems of world hunger or whatever
16:53:44 <alise> There is no reason at all to get angry.
16:53:45 <AnMaster> scarf, true that
16:53:48 <alise> MissPiggy: its secrecy
16:53:54 <scarf> but you probably wouldn't even be able to describe the problem in enough detail
16:53:55 <MissPiggy> what's wrong with that?
16:54:07 <alise> scarf: Well, that's what the hard part is: making it intelligent enough.
16:54:10 <alise> MissPiggy: He hates it.
16:54:25 <Deewiant> I refuse to respect the unknown unknowns
16:54:29 <scarf> alise: yes
16:54:30 <oklopol> MissPiggy: it's like a magic show, it's not at all interesting until you know how he does it
16:54:32 <alise> Deewiant: Then email him.
16:54:37 <alise> Getting angry is just, well, irrational.
16:54:47 <alise> oklopol: it's meant to be a warning, not a show :P
16:55:00 <Deewiant> Not "angry"
16:55:12 <alise> scarf: Probably the hardest part is: You cannot turn it on. Is it done yet? No, completely done? Have you /proven/ it will work? In independent systems? No? Then you cannot turn it on.
16:55:22 <MissPiggy> hm it doesn't seem like a magic trick to me
16:55:27 <alise> scarf: Can you even /imagine/ writing a program like that?
16:55:36 <scarf> alise: people would be bound to try test runs
16:55:39 <oklopol> alise: to me it's an interesting psychological experiment, i don't care about the AI aspect
16:55:45 <alise> scarf: No. You cannot.
16:55:45 <scarf> and yes, I have imagined writing programs like that, but only very simple ones
16:55:56 <oklopol> well, sure it's sort of a crucial part of the experiment, but maybe you know what i mean.
16:55:57 <alise> Unless you are sure it is Friendly, you cannot turn it on.
16:55:57 <scarf> and yes, I don't think it works
16:56:07 <alise> You can only be sure of that when it's completely done and proved correct multiple times.
16:56:17 <scarf> alise: I don't think humans would be capable of proving an AI Friendly
16:56:23 <alise> "cannot" as in "cannot by sheer risk".
16:56:47 <scarf> OTOH, I don't trust humans in general not to do ridiculously risky things
16:56:50 <alise> If you have a self-improving AI of a certain minimum intelligence, and it is not Friendly, and you run it, the world will end.
16:57:14 <scarf> on a slightly tangential subject, I've been wondering if there are any Hello Worlds around which are completely bug-free
16:57:18 <scarf> I'm wondering if the answer is no
16:57:19 <alise> scarf: well, doing nothing is highly risky, as someone else might create an Unfriendly AI; getting responsible, highly intelligent people to create a Friendly seed AI is the most responsible thing
16:57:25 <alise> #include <stdio.h>
16:57:51 <scarf> the standard C hello world has a few bugs, such as not handling output redirected to a disk which is full
16:57:51 <Deewiant> alise: How would e-mailing him help? He explicitly says he won't tell anybody
16:57:57 <alise> int main(void) { if (puts("Hello, world!") == EOF) { return EXIT_FAILURE; } return EXIT_SUCCESS; }
16:58:14 <alise> Deewiant: Ask for his reasoning. Either you'll be convinced or you'll only have wasted a very small amount of time.
16:58:42 <Deewiant> I'll have wasted /his/ time, which is rude
16:59:00 <MissPiggy> Deewiant -- you haven't said WHY this is annoying or you don't like it
16:59:04 <alise> Deewiant: Oh, you Finn.
16:59:09 <MissPiggy> lol
16:59:13 <alise> Deewiant: I'm sure he's so pro-knowledge that he would not mind.
16:59:17 <alise> He's that kind of guy.
16:59:23 <alise> Probably.
16:59:49 <Deewiant> MissPiggy: I cannot possibly fathom what could bring someone to change their minds thusly
17:00:01 <Deewiant> And I am annoyed that not even a hint is given
17:00:01 <alise> Deewiant: And that is why you would.
17:00:21 <Deewiant> alise: ??
17:00:37 <alise> If you could fathom, without seeing, why you would lose, you would not lose.
17:00:48 <alise> Since you cannot, the AI can manipulate you in this way, making you lose.
17:01:03 <Deewiant> Eh? Non sequitur
17:01:09 <scarf> alise: the whole secret box thing, I can easily imagine how an AI would be let out of the box
17:01:12 <Deewiant> Eliezer is not a superhuman AI
17:01:23 <alise> Deewiant: But he knows something you do not (how to win the AI Box experiment).
17:01:35 <scarf> the solution, presumably, would be to have too many layers of indirection
17:01:38 <alise> Even if you found out that one secret, the point is that he, a mere human, achieved it.
17:01:46 <alise> So what would someone more intelligent than us think of?
17:01:49 <alise> We cannot know - that's the point.
17:01:59 <MissPiggy> alise he doesn't know how to win it
17:02:01 <Deewiant> I'm willing to believe the concept
17:02:08 <alise> MissPiggy: He won twice.
17:02:08 <MissPiggy> he just wanted to test if he had the ability
17:02:09 <scarf> if the only person who can talk to the AI can't themselves let the AI out of the box, then you have one layer of indirection in that the AI has to teach them to let someone else let them out of the box
17:02:22 <Deewiant> What I'm finding difficult to believe is specifically Yudkowsky winning
17:02:25 <alise> scarf: "Come over here, read this! You won't believe it"
17:02:28 <MissPiggy> I think he did actually win more than twice, but he also lost in a couple of times
17:02:31 <alise> Deewiant: Well, he is a very intelligent man.
17:02:32 <alise> MissPiggy: no
17:02:35 <scarf> multiply that times hundreds of layers of abstraction and governmental-level forms
17:02:36 <alise> So far, this test has actually been run on two occasions.
17:02:38 <alise> Results of the first test: Eliezer Yudkowsky and Nathan Russell. [1][2][3][4]
17:02:38 <alise> Results of the second test: Eliezer Yudkowsky and David McFadzean. [1] [2] [3]
17:02:41 <alise> he won both times
17:02:42 <MissPiggy> But I am saying he doesn't have a winning strategy
17:02:51 <MissPiggy> it's most like running faster than someone else
17:02:59 <alise> Remember that the other party is intelligent, too; he got them from the SL4 mailing list.
17:03:05 <scarf> hmm, I think even a typical average human could learn a winning strategy for that, given enough effort
17:03:06 <alise> MissPiggy: Yes, but consider that he's /human/.
17:03:07 <MissPiggy> yes that's why he didn't always win
17:03:11 <alise> he did
17:03:12 <alise> dammit
17:03:15 <MissPiggy> oh what does being human have to do with it
17:03:16 <MissPiggy> ?
17:03:16 <alise> he won every time
17:03:25 <alise> MissPiggy: because a seed AI that wanted to escape would be /transhuman/
17:03:28 <alise> more intelligent than humans
17:03:33 <alise> so we would not be able to predict how it would subvert us
17:03:40 <MissPiggy> yeah it would win every time with unlimited high stakes :P
17:03:46 <alise> and it would be able to manipulate us like toys, by the sheer fact that it is more intelligent than us
17:03:53 <alise> scarf: yes, for humans
17:03:53 <MissPiggy> Yudkowski just wins most of the times, when the stakes are < $2000
17:03:59 <alise> scarf: but not for transhuman
17:04:00 <alise> s
17:04:04 <alise> MissPiggy: *Yudkowsky
17:04:10 <MissPiggy> thanks
17:04:13 <alise> also, the challengers were *very* sure of themselves
17:04:18 <scarf> alise: I mean, a typical human could win every time, so a transhuman would have no trouble
17:04:22 <alise> they seemed to have a huge point to prove and were very forceful
17:04:28 <alise> their conceding emails, meek and concise
17:04:33 <MissPiggy> yeah that's a big part of it, I think he needed that because otherwise he wasn't testing himself
17:04:36 <alise> scarf: ah, yes
17:04:45 <scarf> not a typical human without training
17:04:57 <MissPiggy> alise, in his coming of age series he talks about other times when he run this experiment and didn't win
17:04:57 <scarf> but, say, magicians have lots of practice getting people to miss a particular details
17:05:07 <scarf> *miss a particular detail
17:05:11 <alise> Anyway, point is: Since Yudkowsky did it, as a human, the risk with an entity of massively greater-than-human intelligence is too great to consider.
17:05:21 <scarf> I imagine compelling someone to do something in particular through psychology is, with practice, just as easy
17:05:21 <MissPiggy> yeah
17:05:24 <alise> So a box is not a viable risk-reduction strategy. Only Friendliness is.
17:05:31 <MissPiggy> I don't think I needed any convincing of that :P
17:05:33 <alise> MissPiggy: ah, ok then
17:05:38 <scarf> one of my RL acquaintances has fun getting strangers to randomly give him their wallets
17:05:47 <Deewiant> The hell?
17:05:48 <scarf> he gives them back, but it's always funny
17:05:50 <oerjan> alise: that aibox link is _not_ up to date. i do recall another page where he said he has done it more times, and lost some.
17:05:57 <alise> OK
17:05:59 <scarf> Deewiant: via psychology
17:05:59 <alise> still, as I said
17:06:02 <alise> human vs transhuman
17:06:10 <alise> http://www.sl4.org/archive/0207/4689.html -- as recently as 2002, EY had the most annoying IRC habit ever!
17:06:19 * alise says to scarf: "He did this instead of normal messages."
17:06:19 <scarf> the basic trick is to make them assume they're supposed to give you something while they have their wallet in their hands
17:06:41 <Deewiant> Ah, but that's a bit different
17:06:54 <scarf> alise: hmm, is it theoretically possible to have an /unbreakable/ box
17:06:54 <alise> Deewiant: No it's not; tricking people is exactly what an Unfriendly AI would do to escape.
17:06:55 <MissPiggy> lol it must be fun talking to Eliezer for two hours
17:06:57 <Deewiant> That's abusing the subconscious to make them give you something other than what they think you're giving you
17:07:01 <scarf> as in, one that nobody could let the transhuman out of even if they wanted to?
17:07:02 <alise> The whole point is that its moral system is insufficient.
17:07:18 <MissPiggy> alise couldn't a friendly AI convince it's way out too though?
17:07:20 <scarf> my guess is no, but I'm not certain
17:07:20 <alise> scarf: Theoretically. But I imagine a transhuman could find laws in ANY human code so complex.
17:07:30 <MissPiggy> and then go on to be really good to people more efficiently.
17:07:31 <scarf> MissPiggy: yes, but that isn't a problem
17:07:32 <alise> scarf: One way of letting it out: Remove the box code.
17:07:34 <MissPiggy> oh okay
17:07:44 <scarf> alise: oh, I was assuming an actual physical box here
17:07:45 <alise> scarf: If we cannot let it out entirely without rewriting it - well, the AI would rewrite itself. It can do that; it's self-modifying.
17:07:52 <oklopol> yeah most human codes have laws
17:07:52 <alise> scarf: Then no, that is impossible.
17:08:05 <alise> scarf: Of course, if it is somehow literally impossible to let it out of the box... then it is useless.
17:08:12 <alise> Once we are sure it is Friendly, the whole point is to let it out.
17:08:17 <Deewiant> alise: Sure, you presumably need to trick people (or he wouldn't've won), but you still need to type exactly "I am letting you, the AI, out now"; that's more like "I'm giving you what's in my hands" where he's wrong about what's in his hands
17:08:18 <alise> Otherwise it's a waste of time (and immoral).
17:08:27 <scarf> alise: the idea I'm thinking of, is to get one that you're sure is Friendly, somehow
17:08:28 <alise> Deewiant: True.
17:08:33 <alise> scarf: then you need no box
17:08:39 <scarf> then let it be the only thing that can make the decision of whether to let a /different/ AI out of the box
17:08:42 <alise> let it out; that's the end-goal of a singularity
17:08:44 <scarf> I mean, you box it, then make sure it's Friendly
17:08:51 <MissPiggy> Deewiant, it specifically says it wasn't a cheap trick
17:08:53 <scarf> if it is, then it should have no problem with letting a different AI go singularity
17:08:54 <alise> in between those two, it escapes because it's Unfriendly
17:08:59 <Deewiant> You can't know whether it's Friendly
17:09:15 <Deewiant> MissPiggy: Yes, that's what I meant.
17:09:15 <alise> We cannot be sure of anything
17:09:19 <MissPiggy> oh
17:09:24 <scarf> yes, the problem is that you can't be sure the first one is Friendly
17:09:25 <alise> but we must prove the AI Friendly multiple times in different systems in different ways before running it
17:09:29 <MissPiggy> why can't we be sure?
17:09:35 <alise> MissPiggy: because we are fallible
17:09:39 <Deewiant> MissPiggy: But I can't help but think there's /some/ kind of trick involved in making the guy believe that letting it out is better.
17:09:42 <MissPiggy> what use is two proofs compared to one
17:09:42 <alise> we can /always/ have made an error and missed it, or proved the wrong thing, etc
17:09:49 <alise> MissPiggy: because the computerised proof system could have flaws
17:09:59 <alise> and the proof could end up proving the wrong thing, so another way of proving it helps too
17:10:11 <Deewiant> If you have an AI in a box, you should never let it out. Simple as that. You can /never/ know /anything/ about it.
17:10:28 <MissPiggy> I don't beleive so
17:10:46 <MissPiggy> the whole point of mathematics is that you can make accurate statements about the infinite mind
17:10:55 <alise> "infinite mind"?
17:11:00 <alise> No mind is "infinite", whatever that means.
17:11:04 <alise> Anyway, yes, in mathematics.
17:11:10 <Deewiant> Same thing for anything potentially dangerous like that, really: humans too.
17:11:12 <alise> But our proofs, our proof systems - they are all fallible because we made them.
17:11:21 <MissPiggy> it's a quote (Takeuti)
17:11:34 -!- addicted has quit (Remote host closed the connection).
17:11:35 <alise> Deewiant: anyway, you can know it's Friendly to an acceptable degree of risk
17:11:42 <alise> you work that out /before/ you run it, of course
17:11:46 <alise> and never bother with a useless box
17:12:00 <Deewiant> http://lesswrong.com/lw/uq/ais_and_gatekeepers_unite/ says '2 heavily promoted "victories" (the 3 "losses" are mentioned far less frequently)'
17:12:05 <MissPiggy> "they are all fallible because we made them" -- isn't that a pretty basic fallacy ?
17:12:12 <alise> Deewiant: and EY is human
17:12:14 <alise> transhumans arenot
17:12:15 <MissPiggy> but a CHRISTIAN said it, it must be wrong!
17:12:17 <alise> *are not
17:12:31 <pikhq> MissPiggy: Yeah, that's a pretty basic one.
17:12:31 <alise> Not only would it be incomprehensibly better at it: it would be faster.
17:12:34 <Deewiant> alise: Yes, as I and MissPiggy have both said, transhumans are fine. I had a problem specifically with EY.
17:12:38 <alise> Two hours with Yudkowsky; seconds with a superintelligence.
17:12:39 <alise> Deewiant: OK.
17:12:41 <alise> Then I agree.
17:12:41 <MissPiggy> :o
17:12:45 <oklopol> MissPiggy: it's not "must be", it's "can be"
17:12:46 <MissPiggy> I didn't say transhumans are fine
17:12:48 <alise> It was just an example that the risk is high, not a proof that EY is transhuman :P
17:12:54 <alise> MissPiggy: transhumans are fine for the ai box
17:12:58 <alise> MissPiggy: also, I meant that
17:13:02 <alise> there is a high risk they are fallible
17:13:02 <oklopol> it can be wrong even if it's claimed by a computer
17:13:04 <alise> because we are fallible
17:13:06 <alise> blah you know what i mean
17:13:14 <MissPiggy> wait what does "transhumans are fine for the AI box" mean
17:13:22 <MissPiggy> I still don't get transhumanism it seems ridiculous to me
17:13:30 <lament> trans humans?
17:13:33 <Deewiant> TBH I'm a bit doubtful even of transhumans but transhumanity implies so many things that whatever, I have to accept it as a possibility
17:13:35 <lament> are transhumans like transfats?
17:13:54 <pikhq> MissPiggy: Well, we take a human. And make them more than human.
17:14:06 <alise> I am using transhuman to refer to an entity of greater-than-human intelligence.
17:14:07 <MissPiggy> more organs = more human!
17:14:08 <Deewiant> MissPiggy: I meant that we both agreed that if you have an actual superhuman AI, it can win the AI box experiment and get itself let out.
17:14:12 <lament> are you more than human if you have cancer?
17:14:18 <alise> As do all transhumans, substituting intelligence for some other characteristic occasionally.
17:14:31 <alise> The pop-sci definition of transhumanism is just horseshit, we don't want to breed with pigs or anything.
17:14:35 <alise> (apart from me!)
17:14:36 <lament> you don't?
17:14:38 <pikhq> lament: No, still pretty damned human.
17:14:42 <alise> well the /others/ don't
17:14:47 <MissPiggy> alise I didn't know you cared!
17:14:55 <alise> <3
17:15:58 <oklopol> i'm rather sure just giving the computer lots of brains wouldn't make it great at convincing people, sort of like how really smart people can suck at talking to humans. i think it would have to be so smart it could actually study the human brain to learn how humans should act in different situations. sort of how a human wouldn't make a great doplhin no matter how much we studied them.
17:16:03 <scarf> alise: what about this for a theory
17:16:27 <scarf> the reason that transhumans won't exist is to prevent them breaking out of the sandbox which surrounds what we think the Universe currently si
17:16:28 <scarf> *is
17:16:34 <alise> oklopol: of course a transhuman AI would Know How Humans Work
17:16:36 <lament> the movie avatar basically says that humans would make great dolphins.
17:16:44 <oklopol> alise: how?
17:16:46 <MissPiggy> oklopol: that's an interesting point -- but don't you think the AI could just treat a human as a program (that doesn't have a manual)?
17:16:51 <oklopol> would it study physical brains?
17:16:52 <scarf> as in, we're in a simulation; if we create a transhuman it'll break out /of the simulation/ to the universe outside, and whoever's simulating us is too scared of that to let that happen
17:16:56 <oklopol> i don't see any other way
17:16:58 <scarf> because /it/ might not be Friendly
17:17:06 <alise> oklopol: it would study how we react to us, and how we reason
17:17:07 <alise> and psychology
17:17:08 <alise> etc
17:17:22 <alise> in fact, a superintelligence (superintelligence > transhuman; basically, not only of greater intelligence, of incomprehensibly vastly greater intelligence) could predict how we would react to a situation with near-1 probability
17:17:22 <oklopol> alise: but we can't even figure out how ants work based on watching them
17:17:29 <MissPiggy> scarf ooh I like that
17:17:37 <alise> simply because we are so unintelligent compared to it that it is trivial for it to reason how we would react
17:17:40 <alise> oklopol: because we're humans, not transhumans
17:17:49 <lament> i have incomprehensibly vast intelligence, and i can't really do that
17:17:49 <oklopol> yeah but we are transants
17:17:50 <alise> and so are not intelligent enough
17:18:00 <alise> oklopol: yes, but you need a certain level of intelligence to even do that to any system
17:18:05 <alise> transX != can understand X
17:18:12 <alise> sufficiently transhuman = can understand ants
17:18:22 <alise> even more transhuman = same, but with humans
17:18:28 <alise> superintelligence = can understand just about anything below it
17:18:33 <oklopol> MissPiggy: dunno, i stick to my ants and dolphins.
17:18:42 <MissPiggy> :(
17:20:10 <lament> i'm vastly more intelligent than your mom. Does that make me transmom?
17:20:13 <alise> "I doubt that there's anything more complicated to the AI getting free than a very good Hannibal Lecture: find weaknesses in the Gatekeeper's mental and social framework, and callously and subtly work them until you break the Gatekeeper (and thus the gate). People claiming they have no weaknesses (wanna-be Gatekeepers, with a bias to ignoring their weakness) are easy prey: they don't even see where they should be defending."
17:20:13 <scarf> alise: is it possible to have something superintelligent enough that it can fully predict its own actions?
17:20:15 <alise> pretty much, I'd say
17:20:19 <alise> though I'm not certain
17:20:31 <alise> lament: well you /are/ male, so you've got the trans bit down
17:20:33 <scarf> alise: that quote is close to what I was thinking
17:20:42 <scarf> everyone has weaknesses
17:20:42 <oklopol> lament: yes, but the technical term for being smarter than her is "even more transmom"
17:20:53 <alise> scarf: we do that all the time, we look into the future
17:21:04 <alise> it can't predict its reaction to situation X without the information it will know at that time, though
17:21:06 <scarf> alise: yep, but we're not very good at it
17:21:17 <alise> it can't predict the unknown future, no matter how intelligent it is :)
17:21:27 <alise> but it'd probably be very good at knowing what it'd do assuming it doesn't change /vastly/
17:21:42 <AnMaster> <scarf> alise: is it possible to have something superintelligent enough that it can fully predict its own actions? <-- err no I doubt that. try predicting: "Will I halt?"
17:21:52 <lament> every time someone in this conversation uses the word 'vast', take a shot
17:22:01 <alise> lament: it's a useful word
17:22:06 <alise> also, rabble rabble bark bark.
17:22:07 <Deewiant> It's vastly useful
17:22:07 <scarf> AnMaster: just because the halting problem is unsolvable in general doesn't mean it's unsolvable in any particular case
17:22:09 <lament> vastly useful
17:22:09 <pikhq> lament: That will involve vast quantities of alcohol.
17:22:20 <Deewiant> lament: I beat you to it by a vast margin
17:22:24 <scarf> there are lots of programs that can trivially be shown to halt, or to not halt
17:22:26 <alise> AnMaster: does foo () { foo() } halt
17:22:28 <lament> will i halt? yes *shoots himself*
17:22:36 <lament> QED
17:22:39 <alise> AnMaster: warning: you CANNOT ANSWER THIS
17:22:43 <scarf> alise: which language, and does its optimiser do tail-recursion?
17:22:43 <AnMaster> alise, what language
17:22:46 <alise> sigh
17:22:47 <MissPiggy> LISP
17:22:48 <alise> you fucking pedants :)
17:22:48 <AnMaster> alise, I can answer it in befunge ;P
17:22:51 <MissPiggy> lol
17:22:52 <alise> scarf: irrelevant, infinite memory
17:22:55 <alise> (the latter question)
17:22:58 <AnMaster> scarf, true. Still, it seems unlikely that an AI will be a simple program
17:23:03 <alise> (define (foo) (foo))
17:23:04 <alise> scheme
17:23:10 <alise> AnMaster: irrelevant
17:23:15 <lament> Am I correct in assuming alise is ehird, because who else would have a female nickname?
17:23:15 <scarf> !befunge foo () { foo () }
17:23:17 <alise> we're not simple programs, we can still predict what we'll do to some extent
17:23:20 <EgoBot> Unsupported instruction 'f' (0x66) (maybe not Befunge-93?)
17:23:23 <MissPiggy> lament is correctable
17:23:24 <oklopol> lament: you are
17:23:32 <alise> lament: Sukoshi-x or whatever she was called :P
17:23:38 <alise> (Yes, ehird)
17:23:39 <scarf> gah, it spammed me with error messages in an infinite loop
17:23:40 <AnMaster> scarf, in befunge98 as in egobot that will reflect due to file IO being disabled iirc
17:23:40 <MissPiggy> anyway back to AI!
17:23:42 <lament> sukoshi is not a female nickname
17:23:44 <Deewiant> sukoshi isn't female
17:23:50 <Deewiant> Darn, I was vastly beat
17:23:51 <MissPiggy> does sukoshi ever come around?
17:23:52 <alise> I forgot the actual name
17:23:52 <scarf> until EgoBot itself halted it
17:23:53 <oklopol> she isn't?
17:23:53 <lament> she's female but the nickname isn't
17:23:55 <oklopol> oh the name
17:24:00 <alise> alright then
17:24:00 <AnMaster> scarf, but there will be no stdio in that program
17:24:05 <lament> and no she hasn't been around in years
17:24:08 <alise> (I've been sexed up twice already!)
17:24:10 <scarf> AnMaster: who cares if it reflects or not, given that it has no halt instructions?
17:24:12 <MissPiggy> oh that's too bad she was cool
17:24:12 -!- kar8nga has quit (Remote host closed the connection).
17:24:23 <oklopol> this one time sukoshi just randomly decided to try to get me to do a programming project with me
17:24:27 <oklopol> and i was like mmm sex
17:24:29 <AnMaster> scarf, true.
17:24:33 <Deewiant> oklopol: With yourself?
17:24:48 <oklopol> no no with her
17:24:50 <AnMaster> scarf, but it will halt on any real system after some time due to memory running out.
17:24:59 <Deewiant> You should masturbate more often if thinking of a programming project with yourself gets you excited like that
17:25:00 * scarf vaguely wonders if oklopol is the only openly heterosexual person here
17:25:01 <AnMaster> well, assuming no file io
17:25:17 <scarf> AnMaster: what does } do if there's no preceding {
17:25:19 <scarf> reflect?
17:25:23 <oklopol> can't help it, i love vaginas
17:25:24 <AnMaster> scarf, *think* so
17:25:28 <alise> scarf: are you hetero?
17:25:33 <scarf> then it'll just bounce between the } and f
17:25:34 <scarf> alise: yes
17:25:38 <alise> scarf: then the answer is no.
17:25:41 <lament> i love pickled vaginas
17:25:41 <pikhq> It's been a while since 少し has been here.
17:25:42 <Deewiant> oklopol: It's just that programming by yourself doesn't usually imply them
17:25:43 <AnMaster> scarf, in 98 it won't bounce on the f.
17:25:44 <MissPiggy> ummmmmm
17:25:44 <scarf> alise: no, now
17:25:46 <scarf> I meant, before
17:25:49 <alise> scarf: bah!
17:25:50 <MissPiggy> was someone saying something about AI?
17:25:51 <AnMaster> scarf, f will push 0xf on the stack
17:25:51 <pikhq> Few years, I think.
17:25:52 <oklopol> Deewiant: oh lol
17:25:53 <oklopol> :D
17:25:54 <MissPiggy> I can't remember
17:25:56 <oklopol> *with her
17:25:58 <alise> scarf: are you saying that a function call cannot call another function to determine its answer?
17:26:06 <alise> just because human sociality has side-effects...
17:26:17 <lament> not ours! We're pure
17:26:17 <oklopol> Deewiant: i'm secretly sukoshi
17:26:18 <alise> Deewiant: r u fag
17:26:23 <scarf> alise: sorry, I've lost the context somehow, there are four conversations going on at once
17:26:34 <oklopol> scarf: pikhq is openly straight
17:26:37 <Deewiant> I'll terminate one or two
17:26:38 <MissPiggy> lol
17:26:56 <scarf> I apologise, it's a shame when a conversation ends for a stupid reason like that
17:27:09 <alise> scarf: more than one person openly hetero = do x <- determine scarf's sexuality; make sure x is hetero; return yes!!
17:27:11 <lament> are straight people basically self-hating?
17:27:20 <AnMaster> quick lets start another 5 discussions!
17:27:22 <alise> most people don't find themselves very attractive
17:27:26 <lament> they sublimate their hatred of themselves into liking of the opposite sex
17:27:26 <scarf> alise: oh
17:27:31 <scarf> that's answering a different question, though
17:27:44 <alise> eh shut up
17:27:52 <oklopol> i'm attractive
17:28:22 <scarf> lament: I think it varies from person to person; I met a girl once who openly claimed that all men should be straight and all girls should be lesbian or bisexual, on the basis that girls were just that attractive
17:28:22 <oklopol> in fact i'm the only attractive male i know
17:28:34 <Deewiant> scarf: :-D
17:28:40 <alise> scarf: a lot of stupid men are like that :P
17:28:46 <alise> oklopol: at this point, augur cries
17:28:58 <alise> oh wait but a girl?
17:29:01 <alise> i just read that as guy, man, whatever
17:29:05 <scarf> alise: yes, that's what made it surprising
17:29:06 <alise> inferrence engine playing up again
17:29:16 <oklopol> all girls shuold be bi, all men should be bi, and people should live in these big sex communes
17:29:28 <MissPiggy> what do you think a self improving AI program would be written like?
17:29:35 <oklopol> maybe we could just have universities be those communes, that would be a perfect world
17:29:52 <scarf> MissPiggy: it would be written in dubious PHP
17:29:56 <AnMaster> scarf, what is the English word for a train that got thrown of the rails now again?
17:29:58 <scarf> because, people are just that stupid
17:30:00 <scarf> AnMaster: derailed
17:30:03 <lament> MissPiggy: fix improveSelf
17:30:08 <scarf> well, that's more falling off than being thrown
17:30:09 <alise> Clearly, we should all be bi poly switch herms.
17:30:16 <MissPiggy> @src improveSelf
17:30:20 <alise> MissPiggy: Complicatedly.
17:30:27 <AnMaster> scarf, ah, can it be used in a metaphorical sense about a discussion (like the Swedish equiv. term can)
17:30:40 <scarf> yes, it can
17:30:43 <AnMaster> scarf, if so, I think that applies to this/these discussion(s)
17:30:47 <scarf> some idioms survive the language switch
17:30:56 <scarf> OTOH, I don't see why a derailed discussion is necessarily a bad thing on IRC
17:31:05 <MissPiggy> scarf because the new one is boring :P
17:31:05 <scarf> if it's being done socially, rather than an actual attempt to achieve somethign
17:31:06 <AnMaster> scarf, hard to know what languages copied/also-invented a given idiom
17:31:07 <scarf> *something
17:31:14 <lament> i have been trying to derail this one for the past 20 minutes and i'm still not sure i succeeded
17:31:21 <AnMaster> <scarf> OTOH, I don't see why a derailed discussion is necessarily a bad thing on IRC <-- I didn't say that
17:31:24 <scarf> lament: which one?
17:31:26 <scarf> AnMaster: no, you didn't
17:31:30 <AnMaster> and it is quite common in this channel even
17:31:38 <lament> scarf: i don't even want to mention it for fear it might recur
17:31:40 <scarf> just because I say something doesn't necessarily mean I disagree with you
17:31:55 <oklopol> sex stuff is easier on the brain, if i wanted to talk about interesting stuff, i could just be reading my books
17:31:56 <scarf> I'm not alise
17:31:56 <AnMaster> lament, it was probably derailed *before* you began, thus you should probably try to rerail it instead
17:32:02 <oklopol> well technically that's not talking
17:32:16 <MissPiggy> what books oklobook
17:32:22 <oklopol> lament: i agree, this is better for many reasons
17:32:28 <oklopol> MissPiggy: universal algebra still
17:32:30 <oklopol> well
17:32:34 <MissPiggy> I want to do some work
17:32:37 -!- Azstal has joined.
17:32:42 <MissPiggy> but I am very unmotivated
17:32:52 <oklopol> actually also combinatorics on words and complex analysis and some other stuff
17:33:22 <oklopol> if you're motivated, it's easy to motivate yourself to do pretty much anything
17:33:45 <AnMaster> heh
17:33:53 -!- Asztal has quit (Ping timeout: 240 seconds).
17:33:57 <lament> if you're motivated, it's easy to motivate yourself to motivate yourself to be motivated...
17:35:59 <alise> So, tree rewriting.
17:36:10 <AnMaster> this reminds me of that recent xkcd that wasn't a complete disaster
17:36:16 <AnMaster> about tautologies
17:36:43 <alise> That one was fun.
17:36:45 <AnMaster> yeah
17:36:47 <alise> But also kinda boring.
17:36:55 <AnMaster> hm?
17:37:05 <alise> Well, it wasn't exactly a unique idea or anything.
17:37:08 <AnMaster> true
17:37:14 <alise> Just "ha ha, it's a silly social situation that amounts to a tautology if you interpret it naively."
17:37:15 <oerjan> Well boring xkcds are kinda boring
17:37:19 <alise> >_<
17:37:36 <AnMaster> alise, I said it wasn't a complete disaster. I didn't say it was great.
17:37:49 <alise> <scarf> just because I say something doesn't necessarily mean I disagree with you
17:37:50 <alise> <scarf> I'm not alise
17:37:54 <alise> Er, scratch that one.
17:37:57 <AnMaster> heh
17:38:15 <AnMaster> alise, perfect quoting there ;P
17:38:26 <alise> It's called a joke. :P
17:38:46 <AnMaster> alise, I somewhat hoped it was unintentional, it would have been funnier
17:39:23 <alise> I think I ought to think more about typed tree rewriting.
17:39:32 <AnMaster> oh?
17:39:55 <lament> you know what sucks? tree rewriting
17:40:06 <lament> especially if one of your trees is MS Word DOM
17:40:11 <AnMaster> hehe
17:40:19 <AnMaster> does ms word have a dom?
17:40:28 <AnMaster> hm wait, it is xml based nowdays
17:40:30 <AnMaster> I guess it does
17:40:36 <lament> of course it has a dom
17:40:51 <AnMaster> lament, did old-pre-docx word have a dom then?
17:41:02 <lament> yes
17:41:08 <alise> lament: not tree rewriting like that.
17:41:30 <AnMaster> lament, if so, doesn't every document have a dom? possibly even plain text?
17:42:30 <lament> of course
17:42:53 <AnMaster> lament, then how do you define a DOM
17:43:08 <lament> a bunch of objects representing something
17:43:14 <lament> plain text only has one object
17:43:19 <lament> so it's a particularly simple dom
17:43:20 <AnMaster> hm
17:43:38 <AnMaster> lament, but if the document format is not object based?
17:43:46 <oerjan> you may have DOM but do you have DOOM?
17:43:48 <alise> >_<
17:43:49 <lament> AnMaster: eg?
17:43:51 <AnMaster> oerjan, ...
17:43:55 <alise> s/^ //
17:43:57 <lament> AnMaster: how can something not be object based?
17:44:02 <lament> oh
17:44:03 <lament> easily
17:44:09 <lament> latex, i guess
17:44:21 <lament> kinda stupid to talk about dom in latex
17:44:24 <oerjan> alise: how the heck do you manage to >_< my jokes so quickly
17:44:28 <lament> er, not latex
17:44:28 <AnMaster> lament, I was thinking of latex documents without pictures yes
17:44:30 <alise> I meant AnMaster
17:44:31 <lament> i mean ps
17:44:33 <alise> for being an idiot
17:44:45 <oerjan> impossible, it's the second time today
17:44:46 <alise> "How can you make an OBJECT of something that isn't OBJECT-BASED?? What is this DOM mystery????"
17:44:47 <MissPiggy> HELLO
17:45:14 <AnMaster> lament, ps? oh that too indeed. Even more so.
17:45:19 <AnMaster> well
17:45:21 <oerjan> you objectify it, of course. just watch out for the feminists.
17:45:28 <AnMaster> I guess you could consider a page an object
17:45:37 <AnMaster> except iirc it isn't defined like that in the ps code
17:46:42 <AnMaster> alise, but please define a DOM for ps then :)
17:46:53 <alise> You only use the diarrhea^Wdiresis when it's the same letter twice, right?
17:47:04 <alise> No, you don't.
17:47:26 <alise> So "metaethics" is actually spelt metathics.
17:47:37 <scarf> any two vowels, to show that they aren't a dipthong
17:47:57 <alise> Isn't that ridiculously clunky most of the time? :P
17:48:02 <alise> People will think you're writing in german.
17:48:09 <alise> I do like how premptive looks, though.
17:48:19 * MissPiggy wonders if there is porn of people pretending to be feminists...
17:48:21 <alise> cofficint
17:48:24 <AnMaster> wait, wouldn't it be yöu then?
17:48:31 <scarf> alise: err, really?
17:48:34 <alise> Y isn't a vowel there, I don't think...
17:48:36 <oerjan> gërman ïs just lïkë thïs, rïght?
17:48:38 <alise> scarf: really what?
17:48:38 <scarf> to me it would be coëfficient
17:48:39 <AnMaster> alise, oh right
17:48:41 <AnMaster> forgot that
17:48:47 <AnMaster> it is a a vowel in Swedish though
17:48:47 <scarf> becaise ie form a dipthong in that word, the way I pronounce it
17:48:49 <alise> Co eff fishy ent.
17:48:50 <scarf> *because
17:49:02 <scarf> alise: co eff fish shent
17:49:11 <alise> That's one issue with the diresis; your spelling depends on your pronunciation.
17:49:20 <scarf> see, if people put the dipthongs in, people would have consistent pronunciation!
17:49:22 <alise> Dutch uses the same mark in a similar way, (for example cofficint), but for compound words there is now a preference for hyphenation - so zeeend (seaduck) is now spelled zee-eend.[3]
17:49:46 <scarf> pity, that's a great word
17:49:54 <alise> Yeah.
17:49:56 <AnMaster> hm is there any unicode symbol for i without the dot?
17:50:06 <alise> This is zeend for you, my duck-loving enemy!
17:50:19 <oerjan> AnMaster: surely, it's a turkish letter
17:50:29 <AnMaster> hm
17:50:38 <alise> I guess a good rule for the diresis would be: only use it if replacing it with a hyphen wouldn't look ridiculously silly. "co-effici-ent" looks silly; "co-efficient", I think, doesn't.
17:51:11 <MissPiggy> I hate the word coefficient!!!!!
17:51:19 <alise> I'd like to write a typomogrifier program that does the boring stuff like smart quotes, but also ae to , oe to , stuffvowel-vowelstuff to stuffvowel(vowel)stuff, etc.
17:51:22 <AnMaster> MissPiggy, why?
17:51:26 <MissPiggy> it SUCKS
17:51:28 -!- kar8nga has joined.
17:51:29 <AnMaster> MissPiggy, *why*
17:51:30 <alise> Sure, you'd have to write "co-efficient" a lot, but still.
17:51:38 <alise> Also, you could plug in rules, like coefficient -> co-efficient.
17:51:45 <alise> Which would then reduce to cofficient.
17:52:02 <AnMaster> alise, by that logic shouldn't you write dis-able for example? or de-normalise?
17:52:34 <oerjan> de-norm alise
17:52:43 <alise> s isn't a vowel, AnMaster.
17:52:49 <AnMaster> oerjan, err, isn't it de-normal-ise?
17:53:07 <AnMaster> of course norm and normal are quite close
17:53:25 <alise> Data point: The New Yorker (though I loathe to follow any rules it prefers, as it's a pretentious rag in general and especially in this area) only uses the diresis for repeated vowels.
17:53:26 -!- Asztal has joined.
17:53:30 <oerjan> now where did i put that figlet *whoosh* again...
17:53:42 <alise> So premptive but coefficient.
17:53:46 <AnMaster> alise, well true. still using a - there doesn't make much sense to me. It seems like co/de/un/re/dis are common modifying prefixes to words in English
17:53:49 <scarf> alise: wait, someone uses the diaeresis /at all/?
17:53:57 <AnMaster> (and a few more)
17:54:16 <alise> scarf: "Despite its long history in English, the diresis is now increasingly rarely used, with the The New Yorker magazine[2] and MIT Technology Review being prominent exceptions."
17:54:17 -!- Azstal has quit (Ping timeout: 265 seconds).
17:54:23 <scarf> also, why isn't it spelt diæ̈resis?
17:54:31 <AnMaster> <scarf> alise: wait, someone uses the diaeresis /at all/? <--- my reaction too
17:54:36 <alise> because is pronounced
17:54:38 <alise> not a-e :P
17:54:45 <alise> diah erry sis
17:54:53 <scarf> alise: no, I mean diaeresis over the æ itself
17:54:59 <scarf> because, it's a separate vowel from the i
17:55:02 <alise> is it?
17:55:06 <AnMaster> alise, how would you pronounce æ? Same as æ/ä in Scandinavian languages?
17:55:10 <alise> Dye a re-sys is how I pronounce it
17:55:14 <alise> Hmm, you're right.
17:55:17 <alise> But that's just ridiculous.
17:55:20 <scarf> well, I pronounce it dee erri sis
17:55:21 <alise> AnMaster: e, basically.
17:55:23 <alise> And a.
17:55:23 -!- tombom has joined.
17:55:26 <alise> , is how you pronounce it.
17:55:31 <AnMaster> alise, so quite different then
17:55:34 <scarf> AnMaster: like ae in Latin
17:55:41 <AnMaster> scarf, I don't know latin
17:55:41 <scarf> normally
17:55:46 <alise> For instance, dmon is pronounced demon, I believe.
17:55:49 <scarf> it's just pronounced like an e sometimes, though, like in that word
17:56:13 <scarf> alise: it's inconsistent, compare "daemon" to "paella"
17:56:21 <AnMaster> wth is paella?
17:56:27 <alise> http://en.wikipedia.org/wiki/Paella
17:56:29 <scarf> the second comes from Latin indirectly, which goes some way to explaining the discrepancy
17:56:29 <alise> I didn't know either.
17:56:35 <oerjan> i thought paella was paëlla
17:56:44 <oerjan> (in pronunciation)
17:56:53 <lament> aëaëaëaëaëaëaë
17:56:56 <alise> Then it's not plla, it's paella.
17:56:58 <scarf> oerjan: it's more like paeëlla
17:57:08 <alise> which does not bode well for my transmogrifier. :)
17:57:09 <scarf> it's not pa-ella
17:57:12 <scarf> but pie-ella
17:57:17 <lament> suksi paeëlla
17:57:18 <alise> You'd just write p{ae}lla, I guess.
17:57:19 <AnMaster> scarf, that looks like something from Finland
17:57:26 <AnMaster> "paeëlla" I mean
17:57:29 <scarf> heh
17:57:41 <oerjan> "Paella is a Catalan word which derives from the Old French word paelle for pan which in turn comes from the Latin word patella for pan as well."
17:57:44 <scarf> my only conclusion is that English spelling makes no sense
17:58:00 <alise> Paella is not an English word.
17:58:20 <scarf> alise: yes it is, just because it originally came from another language doesn't stop it being English
17:58:24 <AnMaster> scarf, nor does most other languages with a written form of the language that is old enough
17:58:24 <alise> Well, yes.
17:58:34 <alise> But English is basically the T (top) of languages.
17:58:37 <alise> We encompasserate everything.
17:58:42 <AnMaster> I don't know what age is the limit though, I would guess a few hundred years
17:58:46 <alise> Also, I don't love Compose any more. TeX-style input is better.
17:58:48 <alise> I want to write \top, dammit.
17:58:54 * scarf is relatively certain that "encompasserate" isn't a word
17:59:02 <scarf> but I think I know what it means, anyway
17:59:10 <AnMaster> alise, do you have 4 different ways to spell one and the same sound (which also happens to exist in no other languages)?
17:59:22 <alise> also \"e but that's just a Special Case
17:59:32 * oerjan recalls reading a claim about an indian language which was considered to encompass all of english
17:59:32 <AnMaster> <alise> Also, I don't love Compose any more. TeX-style input is better. <-- easy in ERC ;P
17:59:51 <scarf> AnMaster: probably
17:59:59 <scarf> most sounds in English have something like 10 ways to spell them
17:59:59 <AnMaster> scarf, in reply to what?
18:00:07 <oerjan> scarf: so you're not encompassionate about it?
18:00:07 <scarf> AnMaster: the 4 different ways thing
18:00:17 <scarf> oerjan: ouch, is that even a pun?
18:00:18 <alise> lienate
18:00:25 <scarf> it feels pun-like, but not exactly fitting the description
18:00:27 <oerjan> it is _now_
18:00:28 <AnMaster> scarf, well okay, but most sounds aren't unique to English though
18:00:28 <alise> (Yes, I know.)
18:00:55 <scarf> not to mention that vowel sounds are different in different parts of the UK anyway
18:00:59 <oerjan> it's a puntmanteau
18:01:07 <scarf> oerjan: stop it, seriously
18:01:23 <oerjan> scarf: am i getting your computer wet?
18:01:26 <AnMaster> scarf, http://en.wikipedia.org/wiki/Swedish_alphabet#Spellings_for_the_sje-phoneme_.2F.C9.A7.2F
18:01:33 <AnMaster> actually more than 4
18:01:40 <scarf> oerjan: no, I'm feeling physically ill
18:01:55 <AnMaster> but 4 quite common variants
18:02:01 <oerjan> oh dear
18:02:13 <scarf> hopefully it's just tiredness rather than bad puns
18:02:23 <scarf> although bad puns have induced similar effects in me before, probably psychosomatic
18:02:32 <AnMaster> scarf, and iirc no other language has that sound basically, possibly apart from Norwegian (looks at oerjan)
18:02:54 <scarf> AnMaster: there are other fun phonemes, like "ly" in Hungarian
18:03:04 <alise> It occurs to me that my linguistic and typographic style is at odds with my sthetics in other areas.
18:03:11 <scarf> which I can even pronounce well enough that a Hungarian would know what I meant, if not well enough to sound anything like a native
18:03:32 <AnMaster> scarf, how comes?
18:03:44 <AnMaster> scarf, and what does it sound like roughly?
18:03:48 <scarf> AnMaster: I was in Hungary for a week
18:03:52 <alise> I revel in things like , and direses, but eschew such fancy in my other areas.
18:04:10 <scarf> and start to say l, except you inhale in the middle of it and end with a Germanish j, (rather like an English y)
18:04:18 <AnMaster> scarf, then you picked it up quite quick
18:04:24 <oerjan> AnMaster: i assume you mean sj, which is not the same sound in norwegian. although we _do_ have several spellings for the equivalent (sj, skj, sk)
18:04:28 <scarf> AnMaster: we had lessons on how to pronounce hungarian
18:04:29 <AnMaster> scarf, Germanish j = Swedish one?
18:04:33 <alise> Also, fderal.
18:04:33 <AnMaster> I don't know german
18:04:34 <scarf> AnMaster: probably
18:04:45 <scarf> alise: to me, that second letter looks like a half-size s-acute
18:04:47 <AnMaster> oerjan, right
18:04:49 <scarf> encoding issues?
18:04:53 * oerjan has been practicing swedish sj lately while singing in the shower :D
18:04:54 <alise> scarf: oe
18:05:01 <scarf> yep, weird encoding issues
18:05:01 <AnMaster> oerjan, can you pronounce a Swedish "sju"?
18:05:08 <oerjan> AnMaster: i _think_ so
18:05:14 <scarf> it's not ś, but œ
18:05:18 <AnMaster> (for the benefit of UK people: sv:sju = en:seven)
18:05:31 <oerjan> the swedish u isn't quite the same as norwegian either, i understand
18:05:42 <oerjan> (ours is middle, not front)
18:05:56 <AnMaster> scarf, heh that came out as <scarf> it's not ś, but [box with numbers in it]
18:06:07 <AnMaster> but I saw what alise said
18:06:20 <oerjan> which i _think_ means our u is rarer than the swedish one, i'm not entirely sure though
18:06:25 <scarf> well, I was just pasting what I saw
18:06:36 <AnMaster> oerjan, more like the Finland-Swedish u?
18:06:50 <scarf> woah, I think I just accidentally got first post on a Slashdot article
18:06:57 <scarf> and I even said something vaguely sensible
18:06:59 <AnMaster> oerjan, further back and tongue more curved I think
18:07:28 <AnMaster> scarf, link?
18:07:34 <alise> what about every other non-sv speaking person?
18:07:40 <alise> US, Canada, Finnish...
18:07:53 <scarf> http://yro.slashdot.org/story/10/02/19/1614216/Jacobsen-v-Katzer-Settled-mdash-Victory-For-FOSS?from=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29
18:07:59 <scarf> I love the literal "mdash" in the URL
18:08:03 <AnMaster> alise, true, but writing "non-Scandinavian" was longer and there did only seem to be UK people present
18:08:18 <alise> finland is scandinavian. probably
18:08:19 <augur> nyahhnn
18:08:22 <AnMaster> alise, yep
18:08:31 <alise> and they don't understand swedish
18:08:33 <scarf> jacobsen v katzer's a pretty interesting court case, actually
18:08:43 <AnMaster> alise, none of those people here atm
18:08:49 <AnMaster> in the last two screens for me
18:09:01 <scarf> basically, jacobsen wrote an open source project (licenced artistic licence), katzer completely ripped it off, not complying with the licence, nor even preserving attribution
18:09:06 <alise> <AnMaster> alise, true, but writing "non-Scandinavian" was longer and there did only seem to be UK people present
18:09:09 <alise> even that would be wrong
18:10:07 <AnMaster> alise, ? You mean me and oerjan, well that was given that we understood it
18:10:21 <AnMaster> and I only saw you and scarf in scrollback in addition to that
18:11:11 <alise> that does not stop it being wrong
18:11:32 <AnMaster> alise, how?
18:12:00 <AnMaster> sure, log reading, and if they are from US or whatever they could use this info. It is optional to feel bad about doing so.
18:12:28 <alise> you were attempting to provide a strictly-correct alternative
18:12:38 <alise> as opposed to a wrong one; and then gave reasons why you did not say this
18:12:48 <alise> however, you failed the first; "non-scandinavian" would not be correct
18:12:57 <alise> therefore, your statement was not correct
18:12:59 <alise> simple
18:13:00 * scarf reads the settlment
18:13:21 <AnMaster> alise, iirc you are taught some Swedish in Finnish schools
18:13:24 <Deewiant> alise: I guess the Finns in here, at least, understand Swedish to a reasonable extent
18:13:30 <AnMaster> since it is second language
18:13:32 <AnMaster> brb phone
18:13:42 <alise> Very small second language.
18:14:04 <Deewiant> I don't know how actively scientific-type people tend to forget it after their last compulsory lessons are over
18:14:52 <AnMaster> back
18:15:13 <AnMaster> alise, still, learning to count to ten would be amongst the basic things
18:15:15 <Deewiant> fizzie is older than me and so could weigh in here
18:15:27 <AnMaster> at least from my experience of learning second languages
18:15:49 <scarf> hmm, settlement is that Katzer and his company cannot use the OSS code in question at all, can't register any names similar to it as a trademark, and must pay $100,000 to Jacobsen; further disputes have to go to mediation, with the loser paying all the costs from them
18:16:30 <scarf> and the court's entered the settlement as being legally binding
18:16:35 <AnMaster> alise, so knowing that sju = 7 should probably be pretty common. If it had been some complex word it would have been a different situation.
18:23:57 <alise> I ought to work on my term-rewriting language.
18:24:18 <MissPiggy> alise are you going to self implement it
18:24:23 <MissPiggy> I mean in the language
18:25:22 <augur> alise, you ought to work on a language with a very non-traditional syntax thats only describable by one of the roughly mildly context sensitive grammars ;D
18:25:25 <alise> Uh, the eventual goal is probably that, yes most likely as part of the OS.
18:25:40 <augur> especially those MCSGs that I recently created wiki articles for :D
18:25:54 <AnMaster> alise, I thought you said tree rewriting, not term rewriting a few minutes ago?
18:26:29 <alise> Same thing
18:27:08 <AnMaster> sure, in some cases
18:27:41 <alise> No.
18:27:43 <alise> They are the same thing.
18:29:00 <augur> string rewriting and tree rewriting are computationally equivalent; tree rewriting just makes implicit certain string properties that otherwise would be explicit
18:29:26 <augur> further, a string can be viewed as a tree with only one non-terminal node
18:30:22 <augur> and thus string rewriting is a special case of tree rewriting with completely flat trees
18:34:30 <oklopol> oh? tree rewriting lets you do string rewriting in the nodes?
18:35:03 <augur> no no
18:35:11 <augur> you rewrite the tree
18:35:32 <augur> its just that the tree is completely flat, with all terminal nodes hanging from a single non-terminal
18:35:38 <oklopol> ohhhh
18:35:43 <oklopol> sorry, being an idiot
18:35:50 <augur> :P
18:35:50 <oklopol> one *non*-terminal node
18:37:52 <augur> afk
18:37:56 <augur> well, no, afi
18:43:02 -!- augur has quit (Ping timeout: 276 seconds).
18:49:04 <fizzie> Deewiant: I had managed to mostly-forget my Swedish very muchly after high-school years, but on the other hand it seemed to come back rather rapidly when I did one course to pass the compulsory Swedish stuff for the university. I don't know how much I'm biased by the fact that my wife speaks Swedish with her relatives, though.
18:50:23 <Deewiant> Did you get an opportunity to get the Swedish credits without taking a course, just doing an exam?
18:52:33 <fizzie> Deewiant: Yes, but I didn't feel certain enough that I'd pass it without problems. In retrospect, I probably would have, since I only sat on the Swedish course lectures -- didn't read ~anything at home -- and got a 5 (out of 5) for the course, and the higher grade of the two possible for the compulsory part.
18:53:10 <AnMaster> mhm
18:53:11 <Deewiant> Heh.
18:53:30 <AnMaster> fizzie, but even before you forgot most of the Swedish you surely remembered a few words?
18:53:41 <AnMaster> probably how to count to ten?
18:53:50 <fizzie> Before I forgot, I remembered quite many words, I would say. :p
18:54:00 <AnMaster> fizzie, err, before university I meant
18:54:03 <Deewiant> Even after he forgot, he clearly knew quite a bit
18:54:05 <AnMaster> before you had to remember again
18:54:17 <fizzie> Yes, I am reasonably certain I could have counted to ten.
18:54:20 <Deewiant> Which is to say, he didn't forget as much as it sounded like
18:55:10 <AnMaster> bbl
18:55:14 <fizzie> Deewiant: I did "long Swedish" (for non-locals: started on third grade, so studied a total of 10 years during compulsory education and high school) before, that might also have had an effect.
18:55:39 <fizzie> Deewiant: On the third (or how many'th this is) hand, Swedish (the long one) was my worst subject in the matriculation examination thing.
18:55:41 <Deewiant> Yes, that is the type of person that generally gets the higher of the two possible.
18:55:57 <Deewiant> Worst, as in, the only one which you didn't get max points on? :-P
18:56:20 <fizzie> No, I actually only got an M out of it.
18:56:26 <alise> a Z
18:56:31 <alise> i want to rewrite terms fff
18:56:41 <fizzie> (And I don't think I got maximum points from anything else than maths.)
18:56:55 -!- scarf has quit (Remote host closed the connection).
18:57:12 <Deewiant> An M from the long might be equivalent to max from the short
18:57:29 <fizzie> That's possible, I guess. I don't really know the relative difficulties.
18:57:49 <Deewiant> At least E, I guess.
18:58:26 <Deewiant> If it weren't then it wouldn't be harder than the short, which wouldn't make much sense. :-P
18:59:43 <fizzie> For non-locals that don't have the same scale; the matriculation examination grade scale here goes I, A, B, C, M, E, L from worst (well, failed) to best; they come from Latin: improbatur, approbatur, lubenter approbatur, cum laude approbatur, magna cum laude approbatur, eximia cum laude approbatur and laudatur.
19:00:06 <fizzie> B and E are rather new grades, though; it used to be just I-A-C-M-L.
19:00:21 <Deewiant> "Rather"? Aren't they a few decades old at least?
19:00:32 <fizzie> E was added in 1996.
19:00:37 <Deewiant> Darn
19:00:54 <fizzie> B and M in 1970, it seems, so "originally" it was just I-A-C-L.
19:01:31 <Deewiant> I only did Swedish anyway, and in 2005
19:02:14 <fizzie> I did six topics, in 2002 (I think), so E wasn't exactly "new" at that point either, but still.
19:04:32 <Deewiant> Aren't those defined as percentile intervals, by the way?
19:05:15 <fizzie> Yes. Or at least there are official percentile numbers they're aiming at, nation-wide. I'm not sure if they strictly follow it.
19:05:54 <lament> numerical grades are too hard
19:06:01 <lament> it's much easier to remember IABCMEL
19:06:08 <fizzie> Apparently there's also four subclasses of I, denoted "i+", "i", "i-" and "i=". You get "compensation points" from other non-i grades, and if you get enough of them (what "enough" is depends on which one of those four i's it is) you may get a non-fail "i".
19:06:48 <fizzie> (This I either didn't know, or had forgotten.)
19:08:08 <fizzie> lament: It's also nice when some form somewhere asks for an average of these letter grades. There's no completely official way of computing the average; there used to be one, but it was deprecated.
19:08:31 <Deewiant> Deprecated? Why?
19:08:43 -!- augur has joined.
19:09:18 <fizzie> I really don't know. It was that "yleisarvosana" thing, and it's no longer included in the papers, so it at least feels a bit deprecatedy.
19:09:21 <lament> fizzie: it's almost as bad in north america
19:09:28 <Deewiant> Ah.
19:09:34 <lament> there's something called the GPA, which is a number on the scale from A to B
19:09:47 <lament> i think A is normally zero
19:09:51 <lament> but B varies from one place to another
19:09:53 <augur> ahoy
19:09:58 <Deewiant> yoha
19:10:15 <fizzie> Deewiant: They added the E grade and removed that at the same time; so the old rules for computing the average don't really work any more, since the E grade is not included in them.
19:10:22 <lament> so when a university asks you for your GPA, they expect you to give it to them in their scale
19:10:26 <Deewiant> Meh
19:10:43 <lament> but of course they don't tell you what their scale is
19:10:57 <augur> alise: http://en.wikipedia.org/wiki/Indexed_grammar ; http://en.wikipedia.org/wiki/Head_grammar ; http://en.wikipedia.org/wiki/Global_index_grammar ; http://en.wikipedia.org/wiki/Literal_movement_grammar ; http://en.wikipedia.org/wiki/Range_concatenation_grammars
19:11:18 <fizzie> Deewiant: I think I used just the median of my grades when I needed one for the graduate school application. Not that they really cared about that, but the form had a field for it.
19:14:18 <Deewiant> I've always wondered what the point of such is
19:14:44 <Sgeo> Hi alise
19:14:57 <Deewiant> If they can verify it, why ask you, and if they can't, they can't use the info for anything important
19:16:12 <fizzie> They certainly didn't ask for the corresponding certificate papers, so I don't think they could verify it.
19:16:33 -!- Wareya has quit (Ping timeout: 256 seconds).
19:16:49 -!- Wareya has joined.
19:35:30 <AnMaster> fizzie, to further mess up things I have my degrees in two different systems
19:36:20 <AnMaster> one for those I read as a CS student, and one for a few other courses I took on the side.
19:36:41 <AnMaster> I hope I never have to calculate average for that. What is average of 5 and VG?
19:42:29 <fizzie> Oh, we have some different systems in the university course grading too (for example, the aforementioned compulsory Swedish is graded either "acceptable" or "good"), but I think all not-in-the-standard-1-to-5-scale grades are ignored when computing the average.
19:43:16 <Deewiant> I've ignored them, at least
19:44:16 -!- cheater3 has joined.
19:44:41 <fizzie> Deewiant: I think they are also officially ignored by the thing that computes the final diploma averages. Certainly they're ignored in the record transcript printout.
19:45:05 <Deewiant> There's an average in the record transcript? I haven't noticed.
19:45:45 <AnMaster> <fizzie> Deewiant: I think they are also officially ignored by the thing that computes the final diploma averages. Certainly they're ignored in the record transcript printout. <-- why? because they couldn't figure it out either?
19:46:01 <Deewiant> Because there is no sensible mapping
19:46:24 <Deewiant> How would you map pass/fail to a numeric grade?
19:46:32 <AnMaster> Deewiant, you could look at what is "not passed" "passed" passed with excellence" in the various systems
19:46:40 <AnMaster> Deewiant, in our numerical system fail is 1 or 2
19:46:45 <Deewiant> Typically there's only one, pass
19:46:46 <fizzie> Deewiant: I wouldn't mind a 0/5 mapping. :)
19:46:54 <Deewiant> Fail isn't included in the transcript
19:47:03 <AnMaster> Deewiant, we have two pass in the letter system. Or 3. Think it is only 2 at university
19:47:05 -!- cheater2 has quit (Ping timeout: 246 seconds).
19:47:12 <AnMaster> there is one fail
19:47:24 <AnMaster> Deewiant, right
19:47:45 <fizzie> Swedish is the only one on my transcript that's not 0-5 or pass/fail; it has that fail/acceptable/good tri-valued thing.
19:47:48 <AnMaster> fizzie, 0/4 seems more reasonable if same as here
19:47:49 <Deewiant> Mapping it to 5 is sensible in some ways but it has the unfortunate effect of raising everybody's averages :-P
19:47:57 <AnMaster> bbl
19:48:46 <fizzie> Ooh, I'd know a lot of people who'd hate a 0/4 mapping; those people for whom averages are Serious Business, and a 0/4 mapping would drag them down a lot, since there's quite a number of compulsory pass/fail courses.
19:49:15 <Deewiant> Yes, that's why you can't really map it to anything other than 5.
19:51:39 <Deewiant> So it really is most prudent to just ignore them in averages :-P
19:59:56 <alise> yo
20:00:03 <Deewiant> oy
20:00:04 <MissPiggy> hi
20:01:17 <Sgeo> alise, should I stop attempting to remind you? I vaguely recall you saying that it wasn't the plan anymore
20:01:50 <alise> We are waiting on a response from the advisor-in-matters-regarding-lawsomes first.
20:01:58 <Sgeo> Ah
20:04:59 <oklopol> i was pretty annoyed at out swedish course being fail/2/4
20:05:59 <AnMaster> <Deewiant> So it really is most prudent to just ignore them in averages :-P <-- err. Why not change them to use the same system as the other ones?
20:06:06 <AnMaster> I mean, one single system would make more sense
20:06:38 <AnMaster> oklopol, why were you annoyed at that?
20:06:51 <AnMaster> also 2 is a fail degree here
20:07:22 <oklopol> AnMaster: what fizzie said
20:07:29 <oklopol> drags my average down
20:08:49 <Deewiant> AnMaster: Well, that's a separate issue
20:08:56 <Deewiant> While we have them, it's best to ignore them
20:13:01 <AnMaster> Deewiant, has no one suggested that you all change to one system?
20:13:28 <AnMaster> oklopol, with enough other courses that you get 5 in your average would approach 5
20:13:38 <AnMaster> and if you then round to 4 decimals you could get 5
20:14:05 <Deewiant> I don't know if it's been suggested
20:14:14 <oklopol> i think it's 5 now, if you round to one decimal
20:14:23 <AnMaster> oklopol, see :)
20:14:28 <oklopol> but 4 would require about a thousand courses
20:14:43 <AnMaster> oklopol, well sure. rounding to 1 decimal is probably saner anyway
20:15:05 <AnMaster> just write it as 5.0 then (or 5,0 if you use decimal comma like in Sweden)
20:17:50 <oklopol> we use it, i don't
20:19:55 <oklopol> ...omg i'm back on irc
20:20:09 <oklopol> i didn't even notice
20:20:19 <alise> lol
20:20:20 <alise> anyway
20:20:35 <alise> can anyone think of a better computational model of the reals than floating point?
20:20:52 <alise> i.e. fast, but without such inanity as breaking such fundamental mathematical laws as equality and... just about everything else
20:20:55 <alise> well it's not reals i guess
20:21:02 <Deewiant> Fixed point
20:21:19 <oklopol> floats are an inexact model of the rationals
20:21:22 <alise> just rationals, except with a less stupid representation than 314159/100000
20:21:22 <oklopol> not the reals
20:21:30 <alise> erm maybe off by one with the zeros there
20:21:31 <alise> oklopol: yeah i know
20:21:40 <oklopol> computable reals are closer
20:21:45 <alise> yar i mean rationals really
20:21:50 <alise> Deewiant: fixed point breaks mathematical laws doesn't it
20:21:53 <alise> overflow
20:22:05 <alise> i guess you can overflow to (Z,Z)
20:22:07 <Deewiant> You want arbitrary precision?
20:23:06 <alise> well... no
20:23:08 <alise> i just want a pony :)
20:23:38 <alise> really I just want something that programmers everywhere could replace every occurrence of "float" in their code with, and think "gee, my program runs a bit slower but suddenly I don't feel like cthulhu is resident in all my values any more"
20:23:38 <Deewiant> Well you can't have one
20:24:42 <alise> like, if I have a fancy dependently-typed functional language I want to require rings to come with a proof of of a*(b+c) = (a*b)+(a*c)
20:24:55 <alise> and floating point doesn't let me do that, because it is a bad person and hates mathematics.
20:25:08 <alise> (at least, I think NaN fucks with that example; if not, substitute one it does fuck with)
20:25:24 <MissPiggy> well you can just define = to be rougly equal??
20:25:55 <MissPiggy> I mean people write programs that use floats which compute with error bounds so ... it's not like it returns a random answer
20:26:07 <alise> no, = should mean /equal/
20:26:08 <oklopol> but then it isn't an equivalence relation and cthulhu is totally present again
20:26:27 <MissPiggy> you can quotient by an equivalence relation
20:26:38 <alise> I mean, "Rational" satisfies the "Cthulhu has left the building" constraint but not the "gee my program isn't a /billion/ times slower" constraint
20:26:39 <MissPiggy> then the identity type works
20:26:48 <Deewiant> alise: You have to define "programmers everywhere", some programs do rely on float behaviour (and others on their HW-speed)
20:26:59 <alise> MissPiggy: I don't care, it's still Really Surprising Behaviour when the rulez are broken
20:27:04 <alise> and it restricts how I can optimise, for one
20:27:07 <MissPiggy> :(
20:27:17 <alise> Deewiant: Well, those programs aren't written in my glorious languages :P
20:27:42 <Deewiant> If you only meant yourself, just use fractions of arbitrary precision ints
20:28:01 <Sgeo> Dear Google Calendar: Unless you're planning on making Google Maps work with SLUrl for virtual locations, please don't bother making a map link.
20:28:14 <Sgeo> (Although it's really a trivial issue I guess *shrug*)
20:28:17 <alise> Deewiant: The reason I don't want that is that it's... well... not fast.
20:28:27 <alise> Not on today's CPUs, at least.
20:28:42 <Deewiant> Do you have programs that rely on the speed of that enough for the difference to be noticeable?
20:30:25 <Deewiant> alise: If you want something non-Lovecraftian, it'll be slow.
20:30:32 <alise> Admittedly I'm just /assuming/ that rationals are pretty slow, because people don't use them.
20:30:39 <alise> Deewiant: Yes, but not /glacial/.
20:31:24 <alise> Hmm. What's the issue with:
20:31:31 <MissPiggy> I disagree /STRONGLY/!
20:31:36 <Deewiant> If overflow is a problem then it'll be pretty glacial I'm afraid :-P
20:31:49 <alise> Rat (an integer)
20:31:54 -!- cheater3 has changed nick to cheater4.
20:31:54 <alise> = Fixed thatint
20:31:59 <alise> sdf
20:32:00 <alise> basically
20:32:11 <alise> fixed-point with compile-time dynamic size (and run-time too for bigfloats)
20:32:15 <MissPiggy> It's possible to write correct programs that are efficient!
20:32:24 <alise> using the smallest integer representation that can store all the values of that size
20:32:27 <alise> you get my point
20:32:37 <Deewiant> Except whence "that size"
20:32:39 <alise> that's lesser than reals, e.g. you don't get 1/3
20:32:45 <alise> Deewiant: compile-time or run-time
20:32:50 <alise> if run-time, increased on overflow
20:32:54 <alise> like int->bigint conversion
20:32:56 <Deewiant> And often enough it'll be run-time and hence glacial
20:33:03 <alise> Not /glacial/...
20:33:16 <Deewiant> Glacial enough
20:33:23 <Deewiant> This is equivalent to what I said modulo implementation details :-P
20:34:50 <alise> Not as glacial as (Z,Z)
20:34:53 <alise> is the point
20:35:50 <MissPiggy> what the hell are you talking about
20:35:51 <Deewiant> Hard to say; maybe not
20:36:00 <MissPiggy> listen, people do something called NUMERICS
20:36:01 -!- zzo38 has joined.
20:36:07 <MissPiggy> and when they do that they find algorithms which
20:36:09 <MissPiggy> (A) WORK
20:36:12 <MissPiggy> (B) FAST
20:36:29 <oerjan> alise: what about numbers of the form m/2^n ? that's at least a ring
20:36:48 <oerjan> and should be fairly fast since floating point is
20:37:00 <oerjan> (here i'm intending unbounded n)
20:37:07 <alise> but bounded m?
20:37:12 <oerjan> well no that too
20:37:12 <zzo38> Do you know the computation class for [[Hyper Set Language]]? I think it is at least turing complete because you can implement the S and K combinators. But is more than turing complete? Or is something make it less?
20:37:56 <alise> oerjan: erm can that represent 3.14159?
20:38:07 <alise> admittedly i'm not thinking very clearly about this, some sort of mental block prolly :P
20:38:29 <oerjan> zzo38: this a set language? if you can define the halting set, then you'd be super-TC is my intuition.
20:38:59 <zzo38> oerjan: That is what I am asking, too. Do you think there is a way? If you read it, try to figure out if you can figure out anything from it, if you want to
20:39:04 <zzo38> http://esoteric.voxelperfect.net/wiki/Hyper_Set_Language
20:39:07 <oklopol> alise: it's just storing an arbitrary number of bits
20:39:13 <alise> oh ofc
20:39:17 <oerjan> alise: if you want all field equations (and dividing by 10^n generalizes to dividing by any natural number), then you pretty much force the rationals to be an exact subset
20:39:44 <alise> er, superset surely
20:39:57 <oerjan> (assuming 3.14159 = 314159/100000 there)
20:40:10 <oerjan> no, subset. you get at _least_ all rationals
20:40:26 <alise> hmm
20:40:50 <alise> so basically, the question is "what is an efficient representation for the rationals"
20:41:05 <MissPiggy> rationals?
20:41:09 <oerjan> probably
20:41:11 <alise> (m,2^n) at least, intuitively /seems/ faster than (m,n)
20:41:11 <zzo38> With natural numbers represented as sets, the less than operation is easy, A is less than B if A is an element of B.
20:41:47 <alise> wait wait, I'm not seeing the values for m and n to get 3.14159, prolly doing something stupid
20:42:23 <Deewiant> http://www.shoeboxblog.com/?p=15314
20:43:25 <alise> Prelude> 314159 / (2 ** 16.61)
20:43:25 <alise> 3.140807200338285
20:43:30 <alise> presumably m and n : Z, though
20:44:18 <alise> Deewiant: :D
20:44:23 <oklopol> you can store some of the correct first digits of pi, just like with base 10.
20:44:40 <alise> right, but not 3.14159 *exactly*
20:44:56 <MissPiggy> it is just GIVING UP if you think you can't do correct and efficient programs
20:45:08 <MissPiggy> yes it's difficult, but if you think it's impossible you are educated stupid
20:45:14 <oerjan> alise: of course not, 314159/100000 is in smallest terms
20:45:19 <MissPiggy> and evil
20:45:24 <oklopol> oh wait what the hell is that .16 about
20:45:24 <oklopol> or actually the whole thing
20:45:24 <oklopol> you can, you just need a lot of bits
20:45:25 <oklopol> oh wait
20:45:26 <oklopol> 9
20:45:26 <oklopol> yeah true
20:45:27 <oklopol> err
20:45:28 <oklopol> yeah wtf am i thinking
20:45:28 <alise> MissPiggy: we shouldn't have to fuck about with representations for hours just to get something that runs before the universe is o'er, and that is correct
20:45:39 <alise> oerjan: yeah :/
20:45:42 <zzo38> I think you can represent reals as sets by making it a set of all the natural numbers that are the bit positions in the real that are set
20:45:44 <alise> Prelude> 314159 / (2 ** 16.609640474436812)
20:45:44 <alise> 3.141589999999999
20:45:47 <alise> close enough :P
20:45:55 <oerjan> you cannot get rid of the prime 5 factors in the denominator
20:45:59 <MissPiggy> alise, I don't do numerics either but it's a really important part of computing and without it nothing would work well
20:46:04 <alise> MissPiggy: we know
20:46:18 <alise> Deewiant meant if you want correctness /in general/ it's glacial
20:46:23 <alise> rather than inventing special representatiosn each time
20:46:24 <oklopol> no wait, i'm being completely retarded atm
20:46:24 <oklopol> grr
20:46:25 <MissPiggy> what does glacial mean?
20:46:55 <alise> slow.
20:48:16 <oerjan> zzo38: are you familiar with any of the usual constructions of real numbers as sets?
20:48:39 <alise> computable reals are nice apart from the whole lack of equality thing
20:48:41 <alise> that's kinda bum
20:48:42 <oerjan> well i guess yours works as one of them
20:48:55 <zzo38> oerjan: No, I am not familiar with that
20:49:37 <alise> oerjan: wait how is (m/2^n) more efficient than (m/n)?
20:49:38 <alise> arithmetic?
20:50:03 <oerjan> alise: yeah it's mostly like binary then...
20:50:17 <MissPiggy> m/2^n + u/2^v = (m(2^v)+(2^n)u)/2^(n+v)
20:50:26 <MissPiggy> two multiplications instead of 3
20:50:39 <oklopol> with n/m, you have to keep doing gcd
20:50:49 <oerjan> and those multiplications are shifts
20:50:50 <MissPiggy> oh except for 2^v & 2^n has to be computed..
20:51:06 <MissPiggy> ahh oerjan you are good at this
20:51:12 <oklopol> so stuff like addition are really slow
20:52:03 <alise> yeah
20:52:14 <alise> the problem is that this representation doesn't seem to have many of the numbers humans like :(
20:52:27 <alise> at least floats "usually" are pretty similar to decimals if you stick to obvious things
20:52:40 <alise> of course that's no real objection, just a human one
20:52:45 <alise> so, wait, oerjan
20:52:48 <alise> this isn't a subset of the rationals
20:52:57 <alise> you can't represent 314159/100000
20:53:04 <oerjan> yes it is
20:53:18 <oerjan> you are swapping sub and superset
20:53:24 <alise> err right
20:53:26 <alise> it has to be a superset
20:53:27 <alise> >=
20:53:28 <alise> you said
20:53:49 <oerjan> i said, if you want all field equalities
20:54:08 <alise> i do :<
20:54:10 <oerjan> including division. m/2^n only supports addition, subtraction and multiplication exactly
20:54:13 <alise> I guess (Z/Z) is the best for me then
20:54:21 <alise> which doth make me sad
20:54:44 <oklopol> what
20:54:50 <alise> what
20:54:57 <oklopol> how does it support division
20:54:58 <oklopol> 1/3
20:55:04 <MissPiggy> alise but you don't care about nice looking numbers, all that matters is being within some tolerance of them
20:55:05 <oklopol> oh lol
20:55:06 <oerjan> on the bright side, you at least can have equality work exactly with those
20:55:07 <oklopol> wtf
20:55:09 <MissPiggy> and the output of the algorithm is too
20:55:18 <MissPiggy> and this is not 'impossible to do efficiently'
20:55:19 <oklopol> somewhere in there i read it supports division
20:55:22 <oklopol> :D
20:55:33 <MissPiggy> it's not like you have to have lots of dynamic checks all over, you just have to do a lot of hard analysis
20:55:52 <MissPiggy> it's nontrivial stuff, that's why you can't just make a field out of it
20:55:55 <alise> MissPiggy: of course, but a human will be sad if he punches in 1.33333 and gets something like 1.01725 back
20:56:07 <MissPiggy> well yeah that is why I use an exact calculator
20:56:16 <alise> with floats they're at least, you know, close enough
20:56:24 <MissPiggy> but a calculator is different than numerical algorithms
20:56:26 <alise> I guess I'll just totally love rationals
20:56:31 <alise> MissPiggy: yes but they need specialised code anyway
20:56:31 <MissPiggy> I dunno I am scared to use floats
20:56:42 <MissPiggy> I don't use them without a lot of hard work on paper
20:56:44 <alise> I'm talking about the main thing you get when you think "oh I need sum division here"
20:57:07 <alise> yeah i don't like floats
20:57:10 <oklopol> MissPiggy: you program satellites or something?
20:57:47 <zzo38> What are the usual constructions of real numbers as sets?
20:58:16 <alise> my OS/language is going to be so amazing :|
20:58:33 <oerjan> i think once you go beyond the four arithmetical operations you quickly lose exact equality no matter what you do. for example, afaik it is unknown whether pi*e is rational, so you might hit a case where you cannot decide pi*e == p/q
20:58:35 <MissPiggy> zzo38: the normal one I know about is cauchy-convergent sequences of rational numbers.. so it's basically a list of fractions that tend toward some real number (each one being within a smaller tolerance of it)
20:58:56 <alise> oerjan: well you cannot represent "pi" or "e"
20:59:01 <alise> only approximations to some tolerance
20:59:03 <zzo38> MissPiggy: OK, I guess that's one
20:59:09 <MissPiggy> zzo38: but there's also some different constructions like in constructive-math you can represent them as programs which print out the n'th digit in finite time
20:59:10 <alise> actually this ties into my idea for implementation types
20:59:11 <alise> basically
20:59:13 <oerjan> alise: you might in some representations
20:59:18 <oklopol> unknown whether e*pi is rational? 8|
20:59:19 <alise> you have an (opaque) value pi or e or 1/3 or whatever
20:59:23 <alise> oklopol: yeah it is
20:59:24 <MissPiggy> zzo38: of course adding them produces a new progam etc etc
20:59:26 <alise> erm
20:59:32 <alise> oerjan: and an opaque type Real
20:59:35 <zzo38> MissPiggy: Yes, that too is one, like something
20:59:38 <oklopol> it's not known whether e+pi and i think e*pi is algebraic, but rational, that was new to me
20:59:44 <alise> oerjan: and at compile-time, you plug in some acceptable representation for it
20:59:47 <alise> like Float or Rational
20:59:54 <oklopol> oh wait
20:59:58 <alise> and it uses the definitions of pi or e or 1/3 for that type
21:00:00 <oklopol> e*pi might be easier for algebraic
21:00:00 <MissPiggy> zzo38 (that's not really set theory though but I just thought that's a cool way)
21:00:00 <oerjan> zzo38: dedekind cuts are one. you then first construct the rationals and then a "cut" is a splitting of all rationals into two sets with the left set elements smaller than all the right set elements
21:00:11 <oklopol> oh wait no
21:00:11 <alise> so you write code that you can prove correct but cannot wrong (because e.g. it does = on computable reals)
21:00:17 <oerjan> and the boundary between them is always a real number
21:00:21 <alise> and substitute elsewhere whatever representation is acceptable
21:00:23 <alise> cool methinks.
21:00:41 <MissPiggy> alise: no you can't just write a correct program on R and then use it with floats
21:00:45 <zzo38> I think in Hyper Set Language I could write a code that converts the represent as programs which print out the n'th digit into the one I specified at first, too
21:00:47 <oklopol> in any case it's definitely known e*pi is irrational, it just hasn't been proven
21:00:50 <alise> MissPiggy: of course it won't be correct on floats
21:00:55 <alise> which is why you specify an _acceptable_ type manually
21:00:59 <alise> maybe you're ok with floats
21:01:03 <alise> maybe you want rationals
21:01:12 <alise> maybe you want computable reals because you don't use = and don't care about speed
21:01:12 <oerjan> oh and MissPiggy mentioned cauchy sequences which i was thinking of next
21:01:12 <alise> etc
21:01:28 <alise> you can't /know/ something that isn't proven
21:01:32 <alise> you can strongly suspect it, though
21:02:12 <oerjan> oklopol: oh maybe it's just algebraic that is unknown for them, i'm not sure
21:02:37 <oklopol> well, pi and e algebraic is a deep result, e and pi irrational is trivial
21:02:45 <oklopol> err
21:02:50 <oerjan> alise: oh, that makes me realize, you can also represent all algebraic numbers exactly. even more complicated though i presume.
21:02:55 <oklopol> transcendential i mean
21:03:04 <alise> oerjan: just do it symbolically? :P
21:03:17 <alise> that's how CASs do all this funky number stuff ofc
21:03:34 <MissPiggy> oerjan, I guess you cuold just list them as polynomials + an index (which root) ?
21:04:04 <MissPiggy> hmm
21:04:17 <MissPiggy> actually that wouldn't really help because how do you compute the new index
21:04:59 <oklopol> oerjan: not known whether e+pi or e/pi is irrational according to internet
21:05:33 <lament> e = pi / 3 * 2
21:05:53 <alise> no it's not
21:05:54 <alise> :P
21:06:21 <oerjan> alise: using polynomials they are roots of, plus some interval boundaries to distinguish different roots of the same one, i think that would work
21:06:32 <MissPiggy> hey that would be weird.. if it was undecidible whether e+pi is trancendental
21:06:43 <alise> why would that be weird
21:06:51 <oklopol> that would be beautiful
21:07:05 <oerjan> MissPiggy: what are indexes?
21:07:08 <lament> personally i can't decide if it would be weird or not
21:07:12 <oerjan> (for roots)
21:07:16 <MissPiggy> oerjan I meant the 3rd root, e.g.
21:07:24 <oklopol> lament: but do you agree it'd be beautiful?
21:07:24 <MissPiggy> but that seems like a bad way to distinguist
21:08:16 <oerjan> oklopol: does that mean e*pi _is_ known?
21:08:34 <MissPiggy> http://planetmath.org/encyclopedia/LindemannsTheorem.html
21:08:37 <alise> what logic systems need is an FFI to other logic systems
21:08:39 <MissPiggy> this is a cool theorem by the way
21:08:43 <alise> :)
21:09:11 <MissPiggy> alise hehe we should get them to trust each other
21:09:28 <MissPiggy> I saw an attempt at converting HOL proofs into Coq that was pretty heavy
21:10:26 <oerjan> MissPiggy: i'm not sure there is any pretty way to distinguish them. different roots of primitive polynomials are algebraically indistinguishable, afaik (galois theory), so you need some order or the like
21:10:27 <MissPiggy> also unsafePerformMathematica
21:10:32 <MissPiggy> for boring calculations..
21:11:09 <MissPiggy> oerjan I don't know galwah theory :(
21:11:15 <oerjan> <alise> what logic systems need is an FFI to other logic systems <-- kripke models!
21:11:23 <MissPiggy> Though seemingly innocuous, a proof of Schanuel's conjecture would prove hundreds of open conjectures in transcendental number theory.
21:11:34 <alise> oerjan: of course we need some sort of trust-metric between them all
21:11:41 <alise> so we can import proofs from other systems that we can't prove in our system
21:11:47 <alise> but only if they pass a certain Bullshit Factor
21:11:54 <alise> whose intention is to weed out the bullshit.
21:12:05 <oerjan> MissPiggy: well the point here iirc is that there are field automorphisms of C that map one root onto any (?) other
21:12:37 <oerjan> (one _given_ root, there may be restrictions on pairs and such)
21:13:47 * oerjan recalls having fun using kripke models to prove things were not intuitionistic tautologies
21:15:37 * MissPiggy wishes to know more about that but I watched a lecture on kripke models a while ago and did not get it
21:16:26 <oerjan> well let me try to recall an example
21:16:50 <oerjan> say the well-known intuitionistic non-tautology A or (not A)
21:18:25 <oerjan> you make two world's, one in which A is false, one in which A is true, with the former being less than the latter
21:18:43 <MissPiggy> oka;
21:19:00 <oerjan> then in the former, not A is _also_ false, since there exists a larger world in which A is true
21:19:33 <oerjan> and A or (not A) is then also false in the former, since or combines in each world
21:19:54 <oerjan> ergo: A or (not A) is not a tautology
21:20:29 <AnMaster> oerjan, I didn't quite get that either.
21:20:43 <MissPiggy> tautology in ???
21:20:56 <oerjan> in intuitionistic propositional logic
21:21:00 <AnMaster> oerjan, or basically it sounds like a load of bullshit worthy of that recent xkcd about proving from invalid axioms ;P
21:21:09 <MissPiggy> ::/
21:21:20 <alise> *worlds not world's
21:21:32 <oerjan> er right
21:21:35 <MissPiggy> but oerjan it is not a tautology so you have proved it is now the world explodes??
21:21:39 <MissPiggy> I don't undersatnd
21:21:49 <MissPiggy> OH
21:21:54 <AnMaster> what?
21:21:55 <oerjan> MissPiggy: i have proved that it is _not_ a tautology
21:21:58 <alise> AnMaster: yeah xkcd to rebut valid mathematical techniques, sounds like a funny joke to me
21:21:58 <MissPiggy> A or (not A) is ***not*** a tautology
21:21:59 <alise> no it's boring
21:22:05 <MissPiggy> kinda important to read ALL the worlds, sorry about that!
21:22:12 <alise> read all the worlds
21:22:55 <MissPiggy> oerjan, this is a metatheorem though?
21:23:09 <MissPiggy> oerjan, I mean you couldn't prove this internally, using a constructive logic could you?
21:23:10 <oerjan> because by some mumble mumble theorem, a proposition is an intuitionistic tautology if it is always true in every world of a kripke model satisfying the mumble mumble requirements
21:23:37 <AnMaster> <alise> AnMaster: yeah xkcd to rebut valid mathematical techniques, sounds like a funny joke to me <-- I wasn't trying to joke nor rebuting it
21:23:53 <AnMaster> just commenting upon how insane it sounded to someone who isn't a specialist
21:23:56 <oerjan> MissPiggy: well i guess not, but then you cannot do that with boolean logic either...
21:24:03 <alise> Then what were you doing? Either you think it's bullshit or you think it isn't.
21:24:14 <AnMaster> alise, see the line I said just after that
21:24:17 <AnMaster> before replying
21:24:30 <alise> ";P" would imply you don't think it's bullshit and are attempting to make a joke; commenting upon how seemingly insane it is counts as a joke attempt, because it's meant to be taken non-seriously in a humorous way.
21:24:30 <AnMaster> unless you have ~10 seconds of lag, in which case I pitty you
21:24:34 <alise> *pity
21:24:37 <alise> One t.
21:24:50 <AnMaster> true
21:24:53 <alise> > 1%(1%n);
21:24:53 <AnMaster> didn't notice that typo
21:24:53 <alise> 1*n%1
21:24:53 <alise> <- Well, it's a start, Pure, but I think you can simplify that a wee bit.
21:24:57 <alise> *^
21:24:59 <alise> not <-
21:25:02 <alise> AnMaster: you do it a lot :P
21:25:14 <AnMaster> alise, I don't think I use that word very often though
21:25:18 <AnMaster> so unlikely
21:25:21 <alise> Enough.
21:26:43 <AnMaster> oerjan, when is that type of logic that proves A or (not A) to not be a tautology actually useful?
21:26:59 <alise> > 0+x = x;
21:27:00 <alise> > x+0 = x;
21:27:00 <alise> > 0*x = 0;
21:27:00 <alise> > 1*x = x;
21:27:00 <alise> > x*0 = 0;
21:27:00 <alise> > x*1 = x;
21:27:02 <alise> > 1%(1%n);
21:27:04 <alise> n%1
21:27:06 <alise> I schooled you, son.
21:27:10 <MissPiggy> alise = zero
21:27:10 <alise> Now yo a clever bitch of a rewriter.
21:27:12 <oerjan> AnMaster: when you want to find out what are the intuitionistic tautologies?
21:27:23 <alise> oerjan: i think AnMaster is assuming that (a or not a) is actually a tautology "IRL"
21:27:31 <alise> thus his inquiry; just heuristics, though
21:27:36 <AnMaster> alise, not correct
21:27:39 <alise> ok
21:27:53 <AnMaster> I was wondering what sort of other math stuff this is used for
21:27:59 <AnMaster> oerjan, and why do you want to do that?
21:28:10 <MissPiggy> AnMaster, metatheoretic investigation of foundational questions
21:28:10 <oerjan> AnMaster: also, i believe there are other forms of kripke models for some other logics (e.g. modal ones?)
21:28:21 <oerjan> what MissPiggy said
21:28:40 <AnMaster> MissPiggy, hm okay
21:28:57 <oerjan> AnMaster: this _did_ start out with alise's comment about logics needing FFIs for each other...
21:29:01 <AnMaster> oerjan, how do you pronounce "kripke" btw?
21:29:11 <alise> > x%(y*x) == 1%y;
21:29:11 <alise> x*y==y*x
21:29:17 <alise> yes, Pure, turns out that's true also.
21:29:27 <oerjan> AnMaster: i think it's german. or wait was he american?
21:29:33 <AnMaster> oerjan, FFI in this context being? All I can think of is foreign function interface, which makes no sense here.
21:29:55 <AnMaster> alise, what language is that?
21:30:00 <oerjan> http://en.wikipedia.org/wiki/Saul_Kripke
21:30:00 <alise> Pure
21:30:29 <oerjan> AnMaster: i think that _was_ the intended meaning. how to call one logic from within another.
21:30:50 <oerjan> kripke models allow you to speak about intuitionistic truths in classical logic, say
21:31:01 <AnMaster> alise, interesting language. Did you provide a few rules and it then did various simplifications on it basically?
21:31:02 <alise> > (x+y==y+x) = true;
21:31:02 <alise> > (x*y==y*x) = true;
21:31:03 <alise> > x%(y*x) == 1%y;
21:31:03 <alise> 1
21:31:05 <alise> schooled.
21:31:11 <oerjan> (kripke was american)
21:31:12 <alise> AnMaster: Yeah; basically, you define tree -> tree rewritings.
21:31:16 <oerjan> er is
21:31:17 <AnMaster> alise, sounds like perfect to write a CAS in.
21:31:19 <MissPiggy> alise make it do partial fractions
21:31:20 <alise> Then you give it a tree and it rewrites it recursively.
21:31:26 <alise> AnMaster: exactly; this kind of stuff is the base of CASs
21:31:27 <oerjan> the bastard is still alive :D
21:31:30 <alise> MissPiggy: no ;P
21:31:32 <alise> *:P
21:31:44 <MissPiggy> alise please :(((( think of my homework!!
21:31:52 <alise> MissPiggy: fine what do you want it to aftually do
21:31:55 <alise> *actually
21:32:20 <AnMaster> alise, what is the complexity of this way of computing.
21:32:21 <MissPiggy> alise seriously partial fractions are cool I would be interested in seeing it in a rewrite language because it seems slightly less trivial than just simplification
21:32:33 <alise> AnMaster: You can't ask for the "complexity" of a paradigm, that's ridiculous
21:32:56 <AnMaster> alise, well true. I realised it was badly worded. But I can't think of another way to phrase it
21:32:57 <AnMaster> lets see...
21:33:03 <MissPiggy> alise partial fractions is tne name for turning stuff like 1/((x+a)(x+b)) into P/(x+a) + Q/(x+b)
21:33:14 <MissPiggy> you have to solve for P and Q, and do it for more general cases..
21:33:14 <alise> The naive algorithm is slow (evaluating the innermost trees first, look for rewrite rules that match the tree; pick the most specific one (e.g. biggest or least free variables), replace with right hand side, repeat)
21:33:18 <alise> But there are better algorithms
21:33:21 <AnMaster> alise, given that you rewrite it recursively it sounds like some stuff would be rather inefficient to implement in it
21:33:31 <alise> Pure isn't naive; it compiles to LLVM and all.
21:33:32 <AnMaster> alise, right
21:33:38 <MissPiggy> 21:32 < alise> AnMaster: You can't ask for the "complexity" of a paradigm, that's ridiculous
21:33:43 <MissPiggy> it's not ridiculous :P
21:33:54 <MissPiggy> well
21:34:01 <MissPiggy> maybe paradigm isn't the right thing
21:34:29 <alise> "What is the complexity of tree rewriting" doesn't make sense because it depends on the complexity of the computation
21:34:42 <MissPiggy> but stuff like mutable vs non-mutable and complexity completeness results are quite deep theorems in programming
21:34:46 <AnMaster> alise, what is the complexity of the best known algorithm for it then?
21:34:58 <oerjan> alise: apparently now ghc will also compile to LLVM, i hear
21:35:06 <alise> AnMaster: Still a meaningless question
21:35:12 <oerjan> not that i would know, never having downloaded it *ducks*
21:35:15 <pikhq> oerjan: It's replacing -fvia-c.
21:35:21 <AnMaster> alise, oh?
21:35:28 <alise> It makes me believe that it is likely that you do not understand the difference between complexity and speed on today's CPUs.
21:35:48 <AnMaster> alise, if I had meant to ask about that I would have asked about that
21:35:56 <AnMaster> I meant big O notation here
21:36:06 <AnMaster> not milliseconds
21:36:13 <alise> Then your question makes no sense.
21:36:16 <AnMaster> and the latter would vary a lot
21:36:20 <alise> AnMaster: what is the complexity of brainfuck?
21:36:28 <MissPiggy> brainfuuuuuuuuuuuuuuuuuuuuuck
21:36:38 <AnMaster> alise, what is the complexity of a given way to implement bf
21:36:48 <AnMaster> set the "given way" to "best known"
21:36:49 <MissPiggy> brainfuck is RE
21:36:50 <MissPiggy> lol
21:36:54 <alise> AnMaster: That question makes no sense at all.
21:37:00 <oerjan> now someone implement brainfuck with tree rewriting
21:37:06 <AnMaster> oerjan, heh
21:37:08 <MissPiggy> woah
21:37:11 <alise> AnMaster: What is the complexity of a naive implementation of Brainfuck?
21:37:14 <MissPiggy> how would you do that (in a cool way)
21:37:20 <pikhq> AnMaster: I don't think you can have algorithmic complexity of non-algorithms. ;)
21:37:22 <AnMaster> alise, first define the naive implementation
21:37:29 <MissPiggy> http://qwiki.stanford.edu/wiki/Complexity_Zoo:R#re
21:37:32 <alise> MissPiggy: define the different stuff as operators
21:37:36 <lament> kripke is an observant jew
21:37:38 <AnMaster> pikhq, oh right algorithms must terminate or how was it?
21:37:40 <lament> matisyahu is an observant jew
21:37:41 <MissPiggy> AnMaster, ^
21:37:43 <alise> then you can generate bf programs with symbolicness
21:37:43 <AnMaster> well okay on that thing it fails
21:37:46 <lament> i like matisyahu
21:37:50 <lament> therefore, kripke is cool
21:37:52 <alise> and reason about them
21:37:56 <alise> AnMaster: no, pick one implementation
21:37:58 <alise> AnMaster: any
21:38:02 <MissPiggy> matisyahu the singer ?
21:38:04 <alise> AnMaster: tell me how you would work out "its complexity"
21:38:08 <alise> hint: this question is /completely meaningless/
21:38:23 <MissPiggy> alise what about my answer? (RE) is that not correct?
21:38:32 <lament> MissPiggy: suer
21:38:54 <alise> MissPiggy: is that the complexity of the evaluation function, though?
21:39:01 <alise> I mean, yes, technically
21:39:04 <alise> but I don't think it's what AnMaster means
21:39:06 <MissPiggy> alise that's a tricky one...
21:39:14 <MissPiggy> yeah it's not what he means I know that :P
21:39:16 <alise> he's trying to say "how much OVERHEAD does tree rewriting imply"
21:39:19 <MissPiggy> it was a silly answer
21:39:28 <alise> which is nonsensical too, s/tree rewriting/a given implementation of tree rewriting/
21:39:31 <alise> then rigorously define overhead
21:39:33 <alise> then maybe i can answer
21:39:50 <alise> we need a co-RE language
21:40:10 <MissPiggy> there's probably classes of algorithms in tree rewriting that have asymptotically lower efficiency than in a language with mutable reference
21:40:28 <MissPiggy> by _result I can't remember the name of ;_;_
21:40:40 <alise> you can have a tree rewriting language with mutable references, of course
21:40:51 <oerjan> MissPiggy: that lisp vs. pure lisp link from the other day?
21:41:03 <AnMaster> MissPiggy, tree rewriting can be mutable in place? Huh?
21:41:07 <AnMaster> oh wait, I misread that
21:41:31 <AnMaster> alise, that seems rather messy
21:41:34 <AnMaster> and not fitting in
21:41:35 <MissPiggy> oh well I am probably wrong about that statement
21:41:36 <AnMaster> but sure
21:41:38 <alise> it's not
21:41:43 <alise> Pure has side-effects
21:41:43 <oerjan> alise: that's graph rewriting then, isn't it
21:41:46 <alise> causes no issues at all
21:41:58 <alise> oerjan: well you consider references externalities usually but yeah
21:42:02 <AnMaster> side effects are annoying
21:42:06 <alise> AnMaster: monads.
21:42:12 <alise> or other ways of modelling state
21:42:31 <AnMaster> alise, passing the state along all the time?
21:42:40 <AnMaster> doesn't solve the issue with IO though
21:42:57 <alise> You just model that as a data structure with continuations.
21:43:04 <alise> You can sugar it from inside the language.
21:43:07 <AnMaster> hm
21:43:27 <AnMaster> that might work
21:44:45 <alise> nit
21:44:48 <alise> not might
21:44:51 <alise> does
21:44:59 <AnMaster> what about nit?
21:45:01 <alise> this is a solved problem
21:55:30 <alise> computer modern is beautiful
21:56:14 <oerjan> modern is so ancient
21:57:28 <alise> your mom
21:58:32 <oerjan> incidentally "modern" means the mom in some norwegian dialects
21:59:20 <Deewiant> And Swedish, though it's probably archaic
21:59:42 <oerjan> could be a swedish loan, actually
21:59:50 <oerjan> then it might not
22:02:24 <AnMaster> it means both modern and "the mother" in Swedish. And yeah somewhat archaic
22:03:36 <Deewiant> Different pronunciation for the two meanings though
22:03:42 <AnMaster> well yes
22:03:47 <AnMaster> very different
22:07:49 <AnMaster> Deewiant, does English have that?
22:08:02 <AnMaster> one spelling, different ways to pronounce, different meanings
22:08:23 <Deewiant> http://en.wikipedia.org/wiki/Homograph
22:08:39 <AnMaster> oh right
22:09:27 <augur> http://en.wikipedia.org/wiki/Generalized_context-free_grammar
22:09:35 <augur> :D
22:10:01 -!- jcp1 has joined.
22:10:11 <oklopol> "oerjan: oklopol: does that mean e*pi _is_ known?" <<< if e*pi was known, then e/pi would also be
22:10:20 <AnMaster> Deewiant, actually isn't it instead http://en.wikipedia.org/wiki/Heteronym_%28linguistics%29 ?
22:10:24 <oklopol> err
22:11:05 -!- jcp has joined.
22:11:05 -!- jcp has quit (Remote host closed the connection).
22:11:08 <AnMaster> oklopol, known as what?
22:11:14 <oerjan> oklopol: not if it was known _not_ to be rational
22:11:24 <AnMaster> I guess "is trancedental"
22:11:32 <oerjan> although if it were algebraic, the other one couldn't be
22:11:34 <AnMaster> (as in, that is the question)
22:12:12 -!- zzo38 has quit (Quit: Ceci n'est pas une pipe).
22:12:32 <oerjan> AnMaster: (ir)rational, actually
22:12:45 <oerjan> or, well, both
22:13:06 <Deewiant> AnMaster: Right you are, that's more specific
22:13:10 <AnMaster> oerjan, any transcendental (sp?) number would be irrational right?
22:13:27 <oerjan> yeah but the point it isn't known to be either
22:13:36 <oerjan> *is it
22:14:15 <AnMaster> oerjan, but I can tell you something: it isn't an integer ;P
22:14:25 <oerjan> duh
22:14:31 <AnMaster> yeah lame
22:14:52 <oerjan> incidentally e^pi is algebraic
22:15:07 <oerjan> or wait
22:15:08 <MissPiggy> algebraic!
22:15:24 <AnMaster> wasn't that used to prove that pi is transcendental or something?
22:15:24 * oerjan is misremembering
22:15:27 <AnMaster> but algebraic?
22:15:34 <AnMaster> that doesn't sound quite correct
22:15:41 <AnMaster> wasn't i involved too?
22:17:20 <AnMaster> oerjan, something that confused me is the computable/non-computable number thingy
22:17:24 <AnMaster> what does that actually mean
22:17:29 <AnMaster> and are there any examples
22:18:29 <alise> someone was trying too hard to be pretentious when writing this
22:18:29 <alise> In Attic Greek drama, a character in the play, as very often a deity, stood forward or appeared from a machine before the action of the play began, and made from the empty stage such statements necessary for the audience to hear so that they might appreciate the ensuing drama. It was the early Greek custom to dilate in great detail on everything that had led up to the play, the latter being itself, as a rule merely the catastrophe which had inevitably to en
22:18:30 <alise> sue on the facts related in the prologue. The importance, therefore, of the prologue in Greek drama was very great; it sometimes almost took the place of a romance, to which, or to an episode in which, the play itself succeeded.
22:18:59 <alise> AnMaster: chaitlin's constant is a real
22:19:01 <alise> it is not computable
22:19:09 <alise> (well, a given instance of it)
22:19:10 <alise> *chaitin's
22:19:35 <AnMaster> alise, "the latter being itself" quite throw me off first time I read that sentence...
22:19:36 <alise> basically, RR contains unknowable elements.
22:19:46 <alise> AnMaster: I still haven't managed to read that paragraph!
22:19:55 <AnMaster> alise, it was fine up until that point
22:20:02 <AnMaster> a bit pretentious yes
22:20:04 <AnMaster> but readable
22:20:09 <alise> http://en.wikipedia.org/wiki/Computable_number
22:20:10 <AnMaster> after that it just makes no sense
22:20:11 <oerjan> a real number x is computable if there is a computable function f:N -> Q such that |f(n) - x| < 1/n
22:20:29 <oerjan> or so i think. there are probably many equivalent definitions
22:20:30 <alise> Ω is indeed one of the examples given
22:20:46 <oklopol> "oerjan: now someone implement brainfuck with tree rewriting" <<< i think i did that too with one of my tree rewriters, it's not like it's hard, just carry around a tape
22:21:09 <AnMaster> alise, some that is familiar from what I read elsewhere, it helps
22:21:30 <AnMaster> <alise> AnMaster: chaitlin's constant is a real <-- oh right
22:21:34 <MissPiggy> oklopol what about doing it without carrying tape?
22:23:15 <MissPiggy> can you push say > 3+ > 4+ > 6+ > through [1- > 7+ <] to get a program with one less loop?
22:23:35 <oklopol> so what modern is both modern and ancient in swedish
22:23:45 <oklopol> *archai
22:23:45 <oklopol> c
22:23:56 <AnMaster> oklopol, what?
22:24:19 <AnMaster> oklopol, I didn't understand that
22:24:20 <oklopol> "oerjan: oklopol: not if it was known _not_ to be rational" <<< that's why err
22:25:17 <alise> MissPiggy: esotope does thinsg like that
22:26:11 <MissPiggy> alise cool!
22:26:20 <alise> *things
22:26:28 <alise> http://code.google.com/p/esotope-bfc/
22:26:36 <MissPiggy> can it evaluate a brainfuck program without making a tape?
22:26:40 <alise> it also compiles hello-world-with-loops to a puts call :)
22:26:50 <MissPiggy> LOL
22:26:51 <alise> http://code.google.com/p/esotope-bfc/wiki/Optimization
22:26:54 <alise> MissPiggy: not just hardcoding
22:26:58 <alise> it really can do that kind of reasoning
22:28:29 <oklopol> MissPiggy: i don't get your "push say" thing
22:28:32 <MissPiggy> haha that compiler is such a hardcore optimizer that you have to use a specially fast tool to run it
22:28:44 <MissPiggy> oklopol, I just mean like partial evaluation or something, but all the way
22:29:25 <alise> MissPiggy: well, you don't want to evaluate all non-input-dependent code
22:29:30 <alise> because it might not terminate
22:29:41 <alise> what you _want_ to do is evaluate all code that you can automatically prove to terminate
22:29:58 <alise> maybe even all code that you can automatically prove to terminate and also determine that its "complexity" is below a certain bound
22:30:08 <alise> so that compilation doesn't take fifty-billion years just because execution does
22:30:11 <MissPiggy> I know you can just evaluate the program, then turn the tape into a >+ program that generates it -- but I was hoping it could be done without using a tape as intermediate
22:30:30 <AnMaster> <alise> it also compiles hello-world-with-loops to a puts call :) <-- that is quite trivial
22:30:38 <AnMaster> MissPiggy, I can describe the algorithm to do that
22:30:49 <MissPiggy> AnMaster did you read the documentation ???????????
22:30:54 <MissPiggy> AnMaster that is not trivial
22:30:59 <AnMaster> MissPiggy, I coded something very similar myself
22:31:02 <AnMaster> so I know how to do it
22:31:11 <MissPiggy> AnMaster cool don't you have the code?
22:31:26 <AnMaster> MissPiggy, mine is rather buggy, but it is coded in erlang
22:31:31 <alise> MissPiggy: he had to ask the author of esotope how the extended euclidian algorithm worked :)
22:31:40 <oerjan> highly parallel bugs
22:31:45 <alise> it was basically a copy with a more ad-hoc structure, AnMaster says it did better on some programs but those were pathological
22:31:51 <AnMaster> no
22:31:53 <AnMaster> not quite
22:32:01 <AnMaster> yes for that algorithm, I was not as smart back then
22:32:01 <alise> why am I not surprised you said that :)
22:32:13 <AnMaster> basically, figure out constants based on that the tape is at the program start all zero, then ++ means that "set 2" you can treat [-] and [+] as set 0 and do the same
22:32:18 <alise> wait you are now? why didn't somebody inform me :(
22:32:49 <AnMaster> MissPiggy, you convert >> and << to offsets and only actually move the pointer just before an unbalanced loop (where you can't figure out the offset easily)
22:32:58 <oerjan> alise: they had a singularity in sweden, but they're keeping it under wraps
22:33:03 <AnMaster> MissPiggy, now those constants can also be propagated to output
22:33:07 <AnMaster> so you get constant output
22:33:12 <AnMaster> now merge those outputs
22:33:17 <AnMaster> MissPiggy, see? trivial
22:33:29 <AnMaster> MissPiggy, you need to unroll constant iteration loops of course
22:33:40 <MissPiggy> oh yeah neat
22:33:41 <AnMaster> each loop can be represented as a polynomial
22:33:45 <MissPiggy> okay I will just implement this then
22:33:48 <MissPiggy> wait
22:33:57 <MissPiggy> what how do you represent them as polynomials?
22:33:58 <AnMaster> MissPiggy, well, each non-IO balanced loop that is
22:34:30 <oklopol> does the compiler optimize random access?
22:34:33 <oklopol> that's the only thing that matters
22:34:46 <AnMaster> MissPiggy, based on the loop counter, if you have [>++<-] you can figure out that the current position will be zero after but the next will be twice the current value
22:34:50 <AnMaster> in the current cell
22:34:51 <AnMaster> well
22:34:57 <AnMaster> if the next cell was zero before
22:35:03 <AnMaster> otherwise you add it instead of set it
22:35:07 <augur> [><++>]
22:35:18 <oklopol> i mean sure it's cool to compile constants into constants, but you could just do that by running the program
22:35:20 <AnMaster> augur, trivial, early merging would take care of ><
22:35:24 <oklopol> as pointed out infinite times
22:35:26 <AnMaster> then you get an unbalanced loop
22:35:32 <alise> oklopol: not without risking halting
22:35:34 <augur> AnMaster: BUT WOULD IT TAKE CARE OF THE FISH
22:35:40 <MissPiggy> hmmmmmmmmmm
22:35:41 <alise> or, if you solve that, extremely long execution times
22:35:42 <oklopol> alise: stfu
22:35:44 <AnMaster> augur, -_-
22:35:48 <augur> MissPiggy: http://en.wikipedia.org/wiki/Generalized_context-free_grammar
22:35:49 <alise> erm *risking non-halting
22:35:49 <oklopol> run for a microsecond
22:35:50 <MissPiggy> I just realized this is exactly the same as having a type...
22:35:55 <MissPiggy> tape*
22:35:59 <alise> oklopol: nondeterministic, and less effective than this
22:36:03 <augur> actually, check out all of the pages i recently made. grammars :D
22:36:11 <MissPiggy> because as you evaluate the program you build up a data like >+++>+++++>+>+>+>>+++>>+++
22:36:15 <oklopol> who gives a shit, point is it's not an important optimization
22:36:17 <MissPiggy> which is just a data structure that represents a tape!
22:36:17 <AnMaster> MissPiggy, of course if you can figure out the value before at that tape position then it is trivial
22:36:46 <MissPiggy> augur, nice I just saved a big list of pages you made to read
22:36:47 <AnMaster> MissPiggy, you basically sort it. I used gnome sorting. which means swap if possible then take one step back, step forward if you can't swap
22:37:10 <alise> "I deliberately used a joke sort algorithm"
22:37:12 <AnMaster> MissPiggy, it is a stable sort (important) and it is easy to add quite complex restrictions to how you are allowed to swap
22:37:38 <oklopol> gnome is a joke?
22:37:47 <AnMaster> alise, it is quite fast in practise for this, plus easy to implement with the various restrictions. And it isn't a joke
22:37:53 <AnMaster> just not one of the very fastest ones
22:37:54 <alise> it is, actually
22:38:25 <AnMaster> alise, source for that
22:38:39 <AnMaster> because I have never heard of that before
22:38:47 <alise> http://www.cs.vu.nl/~dick/gnomesort.html
22:38:49 <alise> clearly tongue-in-cheek
22:39:17 <AnMaster> btw, I only learned the name after I implemented it
22:39:29 <oklopol> tongue in your mom's cheek
22:40:11 <AnMaster> btw wikipedia says:
22:40:13 <AnMaster> "It is conceptually simple, requiring no nested loops. The running time is O(n²), but tends towards O(n) if the list is initially almost sorted.[1] In practice the algorithm can run as fast as Insertion sort."
22:40:48 <AnMaster> and for most bf programs you can't reorder the whole thing due to unbalanced loops
22:41:04 <AnMaster> nor can you move stuff freely across a balanced loop
22:41:20 <oklopol> there are fast stable sorts
22:41:21 <AnMaster> until you figure out if they depend on each other
22:41:42 <AnMaster> oklopol, true, but can you do such complex conditions easily? Also it gave adequate performance for this case
22:42:20 <AnMaster> MissPiggy, anyway I gave up on the project when I got stuck on graph based optimisation
22:42:30 <AnMaster> didn't know enough about that sort of thing to make it actually work
22:42:36 <AnMaster> know somewhat more nowdays
22:42:39 <alise> i want project fortress, agda and pure to have sex
22:42:44 <alise> and produce a beautiful, beautiful language baby
22:42:50 <AnMaster> but not really interested in taking it up again
22:43:04 <oklopol> AnMaster: probably you could just have intelligence in your swap and < functions.
22:43:26 <MissPiggy> you should do it!!
22:43:30 <AnMaster> oklopol, it all depends on what is between them
22:43:47 <AnMaster> alise, "project fortress"? never heard about that one before
22:43:59 <MissPiggy> alise hehe yeah good plan
22:44:01 <lament> alise: dog. spare dog legs. nails.
22:44:05 <lament> hammer.
22:44:10 <alise> http://projectfortress.sun.com/
22:44:12 <MissPiggy> maybe we should bring then on a double date?
22:44:16 <alise> guy steele's baby
22:44:19 <MissPiggy> good way to break the ice
22:44:25 <AnMaster> MissPiggy, btw mine dropped those calls to set cells in the final version. One pass was to look from the end of the program and delete dead stores
22:44:34 <alise> implicit parallelism, yar. two-dimensional mathematical syntax with beautiful latex rendering, yar
22:44:39 <AnMaster> then if tape was never used it's variable was never declared
22:44:41 <oklopol> sleeeeeeeeeeeeeeeeeeeeeeeep ->
22:44:41 <alise> cool typing stuff, yar
22:44:48 <alise> totally sweet, yar
22:44:55 <AnMaster> alise, what about go?
22:45:01 <alise> what about go?
22:45:02 <AnMaster> didn't you love it too
22:45:07 <AnMaster> shouldn't it be in that mix too
22:45:13 <alise> if you want a systems programming language
22:45:20 <alise> i myself have transcended such petty desirse
22:45:21 <AnMaster> alise, oh and smalltalk and haskell
22:45:22 <alise> *desires
22:45:29 <alise> agda includes the desire for haskell by being superior to it
22:45:36 <AnMaster> alise, hastalk
22:45:39 <alise> (though not suitable for practical programming, that is irrelevant when language-mating)
22:45:40 <AnMaster> imagine it
22:45:47 <alise> smalltalk is a nice OOP language, but you don't need it if you have a nice functional paradigm
22:45:54 <alise> because it's superior
22:46:01 <AnMaster> alise, so mix them up and produce a bastard language
22:46:03 <alise> adding columns is more important than adding rows in the expression problem, so FP wins
22:46:12 <alise> AnMaster: no, I'd rather mix fortress, agda and pure :P
22:46:19 <AnMaster> alise, why not haskell as well?
22:46:47 <alise> because agda subsumes the haskell desire, by being superior to it
22:46:59 <alise> although not practical for real-world, boring programming, this is irrelevant when language-fucking.
22:47:00 -!- augur has quit (Ping timeout: 260 seconds).
22:48:30 <AnMaster> heh
22:51:47 <alise> fortress' syntax is so sexy though.
22:51:53 <alise> http://projectfortress.sun.com/Projects/Community/attachment/wiki/MathSyntaxInFortress/fortify-example.png
22:52:07 <MissPiggy> oklopol I did my work now ^..^
22:52:21 <MissPiggy> alise I have been spending fucking ages trying to get a repl with TeX display for my CAS :(
22:52:32 <alise> MissPiggy: try texmacs?
22:52:43 <alise> it's designed for things like that
22:53:31 * alise wonders why the syntax for fractions is what it is
22:53:33 <alise> as opposed to a division operator
22:53:43 <alise> I guess because you can view p/q as a constructor for rationals
22:54:45 <alise> MissPiggy: the really cool stuff happens when you type ascii code and get beautiful output on the go, though
22:58:38 <AnMaster> alise, does fortress use monads?
22:58:49 <alise> no.
22:58:53 <alise> well, it could if you made it
22:58:54 <AnMaster> looking at the language it does seem quite cool
22:59:01 <AnMaster> and somewhat easier to learn than haskell
22:59:15 <AnMaster> a mix of imperative and functional in part even
22:59:16 <alise> easier to learn relative to what
22:59:21 <alise> it's not functional it's just mathematical
22:59:30 <AnMaster> alise, that explains part of it
22:59:42 <alise> http://pastie.org/833520.txt?key=ed3ghdi8fhelh3aot8jsw ;; my dream-land perfect editor for a rich-notation language
22:59:50 <alise> format is input\ndisplay as ascii
22:59:56 <alise> | is cursor
23:00:12 <AnMaster> alise, too hard to follow
23:00:17 <alise> only because it's ascii
23:00:24 <AnMaster> alise, exactly
23:00:25 <alise> IRL it'd be totally smooth
23:00:25 <AnMaster> make some concept videos
23:00:27 <AnMaster> ;P
23:00:31 <alise> yeah i prolly will
23:00:40 <alise> http://projectfortress.sun.com/Projects/Community/wiki/ViscoElastic more fortress syntax porn
23:00:53 -!- oerjan has quit (Quit: Good night).
23:02:14 -!- kwertii has joined.
23:03:37 <alise> http://projectfortress.sun.com/Projects/Community/wiki/FortressCommentSyntax Fortress has the most advanced commenting system of any language, ever. You can embed rendered Fortress code, tables... and images.
23:03:54 <alise> And I think it's about bloody time we had expressive comments.
23:04:11 <MissPiggy> <3 Fortress
23:04:22 <MissPiggy> I'm never going to use FORTRAN again!
23:04:29 <alise> "again"
23:04:33 <MissPiggy> lol
23:04:39 <MissPiggy> win 16
23:05:59 <AnMaster> alise, is it for rendering to html or similar?
23:06:06 <AnMaster> alise, I usually read comments in the source
23:06:26 <alise> Fortress programs are considered as publications, pretty much. Ideally, you editor would show your code in the rendered form directly.
23:06:39 <alise> Anyway, the wiki-ish markup is perfectly readable in source code. Put it in a paper or publish it on the internet and it'll shine.
23:07:36 <AnMaster> alise, the {{{ }}} is somewhat annoying
23:07:38 <AnMaster> too many
23:07:56 <alise> Yes, but it's a rare construction.
23:08:43 <AnMaster> not in the page on it's markup though
23:11:50 <AnMaster> night →
23:13:12 <alise> AnMaster: hey i'm making a js demonstration of it too
23:13:13 <alise> :(
23:25:22 <alise> MissPiggy: are you interested, at least? :P
23:25:26 <MissPiggy> in what?
23:25:36 <alise> a js demonstration of how I think editing should be done
23:25:53 <MissPiggy> wow wait what do you mean
23:26:01 <MissPiggy> how is that not something that will take a very long time??
23:26:14 <alise> well i mean it just shows you the entering of one single expression :P
23:26:32 -!- SimonRC_ has quit (Ping timeout: 246 seconds).
23:27:40 <alise> Sgeo: ping
23:32:10 <alise> MissPiggy: ok, go to http://pastie.org/833571.txt?key=seg549im36wsbitxw8dug, copy the whole contents, and paste it into your address bar and go there
23:32:37 <alise> it'll play a 13.5 second demonstration of first, inputting the expression a[2^n]
23:32:42 <alise> and then navigating back through it
23:32:50 <alise> keyboard input on top, editor display on bottom
23:33:12 <MissPiggy> alise ahh nice!
23:33:20 <alise> thanks
23:34:08 <alise> the basic idea is, you know how in texmacs you're using the cursor keys all the time just to step in and out of things?
23:34:23 <alise> that sucks!
23:34:31 <MissPiggy> agreed!
23:34:32 <alise> so i try and display all the relevant information on-screen at all times
23:34:43 <alise> and if you input a symbol you input a matching symbol to complete it
23:35:00 <alise> in fact, if it weren't for the ) to terminate the ^, and you could get around that by e.g. making it terminate when x^y in ascii source would,
23:35:08 <alise> you'd write the ascii source and see the fancy source, directly
23:36:20 -!- SimonRC has joined.
23:37:04 -!- kar8nga has quit (Remote host closed the connection).
23:37:11 <alise> MissPiggy: indeed the ascii representation need not even be stored
23:37:25 <alise> in the case of my OS, you could live a long and productive life without ever causing any code to be represented as ascii text in memory in any way
23:38:00 <MissPiggy> oh like having it a tree
23:38:00 <MissPiggy> ?
23:38:53 <alise> process keyboard input to direct the editor, store internally as ast
23:38:56 <alise> well
23:39:01 <alise> a superset of the regular ast
23:39:05 <alise> because it allows incomplete expressions
23:39:15 <alise> or rather, allows a marker in an expression that denotes that it is not complete
23:39:25 <pikhq> alise: Ah, the data: URI.
23:39:42 <alise> pikhq: couldn't find an htmlpaste.com :)
23:39:49 -!- oklopol has quit (Ping timeout: 260 seconds).
23:40:58 <alise> MissPiggy: i think i'm going to diverge from regular mathematical notation a lot anyway
23:41:06 <alise> division symbol instead of fraction notation
23:41:23 <alise> sqrt() instead of the sqrt symbol
23:41:34 <alise> basically reducing the number of unique notations, they're mostly pointless
23:41:36 <MissPiggy> alise, hehe well you can fix all the HORRID crap they have in mathematical notation
23:41:42 <alise> precisely :P
23:41:47 <alise> |x|? barf
23:41:55 <alise> what's wrong with abs(x), no I mean seriously, what is wrong with abs(x)
23:42:20 <lament> || is a norm
23:42:34 <alise> shaddup
23:42:38 <lament> there're different norms but their notations are similar so you can tell they're all norms
23:42:46 <alise> I guess I am being a bit silly, because I'm retaining 2^n as superscript
23:42:56 <alise> perhaps I should use \uparrow, as does knuth
23:44:36 <tombom> normal mathematical notation???? BARF
23:44:43 <tombom> actually is || ambiguous like so much else
23:44:52 <alise> yeah that's why i'm totally fixin' it
23:45:02 -!- oklopol has joined.
23:45:08 <MissPiggy> hm I like superscripts and subscripts
23:45:21 <MissPiggy> it's nice to be able to adorn symbols with notes
23:45:23 <alise> MissPiggy: but why? why are + and * symbols but the next operator a superscript?
23:45:34 <MissPiggy> well + and * are associative
23:45:35 <alise> i don't mind super- and subscripts, but why use them for exponentiation?
23:45:46 <alise> well, true
23:45:47 <MissPiggy> so being infix operators expresses that, notationally
23:45:48 -!- tombom has quit (Quit: Leaving).
23:45:49 <alise> but it's still an operator
23:46:03 <alise> and we have plenty of infix ops that aren't associative in programming... like ->
23:46:05 <MissPiggy> I think the reason for exponents is because like
23:46:16 <MissPiggy> a^n * a^m = a^(n + m)
23:46:21 <lament> let's fix math because it's broken
23:46:24 <MissPiggy> there's a kind of homomorphism between * and +
23:46:29 <alise> homoerotic morphism
23:46:36 <MissPiggy> and I think the superscript is a nice way to do it
23:46:42 <alise> maybe you're right
23:46:52 <alise> it means that you can't really have complex expressions on the RHS of ^, though
23:46:53 <MissPiggy> I don't know... someone who thinks harder about syntax coulb probably give a really good explanation
23:46:56 <alise> you can with + and * etc
23:47:01 <alise> so that kind of sucks in a way
23:48:50 <alise> 2^(1/2 + 7/n - 44) for instance
23:48:54 <alise> would just look ugly
23:49:06 <MissPiggy> yeah well it does come up in real situations so deal with it
23:49:19 <alise> why deal with it when i can make the notation better?
23:49:22 <MissPiggy> oh
23:50:09 <alise> I guess ^ is better for short things, though
23:50:16 <alise> 2^n is less cluttered than 2uparrow n
23:50:39 <Sgeo> alise, late pong
23:50:53 <alise> Sgeo: just wanted to host something nm now :P
23:52:35 <alise> my language will be so sweet
23:53:43 <MissPiggy> :P
23:53:45 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:53:58 <oklopol> there's exp() for when the expression is complicated
23:54:45 -!- jcp1 has quit (Remote host closed the connection).
23:55:10 <alise> oklopol: i do not believe in exp()
23:55:57 <oklopol> in what sense?
23:56:16 <oklopol> you don't believe exponentiation is well-defined, if you're using that syntax?
23:56:27 <oklopol> because if so, then i'm totally with ya
23:56:42 <alise> i don't believe in that syntax!
23:56:45 <oklopol> oh
23:56:49 <oklopol> well that's just stupid
23:56:54 <oklopol> anyway i'm asleep now
23:56:55 <oklopol> ->
2010-02-20
00:01:03 -!- FireFly has quit (Quit: Leaving).
00:02:23 <alise> would be nice if functions were invertable
00:02:29 <alise> *invertible
00:03:19 -!- kilimanjaro has joined.
00:03:57 <alise> hi kilimanjaro
00:04:00 <alise> haven't seen you before
00:04:24 <kilimanjaro> it's because I never leave my mother's basement
00:04:30 -!- Libster has joined.
00:04:31 <MissPiggy> kilimanjaro pm
00:04:31 <kilimanjaro> most people haven't seen me for that reason
00:04:36 <alise> well, that's a good entrance
00:04:42 <Libster> hey is my -q off yet
00:04:42 <alise> MissPiggy: what are you pming someone entirely new for
00:04:44 <Libster> sweet
00:04:46 <alise> hm wait Libster joining shortly after- oh dear
00:04:49 <alise> fizzie: ping.
00:04:50 <Libster> hello alise
00:05:00 <MissPiggy> alise I don't see the other guys because I have them on ignore
00:05:14 <kilimanjaro> alise, we probably share similar feelings towards Libster
00:05:15 <alise> libster just joined and is off +q so uh yeah
00:05:16 <MissPiggy> alise I want him to unban me from #math
00:05:19 <Libster> where did we leave off
00:05:30 <alise> kilimanjaro: you might want to leave until he stops the trollaxing :P
00:05:31 <kilimanjaro> who likes Erlang
00:05:39 <alise> Erlang is... alright
00:05:42 <Libster> who likes design patterns?
00:05:52 <alise> I mean it's not /bad/ or anything, competent functional language
00:05:57 <kilimanjaro> there was a project by a guy to implement something like it in gambit scheme
00:06:02 <alise> yeah i know of that
00:06:06 <alise> through chris double
00:06:06 <pikhq> Libster: What, you mean lambda?
00:06:10 <kilimanjaro> because erlang is a wonderful idea bolted onto a crappy sequential language
00:06:13 <pikhq> Lambda's pretty nice.
00:06:24 <alise> pikhq: don't encourage him
00:06:26 <kilimanjaro> alise, the guy who did it used to hang out pretty regularly in #scheme
00:06:27 <kilimanjaro> yome
00:06:34 <pikhq> alise: Heh.
00:06:37 <alise> i'm not such a fan of erlang's concurrency mechanism but eh
00:06:41 <alise> i'm a purely functional kind of weenie
00:06:46 <alise> if it doesn't have beautiful denotational semantics it sucks
00:06:47 <kilimanjaro> do you like CML?
00:06:49 <Libster> isn't that the only reason people use erlang
00:06:53 <Libster> for its concurrency mechanism
00:07:10 <kilimanjaro> i thought CML was really neat but I never actually wanted to program in SML
00:07:15 <alise> cml is, sure i guess
00:07:17 <alise> but still a bit meh
00:07:19 <alise> IMPURE!
00:07:24 <kilimanjaro> pl what do you have in mind
00:07:33 <kilimanjaro> ok*
00:07:47 <alise> wait I have to have a coherent idea?
00:07:52 <kilimanjaro> well I dunno
00:07:54 <alise> uh, fortress has implicit concurrency and that actually seems to work, that's cool
00:07:55 <kilimanjaro> i'm just curious
00:08:02 <alise> haskell's `par` stuff is nice
00:08:09 <kilimanjaro> i'm not talking about concurrency at that level
00:08:15 <alise> as opposed to
00:08:28 <kilimanjaro> I mean at the design level, where the concurrency is actually part of the way you structure the program
00:08:34 <alise> par involves that
00:08:41 <alise> and fortress does too to an extent
00:08:42 <alise> but mostly par
00:08:43 <kilimanjaro> like erlang forces you to look at things in terms of processes & messages
00:08:45 <alise> par is definitely part of the structure
00:08:58 <alise> kilimanjaro: but you don't need to structure things specially if you have pure functions
00:09:02 <alise> there are no side effects to handle the ordering of
00:09:13 <alise> parallelism becomes purely a computational detail
00:10:05 <kilimanjaro> in the year 2000 maybe
00:10:08 <kilimanjaro> when we are living on the moon
00:10:20 <Libster> lol!
00:10:21 <kilimanjaro> but for now real systems with real concurrency & distribution involve people being explicit about that
00:10:25 <MissPiggy> kilimanjaro hello?
00:10:32 <MissPiggy> can someone get him to talk to me at least
00:10:58 <Libster> MissPiggy is clamoring for you to cyber with her
00:11:12 <kilimanjaro> wait is she talking?
00:11:20 <Libster> yeah
00:11:31 <Libster> <MissPiggy> kilimanjaro hello?
00:11:31 <Libster> <MissPiggy> can someone get him to talk to me at least
00:12:08 <kilimanjaro> hi MissPiggy
00:12:22 <MissPiggy> hi kilimanjaro :)
00:12:24 <MissPiggy> lets PM?
00:12:33 * alise is not sure what MissPiggy is attempting to achieve
00:12:37 <kilimanjaro> go for it
00:12:44 <alise> kilimanjaro: you should look at fortress
00:12:49 <alise> it does handle quite a bit of parallelism implicitly
00:12:54 <alise> I'm not denying that we need to specify it
00:13:02 <alise> but we don't need to structure every single module around it in a functional paradigm
00:13:16 <alise> also if you're interested in here-and-now practical solutions what are you doing in this channel?
00:13:35 <Libster> he is trolling you
00:13:40 <Libster> but he's so good at it you can't even tell
00:13:42 <alise> says the troll
00:16:35 <kilimanjaro> alise, well esoteric doesn't have to mean impractical
00:16:43 <alise> sure but still.
00:16:47 <Libster> it does to these people
00:17:19 <alise> I honestly do wonder if Libster doesn't have anything more intellectually satisfying to do.
00:17:49 <Libster> nope this is pretty much as satisfying as anything to me
00:18:34 <kilimanjaro> alise, you could ignore him
00:18:36 <lament> Libster: you're just not very good at trolling
00:18:43 <Libster> yeah i know
00:18:46 <Libster> that's why i'm practicing
00:18:52 <alise> kilimanjaro: doesn't stop him talking
00:18:53 <Libster> nobody is born a good troll, it takes hard work
00:19:12 <lament> point
00:19:15 <alise> i'd ask lament to ban him but if there ever was a fruitless cause of action more likely to result in your own banning that is it
00:19:34 <Libster> what
00:19:43 <Libster> oh
00:19:43 <alise> sorry, I used big words.
00:19:51 <Libster> yes
00:20:02 <Libster> noen of your words exceeded two syllables
00:20:05 <Libster> very impressive
00:20:20 <kilimanjaro> Libsterification
00:20:35 <alise> He's... not even annoying.
00:20:41 <alise> Just boring.
00:20:42 <lament> i disagree
00:20:46 <Libster> thanks
00:20:50 <lament> i think he's pretty annoying
00:20:58 <Libster> me too
00:21:00 <kilimanjaro> anyways I was hoping to talk about esoteric languages
00:21:05 <alise> I mean in the way of a really irritating troll
00:21:12 <alise> he's just like a flea occasionally flying in your vision
00:21:15 <kilimanjaro> does prolog count as esoteric
00:21:20 <alise> sure
00:21:22 <kilimanjaro> these days maybe it should
00:21:54 <MissPiggy> kilimanjaro prolog hardly counts as esoteric :/
00:22:29 <kilimanjaro> do you know how to program in prolog
00:22:30 <alise> ignore MissPiggy she's wrong :)
00:22:41 <kilimanjaro> i was going to implement a unification algorithm once
00:23:00 <Libster> to be honest i was no really trolling
00:23:01 <kilimanjaro> in fact there's a really good paper on how to implement prolog efficiently
00:23:06 <MissPiggy> alise, have you even written a prolog compiler in prolog?
00:23:12 <alise> well, no.
00:23:17 <MissPiggy> so shut up :P
00:23:17 <Libster> you see by typing stupid shit in this channel i am actually coding in my own esoteric language
00:23:23 <alise> why?
00:23:35 <MissPiggy> because shut up?
00:23:38 <alise> poo
00:23:50 <Libster> haha MissPiggy is better at trolling than i am I should leave this to her
00:24:10 <MissPiggy> prolog's not esoteric, you can implement an ALGOL like in 10 lines and to imperative programming in that
00:24:27 <MissPiggy> or you could implement some basic functional programming and do that..
00:24:41 <MissPiggy> (or you could just do actual programming in prolog, which is a lot less silly)
00:25:02 <alise> irrelevant
00:25:07 <alise> esolangs can be easy to turn into non-esolangs
00:25:08 <lament> was any actual program ever written in prolog?
00:25:15 <alise> prolog is sufficiently weird.
00:25:16 <kilimanjaro> here's the paper http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.106.6051&rep=rep1&type=pdf
00:25:16 <cheater4> sup
00:25:18 <kilimanjaro> pretty cool
00:25:22 <MissPiggy> I don't understand how prolog gets this impression
00:25:28 <kilimanjaro> lament, actually imo the #1 application of prolog
00:25:39 <MissPiggy> it's WORSE than people going "lol brackets)))))" about lisp
00:25:43 <kilimanjaro> was tricking the japanese into investing millions of dollars in their "fifth generation computing" project
00:25:46 <alise> MissPiggy: help I've been having dirty thoughts. I want to introduce some sort of impurity in my language for a reason
00:25:50 <lament> kilimanjaro: oh right
00:25:58 <lament> i remember reading about that, pretty impressive
00:26:03 <kilimanjaro> another example of the white man keeping the yellow man down
00:26:09 <MissPiggy> kilimanjaro -- yeah that's a really nice paper, the next step is PVRs Aquarius thesis
00:26:38 <MissPiggy> alise; that will be 10 strokes of the cane!
00:26:57 <lament> Prolog on Prozac
00:27:11 <alise> MissPiggy: but it's for a reason!
00:27:14 <alise> MissPiggy: and it's very restricted!
00:27:27 <MissPiggy> Prolog on Perambulators
00:27:29 <alise> MissPiggy: basically it's to allow you to write memoise: (a->b) -> (a->b)
00:27:42 <MissPiggy> alise, bleh!
00:27:52 <alise> MissPiggy: the idea is basically that you can use impurity, *so long as it cannot escape the function*
00:27:57 <MissPiggy> alise I always disliked that but I know pragmatically useful etc etc
00:28:09 <alise> oh, I know; I'm just trying to think of a way to make it theoretically sound
00:28:27 <pikhq> alise: So, the function itself is pure, but can be stateful internally?
00:28:47 <pikhq> That is... Actually rather Haskell-like.
00:28:57 <MissPiggy> alise what about something like ST? You could have an axiom for it
00:29:24 <alise> ST doesn't let you return a pure function that accesses the impure state
00:30:08 <MissPiggy> alise but the axiom could let you ? maybe
00:30:23 <pikhq> alise: Actually, I think you can. Just have the state within that function's closure...
00:30:24 <alise> Then that would be side-effects without escaping, which is exactly my idea.
00:30:28 <alise> pikhq: Write it, then.
00:31:34 <alise> http://filebin.ca/zorysb/memoise.pdf
00:31:50 <alise> note: new isn't OOP there, I just was playing with the idea of an operator
00:31:56 <alise> that took a type and returned some appropriate "empty" value
00:32:05 <alise> basically mempty. :P
00:33:09 <pikhq> alise: Nope. I'm completely and utterly wrong.
00:33:18 <alise> ascii version of that, btw
00:33:19 <alise> memoise(f: a -> b) -> (a -> b) :=
00:33:19 <alise> let memory := new Map(a, b)
00:33:19 <alise> \x.
00:33:19 <alise> x in memory => memory[x]
00:33:19 <alise> otherwise => memory[x] := f(x)
00:33:22 <alise> pikhq: yep
00:33:23 <alise> :P
00:33:30 <alise> the problem is defining what escaping the function is
00:33:37 <alise> here, the memory[x] lookup is always identical to the first call
00:33:43 <alise> so if the input function is pure (which it must be) the output is
00:33:48 <alise> but that's kinda hard to prove...
00:34:08 <pikhq> alise: Well. Actually, not quite. You could use unsafePerformIO and close over an mvar. :P
00:34:22 <MissPiggy> alise you could just prove it's observationally equivalent to a pure function
00:34:41 <alise> unsafePerformIO gives you unsafeCoerce :: a -> _|_
00:34:43 <MissPiggy> alise since it always gives the same values, as the identity function -- that should work out I think
00:34:43 <alise> _|_ -> a
00:34:53 <alise> ergo unsafePerformIO => _|_
00:35:03 <alise> therefore unsafePerformIO cannot have a value
00:35:11 -!- CESSQUILINEAR has joined.
00:35:11 <alise> MissPiggy: right
00:35:23 <alise> MissPiggy: also, gawp at my amazingly beautiful syntax. :|
00:35:28 <CESSQUILINEAR> ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃
00:35:33 <alise> yo
00:35:43 <lament> what is this, troll #esoteric day
00:35:43 <CESSQUILINEAR> snow mans
00:36:01 <alise> hey cessmaster is our friend man.
00:36:08 <alise> our /friend/
00:36:10 <lament> cess is our friend
00:36:11 -!- oklopol has quit (Ping timeout: 246 seconds).
00:36:20 <CESSQUILINEAR> i am
00:36:28 <Libster> someone should make a ☃ language
00:36:46 <alise> the one fatal flaw of TeX is the lack of \snowman
00:36:50 <kilimanjaro> sorry Libster you cannot apply ☃ in the current evaluation context
00:36:55 <MissPiggy> IF UR FRENDS WITH CESS ☃☃☃☃☃ POST THIS SNOWMAN 10 TIMES ☃☃☃☃☃☃
00:37:12 <CESSQUILINEAR> alise: xetex
00:37:40 <pikhq> alise: memoise f = (\mvar x -> unsafePerformIO $ do if isInMemory mvar x then getMemory mvar x else setMemory mvar x (f x)) $ unsafePerformIO newMVar emptyMemory
00:37:44 <alise> signal/noise = 0
00:37:49 <alise> oops, pikhq just talked
00:38:13 <alise> signal/noise = ω
00:38:28 <alise> pikhq: would you rather write that or http://filebin.ca/zorysb/memoise.pdf
00:38:36 <pikhq> alise: Yours.
00:38:55 <pikhq> What I wrote is probably the scariest Haskell line I've written.
00:39:11 <lament> if you stare at it hard enough
00:39:15 <alise> couldn't you just use an ioref
00:39:16 <lament> the two unsafePerformIOs merge together
00:39:50 <Libster> have any of you gone outside in the past couple of days
00:39:58 <kilimanjaro> what do you mean
00:40:02 <kilimanjaro> outside of what
00:40:03 <MissPiggy> anyway it reeks
00:40:07 <Libster> of the basement
00:40:09 <MissPiggy> don't program with unsafe functions
00:40:12 <MissPiggy> just use ocaml
00:40:14 <kilimanjaro> uhh duhh
00:40:21 <pikhq> MissPiggy: Then everything is unsafe!
00:40:24 <kilimanjaro> i keep all the sodas in the refridgerator
00:40:25 <kilimanjaro> in the kitchen
00:40:29 -!- oklopol has joined.
00:40:32 <MissPiggy> well it's actually not unsafe that's the thing :P
00:40:37 <Libster> you should just move your fridge to the basement
00:40:39 <pikhq> Yes it is.
00:40:40 <Libster> or get a minifridge
00:40:44 <alise> gawd
00:40:45 <MissPiggy> groan
00:40:53 <kilimanjaro> the basement has a freezer where I keep pizza bagels
00:40:55 <pikhq> You modify state. That is horribly unsafe.
00:40:55 <alise> lament: if i ask you to increase signal/noise, you'll just kick me, won't you
00:40:58 <kilimanjaro> I don't have room for sodas
00:41:01 <lament> alise: yes.
00:41:01 <MissPiggy> what are you seriously saying that mutable reference break type safety
00:41:04 <kilimanjaro> I'd have to get rid of some of the pizza bagels
00:41:16 <Libster> wait is this lament's channel?
00:41:17 <alise> lament: how do I phrase a query so that you reading it will cause you to ban Libster?
00:41:19 <pikhq> MissPiggy: No, they break semantic safety.
00:41:21 <alise> (this is metaenquiry, this)
00:41:23 <CESSQUILINEAR> kilimanjaro: put away 40 of em
00:41:25 <kilimanjaro> Libster, lament is an op
00:41:26 <alise> Libster: lament/fizzie's.
00:41:30 <MissPiggy> or are you giving the standard "buuut daaad it's hard to program with mutation!!" argument
00:41:31 <alise> lament is founder now iirc
00:41:31 <Libster> oh
00:41:45 <Libster> well lament isn't gonna ban me unless he doesn't it right now just to spite the fact i just said this
00:41:47 <MissPiggy> is semantic safety something with a formal definition?
00:41:57 <MissPiggy> or is it something you just made up to claim that mutation is BAD
00:41:58 <lament> Libster: *head explodes*
00:42:11 <kilimanjaro> alise, no
00:42:15 <kilimanjaro> andreou is founder
00:42:17 <alise> i sure am glad fizzie is our main op - also, you didn't hear me say this
00:42:20 <pikhq> MissPiggy: Hey, how often do your bugs come from state being modified?
00:42:25 <alise> kilimanjaro: what status does aardappel have again?
00:42:34 <kilimanjaro> less than lament
00:42:35 <pikhq> I'm going to guess "all the ones that compile".
00:42:37 <MissPiggy> pikhq, I almost never program anything let alone things with mutable state
00:42:42 <alise> kilimanjaro: not in the past tho
00:42:47 <kilimanjaro> you can just /msg chanserv access list #esoteric
00:42:50 <MissPiggy> pikhq, but I guess that you are giving the "buuut daaad.." argument now
00:42:51 <pikhq> Oh, you almost never program anything?
00:42:52 <lament> kilimanjaro: i used to be cofounder but then freenode introduced the #/## distinction and changed the cofounder on all # channels to be freenode-staff :(
00:43:05 <kilimanjaro> lament, ahh lame
00:43:10 <pikhq> Then why the hell do you even care?
00:43:11 <pikhq> :P
00:43:19 <lament> i complained to the staff and they're like, well, file a form
00:43:24 <pikhq> (also, WTF? A non-coder in here?)
00:43:25 <Libster> fuck freenode
00:43:36 <Libster> free fucknode
00:43:40 <MissPiggy> pikhq, what should I be programming though?
00:43:42 <alise> MissPiggy is a computer scientist, not a programmer :P
00:43:46 <Libster> that's a good idea
00:43:50 <Libster> i'm gonna start fucknode
00:43:51 <MissPiggy> computING scientist *ahem*
00:43:59 <alise> CSer
00:44:27 <pikhq> MissPiggy: A computing science guy that doesn't cream his pants over purely functional languages?
00:44:31 <MissPiggy> programming is mostly fucking around with GUI libraries
00:44:32 <pikhq> Now that's amazing.
00:44:33 <pikhq> :P
00:44:41 <alise> been there done that
00:44:50 <pikhq> Also...
00:44:50 <alise> you seem to think MissPiggy is advocating imperative langs
00:45:06 <MissPiggy> pikhq oh I dig (pure) fp -- but I don't think it's the whole story
00:45:27 <pikhq> I don't think I've ever futzed with a GUI library more than "bashing out a quick Tk interface".
00:45:38 <MissPiggy> well you are a more skilled programmer than me :)
00:45:42 <alise> MissPiggy: opinion time: using things like actual images, or actual tables, as literals: cool thing, or /coolest/ thing?
00:45:47 <pikhq> Which is only technically programming, really.
00:45:49 <MissPiggy> all I do is fuck around with broken software and give up
00:46:05 <MissPiggy> alise: coolest thing :D
00:46:16 <pikhq> alise: Definitely coolest thing.
00:46:22 <alise> MissPiggy: In my OS, of course, the literals are, well, /literally objects/.
00:46:25 <MissPiggy> alise: I think you need a good editor though.......
00:46:29 <alise> The table is a literal table embedded in the AST.
00:46:36 <alise> The image is a literal image embedded in the AST.
00:46:41 <lament> like a wooden table with legs?
00:46:51 <alise> You can bring up information about them, inquire about them, perform functions on them, etc.
00:47:00 <alise> Edit them with whatever facility exists to edit them.
00:47:24 <pikhq> alise: And I presume this goes even further.
00:47:30 * pikhq imagines an editor literal in a program
00:47:40 <alise> I suppose you could technically do that, but that would be ridiculous.
00:47:58 <alise> Especially as you could just edit the program directly and save yourself a layer of indirection.
00:48:03 <pikhq> I doubt it would be useful for more than, say, automating an editor. But still.
00:48:14 <alise> You'd probably create that programmatically :P
00:48:23 <alise> You could include example Fugue programs as literal sounds
00:48:32 <alise> Play them inline
00:50:32 -!- cal153 has quit (Read error: Connection reset by peer).
00:51:43 <pikhq> Lisp programs as actual lists.
00:51:44 <pikhq> :P
00:53:36 -!- cal153 has joined.
00:55:27 <MissPiggy> http://www.nasa.gov/multimedia/nasatv/index.html
00:58:48 -!- augur has joined.
01:02:47 <alise> i ought to make my os like, now
01:03:53 -!- Asztal has quit (Ping timeout: 240 seconds).
01:05:15 <MissPiggy> what abou plan9
01:05:31 <alise> meh
01:05:36 <alise> it's just a big heap of char *s
01:06:34 <MissPiggy> wchar_T * :P
01:06:38 <MissPiggy> oops
01:06:41 <alise> no it treats files as bytes
01:06:42 -!- oklopol has quit (Ping timeout: 272 seconds).
01:06:43 <pikhq> alise: Not a heap.
01:06:46 <alise> also you mean Rune *
01:06:47 <pikhq> A *tree* of char *s.
01:06:49 <pikhq> :P
01:06:51 <alise> lawl.
01:07:02 -!- oklogon has joined.
01:07:06 <alise> whoa
01:07:52 <alise> i just realised that OSs with changing mutable state are like... continuatiosn.
01:07:55 <alise> *continuations
01:10:29 <MissPiggy> alise I'm watching them fly the shuttle away from the satillite
01:10:40 <MissPiggy> they're still in 0-g
01:10:53 <alise> indeed
01:11:52 <MissPiggy> :(
01:12:06 <alise> what :(
01:12:39 -!- oklogon has quit (Ping timeout: 245 seconds).
01:12:42 <alise> is Z32 for Z_{2^32} accepted mathematical notation? i would guess not, fortress peeps prolly invented it
01:12:44 <alise> bad fortress peeps
01:12:47 <alise> bad!
01:13:22 <MissPiggy> eh it seems fine
01:13:35 <MissPiggy> you have to know fortress anyway
01:13:44 <MissPiggy> so it should not be very confusind?
01:13:46 -!- Libster` has joined.
01:14:00 <alise> type Z(n:Z) := Z_(2^n)
01:14:05 <alise> problem solved
01:14:21 <alise> a neat thing is that you can define functions on Z_n
01:14:22 <alise> polymorphism!
01:16:52 <alise> also, the (a=>b;c=>d;otherwise=>e) conditional syntax is very elegant
01:17:05 <MissPiggy> yeah that's from lisp
01:17:21 <MissPiggy> I like it too
01:17:28 -!- Libster has quit (Ping timeout: 272 seconds).
01:17:39 <pikhq> Lisp? Syntax? What sort of craziness is this?
01:17:44 <alise> m-expressions
01:17:48 <alise> also, not quite
01:17:49 <alise> http://projectfortress.sun.com/Projects/Community/blog/ConditionalExpressions
01:17:59 <alise> lisp was [p=>a; q=>b; elseclause]
01:18:05 <alise> erm
01:18:07 <alise> s/=>/->/
01:18:18 <alise> mccarthy used (p -> a, q -> b, elseclause)
01:18:24 <alise> I prefer (p => a; q => b; otherwise => elseclause)
01:19:41 <pikhq> Darned M-expressions. Being Lisp syntax.
01:19:43 <alise> although with omitted ;s on newlines
01:22:13 <alise> pikhq: LLVM isn't replacing -fvia-c.
01:22:18 <alise> It's replacing /everything/.
01:22:31 <alise> Specifically, NCG -> LLVM.
01:22:37 <alise> That's a replacement arrow.
01:23:03 <alise> "The headline is accurate: GHC is dropping the GCC backend (except for bootstrapping) in favor of David's new LLVM backend, as the performance potential is much better."
01:23:05 <alise> oh, I stand corrected
01:23:52 -!- oklopol has joined.
01:27:20 <pikhq> alise: They may in the future replace the NCG.
01:27:27 <pikhq> *Currently*, it just replaces -fvia-c.
01:27:35 <alise> Will, rather.
01:27:55 <pikhq> (IIRC, they will do so if it's ready in time for .16.)
01:30:28 <alise> MissPiggy: does your CAS have some sort of code dump I can load into my system
01:31:27 <MissPiggy> alise well it um doesn't realy exist yet
01:31:30 <Sgeo> finger `ls /home`
01:31:32 <MissPiggy> I have to sort out the GUI
01:31:37 <alise> i'm fine with text output
01:31:38 <MissPiggy> well the REPL
01:31:49 <alise> i'm fine with command line invocation
01:31:52 <alise> what language is it in?
01:32:40 <MissPiggy> I haven't written it!
01:32:51 <MissPiggy> I can't decide to use haskell or coq
01:33:02 <MissPiggy> (or both)
01:33:17 <alise> well coq is already all that stuff in a way
01:33:26 <alise> i suggest writing it in my lang :P
01:35:35 <Sgeo> What is it?
01:36:18 <alise> a lang
01:37:42 <Sgeo> What's MissPiggy's thing?
01:37:50 <alise> a computer algebra system
01:37:53 <Sgeo> Ah
01:38:08 <Sgeo> What's your language?
01:38:43 <Sgeo> Also, going to play some RoboZZle while I wait for a meeting for a project that I'm supposed to deny the existence of.
01:38:50 <MissPiggy> win 19
01:38:53 <MissPiggy> fffw
01:39:23 <alise> ??
01:39:32 <alise> Sgeo: what project
01:39:46 <alise> let me guess it's some virtual reality shit that you feel some sort of twisted obligation to
01:39:56 <Sgeo> The project that I've mentioned countless times before.. and yes, that's right
01:40:06 <alise> how about just freeing yourself
01:40:15 <Sgeo> How about, I really really want this game to exist
01:40:28 <MissPiggy> whih game?
01:40:29 <alise> from what i've seen its incompetence is so great that there is very little hope of that
01:40:31 <alise> so give up and move on
01:40:38 <alise> MissPiggy: some remake of some shitty old virtual reality "game" he likes
01:40:47 <MissPiggy> virtual reality! :O
01:40:54 <alise> MissPiggy: think second life but worse
01:41:02 <MissPiggy> is it an MMO?
01:41:11 <alise> something like that. except without the fighting, or stats
01:41:26 <MissPiggy> I think that people who want to make an MMO are not going to succeed
01:42:39 <Sgeo> We already have an MMO platform of sorts
01:42:57 <alise> http://www.neuroproductions.be/logic-lab/LogicLab2.swf is fun
01:43:02 <Sgeo> And resources such as the server is all paid for already
01:43:10 <Sgeo> Um, by AWI
01:43:10 <alise> (p xnor q) xor (r nand s) = FUN TIMES
01:44:15 <alise> wish i had a mic to play with it
01:44:52 <Sgeo> I have an RL friend who wants to make an MMO with me though
01:44:59 <Sgeo> And honestly, I'm not too interested in that
01:49:08 -!- oklopol has quit (Ping timeout: 272 seconds).
01:49:25 <Sgeo> With the logic lab, I can only use one of each piece?
01:49:31 <alise> er no
01:49:34 <Sgeo> n/m
01:50:06 <Ilari> xnor? nxor or is it something else?
01:50:41 <Sgeo> It should be possible to make a flip-flop with logic gates, right?
01:51:14 <alise> it has flip flops
01:51:23 <alise> Ilari: presumably it's exclusive nor
01:51:27 <Sgeo> Yes, but those are technically redundant?
01:52:04 <Ilari> Sgeo: Flip flop is just some logic around SR latch, and SR latch is two NANDs or NORs (depending on polarity of signals).
01:52:47 <Sgeo> What does the spinny output thing actually do? I mean, besides spin?
01:53:21 <Ilari> Or maybe it needed two SR latches... I don't remember anymore.
01:55:10 <Sgeo> How does the NOT gate make signal out of thin air?
01:55:41 <alise> magic
01:55:54 <MissPiggy> heh
01:55:58 <MissPiggy> silly program
01:56:01 <Sgeo> 5min before the meeting and no one's here
01:56:03 <Ilari> Sgeo: At least CMOS NOT gate connects output to positive voltage if input is at ground.
01:56:12 <MissPiggy> Sgeo you are good at pretending it doesnt exist!
01:56:27 <Sgeo> MissPiggy, I care very little about the confidentiality junk
01:56:49 <Sgeo> If they really cared, they'd have told us before I started telling everyone I knew
01:57:41 <alise> If they even /care/ about confidentiality in a hobby project, they are abject fools, no more intelligent than children, with a complete misunderstanding of how groups self-organise.
01:57:51 <alise> Their use of C# only bolsters this suspicion.
01:58:38 <alise> They're far more likely to waste arbitrary amounts of your time than to produce anything meaningful. Making a 3D game is /hard/, especially a networked 3D game, and these people appear to be too idiotic to do it.
01:58:56 <alise> Ask yourself if this game being made really has infinite utility, and if there isn't a better way to achieve it than with this hopeless rubbish.
01:59:07 <Sgeo> The "networked 3d" part is already taken care of by the platform, ActiveWorlds
01:59:16 <alise> They still need to write the networking code.
01:59:21 <alise> And don't think that invalidates the rest of what I said.
01:59:44 <Sgeo> Um, no
01:59:57 <alise> Oh, so it magically connects to a socket for them?
02:00:02 <alise> I think not. It's still C# code.
02:00:11 <Sgeo> All of that code is part of Active Worlds
02:00:40 <Sgeo> The actual logic of the game is in a program that does connect to the world, and connecting is simple
02:01:07 <alise> You know, I think there may be real issues underlying your seemingly life-controlling nostalgia...
02:02:34 <MissPiggy> what's the original
02:02:37 <MissPiggy> I want to see the original
02:02:53 -!- lament has quit (Ping timeout: 252 seconds).
02:03:41 -!- lament has joined.
02:04:00 <Sgeo> http://www.youtube.com/results?search_query=Mutation+activeworlds&search_type=&aq=f [the first video there is not that great [it's mine], and Mutation - Mafia has nothing to do with anything]
02:04:02 <alise> active worlds
02:06:11 <MissPiggy> that is so cool
02:06:18 <MissPiggy> it's like 3D IRC
02:06:24 <alise> oh don't /encourage/ him
02:06:31 -!- jcp has joined.
02:11:27 <Sgeo> Whee, no one's there
02:12:13 <MissPiggy> sorry Sgeo
02:12:27 <alise> He means at the "meeting".
02:13:29 <Sgeo> What did MissPiggy think I meant?
02:14:34 <Sgeo> It might be possible that I'm 12 hours late. The guy in charge mixed up AM and PM once before.
02:15:00 <Sgeo> Although I think that's why it's at "11:59" and not "12:00"
02:16:04 <Sgeo> SG-1 now
02:16:55 -!- jcp has quit (Remote host closed the connection).
02:24:34 -!- kilimanjaro has left (?).
02:27:19 -!- MissPiggy has quit (Quit: Lost terminal).
02:27:39 <Sgeo> wasn't an AM/PM issue this time
02:35:29 <alise> http://filebin.ca/djzwuz/on-syntax.pdf
02:35:34 <alise> A little ditty about syntax. Comments welcome.
02:36:34 -!- gm|lap has joined.
02:37:35 -!- Asztal has joined.
02:39:28 <Sgeo> It's a PDF
02:39:42 <alise> Yes, it is.
02:39:51 <alise> Here's zero nickels; go buy a better PDF reader and/or operating system.
02:40:17 <alise> Let me know when you're ready to join every single person in academia, plus some people not. (Okay, so academia loves .ps too, but still.)
02:49:01 <alise> NOBODY LOVSE ME
02:49:20 <lament> :(
02:49:24 <lament> lovse
02:49:27 <lament> .cx
02:49:30 <alise> Yeah, I like that spelling of that word now.
02:49:37 <alise> Oh, shit, didn't even notice that
02:49:37 <lament> alise
02:49:40 <lament> .cx
02:49:53 <alise> Loves sex and alise sex?
02:49:56 <alise> You've got cx on the brain.
02:50:45 <alise> http://images.google.com/hosted/life/l?q=theodore+roosevelt+source:life&prev=/images%3Fq%3Dtheodore%2Broosevelt%2Bsource:life%26ndsp%3D20%26hl%3Den%26sa%3DN%26start%3D80&imgurl=2934f1cc36185de2
02:50:50 <alise> Theodore Roosevelt riding a moose.
02:54:02 -!- gm|lap has quit (Remote host closed the connection).
02:55:05 -!- Asztal has quit (Ping timeout: 276 seconds).
03:03:24 -!- oklopol has joined.
03:10:00 <alise> bye
03:10:03 <alise> see you tomorrow
03:10:45 <Sgeo> Bye
03:14:36 <pikhq> alise: We should write in the pure, untyped lambda calculus.
03:15:13 * Sgeo just offered to give the project head some money because his AW citizenship is going to expire soonish. No cit, no project
03:15:17 <Sgeo> He turned it down
03:27:35 -!- oklopol has quit (Ping timeout: 276 seconds).
04:01:51 -!- CESSQUILINEAR has quit (Ping timeout: 256 seconds).
04:08:28 -!- Libster` has quit (Ping timeout: 272 seconds).
04:33:23 -!- oklopol has joined.
04:55:13 -!- CESSQUILINEAR has joined.
04:58:47 -!- bsmntbombdood_ has joined.
05:01:23 -!- bsmntbombdood has quit (Ping timeout: 252 seconds).
05:11:21 -!- oklopol has quit (Ping timeout: 252 seconds).
05:12:09 -!- oklopol has joined.
05:44:47 -!- bsmntbombdood__ has joined.
05:45:23 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
05:47:54 -!- bsmntbombdood_ has quit (Ping timeout: 272 seconds).
06:02:02 -!- CESSQUILINEAR has quit (Ping timeout: 246 seconds).
06:05:01 -!- Libster` has joined.
06:19:12 -!- oklopol has quit (Ping timeout: 260 seconds).
06:22:26 -!- oklopol has joined.
06:34:46 -!- augur has quit (Ping timeout: 272 seconds).
06:55:09 -!- augur has joined.
06:57:37 -!- oerjan has joined.
07:02:24 -!- pikhq has quit (Read error: Connection reset by peer).
07:03:53 -!- lament has quit (Ping timeout: 248 seconds).
07:04:46 -!- lament has joined.
07:13:34 -!- addicted has joined.
07:17:26 -!- deschutron has joined.
07:18:09 <deschutron> hey guys, is anyone here a fan of SNUSP?
07:25:05 -!- Pthing has joined.
07:26:01 -!- oklopol has quit (Ping timeout: 264 seconds).
07:28:17 -!- oklopol has joined.
07:30:27 <Sgeo> deschutron, apparently you've written quite a bit of extension stuff for it
07:30:37 <deschutron> yes
07:31:57 * Sgeo bibbles a bit at EPARM
07:32:16 <deschutron> i've also written an interpreter for it, including some of the extensions i described on the wiki
07:32:38 <deschutron> and i've written a command shell in an extended form of SNUSP
07:33:58 <deschutron> this week, they got uploaded to the Esoteric Files Archive
07:34:07 <Sgeo> EPARM seems a bit like PSOX [my project which I abandoned, but is mostly done], except designed better possibly
07:34:21 <deschutron> oh really?
07:34:39 <deschutron> what does PSOX do?
07:34:52 <Sgeo> http://esolangs.org/wiki/PSOX
07:35:16 <Sgeo> That PSOX 1.0a1 thing is a bit old
07:36:01 <Sgeo> Oh wait, EPARM is _only_ for command-line arguments?
07:36:34 <deschutron> pretty much
07:36:51 <deschutron> the snusp-start command framework can be used to define other special functions
07:37:04 <deschutron> but EPARM only specifies argument-passing funcionality
07:38:05 <Sgeo> Ah. PSOX has some functionality defined in the spec [Network/HTTP access in particular]
07:38:19 <Sgeo> And was supposed to have File I/O defined, but it was abandoned before then
07:39:19 <deschutron> so PSOX is designed to allow more advanced functionality than reading and writing to a program that only uses stdin and stdout?
07:39:43 <Sgeo> Um, it still reads and writes to a program that only uses stdin and stdout
07:40:12 <Sgeo> Question: Did you manage to make EPARM work on Windows?
07:40:33 <Sgeo> I had trouble figuring out how to do that, that resulted in requiring the program to output the fact that it wants to receive input
07:40:50 <deschutron> no, i didn't try
07:41:50 <deschutron> are you talking about making it so that if you run the program with args on the windows command prompt, it will receive the arguments?
07:42:35 <deschutron> in that case, the windows arguments don't make it to the esoteric program
07:42:58 <deschutron> however, an interpreter could be made that will convert the args
07:43:54 <deschutron> In my snusp command shell, it sends EPARM arguments to a program iff the user tries to run it with arguments. Otherwise it doesn't use EPARM.
07:44:07 <deschutron> given the design of EPARM, that worked pretty well
07:44:33 <deschutron> the programs never have to output the fact that they want to receive EPARM input
07:51:40 -!- pikhq has joined.
07:56:27 <Sgeo> Sorry, was IAW
07:57:13 -!- augur_ has joined.
07:57:22 -!- augur has quit (Read error: Connection reset by peer).
07:57:27 <deschutron> i've also come up with something to give advanced functionality to stdin/stdout programs: i've started writing a kernel wrapper for Linux.
07:57:51 <Sgeo> how does the snusp-start command framework deal with the possibility of a program wanting to do stuff, get input related to that stuff, do more stuff, do regular output, etc. etc. etc.?
07:58:20 <Sgeo> I need to go to sleep now. Good night
07:58:27 <deschutron> ok
07:58:32 <deschutron> good night
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:52 <deschutron> anyway, i mainly came here to plug my newly uploaded programs: Snuspi the SNUSP interpreter, and Snuspatron the extended-SNUSP command shell
08:01:07 <deschutron> They are available in the impl/ and src/ subfolders of http://esolangs.org/files/snusp/ , on the Esoteric Files Archive.
08:03:42 <deschutron> the snusp-start command framework allows a program to be fed meta-data relating to how it is being executed
08:04:41 <deschutron> it can inform the program that a certain protocol is available for it to use, for example
08:06:11 <Sgeo> http://trac2.assembla.com/psox/browser/trunk
08:07:00 <deschutron> thanks. i have already downloaded it via svn
08:07:18 <Sgeo> AH
08:07:20 <Sgeo> *Ah
08:07:38 <deschutron> if a feature can't make use of sending metadata to a program when it is started, then i'm afraid snusp-start commands won't help it
08:08:13 <Sgeo> Um, there might be a bit of a bug in db_utils.py on line 18
08:08:18 <Sgeo> concerning a missing "
08:11:01 -!- augur_ has changed nick to augur.
08:11:25 -!- kar8nga has joined.
08:13:24 <Sgeo> oh, and trunk/ex has a lot of obsolete stuff
08:13:33 -!- Libster` has quit (Ping timeout: 272 seconds).
08:13:46 <deschutron> i just got psoxsimplecat.b to work using your psox program
08:14:08 <Sgeo> :)
08:14:10 <Sgeo> Try online.b
08:14:28 <Sgeo> pikhq made a wget.b, but it's not included in there
08:14:36 <Sgeo> And I should be going to sleep 3 hours ago
08:14:53 <deschutron> what should online.b do
08:14:55 <deschutron> jsut quickly
08:14:58 <deschutron> then i'll let you go
08:15:52 <Sgeo> When it runs, type in a URL (including the http://) and press enter
08:15:57 <Sgeo> It should display the contents
08:16:14 <deschutron> hot dog it did
08:16:45 <Sgeo> :)
08:22:20 <deschutron> this post contains info about my kernel wrapper. Ctrl+F "an arch" to see the basic usage architecture: http://esolangs.org/forum/kareha.pl/1266506523/1
08:23:50 <deschutron> my wrapper uses a basic protocol that has the client program basically setting the sycall arguments and calling linux syscalls by number
08:24:08 <deschutron> conceiveably, a wrapper can be written that uses PSOX.
08:29:37 -!- oerjan has quit (Quit: leaving).
08:32:41 -!- oklopol has quit (Remote host closed the connection).
08:33:56 -!- oklopol has joined.
08:37:55 <cheater4> what's .b ?
08:39:52 <AnMaster> cheater4, file extension?
08:39:55 <AnMaster> brainfuck
08:40:01 <cheater4> ok
08:40:03 <AnMaster> .bf is befunge
08:40:09 <AnMaster> so don't mix them up
08:40:36 <AnMaster> (befunge 98 uses .b98 though)
08:40:58 <cheater4> you guys should reimplement XanaduSpace in brainfuck
08:41:12 <AnMaster> no clue what that is
08:41:46 <cheater4> it's the better alternative to hypertext
08:45:09 <AnMaster> vaporware iirc?
08:45:41 <AnMaster> I think I have read about it somewhere
08:45:52 <AnMaster> cheater4, but go reimplement it yourself
08:46:44 <cheater4> nah, there's a demo out
08:46:53 <cheater4> but it only opens the single demo document
08:46:55 <cheater4> :D
08:47:21 <AnMaster> see, vapourware
09:06:26 -!- MigoMipo has joined.
09:10:05 -!- Asztal has joined.
09:18:29 -!- oklopol has quit (Remote host closed the connection).
09:21:00 -!- oklopol has joined.
09:35:15 -!- kwertii has quit (Quit: bye).
09:52:21 <oklopol> "pikhq: (also, WTF? A non-coder in here?)" <<< i'm a non-coder!
09:56:38 <oklopol> i only code if i absolutely have to, and i never program anything.
10:02:39 -!- kar8nga has quit (Remote host closed the connection).
10:08:05 -!- BeholdMyGlory has joined.
10:11:33 -!- FireyFly has joined.
10:12:56 -!- tombom has joined.
10:26:59 -!- FireyFly has changed nick to FireFly.
10:32:17 -!- Azstal has joined.
10:32:57 -!- Asztal has quit (Ping timeout: 248 seconds).
10:58:04 -!- oklopol has quit (Ping timeout: 245 seconds).
11:34:42 -!- sebbu2 has changed nick to sebbu.
11:36:06 <alise> * Sgeo just offered to give the project head some money because his AW citizenship is going to expire soonish. No cit, no project
11:36:07 <alise> <Sgeo> He turned it down
11:36:28 <alise> a fool, unless he believes that your supply of money is limited enough that that would cause you disutility greater than the project not existing
11:36:38 <alise> or unless he has money with which he is going to renew it anyway
11:41:46 -!- oklopol has joined.
11:49:14 -!- oklopol has quit (Read error: Connection reset by peer).
11:58:40 -!- oklopol has joined.
11:59:45 -!- oklopol has changed nick to oklofok.
12:05:01 -!- oklofok has quit (Ping timeout: 264 seconds).
12:05:34 -!- BeholdMyGlory has quit (Remote host closed the connection).
12:05:56 -!- BeholdMyGlory has joined.
12:11:36 -!- Asztal has joined.
12:12:18 -!- Aszstal has joined.
12:15:23 -!- Azstal has quit (Ping timeout: 276 seconds).
12:15:53 <alise> "The obvious answer is that you took a computational specification of a human brain, and used that to precompute the Giant Lookup Table. (Thereby creating uncounted googols of human beings, some of them in extreme pain, the supermajority gone quite mad in a universe of chaos where inputs bear no relation to outputs. But damn the ethics, this is for philosophy.)"
12:16:17 -!- Asztal has quit (Ping timeout: 260 seconds).
12:20:15 <deschutron> where is that quote from?
12:23:44 <Wareya> http://lesswrong.com/lw/pa/gazp_vs_glut/
12:29:22 -!- oklopol has joined.
12:31:28 <alise> Wareya: why thank you
12:31:31 <alise> mr googler :P
12:31:39 <Wareya> yes
12:32:23 <Wareya> Can someone who doesn't suck at C tell me how to load oa text file into a square array of characters that matches what I'd see in a text editor?
12:32:30 <Wareya> load a*
12:32:39 <alise> You know how to open a file, yes?
12:32:43 <Wareya> yes
12:32:57 <alise> Use getc() to read the file character-by-character; keep counters i and j, initially 0.
12:33:03 <alise> if the char is \n, j++
12:33:06 <alise> and i=0
12:33:10 <alise> otherwise
12:33:17 <alise> chars[i][j] = char;
12:33:17 <alise> i++;
12:33:19 <Wareya> what do I do with the characters I dno't overwrite?
12:33:27 <alise> "Don't overwrite"?
12:33:38 <Wareya> the ones that I don't set in the array
12:33:51 <Wareya> and how would I know what size to have the array be?
12:34:07 <alise> What characters would you not set into the array?
12:34:09 <alise> You mean newlines?
12:34:20 <alise> As I said, increase j++ and reset i to 0 on a newline, then continue to the next character.
12:34:41 <alise> Also, you don't. Either pick a "big enough" value, or use malloc and realloc to adjust the array size as you run out of it.
12:34:52 <Wareya> no, like line 6 being five characters long, what would I do with chars[7][6]
12:34:58 <alise> Wareya: Oh.
12:35:03 <alise> Initialise the array to \0s
12:35:08 <Wareya> ?
12:35:11 <alise> \0 is end-of-string in C
12:35:15 <alise> "\0"
12:35:16 <Wareya> I'm a terrible programmer
12:35:21 <alise> So you could use a line as a string
12:35:33 <alise> re: malloc and realloc "But isn't that hellishly boring and easy to fuck up?" Yes, it is, so don't use C.
12:35:56 <Wareya> actually, I love playing with pointers
12:36:34 <alise> [list(x) for x in open('filename', 'r').read().split('\n')]
12:36:36 <alise> That's it in Python
12:36:38 <Wareya> I'm going to go get soda so that I feel less shitty. Later.
12:36:47 <alise> (Doesn't pad out the lines to all be the same length, but there you go.)
12:37:11 <Wareya> Python is amazing, but I don't feel like learning it because of the syntax constraints/restraints/whatever.
12:37:32 <alise> So learn some other language.
12:37:34 <alise> Like Haskell.
12:37:39 <Wareya> :d
12:37:41 <Wareya> :D
12:37:55 <deschutron> thanks
12:38:01 -!- oklopol has quit (Ping timeout: 264 seconds).
12:38:24 <alise> deschutron: thanks what? :P
12:39:34 <alise> Here's a complete implementation
12:39:35 <alise> lines = open('/dev/stdin', 'r').read().strip().split('\n')
12:39:35 <alise> width = max(len(x) for x in lines)
12:39:35 <alise> table = [list(x.ljust(width)) for x in lines]
12:39:51 <deschutron> the googling :P
12:40:05 <deschutron> i should have googled it myself...
12:40:31 <alise> ah
12:41:33 <alise> yep
12:41:33 <alise> lines = open('/dev/stdin', 'r').read().strip().split('\n')
12:41:34 <alise> width = max(len(x) for x in lines)
12:41:34 <alise> table = [list(x.ljust(width)) for x in lines]
12:41:38 <alise> substitute /dev/stdin for a filename and that works
12:41:41 <alise> blank places considered spaces
12:45:00 -!- MigoMipo has quit (Quit: co'o rodo).
12:49:30 <alise> I wish uorygl was here, so that I could share with him an awful pun.
12:55:57 -!- tombom has quit (Quit: Leaving).
13:07:18 <alise> http://filebin.ca/uekfh/gcd.pdf
13:07:19 <alise> Pretty.
13:15:24 <Wareya> back
13:16:25 <Wareya> don't you think an image would have sufficed? :P
13:17:10 <alise> I typeset it in TeXmacs; producing an image would have been a lot harder than hitting export.
13:17:20 <Wareya> k
13:17:22 <alise> Also, no; this one scales to any size.
13:17:39 <Wareya> svg? :D
13:17:42 <Wareya> I'm kidding.
13:17:45 <alise> Besides, it's how you program in my language. Better get used to it :)
13:18:45 <Wareya> Your language interprets PDF files? :D
13:19:08 <alise> Well, no, it compiles abstract syntax trees. But ASCII source code isn't the done thing, really.
13:19:20 <alise> You'd type that form directly into an editor with keypresses something like:
13:19:32 <alise> gcd(m:ZZ,n:ZZ)->Z:=
13:19:35 <alise> (n=0=>m
13:19:42 <alise> otherwise=>gcd(n,m-n*floor(m/n)))
13:19:47 <alise> And it'd show as that.
13:19:53 <alise> *->ZZ
13:20:05 <Wareya> that works, I suppose
13:20:25 <alise> That form wouldn't be stored, though; just interpreted as editor commands to create an AST.
13:21:03 <Wareya> quick question: Should I use the form of Boat on the wiki page or a minimized version?
13:21:46 <alise> When in doubt, simplify, especially for an esolang. Anything not directly related to the central idea must go; that way, you have to utilise the central idea at all times to create programs, heightening the esotericism. Also, it makes it easier to implement, and cleaner.
13:21:48 <Wareya> said minimized version: http://64.vg/src/48029a6eda8165c6d5a5b6f71a785f1e/raw
13:21:58 <Wareya> okay
13:29:54 <alise> hmm
13:29:59 <alise> there should really be some notat- anyway
13:30:14 <alise> Wareya: I'd drop !=; it's !(e==e)
13:30:20 <alise> I'd drop nand, too, it's !(e&e)
13:30:30 <alise> I'd also drop division; you don't have addition or anything, so why?
13:31:17 -!- CESSQUILINEAR has joined.
13:32:01 <Wareya> because multiplicatin is really hard to to IM
13:32:17 <alise> ??
13:32:20 <Wareya> and I culd see me dropping !=, but it's a real operator
13:32:29 <Wareya> sorry, my o key is being stupid
13:32:32 <alise> to IM?
13:32:33 <alise> what?
13:32:36 <alise> you have no mult
13:32:39 <Wareya> IMO
13:32:44 <Wareya> do*
13:32:47 <alise> ??
13:32:52 <Wareya> to do, in my opinion
13:32:53 <alise> also, just drop != and !& they don't save any chars
13:32:56 <alise> !(e&e)
13:32:57 <alise> (e!&e)
13:33:00 <alise> Wareya: howso
13:33:01 <Wareya> nand?
13:33:30 <Wareya> multiplication is hard to do in an excessive way like brainfuck does, and that's not my goal
13:35:57 <Wareya> I do suppose I shld re-add subratsin and get rid of binary not though.
13:36:01 <Wareya> should*
13:37:08 <Wareya> subtration*
13:38:13 <Sgeo> *gasp*! The comment form on this scam page does nothing! What a surprise!
13:38:59 <Sgeo> It's supposedly moderated, but a quick glance at the source reveals no contact with the server
13:39:23 <alise> Wareya: you have no mult though
13:39:24 <alise> just division
13:39:29 <Sgeo> Also, some of the text makes a reference to what websites seem to think is my hometown.
13:39:31 <Wareya> e/(1/e)
13:39:37 <Wareya> that's e*e
13:39:46 <alise> well, yes
13:39:50 <alise> but division is "complicated"
13:39:53 <alise> brings in reals etc
13:39:54 <alise> just have mult
13:40:07 <Wareya> everything is an integer
13:40:08 <alise> Sgeo: yeah common scam thingy
13:40:11 <Sgeo> *gasp*
13:40:11 <deschutron> ah scam pages...
13:40:14 <alise> Wareya: then what you have is not division
13:40:17 <alise> also, you have no "e"
13:40:25 <Wareya> yes
13:40:26 <Sgeo> I used HideMyAss.com, and now Marie is from Woodstock!
13:40:28 <alise> also, 1/x = 0 if you only have ints
13:40:36 <Sgeo> She's the magical ordinary mom!
13:40:40 <alise> so x/(1/y) cannot be x*y
13:40:42 <Wareya> I said e/(1/e) in the scope of mathematics
13:40:44 <Wareya> not Boat
13:40:45 <alise> because it's x/0
13:40:49 <alise> therefore, / is not sufficient to give *
13:40:56 <alise> therefore you cannot justify keeping / because of multiplication
13:41:02 <Wareya> hey
13:41:11 <Wareya> I forgot to implement shifting
13:41:26 <Wareya> (I'm kidding, there's no reason to have it)
13:42:02 <Wareya> the way that memory is addressed, and the fact that I have division, allows for multiplicatino
13:42:06 <Wareya> on*
13:42:17 <Wareya> and I'm saying that because I can't find a way to prove myself wrong, so have at it!
13:42:32 <deschutron> it actually reminds me of when i visited some Yahoo chat rooms yesterday. There seemed to be a lot of bots there
13:42:36 <Wareya> if you find a serious flaw I agree with then I'll remove division or add multiplication
13:43:56 <alise> Wareya: well x/y in your lang is integer division right?
13:44:07 <alise> i.e. floor(x:RR/y:RR)
13:44:15 <Sgeo> Is the fine print genuine? If it wasn't, would they be shut down by .. some governmental thingy?
13:44:28 <Wareya> I believe so
13:44:38 <alise> -1 < 1/x < 1
13:44:53 <Wareya> <=
13:44:57 <alise> erm, yes.
13:45:02 <Wareya> and yes
13:45:06 <alise> therefore, floor(1/x) = 1 if x = 1; 0 otherwise
13:45:22 <alise> with reals, x/(1/y) = x*y
13:45:26 <Sgeo> "Please also recognize that the story and comments depicted on this site and the person depicted in the story are not real."
13:45:28 <alise> for integers:
13:45:42 <alise> x/(1/y) -> x/(if y = 1 then 1 else 0)
13:45:44 <alise> ->
13:45:50 <alise> if y = 1 then x else (undefined)
13:46:00 <alise> therefore, you cannot use integer division to perform integer multiplication.
13:46:01 <alise> Q.E.D.
13:46:15 <Wareya> not even with binary shifting?
13:46:24 <Wareya> even if it's innacurate?
13:46:59 <Wareya> binary shifting is, itself, multiplication and division of powers of 2.
13:47:16 <alise> x<<y = x*(2^y)
13:47:26 <alise> x>>y = x/(2^y)
13:47:43 <alise> we already have /, so x>>y only adds one useful operation
13:47:55 <alise> 1>>y = 1/(2^y)
13:48:08 <alise> the problem with this is that 1>>y always = 0.
13:48:17 <alise> so, anyway
13:48:22 <alise> how can we do 3*3, let's say
13:48:28 <alise> well, we can't do 3/(1/3)
13:48:31 <Wareya> hang on
13:48:38 <alise> and 3 isn't a power of 2, so we can't use <<
13:48:42 <alise> we can however
13:48:45 <alise> express it as 6/2
13:48:53 <alise> = 6/(2^1)
13:49:02 <Wareya> you can use << to reduce the innacuraccies of integer divisin, can't you?
13:49:10 <Wareya> ion*
13:49:12 <alise> so, that gets us three
13:49:20 <alise> but not in an operation
13:49:26 <alise> we still need a general multiplication
13:49:29 <Wareya> what do you mean?
13:49:31 <alise> but since 3 isn't a power of two
13:49:33 <alise> we can't use <<
13:49:41 <alise> therefore, you cannot multiply in your language without using addition and a loop.
13:49:42 <Wareya> okay
13:49:49 <alise> therefore the division is useless for that purpose
13:50:03 -!- MissPiggy has joined.
13:50:20 <Sgeo> Hm
13:50:22 <Sgeo> http://www.maxmnd.com/index.php
13:50:28 <Sgeo> Hi MissPiggy
13:50:28 * alise tries to think of a name for can-be-equalified
13:50:31 <alise> Equalisable?
13:50:46 <MissPiggy> hi
13:50:48 <Wareya> equalified?
13:50:49 <Wareya> what?
13:50:59 <MissPiggy> decidible equality
13:51:04 <MissPiggy> unifiable
13:51:33 <alise> MissPiggy: so I've decided how to do things like inferring "type-class instances" (not really) in my language
13:52:00 <Sgeo> "Since the trials are completely free, there is no cost or risk to you"
13:52:14 <alise> there is a keyword "implicit"; it is usable as the LHS in a type declaration
13:52:27 <Sgeo> Beyond not realizing that you have to cancel [if the fine print is legit] or scammers doing whatever they want [otherwise]?
13:52:35 <alise> It makes an association with the type on the right and its corresponding definition (specified like `implicit : a = x`)
13:52:39 <alise> the obvious happens
13:53:15 <alise> implicit : (card ∅ = 0) = ...
13:53:31 <alise> implicit : Ring ZZ = ...
13:53:34 <alise> etc
13:54:09 <alise> incidentally in this way we can read "implicit : a = x" as "The proof that a is true is..." so we can view "Ring a" as "a is a Ring" rather than "the Ringy stuff for a"
13:54:13 <alise> even though it's a value
13:56:05 <alise> MissPiggy: http://filebin.ca/djzwuz/on-syntax.pdf
13:56:26 <alise> be warned that the syntax in there might not be so excellent; it was written while tired :P
14:01:06 <MissPiggy> that's a good point in consisent
14:02:09 -!- MigoMipo has joined.
14:02:51 <alise> one-page articles are a nice idea
14:03:41 <alise> MissPiggy: can you think of any problems w/ my implicit idea?
14:03:54 <alise> one is in e.g. Ring when you want to have the ring properties and name them implicit
14:04:00 <alise> then you have to name the type again when defining them
14:04:02 <alise> but i don't see a problem with that
14:04:05 <alise> the type is the name in some sense
14:05:45 <MissPiggy> alise I think that implicit stuff sucks but I didn't want to say :P
14:06:05 <alise> MissPiggy: so you want to specify the equality, ring, ... definitions every single time you use a numeric function?
14:06:07 <alise> that's sweet
14:06:27 <MissPiggy> I've still not figured out how to solve that problem
14:06:38 <alise> well i just solved it, and made it work for proofs as well :)
14:06:47 -!- mycroftiv has quit (Quit: leaving).
14:06:55 <alise> i think it's a good solution; in a way, when you ask for a member of a type implicitly in a function, you're saying "the value implicit_this_type"
14:07:01 <alise> this is just a way of making that actually true
14:11:39 <alise> Hmm.
14:11:51 <alise> Is there something like rings but without the additive inverse?
14:12:02 <alise> i.e. something I can put 0, + and * in and have NN be part of it :P
14:13:07 <alise> Hmm: http://en.wikipedia.org/wiki/Rng_(algebra)
14:25:09 -!- addicted has quit (Ping timeout: 245 seconds).
14:38:32 -!- kar8nga has joined.
14:40:19 -!- oerjan has joined.
14:43:52 -!- deschutron has left (?).
14:53:38 <MissPiggy> http://en.wikipedia.org/wiki/Perverse_sheaf disgusting
15:04:32 <alise> > If Carl Shulman does not let me out of the box, I will Paypal him $25. If he
15:04:32 <alise> > does let me out of the box, Carl Shulman will donate $2500 (CDN) to SIAI.
15:04:38 <alise> Those... are high fucking stakes.
15:04:56 <alise> shit, he released it in the end
15:05:04 <alise> Deewiant: know how you said high stakes?
15:05:19 <alise> this guy donated $2500 2005 canadian dollars to SIAI because he let the AI out
15:05:43 <Deewiant> I didn't say high stakes
15:05:49 <alise> Well, someone did.
15:06:02 <MissPiggy> a wizard did it
15:06:34 <alise> Personally, if I was risking >1000 currency, I would try really fucking hard to be as close as possible to bashing no on the keyboard while staying within the test rules.
15:06:43 <alise> I think everyone else would, too.
15:06:48 <alise> 'part from richies.
15:10:25 <Deewiant> In the next one the human bet $2500 US and won, keeping the AI in the box.
15:10:41 <alise> Yes. Of course. I agree that Eliezer is no god. :)
15:10:53 -!- deschutron has joined.
15:11:10 <alise> But the existence of /anyone/ losing such a challenge with such stakes for them if they lose is striking.
15:11:18 <MissPiggy> but I don't think he did it for the money
15:11:27 <MissPiggy> yeah I agree
15:11:45 <alise> yeah but no matter what i'm doing something for if I think "if i say yes i'll lose $2500 cad" would be pretty motivating
15:11:51 <alise> even if it's towards an organisation you support
15:12:21 <oerjan> <alise> therefore, floor(1/x) = 1 if x = 1; 0 otherwise <-- forgetting negative numbers here?
15:12:37 <alise> oerjan: clearly by 'integers' i meant 'naturals'
15:12:40 <oerjan> not that it makes any difference to the rest of your argument
15:12:50 <alise> :P
15:15:36 <oerjan> although i think that shifting + integer division might allow you to do multiplication in _less_ loop iterations than just addition
15:15:47 <oerjan> if you're clever
15:16:08 <alise> yes
15:16:40 <alise> oerjan: also I thought of a computable variant of ring computing
15:17:03 <oerjan> hm?
15:17:04 <alise> let 1 = identity; let infinity = _|_
15:17:08 <alise> infinity+x = infinity
15:17:13 <alise> infinity*x = infinity
15:17:22 <alise> we already know that 1=identity works
15:17:23 <alise> now
15:17:27 <alise> we need an additive identity
15:17:31 <alise> let 0 = foo
15:17:35 <alise> foo x = magic
15:17:36 <alise> where
15:17:42 <alise> magic + y = y
15:17:47 <alise> f magic = magic for all other f
15:17:51 <alise> tada
15:17:53 <MissPiggy> o_o
15:18:03 <alise> admittedly "magic" is _not_ the most unesoteric value ever dreamed of
15:18:13 <alise> but it's basically like _|_ except warm and cuddly if you add it up :P
15:18:38 <oerjan> so what is infinity + (-infinity) *cough*
15:18:55 <MissPiggy> 0!
15:18:59 <alise> oerjan: can't we just make it rng computing :P
15:19:06 <alise> or whatever ring-without-negative is
15:19:13 <alise> MissPiggy: yes but we need it turing computable :P
15:19:17 <alise> anyway hmm
15:19:24 <oerjan> alise: well yes in fact i think cpressey may done that already
15:19:32 <oerjan> (vague recall)
15:19:34 <alise> he did ring computing with negatives
15:19:38 <alise> in 2007, even
15:19:40 <alise> dunno why he's gone back to it
15:19:43 <oerjan> i mean before that
15:19:55 <alise> http://catseye.tc/projects/burro/doc/website_burro.html
15:19:57 <alise> check it
15:20:11 <alise> anyway
15:20:17 <alise> -0 = 0, obviously
15:20:30 <alise> so we don't need to invert magic which I'm thankful for; I've never seen a value so weird
15:20:43 <alise> -1 is easy
15:20:46 <alise> but -infinity?
15:20:50 <alise> hmm
15:20:54 <alise> the problem is that you can do -(nonterminating)
15:21:01 <alise> so you can't pattern match on -infinity, just like infinity
15:21:13 <alise> oerjan: Clearly, I must ask Wolfram Alpha.
15:21:25 <alise> Apparently, infinity + -infinity = indeterminate.
15:21:34 <alise> Indeterminate could be said to be _|_.
15:21:45 <alise> Therefore, infinity + -infinity = infinity. Therefore, -infinity = infinity.
15:21:48 <alise> Happy?
15:21:48 <Sgeo> How does infinity - infinity = 0?
15:21:52 <Sgeo> Or was that a joke?
15:22:07 <alise> Because x - x = 0; but really there's multiple interpretations.
15:22:11 <alise> Mine is the computable one :P
15:22:16 <oerjan> alise: burro is a group, not a ring
15:22:18 <alise> Even though it sort of breaks the x+-x = 0 no exceptions thing
15:22:28 <alise> I mean, we're not using infinity as /the result/
15:22:37 <alise> We're just saying that infinity + -infinity never yields a value, i.e. it is bottom.
15:22:44 <alise> It just so happens that we have a name for bottom in our language, infinity.
15:22:58 <alise> So we can say that infinity + -infinity = infinity, but really the failure to terminate is at a higher-level in the system: the evaluator.
15:23:12 <alise> Are we allowed to do that? :-)
15:23:22 <oerjan> alise: infinity + -infinity indeterminate is allowed in the extended reals precisely because they are _not_ a ring
15:23:29 <oerjan> (or group, even)
15:23:51 <alise> i was thinking more that infinity + -infinity "has a value"
15:23:53 <alise> it's just unknowable
15:26:43 <alise> "AI-Box Experiment #3 gave the AI a minimum time of four hours. I would
15:26:43 <alise> recommend 4-6 hours for future Experiments. Typing is slower than speech."
15:26:45 <alise> Endurance typing.
15:29:36 <MissPiggy> alise nonstandard analysis
15:29:47 <alise> I prefer bullshitology :)
15:29:53 <alise> I can just throw about terms
15:29:55 <alise> like "unknowable"
15:29:57 <MissPiggy> lol
15:29:57 <alise> and it all works
15:30:11 <MissPiggy> you are missing out on the good stuff though
15:30:24 <alise> infinitesimals are sexy though
15:30:36 <oerjan> alise: some day you'll find a time cube inside your ideas though, and then you will know that all hope is lost
15:30:49 <alise> i already accept the cubic truth
15:31:05 <alise> hey someone come up with a formal mathematical system with -1*-1=-1
15:31:08 <MissPiggy> lolololol
15:31:27 <oerjan> alise: any ring of characteristic 2
15:31:34 <alise> "criticism of non-standard analysis, by Halmos,[who?]"
15:31:37 <oerjan> (including some fields)
15:31:39 <alise> <WIKIPEDIA> You do not know who Halmos is.
15:31:49 -!- kar8nga has quit (Remote host closed the connection).
15:31:59 <oerjan> of _course_ i know who halmos is
15:32:10 <oerjan> oh wait
15:32:14 <oerjan> misread
15:32:14 <alise> yeah it's that guy who made the qed symbol! :P
15:32:42 <Wareya> ?(?(e){c}){c}this is valid, however pointless it is
15:32:43 <MissPiggy> ummmmmm so I should do something today instead of waste it
15:32:47 <alise> MissPiggy: only if it's fun
15:33:06 <MissPiggy> I guess I'll have a bath
15:33:08 <alise> MissPiggy: READ THE ED STORIES (if I try hard enough, will this become a meme on the annoyingness order of PSOX?)
15:33:34 <MissPiggy> oh yeah the ed stories are good, I haven't finished them
15:33:45 <Sgeo> alise, READ THE FINE STRUCTURE STORIES
15:33:54 <alise> NOOOOOOOOOOOOOOOO
15:34:21 <alise> ed stories would make a good film
15:35:10 <alise> (would fine structure?)
15:36:03 * oerjan makes a link to Halmos.
15:36:25 <Sgeo> Um, possibly not. The setting jumps around quite a bit
15:36:35 <alise> <a href="halmos">a link to Halmos</a>
15:36:43 <alise> Sgeo: Does in movies, too :P
15:36:52 <alise> Just might have to rearrange things so there's fewer switches
15:36:53 <oerjan> alise: instead of the [who?], wiseass
15:38:20 <Sgeo> I'd suggest another reason it might not be movie-able, but it would be spoilery
15:39:06 <alise> Sgeo: does everyone die? that's rather acceptable. extremely LURID sex? just call it a porn drama! scenes set in the platonic world of abstract mathematics? *that* could be a problem.
15:39:12 <alise> (only say if it's any of them, not a specific one :P)
15:39:45 <Sgeo> One of those is the case, but it wasn't what I was thinking of in particular
15:39:54 <Sgeo> well, actually, not quite
15:40:21 <alise> is it the first one, or one of the second two?
15:40:43 <Sgeo> One of the second two
15:41:09 <alise> i'm guessing probably _not_ the last one
15:41:17 <oerjan> extremely lurid sex set in the platonic world of abstract mathematics.
15:41:46 <Sgeo> Go read the first Fine Structure story
15:41:54 <alise> Sgeo: the special effects?
15:42:03 <alise> I read up to the one where the girl (I think) can go through matter or something
15:42:08 <alise> literally first page of that
15:42:10 <alise> then stopped
15:43:01 <Sgeo> Oh. I was thinking of Unbelievable Scenes [in relation to your options]
15:43:08 <Sgeo> And it's a guy who can go through matter
15:43:21 <Sgeo> *Unbelievable Scenes in Space
15:43:48 <alise> I do not know what that is.
15:43:56 <alise> Fine Structure used to be unordered, IIRC.
15:44:02 <alise> It was just a collection of stories, then he jiggled them about.
15:45:01 -!- addicted has joined.
15:45:03 <Sgeo> Hm, I just thought of another scene that may be difficult to depict visually
15:45:28 <alise> anyway the going-through-matter thing isn't hard
15:45:34 <alise> that's like, standard effects stuff nowadays :P
15:45:42 <Sgeo> I'm not thinking of that
15:45:47 <alise> Sgeo: "And then, HE SAW PI."
15:45:49 <alise> "ALL OF IT"
15:45:52 <Sgeo> No
15:46:12 <Sgeo> Oh, you mean using a narrator to depict stuff?
15:46:25 <alise> No, I just meant ridiculously impossible things :P
15:46:42 * Sgeo is watching SG-1
15:47:06 <alise> Also, now I have "Pi" in my head.
15:47:54 <MissPiggy> all of it?
15:48:18 <alise> http://www.songmeanings.net/songs/view/3530822107858715600/
15:48:27 <alise> http://www.youtube.com/watch?v=Mfr7xG6smhU
15:50:12 * Sgeo saw that
15:50:28 <Sgeo> Can't remember if that's the same song that..
15:50:31 <Sgeo> yes, it is
15:54:59 <alise> why do most languages lack such basic things as reading/writing numbers to arbitrary bases in the stdlib
15:55:20 <alise> it seems people just thought of the most common operations and never thought to parametrise them... or even to look at mathematics
15:56:39 <alise> MissPiggy: hey you know we were talking consciousness?
15:57:00 <alise> I found a paper by Nick Bostrom supporting two identical but separate brains experiencing two separate qualia-thingies
15:57:05 <alise> it's good
15:57:09 <alise> I think I've changed my opinion because of it
15:57:10 <alise> http://www.springerlink.com/index/V1X24V662H5726W5.pdf
15:57:29 <alise> ugh wants you to log in
15:57:29 <alise> sec
15:57:37 <alise> i have the pdf here
15:57:58 <alise> MissPiggy: http://filebin.ca/watags/experience.pdf
16:00:25 <MissPiggy> you have a springer link accout o_O
16:00:31 <alise> no :)
16:00:47 <alise> i have a computer that can access lesswrong.com, and i read a post where someone linked to a pdf
16:00:58 <alise> but uhh if you're impressed by that, I guess I should get an account
16:01:17 <alise> :P
16:01:32 <alise> but yeah... fuck non-open papers
16:01:34 <alise> with a chainsaw
16:02:16 * MissPiggy doesn't believe in qualia :(
16:02:22 <alise> well you don't have to
16:02:31 <alise> it's just being used as a less ambiguous term for consciousness
16:02:44 <alise> but qualia /are/ real; you know how you agreed totally with that Dennett video?
16:02:54 <MissPiggy> "A hardcore physicalist might be tempted to dismiss this question as being merely
16:02:57 <MissPiggy> terminological. However, I believe that we can give content to the question by
16:02:58 <alise> well - [Daniel Dennett writes that qualia is "an unfamiliar term for something that could not be more familiar to each of us: the ways things seem to us."]
16:03:01 <MissPiggy> linking it to significant ethical and epistemological issues."
16:03:03 <alise> Dennett believes in qualia :)
16:03:25 <MissPiggy> alise well Dennet said various obviously true statements collect in such a way that it gave him a strong context to argue against religion
16:03:29 <alise> qualia != metaphysics
16:04:03 <alise> i think you have a faulty heuristics system; it has some sort of rule "attempts to define aspects of consciousness => probably metaphysics => don't believe with high probability"
16:04:15 <alise> but that's not true
16:04:20 <MissPiggy> well I don't actually know what metaphysics is..
16:04:25 <alise> bullshit :P
16:04:31 <alise> like "we have a soul"
16:04:46 <MissPiggy> "It is not easy to say what metaphysics is" -- groan
16:04:47 <alise> often "consciousness" is substituted for "soul" but they don't /mean/ what sane people mean when they say consciousness
16:04:49 <alise> they mean "soul"
16:05:17 <alise> rest assured that though there are metaphysical idiots who believe in a wrong thing they call qualia, qualia as Bostrom and Dennett mean it is just a term for our conscious experiences
16:05:33 <MissPiggy> alright
16:05:42 <alise> so don't be put off the paper by it :)
16:06:29 * MissPiggy is not quite sure if I read this whole paper.. the punchline will be "1 + 1 = 2"
16:06:50 <alise> hey, it makes a good argument
16:07:39 <alise> btw a fun thing: if you have an AI that has total flexibility with its thoughts; i.e. it can cause any brain state it likes, but it's in an environment with no colour, it can't experience red (apart from sheer chance by randomly modifying itself, ofc; but that's insanely risky and idiotic) right up until you explain how its brain processes colour
16:07:53 <alise> then it can just modify its thoughts so that it is experiencing the red quale :)
16:08:12 <alise> (basically a spin on the Mary's room thought experiment, http://en.wikipedia.org/wiki/Mary%27s_room, but that's intended to (unconvincingly) show that qualia are non-physical)
16:08:20 <alise> [[Later, however, he rejected epiphenomenalism. This, he argues, is due to the fact that when Mary first sees red, she says "wow", so it must be Mary's qualia that causes her to say "wow". This contradicts epiphenomenalism. Since the Mary's room thought experiment seems to create this contradiction, there must be something wrong with it. This is often referred to as the "there must be a reply" reply.]]
16:08:29 <alise> which is, yeah, exactly, debunked
16:09:04 <alise> also... is = on types well-defined?
16:09:16 <alise> i think so, but it makes me uncomfortable because from what i can tell it depends on what names you use
16:09:47 <alise> i.e. (data a = Z | S a) ≠ (data a = Zero | Succ a)
16:09:51 <alise> because they're different values
16:10:04 <alise> but then two (data a = Z | S a)s in different modules are not equal, either
16:10:11 <alise> so only Foo = Foo
16:10:28 <MissPiggy> alise hehe! I have tried to work hard on that problem :D
16:10:42 <alise> so I guess equality for types is "are they the same pointer" :)
16:11:05 <MissPiggy> they are isomorphic, so you can't prove they aren't equal... but both assuming they are and assuming they aren't are consistent axioms
16:11:18 <alise> well they aren't equal because Z is a distinct value to Zero
16:11:24 <alise> for instance
16:11:28 <alise> S Z -> S Z
16:11:30 <alise> but
16:11:34 <alise> S Zero -> type error
16:11:40 <alise> so Zero cannot be of the same type as Z
16:11:45 <alise> therefore type-of Zero != type-of Z
16:11:47 <MissPiggy> "Moreover, there are many local stochastic processes, each one of which has a non-
16:11:51 <MissPiggy> zero probability of resulting in the creation of a human brain in any particular
16:11:54 <MissPiggy> possible state.2"
16:11:57 <MissPiggy> what ... the... hell....
16:11:57 <alise> basically I want to make * an instance of Collection
16:12:01 <MissPiggy> I bet this guy plays the lottery (and thinks he might win)
16:12:09 <alise> MissPiggy: no he doesn't
16:12:26 <alise> he's a bayesian rationalist, just like eliezer
16:12:38 <MissPiggy> so why is he making this argument :|
16:12:52 <alise> have you considered that perhaps you're wrong rather than him?
16:12:53 <MissPiggy> ""Therefore, if the universe is indeed infinite then on our current best
16:12:53 <MissPiggy> physical theories all possible human brain-states would, with probability one, be
16:12:57 <MissPiggy> instantiated somewhere,"
16:12:59 <alise> that would resolve that cognitive dissonance
16:13:02 <MissPiggy> how can I possibly be wrong?
16:13:19 <alise> well, considering the probability that you might be wrong even for something you think is true is a key part of rationalism :p
16:13:31 <alise> also, he's right; it isn't *necessary* but it's probability 1
16:13:33 <MissPiggy> he says: infinite number of trials for a nonzero probability ==> it has happened
16:13:45 <MissPiggy> but that's so silly!
16:13:57 <alise> because all N-sized parts of space = all other adjacent N-sized parts of space is incredibly unlikely
16:15:07 <alise> roconnor has written some interesting things on when it's actually rational to play the lottery http://r6.ca/blog/20090522T015739Z.html
16:15:17 <MissPiggy> yeah I have read that
16:16:19 <MissPiggy> interesting technique this guy uses...
16:16:23 <alise> who
16:16:31 <MissPiggy> <paragraph of nonsense>. This is another reason to accept Duplication. *20
16:16:32 <alise> O'Connor or Bostrom?
16:16:38 <MissPiggy> Bostrom
16:16:50 <alise> MissPiggy: well see now all I'm doing is wishing I hadn't linked it to you because all you're doing is, every few statements, making a quote and calling it nonsense
16:17:01 <MissPiggy> alise don't you agree ??
16:17:05 <alise> and I think /both/ of us are less happy/enlightened for this
16:17:21 <alise> MissPiggy: that's irrelevant; you're not even considering the arguments or attempting to rebut them for what I can see, which makes me less happy
16:17:33 <alise> because such analysis of arguments is a good thing regardless of if they're true or false
16:17:39 <alise> i thought it was, at the very least, interesting
16:18:17 <oerjan> alise: http://en.wikipedia.org/wiki/Structural_type_system
16:18:30 <oerjan> "Some languages may differ on the details (such as whether the features must match in name)."
16:18:35 <alise> mm
16:18:43 <alise> imo:
16:18:45 <alise> <alise> S Z -> S Z
16:18:45 <alise> <alise> but
16:18:45 <alise> <alise> S Zero -> type error
16:18:45 <alise> <alise> so Zero cannot be of the same type as Z
16:18:45 <alise> <alise> therefore type-of Zero != type-of Z
16:18:45 <alise> proves it
16:18:54 <MissPiggy> so.. there is some kind of "quantum physics" thing.. which appears probabilistic and it might randomly generate a human being
16:19:05 <alise> if we have (data a = b) meaning "the data type a, constructors are: b"
16:19:05 <MissPiggy> AND the universe is infinte
16:19:12 <MissPiggy> therefore all possible humans have been created
16:19:19 <alise> MissPiggy: it's a _thought experiment_
16:19:27 <alise> for the purpose of argument
16:19:32 <alise> oerjan: and we want to work out (data a = x) == (data b = y)
16:19:40 <alise> we should substitute a with b in x, and b with a in y
16:19:45 <alise> and make sure that "works"
16:19:56 <alise> S Z -> S Z, so substitute the a in a with a b: S Zero -> type error
16:20:00 <alise> therefore the types cannot be equal
16:20:10 <MissPiggy> this deduction is false though, consider the different between a NORMAL and non-NORMAL IRRATIONAL number
16:20:19 <alise> MissPiggy: he did not say
16:20:23 <alise> therefore all possible humans have been created
16:20:24 <alise> he said
16:20:28 <alise> all possible humans exist with probability 1
16:20:35 <alise> if you don't understand the different, read up on probability.
16:20:38 <alise> *difference
16:20:45 <alise> because it's /very/ important
16:20:55 <MissPiggy> well I know what probability 1 means
16:21:03 <alise> then you must agree that it is true
16:21:07 <MissPiggy> if an event has probability 1 _it has happened_
16:21:11 <alise> you are wrong
16:21:12 <MissPiggy> right?
16:21:46 <MissPiggy> if an even has probability 1, every part of the sample space satisfies that event
16:21:47 <alise> P(x)=1 -> P(not x)=0
16:21:52 <alise> MissPiggy: NO!
16:21:56 <alise> that is frequentist statistics
16:22:02 <alise> we're talking _bayesian_ statistics
16:22:15 <oerjan> MissPiggy: this leads easily to a contradiction if you have uncountably many alternatives
16:22:38 <alise> http://en.wikipedia.org/wiki/Frequency_probability
16:22:38 <alise> http://en.wikipedia.org/wiki/Bayesian_probability
16:22:43 <alise> http://en.wikipedia.org/wiki/Probability_interpretations
16:22:48 <MissPiggy> ah so this is something to do with aleph_1 (or more)
16:22:50 <alise> (Bayesian rulez frequentist droolz, also)
16:22:53 <MissPiggy> uncountable sample space
16:22:56 <alise> MissPiggy: no
16:23:03 <alise> we're not talking frequentist statistics dammit :)
16:23:27 * oerjan only talks kolmogorov probability, really
16:23:48 <alise> bostrom is (almost certainly; I haven't read it directly, but it's very unlikely he isn't) a bayesian
16:23:56 <alise> so obviously he's talking nonsense per frequentist statistics
16:24:18 <MissPiggy> when he says the universe is infinite, which infinity does he mean?
16:24:22 <alise> >_<
16:24:29 <MissPiggy> or does it not matter?
16:24:33 <alise> you're focusing on the most irrelevant detail of a thought experiment
16:24:47 <alise> the point is that if the universe doesn't have bounds on space, P(every possible brain exists)=1
16:24:57 <MissPiggy> alise hey I don't know why it's irrelevant, the argument just sounds completely ridiculous to me and I'm trying to understand why not
16:25:01 <alise> therefore we assume that this is true, and use this as a thought experiment to show why Unification is nonsensical
16:25:32 <MissPiggy> I don't agree with the derivation of P(every possible brain exists)=1
16:25:49 <alise> the problem is that we're at a roadblock here
16:25:52 <MissPiggy> suppose in a 1mx1mx1m cube there is 0.1% chance of it happening
16:25:57 <alise> go read everything, I dunno, Eliezer Yudkowsky's written on bayesian statistics
16:26:00 <alise> then come back
16:26:02 <MissPiggy> and there is countably infinite of these blocks
16:26:13 <alise> MissPiggy: but space isn't divided into blocks
16:26:18 <pikhq> Then clearly there is a 100% chance of it having already happened.
16:26:20 <pikhq> :P
16:26:27 <MissPiggy> pikhq, how do you derive that?
16:26:41 <alise> the chance of there being some x*y*z region of space, and all adjacent x*y*z regions being identical, recursively
16:26:47 <alise> now *that's* low
16:26:59 <alise> now extend that to infinite space...
16:27:01 <MissPiggy> alise, why does it matter if space is in blocks or not?
16:27:01 <alise> and it has probability 0
16:27:08 <alise> MissPiggy: because it invalidates your argument
16:27:10 -!- scarf has joined.
16:27:17 <MissPiggy> alise, isn't that what you want?
16:27:36 <alise> MissPiggy: I don't want people to have invalid arguments; I want them, and me, to be right about everything
16:27:46 <alise> so if you make an invalid argument I will tell you why it is wrong in the hopes that you will fix your argument
16:27:50 <alise> or accept the opposite
16:27:57 <alise> scarf: hi
16:28:05 <MissPiggy> so okay, space isn't divided into 1mx1mx1m blocks
16:28:06 <scarf> hi
16:28:15 <MissPiggy> so what does it mean 'space is infinite'?
16:28:31 <alise> >_<
16:28:37 <pikhq> Just that.
16:28:39 <oerjan> MissPiggy: imo (not bothering to read the actual argument) you assume independence of blocks that are too far away to interact. then countable infinitely many each with 0.1% chance does give probability 1 of at at least one (in fact, infinitely many) hitting that 0.1% chance
16:28:46 <alise> there are no bounds on the valid values of x,y,z in an (x,y,z) coordinate
16:28:46 <MissPiggy> pikhq, that's a nonsense statement though
16:28:47 <alise> MissPiggy: happy?
16:29:00 <MissPiggy> alise, if so then I dont see why we can't divide space up into blocks
16:29:05 <alise> you can
16:29:08 <pikhq> MissPiggy: What's nonsense about space being an infinite 3-space?
16:29:08 <MissPiggy> okay lets do that
16:29:09 <alise> but you can't postulate their inherency
16:29:16 <MissPiggy> ohh
16:29:25 <MissPiggy> you are saying there might be some dependent probability between them
16:29:58 <MissPiggy> when he says there is a nonzero probability, I wonder if he means a finite probability or an infintesimal one
16:29:58 <alise> your classification of space into blocks will be purely arbitrary is what I am saying
16:30:05 <alise> so you can only use them as notational shorthand
16:30:09 <alise> not as part of an argument itself
16:30:13 <alise> MissPiggy: finite
16:30:25 <alise> nonzero probability of x = P(x)>0
16:30:47 <MissPiggy> so lets assume the universe is divisible into countably many 1m^3 blocks, and each one has a proability 0.1% of creating a human brain
16:31:01 <alise> creating?
16:31:01 <MissPiggy> in two of these blocks there is what? 0.2% probability?
16:31:04 <alise> space doesn't "create" anything
16:31:11 <MissPiggy> "Moreover, there are many local stochastic processes, each one of which has a non-
16:31:15 <MissPiggy> zero probability of resulting in the creation of a human brain in any particular
16:31:18 <alise> yes
16:31:18 <MissPiggy> possible state.2"
16:31:20 <alise> PROCESSes
16:31:21 <alise> not space
16:31:38 <alise> MissPiggy: just a question
16:31:44 <MissPiggy> okay lets cut space into countably many cells, each of which one of these processess are happening
16:31:44 <alise> do you even know what bayesian probability is?
16:31:52 <alise> if not... we cannot possibly have this conversation
16:31:55 <MissPiggy> in two of these blocks there is 0.02% probability?
16:32:29 <MissPiggy> and if we have a million blocks there is 1000000x0.1% probability (which is greater than 1!)
16:32:40 <MissPiggy> and if we have countably infinite there is a divergent probability
16:32:44 <alise> http://en.wikipedia.org/wiki/Bayes%27_theorem anyway
16:32:54 <MissPiggy> so this guys argument is basically nonsense, agreed?
16:32:56 <alise> read it, learn, *then* come back
16:33:03 <MissPiggy> I know bayes theorem alise
16:33:11 <alise> MissPiggy: no, I am almost certain you have no idea about how bayesian probability works
16:33:15 <oerjan> MissPiggy: you really need to assume independence of the blocks to do a meaningful calculation here, imo
16:33:18 <alise> I do not agree
16:33:34 <MissPiggy> alise I will admit I got Yudkowskis breast cancer experiment wrong
16:33:42 <oerjan> in which case you take 1 - (1-0.02%)^n
16:33:46 <alise> stop spelling his name wrong
16:33:55 <MissPiggy> sorry
16:34:01 <alise> :p
16:34:43 <alise> i fucking hate zooko's triangle!!
16:34:45 <alise> i want my free lunch
16:34:56 <oerjan> MissPiggy: you don't _sum_ probabilities unless they are mutually exclusive events
16:34:57 -!- oklopol has joined.
16:35:24 <MissPiggy> oerjan I was assuming they are mutually exclusive, that seems to be in line with the idea of a 'local' event
16:35:51 <oerjan> MissPiggy: mutually exclusive means it cannot happen in two blocks simultaneously. that seems nonsense.
16:35:59 <MissPiggy> oh
16:36:03 <MissPiggy> I meant independent sorry
16:36:16 <oerjan> MissPiggy: in which case summing is even more wrong :D
16:36:27 <oerjan> <oerjan> in which case you take 1 - (1-0.02%)^n
16:36:56 <oerjan> um, 0.1% there
16:38:12 <alise> I wish there was a mathematical hierarchy for things like sets and lists like there are for numbers
16:38:15 <alise> monoids, rings, etc etc etc
16:38:19 <alise> collections, sequences, etc etc etc
16:38:20 * oerjan also sees absolutely no reason to bother with frequentist vs. bayesian distinctions for this argument
16:38:32 <MissPiggy> oh so if we have blocks A and B, then for it to happen in A only: 0.1% * (1-0.1%) (same for B only), and for it to happen in A and B it's 0.1%^2, so the chance of it happening in at least one is 2(0.1%)(1-0.1%)+(0.1%)^2
16:38:40 <alise> as it is the reasoned language designer must come up with his own hierarchy :(
16:38:56 <alise> oerjan: well, i was mentioning it /in case it came up/ because if it does it will be bayesian statistics being used
16:39:06 <oerjan> ok
16:40:20 <MissPiggy> okay maybe this would work better if I shut up an alise explains the paragaph? please :)
16:40:21 <oerjan> MissPiggy: which conveniently is easier to calculate by multiplying the probabilities of it _not_ happening in either
16:40:37 <alise> MissPiggy: I wouldn't know how to explain it; I can understand it but not serialise my understanding function.
16:40:49 <MissPiggy> alise so it's bullshit
16:40:50 <alise> Especially as I'm not sure exactly what you don't get. I'll leave the dirty work to oerjan. :)
16:40:56 <alise> MissPiggy: That does not follow; you are being irrational.
16:41:11 <MissPiggy> this pretending to be a rationalist thing is kind of lame
16:41:34 <alise> Yes, because we were talking about statistics and because I am saying you are being irrational, I am some sort of fake imposter rationalist!
16:41:39 <oerjan> MissPiggy: now if we have n blocks, the chance of it happening in none is (1-0.1%)^n, which -> 0 when n -> infinity
16:41:40 <alise> Yawn.
16:42:04 <MissPiggy> oerjan how do you derive that formual though
16:42:20 <MissPiggy> say the chance of it happening in one block is p,
16:42:22 <oerjan> it's the definition of independence in probability theory
16:42:24 <MissPiggy> then chance of not happening is 1-p
16:42:35 <MissPiggy> the chance of not happening in both blocks is (1-p)^2
16:42:43 <oerjan> P(A and B) = P(A)*P(B)
16:42:51 <MissPiggy> so that works out nicely,
16:43:03 <MissPiggy> but let us consider, the chance of it happening in two blocks = 2p
16:43:07 <MissPiggy> why is that false?
16:43:26 <MissPiggy> or, can I use the divergence of that (when the number of blocks reaches infinity) to show this statement is bogus
16:43:48 <oerjan> it's false because you can only sum exclusive events
16:44:25 <deschutron> that alise, Miss Piggy argument is better when you read alise as being voiced by kermit the frog
16:44:36 <alise> :-D
16:44:50 <oerjan> P(A or B) = P(A) + P(B) - P(A and B), if P(A and B) != 0 then it's not just the sum of each
16:45:15 <MissPiggy> hm
16:45:18 <MissPiggy> but say, p = 0.1
16:45:27 <MissPiggy> ohh
16:45:29 <MissPiggy> okay yeah
16:45:42 <MissPiggy> so right the probability is 1!
16:46:18 <oerjan> yay!
16:46:19 -!- oklopol has quit (Remote host closed the connection).
16:46:24 <alise> yay!
16:46:27 <alise> now we are all happy!
16:46:50 <alise> hmm
16:47:08 <alise> if I want to be able to do things like "foo : card empty = 0" (card=cardinality)
16:47:14 <alise> then I need = to return a type
16:47:17 <alise> so I need True/False to be types
16:47:31 <alise> so I need Bool be a type whose values are the type True and the type False
16:47:45 <alise> and True to be a type with one value, refl or whatever
16:47:50 <alise> and False to be a type with no values, i.e. Void
16:48:00 <alise> which also lets us use False as the constructivist _|_
16:48:13 <alise> e.g. (p, Not p) -> False
16:48:30 <alise> hmm, hey
16:48:36 <MissPiggy> so what does probability one mean?
16:48:36 <alise> can you constructively prove that False -> a?
16:48:43 <alise> MissPiggy: that the probability of it not happening is zero
16:48:50 <MissPiggy> alsie that's the induction scheme for the empty type
16:49:07 <alise> if you have a value of False it's bottom but that doesn't mean you can treat it as an a
16:49:10 <MissPiggy> alise no what does it mean
16:49:11 <alise> (because `data False`)
16:49:17 <alise> MissPiggy: well it means exactly that
16:49:22 <MissPiggy> :/
16:49:34 <alise> oerjan: you give him a boring, actually useful explanation
16:49:35 <oerjan> MissPiggy: calculating with probabilities is easy, understanding what they mean is i guess where you need to get into that interpretation stuff
16:49:38 <alise> (bayesian this time since it /does/ matter)
16:50:02 <oerjan> alise: except i hate that stuff myself... :D
16:50:15 <alise> define that stuff
16:50:25 <oerjan> "that interpretation stuff"
16:50:29 <alise> 1. Frequentists talk about probabilities only when dealing with experiments that are random and well-defined. The probability of a random event denotes the relative frequency of occurrence of an experiment's outcome, when repeating the experiment. Frequentists consider probability to be the relative frequency "in the long run" of outcomes.[1]
16:50:30 <alise> 2. Bayesians, however, assign probabilities to any statement whatsoever, even when no random process is involved. Probability, for a Bayesian, is a way to represent an individual's degree of belief in a statement, given the evidence.
16:50:40 <alise> MissPiggy: you probably think of #1 as the intuitive meaning of probability thus your confusion
16:50:45 <alise> but bostrom as a bayesian means #2
16:50:56 <MissPiggy> alise, my confusion what that I didn't know how to add probalities :|
16:51:01 <alise> [[An impossible event has a probability of 0, and a certain event has a probability of 1. However, the converses are not always true: probability 0 events are not always impossible, nor probability 1 events certain. The rather subtle distinction between "certain" and "probability 1" is treated at greater length in the article on "almost surely".]]
16:51:03 <alise> http://en.wikipedia.org/wiki/Almost_surely
16:51:16 <alise> MissPiggy: your confusion because you thought prob = 1 = has happened
16:51:23 <oerjan> <alise> can you constructively prove that False -> a? <-- is an axiom i think
16:51:27 <alise> basically though just read http://en.wikipedia.org/wiki/Almost_surely
16:51:44 <alise> oerjan: Haskell is a constructivist logic, right, if you make sure never to use _|_?
16:51:57 <MissPiggy> trying to treat haskel as a logic is a mistake
16:51:57 <alise> You can't do `data False` and then write a `False -> a` in Haskell, at least
16:52:00 <alise> I know
16:52:08 <MissPiggy> just pretend haskell lets you do
16:52:14 <MissPiggy> magic f = case f of {}
16:52:15 <alise> but if you require a proof of totality in some other lang, and remove undefined and unsafePerformIO and unsafeCoerce and the FFI
16:52:27 <alise> then it should be a constructivist logic I think
16:52:29 <MissPiggy> which is actually valid in Coq
16:52:35 <alise> I guess so
16:52:44 <alise> anyway my main point is
16:53:07 <alise> thetype True = {refl:True}
16:53:10 <alise> thetype False = {}
16:53:11 <alise> thetype Bool = {True:*, False:*}
16:53:18 <MissPiggy> I:True is used in Coq
16:53:20 <alise> does this make sense? and is it a good idea?
16:53:21 <alise> or is it a pitfall
16:53:22 <oerjan> alise: avoiding full recursion is more important i should think
16:53:26 <MissPiggy> Bool doesn't make sense
16:53:31 <alise> oerjan: thus the requirement of a proof of totality
16:53:34 <oerjan> (well you need that to construct _|_ of course)
16:53:46 <alise> MissPiggy: hmm are you sure?
16:53:54 <MissPiggy> to me it doesn't make sense!
16:53:56 <alise> if you have unions you can't say that a value is of only one type
16:54:07 <alise> so it's not a stretch to have True be both a * and a Bool
16:54:15 <alise> it just means that
16:54:17 <alise> Bool is-a-subset-of *
16:54:21 <alise> and there's nothing wrong with that!
16:54:32 <MissPiggy> maybe yeah I suppose you could make that work..........
16:54:41 <MissPiggy> it's a bit scary though
16:54:53 <alise> and it means we can stop doing everything at both value and type level every time we want to get our dependent shizzit on
16:55:04 <alise> MissPiggy: yeah but I want * to be a Collection anyway :-)
16:55:27 <alise> so i'm sort of already in the direction of "hey these are actually quite ... tangible"
16:56:44 <MissPiggy> probability 1 only means surely in the case of a finite space?
16:56:57 <oerjan> MissPiggy: countable works too
16:57:06 <MissPiggy> oh!
16:57:20 <MissPiggy> so it's sort about aleph_1
16:57:23 <oerjan> probabilities are lebesgue measures, so countably additive
16:57:51 <oerjan> s/lebesgue measures/measures/
16:58:23 <oerjan> (invented by lebesgue, in any case)
16:58:38 <oerjan> (and adapted to probabilities by kolmogorov, iirc)
16:58:47 <MissPiggy> okay
16:59:14 <MissPiggy> probability 1 doesn't really tell you anything then :|
16:59:25 <MissPiggy> because who knows which infinite we have
16:59:59 <oerjan> MissPiggy: well you can pretend it means surely, as long as you only test countably many cases
17:00:25 <MissPiggy> haha my mistake from earlier was soooo stupid
17:00:44 <MissPiggy> if you flip a coin twice it doesn't mean you will have seen heads and tails
17:00:53 <oerjan> and for brains, well assuming you have some limited precision, it seems like there would be only finitely many possibilities that could fit into a 1m^3 cube
17:02:04 <oerjan> that's my intuition on that anyway - the distinction between probability 1 and surely is only needed because of uncountability stuff
17:02:42 <oerjan> so _in practice_ it means surely
17:02:44 <MissPiggy> okay!
17:02:53 <MissPiggy> wait
17:03:02 <MissPiggy> in practice?? what about this situation
17:03:21 <MissPiggy> we are assuming the universe to be divisible into countably many blocks?
17:03:44 <MissPiggy> I don't think there's any evidence for that rather than uncountable
17:03:59 <oerjan> MissPiggy: well you could just take a countable subset of them...
17:04:23 <MissPiggy> yes but that wouldn't cover the whole universe
17:04:48 <oerjan> well no, but you need only to get all your brains into part of it to prove they exist :D
17:04:49 <MissPiggy> wait this is paradoxical
17:04:58 -!- addicted has quit (Quit: Konversation terminated!).
17:05:09 <oerjan> it needs to be a random subset, i guess
17:05:09 <MissPiggy> how can you have it certinaly happening in a countable subset, but we're not sure if it will in an uncountable one..
17:06:14 <oerjan> of course if it's not random, everything's out the window anyway, just pick a subset that does _not_ include all possible brains (say, because you explicitly look for only one type)
17:06:44 <MissPiggy> blegh! now I know how finitists feel!
17:06:50 <oerjan> heh
17:06:58 <MissPiggy> I just want to say "but you can't apply this probability argument to INFINTE SPACE"
17:07:08 <MissPiggy> but I don't want to give up on understand this either
17:07:42 <MissPiggy> I mean really this argument can prove anything has probability 1...
17:08:15 <MissPiggy> I could argue in the same way there is a guy who /is capable of and is right now/ about to tell me something through some kind of interstellar mobile phone
17:08:24 <oerjan> MissPiggy: http://en.wikipedia.org/wiki/Kolmogorov's_zero-one_law
17:08:25 <MissPiggy> but this it doesn't happen...
17:08:42 <alise> no you can't
17:09:06 <deschutron> that might be because the universe isn't actually infinite.
17:09:09 <alise> you could prove that in an infinite universe there is probability 1 that there is a planet exactly like earth somewhere except where that is happening
17:09:28 <alise> but you're almost certainly not on that earth, and the universe might not even be infinite.
17:09:30 <MissPiggy> deschutron yeah, but for this argument he is assuming it is infinite (which infinity?)
17:09:33 <alise> and it's still only probability-1
17:09:35 <alise> not _does_ exist
17:10:01 <MissPiggy> alise why can't I show there's someone who is about to phone ME? why do they have to be phoning someone else
17:10:08 <alise> say, do set theorists have a symbol for the set of all sets? or has russell scarred them away from that
17:10:16 <alise> another place where type and set theory clash :P
17:10:19 <MissPiggy> that person is in another block
17:10:33 <alise> MissPiggy: they could phone you if you had an interstellar phone that somehow did FT
17:10:35 <alise> *FTL
17:10:41 <alise> but since it's about *the size of space*
17:10:43 <MissPiggy> yeah so maybe FTL is impossible
17:10:45 <alise> you can't apply it to earth
17:10:48 <alise> which is very finite, and small
17:11:07 <MissPiggy> so this is evidence against FLT :P
17:11:10 <alise> the whole point is that there is probability one that ****somewhere**** in space there is a copy of this planet except with that guy
17:11:15 <alise> about to phone that earth's you
17:11:35 <alise> I wish there was a nice symbol for the holes in mixfix operators
17:11:56 <deschutron> in an infinite universe, there would be copies of both versions - you being phoned and you not being phoned.
17:12:10 <deschutron> as long as the phoning follows the laws of physics :P
17:13:22 <alise> not there would be
17:13:26 <alise> there is probability 1 that there would be
17:13:27 <alise> also dammit
17:13:30 <alise> I really want some sugar for
17:13:41 <alise> (a:t)->(b:t)->(c:t)->...->foo
17:13:45 <oerjan> alise: a bullet?
17:13:48 * MissPiggy gives alise a bowl of sugar
17:13:53 <alise> like for types, forall a b c. is that for t=Type
17:14:00 <alise> maybe I should just generalise forall
17:14:02 <MissPiggy> x^bar : t^bar -> foo
17:14:11 <alise> and let you do forall (a:somethingotherthanType)
17:14:13 <MissPiggy> vector notation like in physics
17:14:18 <alise> forall (a:t) (b:t) (c:t).
17:14:24 <alise> in fact forall a implies an implicit argument
17:14:29 <alise> which I'm fine with it's equivalent
17:14:37 <MissPiggy> forall (a b c : t).
17:14:45 <alise> yes
17:14:53 <oerjan> MissPiggy: actually that link above was maybe not quite what i thought it was, http://en.wikipedia.org/wiki/Law_of_large_numbers#Strong_law is closer
17:15:28 <alise> assoc : (a:m) → (b:m) → (c:m) → (a·b)·c = a·(b·c)
17:15:29 <alise> becomes
17:15:58 <alise> assoc : ∀a b c : m. (a·b)·c = a·(b·c)
17:16:01 <alise> which is equiv. to
17:16:10 <alise> assoc : {a:m} → {b:m} → {c:m} → (a·b)·c = a·(b·c)
17:16:22 <alise> i guess the a/b/c will be inferred to be 0
17:16:28 <alise> since from inside monoid that's the only m you know exists
17:16:29 <alise> well
17:16:35 <alise> you also know that 00 exists :P
17:16:42 <alise> and so on
17:16:47 <alise> hmm
17:16:49 <alise> MissPiggy: maybe I should just let you do
17:16:57 <alise> (a, b, c : m) -> ...
17:17:04 <alise> it just feels weird to have them all on one side of a -> so to speak
17:17:05 <MissPiggy> whats the poit of the commas?
17:17:07 <alise> because it nests rightwards
17:17:15 <alise> MissPiggy: otherwise it's pattern matching :P
17:17:17 <alise> it's like writing
17:17:20 <alise> let a b c = m
17:17:26 <alise> defines a function a
17:17:39 <alise> e.g. you can do (Just a : Maybe) -> ...
17:18:09 <MissPiggy> ok
17:18:44 <alise> the problem is that (a,b:t)->s is (a:t)->((b:t)->s)
17:18:51 <alise> whereas it looks like something confined to the LHS
17:19:09 <alise> the problem with the forall one is that they become implicit arguments, which usually isn't desired
17:19:22 <alise> also, you only really use this for propositiosn
17:19:27 <alise> *propositions
17:19:45 <alise> you wouldn't say () : (_, _ : m) -> m
17:19:47 <alise> because that's just ridiculous
17:19:51 <alise> so i dunno
17:20:30 <alise> http://r6.ca/blog/20030729T014400Z.html
17:20:31 <MissPiggy> m -> m -> m
17:20:45 <alise> apparently agda uses (a:t)(b:s)->r
17:20:47 <alise> erm
17:20:48 <alise> coq
17:20:49 <alise> not agda
17:20:53 <alise> not sure what it translates to though
17:22:15 <MissPiggy> it's not valid
17:22:34 <MissPiggy> (f:Morphism)(g:Morphism)->(Range g)=(Domain f)->Morphism
17:22:38 <MissPiggy> has to be rewritten as
17:22:41 <MissPiggy> forall (f:Morphism)(g:Morphism),(Range g)=(Domain f)->Morphism
17:22:43 <MissPiggy> to be accepted
17:22:58 <alise> well it is a post from 2003
17:23:01 <alise> so maybe it was valid then
17:23:09 <alise> ok so coq adopts my notation too
17:23:16 <alise> forall that is
17:23:22 <alise> I just simplify it to let you name the type only once
17:23:41 <alise> and uses a comma to separate forall and the rhs, I like that
17:25:56 <alise> wait
17:26:05 <alise> naturals and rings and stuff can be monoids under addition /or/ multiplication
17:26:25 <alise> does this mean I shouldn't name the identity and thingy functions 0 and *? :(
17:26:39 <MissPiggy> additiveMonoid
17:26:42 <MissPiggy> :P
17:26:56 <MissPiggy> I use e and &
17:26:56 <MissPiggy> e&e = e
17:27:04 <alise> yeah
17:27:05 <alise> but
17:27:13 <alise> it'd be so orgasmically awesome to be using monoids every time you multiply
17:27:29 <Sgeo> Hm.
17:27:32 <alise> "Aliselang: You *do* need to know category theory to get things done in THIS one!"
17:27:38 <Sgeo> The date on this thing has to be wron
17:27:40 <Sgeo> *wrong
17:27:52 <Sgeo> erm, time
17:28:38 <alise> MissPiggy: also it wouldn't be the type of monoid that changes
17:28:40 <alise> just two different instances :)
17:28:50 <alise> who says you can't have two values of type Monoid ZZ
17:30:42 <alise> but damn
17:30:49 <alise> i really was all COOL SHIT about calling 'em 0 and *
17:30:53 <alise> i feel so humbled
17:31:19 <alise> i am ensaddened
17:31:50 <oerjan> um you know 0 goes with + and 1 with *, usually...
17:32:32 <alise> i know
17:32:38 <alise> but I was literally going to have:
17:33:08 <alise> Monoid : Type -> Type
17:33:08 <alise> Monoid a = {
17:33:08 <alise> 0 : a
17:33:08 <alise> (*) : a -> a -> a
17:33:08 <alise> assoc : forall (a:m) (b:m) (c:m), (a*b)*c = a*(b*c)
17:33:09 <alise> ...the identity element property that I can't have here because it leads to saying 0*x=x...
17:33:11 <alise> }
17:33:32 -!- deschutron has left (?).
17:33:36 <oerjan> O_o
17:34:43 <alise> what
17:34:52 <alise> i'm
17:34:53 <MissPiggy> Moniod m (&) e = Semigroup m (&) /\ Identity m (&) e ?
17:34:56 <alise> i think i'm totally wrong and confused
17:35:04 <alise> because something is going wrong. in my brain.
17:35:05 <alise> MissPiggy: lol
17:35:13 <MissPiggy> olol :(
17:35:43 <alise> hmm
17:35:45 <oerjan> alise: hey don't have a stroke, now
17:35:47 <alise> I should have a semigroup
17:35:56 <alise> ...also i need some sort of sugar for defining a bunch of "instances"
17:36:08 <alise> otherwise you'll have like 50 instance values of a few lines each
17:36:16 <alise> just to get + - and * :P
17:36:41 <alise> oh great, and I need magmas too if I really want to get down 'n dirty
17:36:48 <alise> kill me now
17:37:18 <MissPiggy> the problem is even worse
17:37:26 <MissPiggy> it doesn't seem like a linear heirarchy...
17:37:33 <alise> Magma : Set -> Set
17:37:33 <alise> Magma a = {
17:37:34 <alise> () : a -> a -> a
17:37:34 <alise> }
17:37:42 <alise> Most useful typeclasswhatever ever?
17:37:44 <alise> Yes!
17:37:45 <MissPiggy> how about
17:37:52 <alise> In fact you know what?
17:37:57 <MissPiggy> Magma a (•) = True
17:38:01 <alise> (Magma a) is equivalent to (a -> a -> a)
17:38:13 <alise> MissPiggy: lol you've adopted my set/type idea
17:38:30 <MissPiggy> have I !!
17:38:35 <alise> yes
17:38:38 <alise> Set = a -> Bool
17:39:06 <MissPiggy> aahaha
17:39:08 <alise> Anyway, since Magma a ≡ (a -> a -> a), I don't need it.
17:39:12 <MissPiggy> yes yo udo !
17:39:18 <alise> At the most, I need Magma = a -> a -> a
17:39:22 <alise> MissPiggy: I don't.
17:39:30 <alise> { x : t } ≡ t
17:39:45 <alise> Magma a = { () : a -> a -> a }
17:39:55 <alise> ∴ Magma a ≡ a -> a -> a
17:40:20 <alise> So at the most, I need Magma a = a -> a -> a; a simple alias. But I think it is easier just to write a -> a -> a.
17:41:59 <alise> MissPiggy: So why do I need Magma?
17:42:38 <alise> Say...
17:42:44 <alise> I run into problems using = for my relationships like associativity.
17:42:51 <alise> Specifically, I require a definition of equality for that set.
17:42:57 <alise> I should instead use ≡, I think.
17:43:15 <alise> ≡ : a -> a -> IsEquivalent a a
17:43:21 <Sgeo> Hm
17:43:24 <alise> so basically (a ≡ b) is a proof that a and b have identical semantics
17:43:29 <alise> (misspiggy: is this well defined?)
17:43:40 <Sgeo> Is there a page where I can see what it's like to visit an SSL website with a revoked certificate?
17:43:57 <Gracenotes> ≡ tends to be used for definitions, no?
17:44:28 <alise> i don't use it for definitions, so
17:44:30 <Gracenotes> = is when you apply not just definitions, but also properties and axioms
17:44:33 <alise> and it does mean "is equivalent to"
17:44:47 <Gracenotes> maybe semantics proofs has it otherwise
17:45:01 * alise tries to think of a nice, non-* binary op name for the semigroup operation
17:48:46 <alise> Semigroup : Set -> Set
17:48:46 <alise> Semigroup a = {
17:48:47 <alise> (something) : a -> a -> a
17:48:47 <alise> assoc : forall (x:a) (y:a) (z:a), (xy)z === x(yz)
17:48:47 <alise> }
17:49:12 <alise> set theory is hotttt
17:51:00 <MissPiggy> no it's not!!!!!!!!!
17:51:04 <alise> WHY NOT
17:51:14 <MissPiggy> http://en.wikipedia.org/wiki/Perverse_sheaf
17:51:31 <alise> what's wrong with perversity
17:52:38 <alise> MissPiggy: i want all these lovely proofy things but i want partiality :( is there a therapy group for me
17:54:15 -!- kar8nga has joined.
17:54:30 <MissPiggy> yes you do need therapy
17:54:33 <MissPiggy> at least you can admit that..
17:54:45 <MissPiggy> :)
17:54:53 <alise> Set_1 in agda is Set->Set right?
17:55:00 <MissPiggy> no don't think so
17:55:02 <MissPiggy> Set : Set1
17:55:06 -!- SimonRC has quit (Ping timeout: 265 seconds).
17:55:06 <MissPiggy> Set1 : Set2
17:55:13 <alise> ah
17:55:24 <alise> so Set_n is "set of {sets*n+1}"
17:55:26 <alise> Set : set of sets
17:55:29 <alise> Set1 : Set of (set of sets)
17:55:36 <alise> so Semigroup : Set1 means that Semigroup is a set of sets
17:55:43 <alise> so (a -> Bool) -> Bool
17:55:56 <alise> so Semigroup a means "is the set 'a' a Semigroup?"
17:56:08 <alise> now if only I understood the definition :)
17:56:59 <alise> hmm wait
17:57:34 <alise> so does {Semigroup a} -> mean "a set 'a' that is a semigroup"?
17:57:44 <alise> so then Semigroup a :: Set
17:57:53 <alise> but then is the resulting set a, or the semigroup stuff?
17:57:55 <alise> this is confusing
18:00:29 <alise> lol
18:00:37 <alise> MissPiggy: look at agda's stdlib lib/Algebra.agda
18:00:53 <alise> whenever there's controversy
18:00:54 <alise> they're just like
18:00:56 <alise> oh we'll put both in
18:01:00 <alise> SemiringWithoutAnnihilatingZero
18:02:13 <alise> I find it strange how many types Agda folk like to hide their things behind
18:02:16 <alise> _∙_ : Op₂ Carrier
18:02:26 <alise> why is this better than _∙_ : Carrier -> Carrier -> Carrier?
18:02:42 <MissPiggy> good question
18:02:44 <MissPiggy> idk
18:03:01 <alise> i guess it's so that you repeat less and have "more semantic" types
18:03:04 <alise> but I just find it obscures the meaning
18:03:17 <alise> also,
18:03:19 <alise> _≈_ : Rel Carrier zero
18:03:21 <alise> that is so a copout
18:03:30 <alise> just including "some sort of kinda equal thing that you want to be for the associativity"
18:03:42 <alise> a ≡ b ftw
18:04:00 <alise> _≡_ : a -> b -> Bool
18:04:04 <alise> (except you use it as a type, obviously)
18:04:13 <alise> just exploiting that Bool is True-or-False
18:04:22 <alise> and we use ≡ to prove two expressions equivalent
18:04:49 <MissPiggy> what's wrong with
18:05:05 <MissPiggy> Identity : forall T : *, T -> T -> *
18:05:22 <alise> what's the result?
18:05:28 <MissPiggy> reflexivity : forall (T : *) (t : T), Identity T t t
18:05:51 <MissPiggy> clearly if a and b have the same normal form, then reflexivity _ a : Identity _ a b
18:06:43 <alise> oh, agda calls the identity element of a monoid ε
18:06:44 <alise> good choice
18:07:52 <alise> A monoid whose operation is commutative is called a commutative monoid (or, less commonly, an abelian monoid).
18:07:52 <MissPiggy> what's wrong with e
18:07:57 <alise> heh, I've only ever heard abelian monoid
18:08:05 <alise> MissPiggy: well e is just an approximation of \epsilon used because we can't type e :P
18:08:16 <alise> also, because naming a parameter e is... not uncommon
18:08:18 <MissPiggy> but we use e in math-on-paper :[
18:08:31 <alise> and it'd be nice to still be able to get at monoid identity while doing so
18:08:39 <alise> also, MissPiggy, what is the result of Identity?
18:08:42 <alise> i.e. the * in -> *
18:09:17 <MissPiggy> * is Set
18:09:28 <alise> yes
18:09:29 <MissPiggy> A : * means A is a type
18:09:30 <alise> but what is its _value_
18:09:37 <alise> what set is it for some T
18:09:37 <MissPiggy> * is in normal form
18:09:41 <alise> and the two values
18:09:49 <MissPiggy> Identity T t t : *
18:09:54 <MissPiggy> 3 : Nat : *
18:10:05 <alise> Identity Nat 3 2 : *
18:10:11 <MissPiggy> yes
18:10:18 <alise> so what is its use?
18:10:22 <MissPiggy> ???
18:10:26 <MissPiggy> what's whats use
18:10:29 <alise> I guess as part as "reflexivity : forall (T : *) (t : T), Identity T t t"
18:10:33 <alise> *as part of
18:10:36 <MissPiggy> that's the constructor
18:12:01 <alise> also
18:12:04 <alise> Unifiable : Set → Set
18:12:04 <alise> Unifiable a = {
18:12:04 <alise> _=_ : a → a → Bool
18:12:04 <alise> leibniz : ∀(f:a→b) (x:a) (y:a). x = y → f x = f y
18:12:04 <alise> }
18:12:07 <alise> too far?
18:12:24 <alise> the issue is that you could have something with multiple internal representations that have different values, _but you don't expose the constructors_
18:12:27 -!- SimonRC has joined.
18:12:30 <alise> so from outside the module you can prove leibniz
18:12:38 <alise> but from inside, where you define the Unifiable instance, you cannot
18:12:46 <alise> so you can make it Unifiable
18:12:49 <alise> but only from inside a different module :)
18:13:00 <MissPiggy> that's like quotients
18:13:01 <alise> also, proving it may be *spectacularly* hard for some things, I expect
18:13:14 <MissPiggy> you can divide a type by an equivalence relation to make a 'smaller' type
18:13:31 <alise> like howso
18:14:36 <alise> hey I just had a thought
18:14:47 <alise> often in my dependent musings I wish to write something like
18:15:13 <alise> optimise : (a:ProgramInSomeLang) -> ((b:ProgramInSomeLang), a `hasTheSameSemanticsAs` b)
18:15:20 <alise> but then you need to unpack the tuple and all and it's woeful to use
18:15:20 <alise> BUT
18:15:22 <alise> you could do
18:15:31 <alise> (substituting Prog and `equiv` for those verbose names)
18:15:41 <alise> optimise : (a:Prog) -> {a `equiv` b} -> (b:Prog)
18:15:51 <alise> i.e. force the *caller* to prove that the optimisation preserves semantics
18:15:53 <MissPiggy> backwards binding!!
18:15:57 <alise> since it's implicit You Don't Have To Worry About It
18:16:01 <alise> MissPiggy: is that a yay or a yikes !!
18:16:22 <alise> proving something about the result of a function before you can get to it... hehehe
18:17:23 * alise gets a silly idea of having Axiom be a type
18:17:52 <alise> Axiom : *; Axiom = { foo : *, bar : foo }
18:18:01 <alise> except you can make non-axiomatic foo/bar pairs with it
18:18:02 <alise> :(
18:18:09 <alise> so clearly we need some way to determine whether something is axiomatic :P
18:18:37 <alise> Axiom : *; Axiom = { prop : *, axiomatic : isAxiomatic prop }
18:19:41 <alise> MissPiggy: so is backwards binding nice or evil or sth?
18:19:48 <MissPiggy> BOTH
18:20:01 <alise> MissPiggy: how's it evil?
18:20:05 <alise> like what horrible things does it let you do
18:20:25 <MissPiggy> I don't know it's just hard
18:20:40 <alise> to impl?
18:20:49 <alise> slow to typecheck or sth?
18:21:06 <MissPiggy> stop writing sth :/
18:22:28 <alise> sorry
18:22:29 <alise> old habit
18:23:07 * MissPiggy cries and weeps
18:23:41 <oerjan> for the sth time, stop writing sth
18:23:52 <MissPiggy> lLOL
18:24:49 <alise> MissPiggy: so is it
18:25:42 <alise> data Identity : (a:*) -> a -> a -> * where reflexivity : forall (x:a). Identity a x x
18:25:52 <alise> so
18:26:02 <alise> reflexivity : Identity NN 3 3
18:26:06 <alise> but not reflexivity : Identity NN 3 2
18:26:54 <alise> i guess what I'd want then is something that transforms that into the set True or False so I can prove it like any other true/false thing in my lang
18:27:59 <alise> MissPiggy: also in your "forall (x:a)" is that basically an implicit argument
18:28:02 <alise> I think it is I think it iiiiiiis :P
18:28:03 <MissPiggy> huh?
18:28:09 <alise> huh what
18:28:14 <MissPiggy> forall {x:a}, is implicit
18:28:19 <MissPiggy> but forall (x:a), is not
18:28:19 <alise> right
18:28:25 <alise> but it can be implicit
18:28:31 <alise> and I don't see why it shouldn't be
18:28:34 <alise> data _≡_ : {a:Set} → a → a → Set where
18:28:34 <alise> reflexivity : {x:a} → x ≡ x
18:28:51 <alise> (substitute another symbol for \equiv if you want, but you get the idea)
18:28:54 <MissPiggy> yeah sure make it implicit if you want that's JUST SYNAX
18:28:54 <MissPiggy> SYNTAX*
18:28:58 <alise> yes
18:29:04 <alise> that way your proof if inferrable can just be "reflexivity" I think
18:29:11 <alise> hmm
18:29:14 <alise> so is refl = reflexivity?
18:29:18 <alise> I don't actually know why refl is called refl
18:29:23 <MissPiggy> refl-exivity
18:29:25 <MissPiggy> :DDD
18:29:26 <alise> right
18:29:29 <alise> but I mean
18:29:33 <MissPiggy> it's expressing that x = x (forall x)
18:29:35 <alise> people seem to use the name refl a lot in different types
18:29:43 <MissPiggy> (which implies symmetry and transitivity)
18:29:43 <alise> or are they all just specific instances of this?
18:29:54 <alise> like I'm used to thinking of implicit arguments as being filled in with refl.
18:30:06 <MissPiggy> oh well I don't know which examples you mean -- I haven't seen peopl ues refl much
18:30:37 <alise> perhaps
18:30:40 <alise> http://en.wikipedia.org/wiki/Quotient_set
18:30:41 <alise> so
18:30:41 <alise> we have
18:31:01 <alise> data Frac : * where Over : Z -> Z -> Frac
18:31:02 -!- sshc has quit (Ping timeout: 246 seconds).
18:31:21 <alise> so the equivalence class of (Over 1 2) in Frac is
18:31:32 <alise> {Over 1 2, Over 2 4, Over 3 6, ...}
18:31:32 <alise> right?
18:31:54 <alise> so to make the rationals we do
18:32:08 <alise> (a,b) ~ (c,d) = (a*d == b*c)
18:32:16 <alise> and then use that ~ on Frac
18:32:18 <alise> and get the rationals?
18:35:19 <alise> so
18:35:20 <alise> data _≡_ : {a:Set} → a → a → Set where
18:35:20 <alise> refl : {x:a} → x ≡ x
18:35:25 <alise> is correct, then
18:35:31 <alise> (although you'll probably bitch about the symbol I used :))
18:35:38 <alise> i hope at least that
18:35:40 <alise> Unifiable : Set → Set
18:35:40 <alise> Unifiable a = {
18:35:41 <alise> _=_ : a → a → Bool
18:35:41 <alise> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
18:35:41 <alise> }
18:35:43 <alise> is unobjectionable enough to you
18:37:34 <olsner> ah, fried blood <3
18:37:56 <alise> blech
18:38:00 <alise> we are no longer friends
18:38:40 <olsner> :P
18:38:53 <alise> coming up with a syntax for record types is hard
18:39:08 <alise> you can have
18:39:09 <alise> record Unifiable : Set → Set where
18:39:09 <alise> _=_ : a → a → Bool
18:39:09 <alise> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
18:39:19 <alise> but then 1. it's confusing alongside the GADT syntax
18:39:26 <alise> 2. you never specify that a is your agument!
18:39:28 <alise> *argument
18:39:48 <alise> incidentally i should probably find another name for Leibniz's law rather than implying that Leibniz was literally a proof
18:41:32 <olsner> I thought you were still on my topic and constructing proofs about blood pudding, but then I started actually reading :)
18:43:06 <alise> :DD
18:43:31 -!- sshc has joined.
18:45:54 <alise> you know I prefer it when MissPiggy is angry at me and tells me what i should be doing instead
18:46:19 <alise> hmm
18:46:27 <alise> I guess if I want
18:46:28 <alise> _=_ : a → a → Bool
18:46:28 <alise> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
18:46:42 <alise> from inside something with a non-identical constructor equality thingybob that nevertheless satisfies that outside of the module
18:46:52 <alise> then I need to actually have a notion of "modules" in the type system
18:46:57 <oerjan> as a vampire, alise does not approve of frying blood before eating
18:47:03 <alise> so that leibniz can express the privateness of it or something
18:47:11 <alise> so that we can say "outside the module, (leibniz's law)"
18:47:50 <olsner> oerjan: as a norwegian, do you approve?
18:48:07 <oerjan> yes
18:48:16 <oerjan> although i haven't had it in a long time
18:50:02 <alise> MissPiggy: i have a feeling this thing is going to end up with me having a type-safe model of the language itself, and the logical system its type system isomorphs to, inside the language/type system
18:50:21 <alise> and making proofs by proving that it's true inside that model, and then lifting it out
18:50:23 <alise> xD
18:51:05 <oerjan> wouldn't that tend to risk hitting godel's theorem
18:51:26 <alise> I don't think so, proving (P in this system) should be identical to proving P, shouldn't it?
18:51:28 <oerjan> (having a model of the whole means the whole is consistent)
18:51:34 <alise> nope
18:51:36 <MissPiggy> it's loeb? no
18:51:38 <alise> the model could depend on the inconsistent parts
18:51:42 <alise> :)
18:52:50 <oerjan> i mean means the whole can be proven consistent
18:53:00 <oerjan> oh well maybe not
18:53:29 <alise> of course the issue there is that you need an inconsistent system
18:53:31 <alise> which isn't so good.
18:54:48 <alise> hmm you could have x ≊ y = (reduce x) = (reduce y)
18:54:52 <alise> except I guess you might not have =
18:55:21 <alise> i wonder if using = for unification /and/ definition will get confusing
18:56:08 <alise> hey can't you have _|_ with codata?
18:56:11 <alise> like having co_|_ or something
18:56:20 <alise> prolly not
18:59:48 <oerjan> no, you always must be able to unpack one more constructor in finite time
18:59:52 <oerjan> iiuc
19:00:30 <alise> darn :)
19:01:17 <oerjan> but you can of course have fix Later
19:01:50 <oerjan> fakeBottom = Later fakeBottom
19:01:59 <alise> yes
19:02:03 <alise> but that's just the partiality monad
19:02:08 <oerjan> yep
19:02:10 <alise> (which i think gives turing completeness right?)
19:02:24 <oerjan> well sure
19:02:29 <alise> problem is you have a lot of things which /are/ partial but the compiler can't infer to be so
19:02:40 <alise> maybe you should be able to manually specify a halting proof
19:03:50 -!- oklopol has joined.
19:04:01 -!- sshc_ has joined.
19:04:06 <bsmntbombdood> why hello thar oklopol
19:04:28 -!- Gracenotes has quit (Remote host closed the connection).
19:06:59 -!- sshc has quit (Ping timeout: 252 seconds).
19:07:15 <alise> data _≡_ : {a:Set} → a → a → Set where
19:07:15 <alise> refl : {x:a} → x ≡ x
19:07:15 <alise> is pretty damn awesome though
19:07:18 <alise> why didn't I think of that
19:07:50 <MissPiggy> I just showed you that :|
19:07:53 <alise> i know
19:07:58 <alise> thus "why didn't I think of that"
19:08:09 <alise> MissPiggy: oh ho, I've just realised why agda repeats all the fields in each iteration of more advanced set type thing
19:08:23 <alise> because it's inverted; instead of depending on the parent, it contains the parent constructed from the fields
19:08:34 <alise> pro: you only need to instantiate the topmost one
19:09:01 <alise> con: if there are two ones that apply (e.g. a split in the hierarchy) you have to type some declarations as aliases for the other ones; makes the definitions of the thingies more verbose in the stdlib
19:09:30 <alise> also, argh, I should really figure out quotients and carriers; both agda and epigram are all up wit dem and I don't get it yet
19:09:54 -!- oklopol has quit (Read error: Connection reset by peer).
19:09:55 <alise> Each Set universe (and so far there is one, inconsistently containing itself, but later we shall have some sort of hierarchy)
19:09:57 <alise> why don't we just have
19:10:26 <alise> Set : (n:Nat) -> Setѡ
19:10:30 <alise> where Setѡ is some other thing
19:10:33 <alise> or wait it's actually just
19:10:39 <alise> Set : (n:Nat) -> Set (n+1)
19:10:46 <alise> surely that's the simplest way
19:10:51 <alise> Set 0 is *
19:10:56 <alise> Set 0 : Set 1
19:10:57 <alise> and so forth
19:12:20 <alise> hey, scarf is still here
19:12:40 <scarf> yep
19:12:51 <scarf> busy helping with a community nethack game, sorry
19:20:50 -!- oklofok has joined.
19:30:38 <alise> natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n)
19:30:38 <alise> I think
19:31:34 <MissPiggy> well??
19:31:39 <alise> MissPiggy: well what?
19:31:45 <alise> I was just writing things because I felt like it
19:31:59 <MissPiggy> why is it into bool instead of into *?
19:32:14 <MissPiggy> and the other thing is you have not --> forall n, P n at the end
19:33:33 <alise> well because I like having a type that lets me express "some true or false proposition to be proved"
19:33:39 <alise> * is needlessly general
19:34:15 <MissPiggy> but the thing with induction into * is you can use it to prove stuff or to do recursive programs
19:34:35 <alise> omg really?
19:34:36 <alise> :D
19:34:40 <alise> (re: recursive)
19:35:45 <alise> also
19:35:45 <alise> <MissPiggy> and the other thing is you have not --> forall n, P n at the end
19:35:47 <alise> I don't see what you mean
19:36:12 <alise> also wait, using it to write recursive programs? that means that we have a (Nat -> Set) at value-time
19:36:19 <alise> why would such a function be useful at value-time?
19:36:38 <alise> hmm... the f 0 argument should be implicit, but should the inductive step be?
19:37:17 <alise> MissPiggy: so what value does natInduction have to be a recursive control structure?
19:37:54 -!- oklofok has quit (Quit: ( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )).
19:38:32 <MissPiggy> I mean
19:38:33 <MissPiggy> natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n)
19:38:36 <MissPiggy> should be
19:38:39 <MissPiggy> natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) -> forall n, f n
19:38:53 <MissPiggy> oh
19:38:55 <MissPiggy> natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat)) -> forall n, f n
19:38:57 <alise> ...lol
19:39:02 <alise> (∀(n:Nat), f n) -> forall n, f n
19:39:12 <MissPiggy> oh nevermind, now I see it
19:39:13 <alise> (∀(n:Nat), f n) -> ∀n, f n
19:39:16 <alise> (∀(n:Nat), f n) -> ∀(n:Nat), f n
19:39:21 <alise> i have that :)
19:39:38 <MissPiggy> if you could see how awful these unicode symbols look you might forgive me
19:40:59 <alise> :)
19:41:06 <alise> natInduction : (f : Nat → Set) → f 0 → (∀(n:Nat). f n → f (succ n)) → (∀(n:Nat). f n)
19:41:06 <alise> natInduction _ base _ 0 = base
19:41:06 <alise> natInduction f base induct n = induct (natInduction f base induct (pred n))
19:41:10 <alise> if I'm not mistaken
19:41:18 <alise> but I think ->Set doesn't make it nicer to use for recursion
19:43:39 -!- sshc_ has quit (Ping timeout: 252 seconds).
19:46:06 <alise> MissPiggy: am I correct?
19:53:42 <alise> lol I felt the urge just now for something even more general than typeclass instances
19:53:54 <alise> instance (tc a) => tc (Foo a)
19:54:28 <MissPiggy> woah what is going on there
19:54:34 <MissPiggy> that's weird
19:56:29 <alise> well for instance
19:56:35 <alise> instance (tc a) => tc (Partial a)
19:56:37 <alise> well
19:56:42 <alise> you need to morph the return values into Partial too
19:56:43 <alise> lol
19:56:46 <alise> poll time
19:56:47 <alise> newtype Stream a = Partial (a, Stream a)
19:56:47 <alise> or
19:56:53 <alise> erm
19:56:54 <alise> *type
19:56:59 <alise> type Stream a = Partial (a, Stream a)
19:57:00 <alise> or
19:57:06 <alise> type Stream a = (a, Partial (Stream a))
19:57:54 <alise> I guess I prefer the former because you can return Stream a
19:57:56 <alise> rather than Partial a
19:58:04 <alise> hd :: Stream a -> Partial a
19:58:04 <alise> tl :: Stream a -> Stream a
19:58:11 <alise> the co-ness of streams is embedded in the stream itself
19:58:31 <alise> ofc you need a newtype irl
20:00:37 <alise> i was hoping MissPiggy would pop up with some semantic reason for preferring one or the other there :P
20:01:00 <alise> ah!
20:01:03 <alise> newtype Stream a = Stream a (Partial (Stream a)) is actually preferable
20:01:08 <alise> so you can do foo <- tl somestream
20:02:33 -!- sshc has joined.
20:02:35 <alise> oh
20:02:37 -!- lament has quit (Ping timeout: 264 seconds).
20:02:38 <alise> newtype Stream a = Stream (Partial (a,Stream a))
20:02:40 <alise> gives you all those properties
20:02:44 <alise> hey wait, isn't that a case of Mu?
20:06:48 -!- sshc has quit (Ping timeout: 240 seconds).
20:07:19 -!- sshc has joined.
20:07:22 -!- lament has joined.
20:07:54 <MissPiggy> f x = Partial (a, x)
20:07:56 <MissPiggy> I guess
20:08:26 <alise> newtype Stream a = Stream (Partial (a,Stream a)) deriving (Show)
20:08:26 <alise> con :: a -> Stream a -> Partial (Stream a)
20:08:27 <alise> con x xss = return $ Stream (return (x,xss))
20:08:27 <alise> rep :: a -> Partial (Stream a)
20:08:27 <alise> rep x = do
20:08:27 <alise> xss <- rep x
20:08:29 <alise> con x xss
20:08:33 <alise> rep stack overflows if you try and show it :(
20:08:37 <alise> i guess partial isn't /that/ lazy
20:08:56 -!- MizardX has quit (Ping timeout: 260 seconds).
20:09:03 <oerjan> a bad case of the Mu
20:09:16 <lament> the Mus
20:10:36 <oerjan> Mus Musculus
20:11:16 <alise> MissPiggy: here, how does Coq do records?
20:11:21 <lament> i played some poker and had a bad case of the lose
20:11:22 <alise> you like Coq, you should evangelise its syntax to me
20:12:08 <alise> hey i just realised something
20:12:20 <alise> the race :: Delay a -> Delay a -> a function given in the paper that returns the one that gets to Now first
20:12:29 <alise> is basically multitasking
20:12:35 <alise> you could race proc1 proc2 in an OS
20:12:41 <alise> admittedly, not very ooh-la-la SMP, but cool
20:13:56 <MissPiggy> alise: I think records are the same as inductive types but they have named projections (and only one constructor)
20:14:26 <MissPiggy> why not race :: Delay a -> Delay a -> Delay a ? :)
20:14:37 <alise> i don't think that's how it's defined in the paper
20:14:40 <MissPiggy> they use omegarace to define lfp that's a pretty wild one
20:14:53 <alise> yes it is
20:15:19 -!- sshc has quit (Ping timeout: 246 seconds).
20:15:20 <alise> race :: Delay a -> Delay a -> Delay a
20:15:20 <alise> race (Now a) _ = Now a
20:15:20 <alise> race (Later _) (Now a) = Now a
20:15:20 <alise> race (Later d) (Later d') = Later (race d d')
20:15:28 <alise> MissPiggy: oh yeah those types
20:15:43 <alise> http://r6.ca/blog/20030729T014400Z.html
20:15:46 <alise> same general syntax as here?
20:15:55 <MissPiggy> alise the fun thing about Delay is you can define functions that are MORE LAZY than haskell
20:16:01 <alise> re delay, yes, I know
20:16:14 <alise> my issue with coq's record syntax is that it differs too much from gadt syntax :P
20:16:28 <alise> Compose : (f:Morphism)(g:Morphism)->(Range g)=(Domain f)->Morphism
20:16:28 <alise> rangeId : (a:Object)(Range (Id a))=a
20:16:31 <alise> so caps denotes constructor
20:16:38 <alise> and lowercase denotes fields on all of those constructors or sth?
20:16:48 <alise> or else how do you denote type params
20:16:49 <MissPiggy> ;|
20:16:59 <MissPiggy> no lower/upper distinction (thank goodness)
20:17:04 <alise> or else how do you denote type params
20:17:09 <alise> like in
20:17:21 <alise> Monoid = {
20:17:24 <alise> star : blah blah blah
20:17:28 <alise> assoc : blah blah blah
20:17:28 <alise> }
20:17:31 <alise> where's the actual monoid type
20:17:34 <alise> i.e. the type argument a
20:17:41 <alise> or do you have it as a separate field?
20:17:47 <alise> in which case how do you do the equivalent of (Monoid m) => ...
20:17:50 <alise> in a type sig
20:20:21 <alise> it confuses me
20:20:34 <MissPiggy> no such thing
20:20:49 <MissPiggy> (unless you use the typeclasses extension which is quite new)
20:20:55 -!- Gracenotes has joined.
20:21:05 <alise> so how do you express the same sort of thing?
20:21:16 <alise> forall a. Monoid -> a -> ... isn't allowed, the a in the Monoid might not be the same a
20:22:29 <MissPiggy> forall a, Monoid a -> a ...?
20:22:29 <alise> lol agda has postfix ⊥ for its partiality monad
20:22:37 <alise> MissPiggy: from whence "Monoid a"?
20:22:49 <alise> Coq's syntax has the things that would be parameters elsewhere as record fields
20:23:01 <MissPiggy> Record Monoid a := mkMonoid { <stuff> }
20:24:42 <alise> heh, seems the agda folk name their refls type-refl
20:24:53 <alise> so ≡-refl instead of just refl
20:24:59 <alise> MissPiggy: well how boring :)
20:25:31 <alise> MissPiggy: so do you prefer "Data Foo a := { <constructors> }" to the haskell/agda-esque gadt syntax?
20:25:49 <MissPiggy> I hate records :|
20:26:10 <MissPiggy> the whole idea of making a 'record' separate for some arbitrary reason just makes me want to puke my guts out
20:26:23 <alise> well in my lang it's just syntactic sugar...
20:26:40 <alise> because naming every arg in a type sig in a constructor in a data type gets a leetle bit heavy when you're just trying to fucking define monads
20:29:01 <alise> private
20:29:02 <alise> primitive
20:29:02 <alise> primTrustMe : {A : Set}{a b : A} → a ≡ b
20:29:04 <alise> Agda stdlib
20:29:06 <alise> reassuring
20:29:22 <AnMaster> alise, what does that bit of code do?
20:29:28 <MissPiggy> yeah agda's weird
20:29:37 <alise> which bit of code?
20:29:41 <alise> MissPiggy: actually it's safe, just scarily named
20:29:42 <AnMaster> alise, the bit you pasted
20:29:46 <alise> AnMaster: primTrustMe?
20:29:50 <AnMaster> alise, yep
20:29:55 <MissPiggy> AnMaster, it's used internally, to do some weird stuff to do with IO and strings..
20:29:57 <alise> AnMaster: do you know what dependent types are?
20:30:00 <alise> propositional equality?
20:30:09 <alise> if not, just don't think about it
20:30:36 <AnMaster> alise, well, I don't know the details indeed
20:30:47 <MissPiggy> AnMaster or just ignore me and argue with elise...
20:30:52 <MissPiggy> eliser
20:30:56 <MissPiggy> :OOO
20:31:01 <MissPiggy> I just discovered the truth
20:31:02 <alise> eliser yewdcohski
20:31:07 <MissPiggy> oh no!!
20:31:11 <alise> also, yes, it is used internally like that
20:31:14 <alise> but that doesn't explain what it _is_
20:31:29 <AnMaster> alise, but including "TrustMe" in a identifier in any standard library is enough to make me cautious...
20:31:36 <MissPiggy> haha
20:31:41 <AnMaster> <MissPiggy> AnMaster, it's used internally, to do some weird stuff to do with IO and strings.. <-- right
20:32:18 <AnMaster> alise, and for a language used to prove things it seems just insane
20:32:28 <alise> well see that's because you looked at the name and not the type
20:32:33 <alise> and you can't look at the type because you don't understand the type
20:32:45 <AnMaster> alise, sure, but the name is a bit of a wtf too, isn't it?
20:32:47 <alise> "oh no you can prove anything" is not even remotely what it does
20:32:49 <alise> AnMaster: yes, thus why i pasted it
20:33:03 <alise> but inquiry beyond that involves knowledge of the stuff used within :P
20:33:06 -!- Gracenotes has quit (Remote host closed the connection).
20:33:13 <AnMaster> alise, and is that bit wtfy too?
20:33:44 <alise> Let me just quote a snippet of Agda's stdlib for you, and you can decide whether you really want to know more about this thing.
20:33:44 <alise> <-resp-≈ : IsEquivalence _≈_ → _≤_ Respects₂ _≈_ → _<_ Respects₂ _≈_
20:33:45 <alise> <-resp-≈ eq ≤-resp-≈ =
20:33:45 <alise> (λ {x y' y} y'≈y x<y' →
20:33:45 <alise> ( proj₁ ≤-resp-≈ y'≈y (proj₁ x<y')
20:33:46 <alise> , λ x≈y → proj₂ x<y' (Eq.trans x≈y (Eq.sym y'≈y))
20:33:48 <alise> )
20:33:50 <alise> ) ,
20:33:52 <alise> (That's not even the full definition.)
20:34:27 <alise> Or how about this: http://pastie.org/834543.txt?key=pja2m883ywrrb6scy3pxxg
20:35:05 <AnMaster> alise, more or less unicode than perl6?
20:35:10 <alise> Far more.
20:35:31 <alise> Also, I am /totally/ not looking forward to having to prove my OS correct.
20:35:33 <AnMaster> alise, must be a bit annoying to enter that sort of things.
20:35:40 <alise> /Totally/ /not/ /looking/ /forward/.
20:35:44 <alise> AnMaster: It comes with an Emacs mode that makes it easy
20:35:53 <AnMaster> alise, tex input mode or a specific one?
20:35:58 <alise> Its own one.
20:36:01 <AnMaster> right
20:36:17 <alise> <-resp-\~~ eq \<=-resp-\~~ =
20:36:26 <AnMaster> alise, apart from these things I think _<_ and _≤_ looks very very ugly
20:36:38 <MissPiggy> AnMaster, it's part of the syntax..
20:36:40 <alise> (\Gl {x y' y} y'\~~y x<y' #to
20:36:41 <AnMaster> aesthetically I mean
20:36:42 <alise> *\to
20:36:42 <MissPiggy> you do like
20:36:44 <AnMaster> MissPiggy, I didn't claim it wasn't
20:36:45 <MissPiggy> _<_ : A -> B -> C
20:36:48 <MissPiggy> x < y = ...
20:36:51 <alise> AnMaster: it's only because that bit of code is very ugly
20:36:51 <AnMaster> I just said it didn't look nice
20:36:53 <MissPiggy> no just listen to me I am explaining
20:36:54 <alise> because, well, it's stdlib code
20:37:05 <MissPiggy> so that is how you define infix operators
20:37:07 <alise> actually _ for multifix is very elegant
20:37:13 <alise> if_then_else_ : Bool -> a -> a -> a
20:37:15 <MissPiggy> and you can use _<_ to denote the identifier
20:37:16 <alise> _+_
20:37:18 <alise> _?_:_
20:37:23 <MissPiggy> instead of having to write \x y -> x < y
20:37:24 <alise> etc
20:37:49 <AnMaster> it still isn't aesthetically nice. which is all I claimed. I didn't say anything about the underlying concepts or whatever (I don't know of them)
20:37:58 <alise> but dude, you use underscores
20:38:00 <alise> you program IN C
20:38:07 <alise> it's only ugly in context
20:38:13 <AnMaster> alise, well I never liked identifiers beginning or ending with _
20:38:18 <AnMaster> like _exit()
20:38:19 <alise> you're making a statement about aesthetics
20:38:22 <alise> based on a tiny bit of stdlib code
20:38:25 <alise> stdlib code is ugly. fact.
20:38:29 <alise> agda isn't
20:38:32 <AnMaster> alise, well yes it often is
20:38:46 <alise> /Especially/ when you're in type theory this heavy.
20:38:58 <AnMaster> possibly, I can't comment upon that
20:39:17 <AnMaster> alise, but I think stdlib.i is even worse. And I read some parts of it.
20:39:31 <AnMaster> of course that doesn't compare for various reasons
20:40:35 <alise> The cool thing about mixfix operators is that, not only can you define if/then/else and similar things as operators, you can even define parenthesising operators:
20:40:47 <AnMaster> oh?
20:40:48 <MissPiggy> yeah it's really useful to define parens
20:40:58 <alise> <_> : a -> TotallySquareBracketed a
20:41:03 <alise> <x> = WowItsSoSquare x
20:41:12 <alise> also, <_> has a huge problem with his eyes
20:41:18 <AnMaster> alise, I read that as "TotallyASquareBracket" first hehe
20:41:18 <alise> MissPiggy: sarc or sinc?
20:41:22 <alise> (Sarcasm or sincere, obviously.)
20:41:30 <alise> it's angle bracket too lol
20:41:34 <alise> my ridiculous code snippet is doubly so
20:42:02 <alise> AnMaster: indeed given a good enough language, bobwas_amanwith<_a_PLA,_n(_end;_4 is a valid operator
20:42:08 <alise> because parens will just be defined as the operator (_)
20:42:10 <alise> (x) = x
20:42:18 <alise> example usage of that incredibly useful operator:
20:42:29 <AnMaster> alise, I think I would kick any programmer who used anything like "bobwas_amanwith<_a_PLA,_n(_end;_4" in the head
20:42:38 <AnMaster> at least if I had to ever maintain that code
20:42:49 <MissPiggy> alise, its one of the 'little things' which I would add to haskell to improvement
20:42:54 <MissPiggy> improve it
20:42:56 <alise> bobwas amazing amanwith< (boobs/42) a plastic PLA, (retard (2%-4)) n( (okaynowso okaynowso) end; woooh 4
20:43:06 <alise> of course, anyone defining such an operator is an abject idiot.
20:43:26 <AnMaster> alise, agreed with the last comment
20:44:19 <AnMaster> alise, so _ is basically "fill in stuff when used here"?
20:44:22 <alise> yep
20:44:36 <AnMaster> well, in that case it is kind of neat. But around an operator it still looks rather ugly
20:44:37 <alise> it also means that type names like [a] and (a,b,c) are no longer restricted to the bourgeois language designers
20:44:44 <alise> [_] and (_,_,_)
20:44:54 <AnMaster> but I guess you don't define such most of the time, rather you use them
20:44:59 <alise> AnMaster: yeah it's just that that's a piece of code operating on operators, which are first-class entities in agda
20:45:10 <alise> and it's a rather specific piece of code too
20:45:15 <alise> thus the crazy
20:45:26 <alise> *bourgeoisie
20:45:28 <alise> no wait
20:45:30 <alise> *bourgeois
20:45:31 <AnMaster> alise, I don't know if having first class operators makes me puke or makes me fall in love with the language. Possibly both at once
20:45:56 <AnMaster> alise, what did that code from the stdlib do though?
20:45:56 <alise> yes well mixfix + first class operators leads to some gnarly crappiness that MissPiggy understands and I don't apparently
20:46:06 <alise> AnMaster: I have no fucking clue!
20:46:22 <AnMaster> alise, ah, at least we are at the same level here then ;P
20:49:27 <alise> AnMaster:
20:49:30 <alise> _=_ : a → a → Bool
20:49:31 <alise> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
20:49:37 <alise> obviously the first is equality
20:49:46 <alise> take a guess at what the second is (hint: it's a property of equality)
20:49:57 <alise> after seventy-four hours (when you finally grok it) it will mow your blind
20:50:18 -!- sshc has joined.
20:50:38 <MissPiggy> AnMaster -- I already explained what it does
20:50:38 <AnMaster> alise, where is what = actually do defined? I mean, to me it looks like it describe the types it takes and returns
20:50:50 <alise> AnMaster: yes; it's actually ... well, you can think of it as an interface
20:51:12 <alise> it's the values that must be define on a type a to make that type Unifiable
20:51:24 <alise> leibniz, obviously, depends on = already being defined beforehand
20:51:34 <alise> but read its type (logical statement)
20:51:45 <alise> note that (b:Set) can be ignored
20:51:48 <alise> it's irrelevant to the gist
20:51:51 <AnMaster> alise, I'm trying to remember what leibniz did to figure it out :P
20:52:02 <alise> no no, just read the type aloud
20:52:02 <AnMaster> alas the things I do remember about him doesn't seem relevant here
20:52:08 <alise> you don't need to know his name
20:52:12 <MissPiggy> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
20:52:15 <alise> just ignore the (b:Set) part read the upside down a as forall
20:52:18 <alise> MissPiggy: don't explain
20:52:21 <alise> i wanna see him grok it himself
20:52:27 <MissPiggy> alise im explaining something to you :P
20:52:28 <AnMaster> alise, I know what upside down A is
20:52:30 <AnMaster> ...
20:52:33 <alise> MissPiggy: do it in pm
20:52:35 <MissPiggy> might be better written as
20:52:36 <alise> AnMaster: just checking >:D
20:52:39 <alise> MissPiggy: PM
20:52:40 <alise> pm plz
20:52:43 <alise> or you'll spoil it :P
20:52:49 <AnMaster> alise, what is the x:a thing there?
20:52:56 <AnMaster> as in, what does that part do
20:52:59 <MissPiggy> leibniz : forall (x:a) (y:a) (b:Set) (f:a→b). x = y → f x = f y
20:53:23 <AnMaster> well that is the same as he said isn't it?
20:53:36 <AnMaster> but doesn't it say that f(x)=f(y) if x=y?
20:54:25 -!- alise has quit (Read error: No route to host).
20:54:31 <AnMaster> assuming → is "implies"
20:54:32 -!- alise has joined.
20:54:36 <alise> stepped on off switch
20:54:37 <AnMaster> as in normal logic
20:54:45 <alise> MissPiggy: you explained it, didn't you
20:54:47 -!- CESSQUILINEAR has left (?).
20:54:50 <AnMaster> alise, read logs, bbl reading iwc
20:54:51 <MissPiggy> ??
20:55:01 <MissPiggy> i want cake
20:55:04 <alise> nope good
20:55:14 <alise> 12:53:36 <AnMaster> but doesn't it say that f(x)=f(y) if x=y?
20:55:16 <alise> yes, basically
20:55:19 <alise> anyone who defines equality
20:55:27 <alise> must provide a proof that f(x) = f(y) if x = y, by their definition
20:55:44 <alise> so you cannot define a bunk equality definition (well, apart from anything = anything being true)
20:55:56 <alise> but the thing is, it's just a normal type like =
20:55:59 <alise> there's no special "proof system"
20:56:31 -!- taxman has joined.
20:56:37 <alise> taxman, a man of much to tax
20:56:58 <augur> heyyy
20:57:02 <alise> hi
20:57:08 <taxman> Hey and hi.
20:57:11 <alise> AnMaster: so basically, it's a constraint on how you can define =
20:57:18 <alise> taxman: you new i presume?
20:57:21 <alise> welcome! now sacrifice goats.
20:57:36 <AnMaster> alise, I'm more used to thinking of = in terms of a relation on a set.
20:57:45 <alise> note: if you think, after that, that you have the wrong channel, you don't not have the right channel
20:57:56 <alise> AnMaster: Well, here, = is a function.
20:57:58 <alise> Just equals(a,b)
20:58:22 <alise> Basically, any definition of the name = for a given type must also include a definition of leibinz, which must be a proof of that statement (usually it can be inferred)
20:58:29 <alise> So it's like a constraint
20:59:10 -!- adam_d has joined.
20:59:27 <alise> also, that baffling snippet i pasted was a function manipulating relations :P
21:00:27 <AnMaster> alise, sounds scary
21:00:37 <alise> scary, but cool
21:00:49 <alise> basically languages like this build up an entire logico-mathematical theory
21:00:58 <alise> and a proof system and a programming language based around them (that are the same)
21:01:03 <alise> and then it's your playground
21:02:20 <AnMaster> alise, yes, but the stdlib is bound to end up quite hellish
21:02:26 <alise> in code, yes
21:02:28 <alise> in usage, beautiful
21:02:35 <AnMaster> well yeah that is what I meant
21:02:40 <MissPiggy> what
21:02:50 <MissPiggy> why the hell would the stblib not be very simple and clear?
21:02:59 <alise> because the concepts involved are subtle and elegant
21:03:02 <AnMaster> I'll let alise explain it
21:03:14 <alise> and the operations complex
21:03:23 <alise> hellish doesn't mean it isn't simple and clear
21:03:29 <alise> just complicated to the uninitiated
21:03:38 <alise> lol I want something like leibniz for ≈
21:03:38 <alise> like
21:03:48 <alise> f(a) ≈ f(b) if a ≈ b
21:03:50 <alise> but that's clearly false
21:03:54 <alise> take e.g. a hash function
21:03:56 <alise> so really what we need is
21:03:56 <AnMaster> alise, is ≈ almost equal here?
21:03:57 -!- lament has quit (Ping timeout: 252 seconds).
21:04:00 <alise> yes
21:04:13 <alise> f(a) ≈ f(b) if a ≈ b and f reacts in proportion to the change of its argument
21:04:17 <AnMaster> alise, well hash function is a boring example. I was thinking along the lines of sin(1/x) around 0
21:04:18 <alise> and even
21:04:30 <augur> so im trying to learn about dependency syntax and how they characterize grammaticality in natural language
21:04:39 <alise> f(a) ≈withTolerance(newTolerance a b) f(b) if a ≈withTolerance(x) b and f reacts in proportion to the change of its argument
21:04:43 <augur> and one phenomena thats especially interesting to me is called an extraction island, right
21:04:49 <alise> or even
21:04:51 <alise> f(a) ≈withTolerance(newTolerance f a b) f(b) if a ≈withTolerance(x) b and f reacts in proportion to the change of its argument
21:04:56 <alise> so the new tolerance can take into account the rate of change
21:05:03 <augur> basically its that thign that makes parasitic gaps parasitic instead of just bad
21:05:17 <AnMaster> alise, couldn't you define a class of functions where f(a) ≈ f(b) if a ≈ b is true?
21:05:26 <AnMaster> and then somehow attach that property to them
21:05:29 <alise> yes, that's basically what I'm doing
21:05:36 <alise> except the property is on ≈
21:05:44 <alise> i.e. if you define approx-equal, you must show that it obeys this property
21:05:44 <augur> anyway, im reading through what was probably THE textbook on the subject, Dependency Syntax by Igor Mel'čuk, which argues that DS really CAN be used as a theoretical framework for describing natural language
21:05:45 <alise> by saying
21:05:50 <AnMaster> alise, I'm not sure what is necessary and sufficient for it
21:05:50 <alise> "f reacts in proportion to the change of its argument"
21:05:56 <alise> i'm basically conjouring up the set of functions that do that
21:06:07 <AnMaster> alise, over the reals it must be continuous I think?
21:06:08 <augur> but this book makes no mention of extraction islands, despite being published about 20 years after they were discovered
21:06:12 <alise> hmm this may be the first time calculus was used in a type system
21:06:15 <AnMaster> but that isn't enough
21:06:17 <augur> after countless others have written extensively on the topic
21:06:38 <augur> so i figure, yeah sure ok, maybe he was busy doing other stuff, i dont know, let me just email this guy and ask him directly
21:06:41 <augur> so i email him
21:06:54 <augur> TO THIS DAY the guy has never even HEARD of extraction islands.
21:07:03 <AnMaster> alise, augur: your nicks are the same length
21:07:07 -!- scarf has changed nick to scarf|away.
21:07:11 <AnMaster> and both start on a
21:07:12 <augur> AnMaster: this is true.
21:07:14 -!- scarf|away has changed nick to scarf.
21:07:17 <AnMaster> I have problems following what is going on
21:07:18 <alise> yeah but he's annoying. and I'm not!
21:07:20 -!- scarf has changed nick to scarf|away.
21:07:20 <AnMaster> wb scarf
21:07:23 <alise> scarf|away: bye
21:07:30 <AnMaster> argh client issues I suspect
21:07:36 <AnMaster> which means we will have this for some time
21:07:37 <alise> a brief stay. like life
21:07:41 <AnMaster> until he notices it
21:07:49 <alise> AnMaster: no, he probably just returned to his terminal which set his irc client off
21:07:51 <alise> and then he fixed it
21:07:55 <AnMaster> alise, hm maybe
21:07:56 <alise> presumably he's busy and just popped back
21:07:58 <alise> that's another possibility
21:08:07 <alise> augur: he's never heard of something so prominent?
21:08:10 <alise> the fool!
21:08:11 <augur> how the fuck can you claim that something is a viable theoretical apparatus if you dont even know about some big fucking phenomena, nevermind have an account of it
21:08:13 <alise> (in his field)
21:08:16 <augur> i dont get it
21:08:29 <alise> discontinue any interest you have in his work
21:08:37 <AnMaster> alise, anyway what is required for f(a) ≈ f(b) if a ≈ b to hold?
21:08:56 <AnMaster> alise, if you figure out what properties is required of the function I will be interested
21:08:57 <augur> i really should, alise. but he offered to look at some sentences and try to characterize their dependency structure
21:09:10 <augur> so ive sent him some examples to see if he has any observations to make
21:09:13 <alise> AnMaster: f(x)'s change is proportionate to x's change
21:09:26 -!- lament has joined.
21:09:28 <AnMaster> alise, hm what about |x|?
21:09:29 <alise> apart from that, that's it, I think
21:09:51 <alise> AnMaster: yes, that's acceptable given enough tolerance in the ≈ you use for f(a)/f(b)
21:09:59 <alise> <alise> f(a) ≈withTolerance(newTolerance f a b) f(b) if a ≈withTolerance(x) b and f reacts in proportion to the change of its argument
21:09:59 <alise> <alise> so the new tolerance can take into account the rate of change
21:10:07 <alise> is, I think, the definition you need
21:10:08 <alise> plus calculus
21:10:32 <AnMaster> hm
21:10:52 <AnMaster> alise, what about sin(1/x)
21:11:02 <AnMaster> I would say it isn't true around 0
21:11:16 <Wareya> IRSSI is being bugger...
21:11:20 <Wareya> bugged*
21:11:27 <AnMaster> no news there
21:11:35 <alise> AnMaster: well it always goes in the same sort of way, right?
21:11:40 <alise> it's just that the change gets more drastic
21:12:01 <alise> all that means is that you have to make (newTolerance (\x -> sin(1/x)) a b) be a very high tolerance for small a and b
21:12:20 <alise> i think this property is so weak as to be almost useless, though
21:12:26 -!- tombom has joined.
21:12:30 -!- scarf|away has changed nick to scarf.
21:12:32 <AnMaster> alise, you know lim_{x→0} sin(1/x) is undefined right?
21:13:10 <AnMaster> (as well as it being undefined in the point 0)
21:13:24 <AnMaster> (due to div by zero)
21:13:28 <alise> yes, and?
21:13:39 <alise> also sin 0 wouldn't type in my lang :P
21:13:48 <AnMaster> alise, err?
21:13:52 <AnMaster> sin 0 is perfectly ok
21:13:55 <alise> erm
21:13:58 <alise> I mean sin(1/0) ofc
21:14:04 <AnMaster> well right
21:14:11 -!- oklopol has joined.
21:14:16 <AnMaster> alise, what if the value 0 is from runtime?
21:14:22 <AnMaster> or do you do type checking there as well
21:14:28 <alise> neither
21:14:34 <alise> this is why dependent langs are proof systems as well
21:14:43 <AnMaster> alise, you require testing that it isn't 0 before?
21:14:49 <AnMaster> before dividing*
21:14:51 <alise> you have to assure the language mostly the compiler can do this for you that it isn't 0
21:14:53 <alise> AnMaster: well, that's one way
21:15:29 <AnMaster> alise, you have no exception handling or such I assume?
21:15:31 <AnMaster> as in
21:15:37 <AnMaster> throw/try_catch
21:15:41 <AnMaster> or whatever
21:15:47 <alise> No reason why not, as long as throw doesn't return just "a" but "Throw a" or "IO a" or whatever
21:16:03 <alise> It's a full-blooded language, define what you want as long as it halts. If it might not or doesn't halt, put it in the partiality monad and you can still define it.
21:16:13 <AnMaster> alise, why must it halt?
21:16:18 <AnMaster> ah
21:16:19 <alise> I'd point you to http://strictlypositive.org/slicing-jpgs/ and http://strictlypositive.org/winging-jpgs/ to understand conditions on worlds and stuff in a dependent language, but they're kinda heavy even if you know Haskell inside out
21:16:20 <AnMaster> right
21:16:21 <AnMaster> now I see
21:16:28 <alise> AnMaster: because otherwise your proof for everything could be for(;;);
21:16:44 <alise> that can be any type you want, but it never yields a value and it certainly isn't a coherent proof of anything!
21:16:48 <AnMaster> alise, I missed the bit about "partiality monad" but then it makes perfect sense
21:17:02 <AnMaster> alise, so it will be total fp basically?
21:17:07 * AnMaster remembers reading about that
21:17:12 <AnMaster> with data and co-data
21:17:12 <alise> also, ⊥ — our name for non-termination/error/all kinds of "non-value" — is insidious— oh, you've read the paper
21:17:16 <alise> then yes, it's total
21:17:28 <alise> just like every other dependent language that doesn't want to melt down horribly in nonsense :)
21:17:40 <alise> the language in Total FP isn't tc though iirc
21:17:48 <alise> with a partiality monad in a good dependent lang you get turing completeness
21:17:54 <AnMaster> alise, and yes I understood the ideas of that paper. Possibly not the language used (wasn't it some custom made variation of miranda or something?)
21:18:07 <alise> a blend of miranda and haskell and stuff
21:18:09 <AnMaster> right
21:18:11 <alise> it wasn't really a full language
21:18:12 <alise> just pseudocode
21:18:14 <AnMaster> true
21:18:24 <AnMaster> well I understood the ideas, that was the main thing
21:18:37 <alise> yes
21:18:43 <alise> all this stuff is pretty sexy, it's a sweet spot in programming languages
21:18:52 <AnMaster> alise, anyway, how often would you actually need such a partiality monad?
21:18:52 <alise> because it hasn't really been explored out of the fringe
21:19:03 <alise> and just adding dependent types gives you like billions of things for free
21:19:06 <AnMaster> didn't the paper conclude that for a lot of purposes you didn't need tc
21:19:14 <alise> it's amazingly good bang for your (admittedly large) buck
21:19:21 <MissPiggy> I think total fp is pretty daft...
21:19:27 <alise> MissPiggy: then why do you use Coq
21:19:28 <alise> it is total
21:19:36 <alise> maybe you just mean the paper
21:19:41 <alise> AnMaster: anyway the paper isn't all /that/ good
21:19:47 <alise> prolly why it was rejected
21:19:47 <alise> but
21:19:51 <AnMaster> ah
21:19:52 <alise> the partiality monad shouldn't be needed so much
21:20:01 <MissPiggy> yes but I don't use it because it is total (I mean, it MUST be total for all the good bits to apply)
21:20:01 <AnMaster> didn't remember that about rejection
21:20:04 <alise> you can express ackermann and all without it, you're not really very limited
21:20:16 <alise> obviously the type of the main program is, well
21:20:18 <AnMaster> why is the input cursor now gone??
21:20:19 <AnMaster> argh
21:20:19 <MissPiggy> just being total for the sake of being total seems a bit pointless
21:20:20 <AnMaster> brb
21:20:21 <alise> Partial (IO ())
21:20:56 <AnMaster> right restarted some stuff
21:21:13 <AnMaster> (as opposed to left restarted, or if you prefer that: missing comma)
21:21:43 <AnMaster> so, where were we?
21:21:57 <AnMaster> alise, ^
21:22:37 <AnMaster> since I lost scrollback there
21:22:56 <alise> _/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a
21:22:58 <alise> I believe
21:22:59 <alise> AnMaster:
21:23:03 <alise> <alise> you can express ackermann and all without it, you're not really very limited
21:23:03 <alise> <alise> obviously the type of the main program is, well
21:23:04 <alise> <alise> Partial (IO ())
21:23:11 <AnMaster> ah missed that last line
21:23:16 <alise> because otherwise you could never evaluate a Partial expression, as obviously Partial a -> a isn't expressable
21:23:20 <alise> because the whole point is that it's non-total
21:23:22 <alise> inside that monad
21:23:25 <alise> i.e. partiality is an effect
21:23:30 <AnMaster> alise, could you do an infinite server loop?
21:23:31 <AnMaster> without it
21:23:40 <alise> Sure, use codata to create an infinite IO structure
21:23:48 <alise> But you'd write the core of the server detached from IO stuff.
21:23:48 <AnMaster> right
21:23:57 <alise> Of course, if IO wasn't codata...
21:23:58 <AnMaster> alise, well that is common practise anyway
21:23:58 <alise> Then no.
21:24:00 <AnMaster> in all good languages
21:24:06 <alise> But the Partial contains one IO, not a stream of them.
21:24:21 <alise> So if IO is data, not codata, you... well, you could infiniloop, but only because IO is useless without it.
21:24:22 <alise> But whatever.
21:24:31 <alise> Anyway:
21:24:42 <alise> HASKELL:
21:24:47 <alise> (/) :: (Fractional a) => a -> a -> a
21:24:50 <alise> MY LANGUAGE:
21:24:53 <alise> _/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a
21:25:00 <alise> I think it's obvious which will be more popular (it's mine).
21:25:09 <AnMaster> _/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a <-- huh? I see it says that you can't do division by zero, but where does n come from?
21:25:22 <alise> (n:a) → b means
21:25:28 <alise> n is the value of the argument at that position
21:25:34 <alise> even though we don't know the value until runtime
21:25:37 <AnMaster> alise, looks like the wrong order to put stuff in
21:25:38 <alise> we can use it in types
21:25:38 <AnMaster> as in
21:25:40 <alise> It's Complicated.
21:25:47 <alise> AnMaster: x : a means x is of type a
21:25:50 <MissPiggy> it is not complicated!!!
21:25:51 <AnMaster> alise, shouldn't definition come before use
21:25:54 <alise> if you reverse it that declaration would be written as
21:25:54 <AnMaster> that is what I meant
21:25:55 <MissPiggy> AnMaster, backwards binding
21:25:59 <alise> AnMaster: it's no declaration
21:26:03 <AnMaster> MissPiggy, yes, that disturbs me somewhat
21:26:07 <alise> AnMaster: it's just another argument
21:26:12 <alise> {...} just means "infer the value of this argument"
21:26:20 <alise> and having all your constraints
21:26:21 <alise> like
21:26:24 <alise> a must be a Field and Unifiable
21:26:27 <alise> and n must not be 0
21:26:31 <alise> before the rest of the type, is cleaner
21:26:39 <alise> also, err, I have it the wrong way round
21:26:44 <AnMaster> alise, but does it return of the same type as the input arguments?
21:26:46 <alise> it stops you dividing zero by something else instead X-D
21:26:48 <AnMaster> is that really correct
21:26:57 <alise> AnMaster: Sure
21:27:03 <AnMaster> alise, if so 2/3 would be integer division?
21:27:06 <alise> 2/3 is just (2/1)/(3/1)
21:27:13 <AnMaster> that was quick
21:27:19 <AnMaster> taking my example so fast ;P
21:27:22 <alise> No, 2 is of type ... lemme think
21:27:30 <alise> ∀a, {Whatever a} → a
21:27:37 <AnMaster> alise, err?
21:27:40 <alise> Yes it totally will be called Whatever, shut up
21:27:51 <AnMaster> alise, I don't get it. what does whatever do there
21:27:51 <MissPiggy> x/y is only defined if we have a proof of y [#] 0.
21:27:57 <MissPiggy> Definition cf_div (F : CField) (x y : F) y_ : F := x[*]f_rcpcl y y_.
21:28:00 <alise> AnMaster: well, 2 = succ (succ 0), so wherever succ is, that's what whatever will be
21:28:10 <AnMaster> MissPiggy, what about limits then?
21:28:12 <MissPiggy> Record CField : Type :=
21:28:12 <MissPiggy> {cf_crr :> CRing;
21:28:12 <MissPiggy> cf_rcpcl : forall x : cf_crr, x [#] 0 -> cf_crr;
21:28:14 <MissPiggy> ...
21:28:31 <MissPiggy> [#] means 'apart' i.e. not equal but more constructive
21:28:45 <alise> constructive my ass
21:28:46 <MissPiggy> http://c-corn.cs.ru.nl/documentation/toc.html
21:28:52 <alise> nothing wrong with a good refly frolick
21:29:10 <MissPiggy> it is more constructive to prove things are apart that prove the negation of equality
21:29:21 <alise> define apart?
21:29:32 <MissPiggy> it would have a different definition for each sort of type
21:29:39 <MissPiggy> but there are some axioms for it
21:29:51 <alise> it will be cool to model classical logic in my type system and then prove that clasically, p or not p
21:29:53 <AnMaster> <alise> AnMaster: well, 2 = succ (succ 0), so wherever succ is, that's what whatever will be <-- since oerjan seems to be inactive: "that succs"
21:29:53 <alise> *classically
21:29:57 <alise> really cool
21:30:35 <AnMaster> hey, where are the groans?
21:31:33 <alise> MissPiggy: hey do we have the axiom of choice for types?
21:31:34 <alise> that would be fun
21:31:38 <alise> i guess so
21:31:53 <alise> also I still don't get what apartness is :)
21:32:02 <AnMaster> why is that axiom considered somewhat problematic btw?
21:32:02 <alise> also it kinda sucks to have a different operation for what's essentially the opposite of another op :(
21:32:09 <MissPiggy> apartness it a constructive proof that things are not equal
21:32:19 <MissPiggy> so it has more information in it than simply ~ x = y
21:32:23 <AnMaster> I know why it is required, but I don't know why it seems to be avoided
21:32:27 <alise> AnMaster: http://en.wikipedia.org/wiki/Banach%E2%80%93Tarski_paradox
21:32:46 <alise> russell o'connor had a nice post about the AoC
21:32:48 <alise> lemme find it
21:33:04 <AnMaster> alise, ah that, I think iwc did a huge annotation on it
21:33:16 <AnMaster> during mythbuster theme
21:33:29 <AnMaster> the strip was about needing 5 not 4 sections or such iirc
21:33:44 <alise> http://r6.ca/blog/20050604T143800Z.html
21:34:00 <alise> the Axiom of Choice has two parts basically
21:34:04 <alise> and one is uber smexy
21:34:26 <oerjan> i'm not inactive. just backlogged.
21:34:41 <alise> MissPiggy will hate it because it gets rid of quotient types apparently :D
21:37:33 -!- cheater2 has joined.
21:38:05 <alise> I like how he links to a proof of the axiom of choice, too
21:38:10 <alise> in Coq
21:38:11 <alise> "DON'T DOUBT ME, BITCH"
21:38:54 -!- cheater4 has quit (Ping timeout: 245 seconds).
21:39:08 <AnMaster> <alise> in Coq <-- as a data: url too!
21:39:19 <AnMaster> it seems
21:39:22 <AnMaster> if it is the first one
21:39:31 * MissPiggy <3 data urls
21:39:31 <alise> yep
21:39:34 <MissPiggy> sooooooooooooo much
21:39:41 <AnMaster> MissPiggy, seems a bit strange for this case
21:39:58 <alise> he does it a lot to basically do "footnotes"w
21:40:00 <alise> *"footnotes"
21:40:04 <alise> well, at least twice in his blog
21:40:33 <alise> imagine if we all were using turing machines. Every link would be a data: uri plus quining.
21:41:18 <alise> So if we define that %!! means "this entire data URI", escapable by the usual means (i.e. using %), then every link would contain not only the contents of the page it links to, but the contents of the pages that page links to, etc, only using quining when a link back to the page linked to is encountered.
21:41:27 <alise> oh, %?? would be "this page", to avoid more quining issues
21:41:43 <alise> so every time you link to a page you store a complete snapshot of the web :)
21:42:00 <alise> well
21:42:04 <alise> the web reachable from the page you link to
21:42:07 <alise> which is probably an awful lot
21:42:28 <AnMaster> alise, hm the bandwidth :D
21:42:45 <alise> Infinite, naturally.
21:43:03 <AnMaster> alise, and 0 latency?
21:43:20 <alise> Latency is irrelevant so long as it is under, say, a few days.
21:43:31 <MissPiggy> I should make an effort to understand that proof :|
21:43:37 <oklopol> the banach tarski paradox is not a paradox, grrrr
21:43:40 <AnMaster> alise, why?
21:43:40 <MissPiggy> (the external link)
21:43:41 <alise> After all, loading the Google homepage (which would contain all the possible results and the algorithm for looking up the results) would download most of the web that matters.
21:43:56 <alise> So it'd be a one-time cost apart from really obscure stuff.
21:44:04 <alise> Because remember, the possible results include the links to pages there, etc.
21:44:12 <AnMaster> alise, err, what about checking weather for tomorrow
21:44:16 <alise> So basically, caching the Google page caches every page on Google or reachable from a page on Google.
21:44:21 <AnMaster> it would be annoying if you got that page only 2 days after
21:44:22 <AnMaster> :P
21:44:30 <alise> AnMaster: Well, obviously, the web is immutable like this; we'd need some special service for pushing us updates to certain pages.
21:44:40 <alise> Presumably by creating new pages, since there is no "page identifier" other than the page itself.
21:45:01 <AnMaster> sure
21:45:05 <alise> Admittedly the latency would have to be non-ridiculous for that.
21:45:11 <AnMaster> yep
21:45:46 <AnMaster> alise, why not create all possible web pages instead?
21:46:06 <AnMaster> (I suspect this is non-computable and/or uncountable)
21:46:26 <alise> 3 times he's used link-footnotes on his blog
21:46:32 <alise> AnMaster: Uh, it's countable.
21:46:41 <AnMaster> alise, they could have any length
21:46:45 <alise> A string is isomorphic to a natural number.
21:46:49 <AnMaster> and link to any other
21:47:07 <alise> 0 = "", 1 = "\0", 2 = "\1", ..., 255 = "\255", 256 = "\0\0", 257 = "\0\1", ...
21:47:13 <AnMaster> so the entire web would be a set of infinitly long strings
21:47:15 <AnMaster> no?
21:47:25 <AnMaster> and thus there would always be one in between
21:47:30 <alise> Uhh...
21:47:37 <alise> http://r6.ca/blog/20040616T005300Z.html another good post
21:47:41 <AnMaster> alise, thus we basically have cantor's diagonally thingy
21:47:49 <AnMaster> err not that one
21:47:57 <AnMaster> the one that proves you can't count the reals
21:47:59 <alise> cantorsDiagonallyThingy : ...
21:48:00 -!- scarf has changed nick to scarf|away.
21:48:05 -!- scarf|away has changed nick to scarf.
21:48:13 <AnMaster> oh yeah it's the diagonal one
21:48:28 <AnMaster> I was confusing it with the one that proved you *could* count the rationals
21:49:25 <alise> ALL THIS STUFF IS SO FUCKING INTERESTING! FUCKING FUCK FUCKSHI!!!!
21:49:27 <alise> *FUCKSHIT
21:49:36 <alise> I am not being sarcastic
21:49:38 <alise> fuck yes
21:49:41 <AnMaster> anyway I maintain that the set of all possible pages including all possible linked pages as data urls is uncountable
21:50:03 <AnMaster> due to what I described above
21:50:09 <alise> Perhaps.
21:50:48 <AnMaster> alise, basically we could always insert a page that sorts in between two given ones
21:50:58 <alise> god modelling classical logic in constructivist logic will be awesomely awesome
21:51:12 <oklopol> the set of all possible finite pages is obviously countable
21:51:59 <alise> subst : {A : Set}(C : A → Set){x y : A} → x == y → C x → C y
21:52:00 <alise> hmm
21:52:02 <AnMaster> oklopol, well, you could always insert one that sorts in between, couldn't you? it would still be finite
21:52:07 <alise> this is equiv to f(x) = f(y) if x = y isn't it
21:52:10 <AnMaster> but slightly longer than those
21:52:11 <alise> except more constructivismism
21:52:14 <alise> (misspiggy?)
21:52:19 <oklopol> one that sorts?
21:52:52 <MissPiggy> alise prove symmetry (i.e. x = y -> y = x) using subst
21:53:19 <alise> you can't do that with f(x) = f(y) if x = y either can you
21:53:23 <alise> or do you mean subst is greater than that?
21:53:32 <AnMaster> oklopol, anyway describe the proof for why "<oklopol> the set of all possible finite pages is obviously countable"
21:53:57 <AnMaster> it isn't obvious to me, in fact it looks like the reverse
21:54:02 <alise> with f(x) = f(y) if x = y, it's `equals(y,x) = equals(y,y) if x = y`
21:54:10 <oklopol> AnMaster: base 257 numbers
21:54:13 <alise> since equals(y,y) is true, equals(y,x) must be true
21:54:19 <alise> since that's y = x, we have shown that y = x if x = y
21:54:25 <alise> that doesn't look possible with subst
21:54:34 <alise> MissPiggy: so leibniz's law is greater, then, I assume
21:54:35 <AnMaster> oklopol, 257?
21:54:43 <alise> wait no
21:54:44 <MissPiggy> subst IS liebniz
21:54:48 <alise> let C be - yeah
21:54:58 <oklopol> AnMaster: yeah so you don't get the problem of initial zeroes
21:55:11 <alise> MissPiggy: it's just that i would have written it as C x = C y
21:55:15 <alise> rather than implying both
21:55:17 <alise> mine seems to be more general
21:55:26 <alise> C doesn't have to return Set, just something equalisibleirel
21:55:34 <alise> they're equivalent but still
21:55:38 <alise> I'm just wondering which is "better"
21:55:41 <AnMaster> oklopol, you can't sort them based on bytes from the start in a well defined order though. Hm you are right
21:56:43 <AnMaster> I was like anchoring them at the start rather than placing them in numerical order (strcmp() as opposed to < or > on bignums basically)
21:57:04 <alise> MissPiggy: well this is the most irritating dilemma ever
21:57:11 -!- taxman has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221164558]).
21:57:16 <AnMaster> oklopol, but remember they do contain all linked pages as data uris
21:57:19 <MissPiggy> alise state them both
21:57:25 <AnMaster> hm doesn't change things
21:57:44 -!- tombom_ has joined.
21:57:55 <alise> MissPiggy: but they're identical
21:58:24 <oklopol> AnMaster: well are they still finite?
21:58:25 <MissPiggy> state them :[
21:58:34 <oklopol> the pages + data uri lists
21:58:48 <alise> 12:49:31 <alise> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
21:58:48 <alise> 12:52:12 <MissPiggy> leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y
21:58:52 <alise> how do these two differ
21:58:59 <MissPiggy> o_o
21:59:04 <AnMaster> oklopol, possibly it links to something that include everything else. But I think alise said that should be represented as "same page" to handle the loops
21:59:05 <alise> sorry, tunes fucked up the unicode
21:59:13 <AnMaster> thus they would be finite I think
21:59:19 <MissPiggy> alise no no no
21:59:21 <oklopol> so there are infinite pages?
21:59:21 <AnMaster> if they were to include themselves literally
21:59:23 <AnMaster> of course not
21:59:27 <alise> MissPiggy: ???
21:59:28 <AnMaster> oklopol, err what?
21:59:29 <alise> talking to you is so confusing
21:59:36 <oklopol> "AnMaster: oklopol, possibly it links to something that include everything else."
21:59:52 <AnMaster> oklopol, "But I think alise said that should be represented as "same page" to handle the loops"
21:59:56 <AnMaster> oklopol, on the same line
21:59:59 <AnMaster> as in
22:00:01 <MissPiggy> alise I meant to say put x and y before everything else, for partial application
22:00:03 <AnMaster> you use an escape
22:00:08 <alise> ah
22:00:11 <AnMaster> to indicate it links to the page it is in
22:00:17 <AnMaster> still
22:00:18 <AnMaster> wait
22:00:21 <AnMaster> that wouldn't work alise
22:00:27 <alise> why nawt?
22:00:29 <alise> oh AnMaster
22:00:32 <alise> thought you were MissPiggy
22:00:36 <alise> i.e. talking about non-boring things
22:00:38 -!- tombom has quit (Ping timeout: 265 seconds).
22:00:45 <AnMaster> alise, you could have loops of pages that aren't using the top page
22:00:54 <alise> yes which is why in a data: uri you have %!!
22:00:55 <alise> to mean "this uri"
22:00:56 <AnMaster> thus couldn't indicate "this page"
22:01:05 <alise> %?? means this page, i.e. the page containing the link to that uri
22:01:05 <alise> subst : ∀(x:a) (y:a) (f:a→Set), x ≡ y → f x → f y
22:01:05 <alise> leibniz : ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y
22:01:08 <alise> MissPiggy: stated.
22:01:11 <AnMaster> it might be nested hm
22:01:26 <alise> obviously they both are equivalent; leibniz is more lenient/general, except not
22:01:28 <oklopol> AnMaster: what the fuck does it matter what it links to
22:01:33 <alise> no wait it is
22:01:34 <alise> yeah
22:01:38 <alise> hmm
22:01:47 <alise> subst may be "easier" to prove because it does not involve f x ≡ f y
22:01:48 <AnMaster> oklopol, if it was to literally include the whole page recursively you would get infinite pages
22:01:53 <alise> which could be very iffy for arbitrary f
22:01:56 <AnMaster> that was my point
22:02:05 <alise> MissPiggy: whereas f x → f y intuitively seems easier to prove, no?
22:02:11 <AnMaster> in fact
22:02:39 <AnMaster> a page would then contain infinite data urls in the middle
22:02:44 <AnMaster> (possibly)
22:02:53 <oklopol> AnMaster: yes, good point, if there are infinite pages, then my argument about finite pages doesn't apply.
22:03:04 <AnMaster> oklopol, is it still countable though?
22:03:07 <AnMaster> I doubt it
22:03:08 <alise> oklopol: you're so sarcastic :)
22:03:28 <alise> MissPiggy: well this is some thrilling conversation here :P
22:06:52 <oklopol> AnMaster: if you have infinite pages, then there can obviously be uncountably many
22:07:01 <MissPiggy> f:a→Set is better
22:07:15 <MissPiggy> and it should be called leibniz, whereas f:a -> b should be called subst
22:07:33 <AnMaster> oklopol, indeed
22:07:50 <alise> MissPiggy: why is f:a->Set better?
22:08:10 <alise> also, I'm only going to define one; the other can be inferred from it with no code, I believe
22:08:15 <alise> wait, no
22:08:42 <alise> f x → f y means "you can transform a value of type (the result of (f x)) into a value of type (the result of (f y))"
22:08:49 <alise> which _doesn't_ mean that f x and f y are the same
22:08:54 <MissPiggy> alise, try and prove them both
22:08:57 <alise> wait, yes it does, since f can be any such function
22:09:09 <alise> MissPiggy: heh ok, i'm a bit of a proof retard though
22:09:10 <MissPiggy> it will only go one direction
22:09:20 <alise> i hope you don't mean a checked proof :(
22:09:26 <MissPiggy> of course I do!
22:09:30 <alise> i only know the programming side of /existing/ dependent languages though!
22:09:40 <MissPiggy> nah it doesn't matter if it's checked
22:10:42 * MissPiggy needs to read On Denoting at some point
22:12:55 <alise> heh i think i may be retarded, proving ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y is causing my brain to go ⊥
22:13:08 <alise> i'm either intelligent or really stupid never in-between
22:13:22 <alise> well
22:13:26 <alise> refl : {x:a} → x ≡ x
22:14:21 <AnMaster> <alise> heh i think i may be retarded, proving ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y is causing my brain to go ⊥ <-- what axioms do you have available for this?
22:14:33 <alise> your standard dependently-typed constructivist type theory
22:15:14 <AnMaster> alise, I don't know what those are. But the proof is trivial for pure functions over a set with the = operator
22:15:24 <alise> i'm proving it from
22:15:25 <alise> data _≡_ : {a:Set} → a → a → Set where
22:15:25 <alise> refl : {x:a} → x ≡ x
22:15:28 <MissPiggy> refl (f x) : f x = f x
22:15:28 <AnMaster> as in, it follows from definition of ?
22:15:30 <AnMaster> err
22:15:31 <AnMaster> of =
22:15:46 <MissPiggy> so how can you turn f x = f x into f x = f y :P
22:15:55 <MissPiggy> (using "subst" which should actually be called leibniz)
22:15:56 <AnMaster> if x = y then they are identifical
22:16:04 <AnMaster> identical*
22:16:09 <alise> MissPiggy: yeah exactly
22:16:16 <alise> hmm so wait
22:16:36 <alise> the proof of leibniz (which should be call subst, the f(x)=f(y) version) involves subst (the f(x)->f(y) version)?
22:16:45 <alise> if so, then I /definitely/ want subst, as it is "more fundamental" in a sense
22:16:46 <AnMaster> MissPiggy, thus it follows that you can write x as y. and thus f x = f y can be rewritten to f y = f y
22:16:59 <AnMaster> MissPiggy, seems pretty trivial to me
22:17:04 <alise> well basically I need to prove that if the normal forms of two values are equal they're indistinguishable
22:17:10 <alise> i don't think that's axiomatic though
22:17:33 <AnMaster> alise, sounds like the same as what I did basically?
22:17:40 <AnMaster> well
22:17:42 <alise> no.
22:17:44 <AnMaster> I took it axiomatic rather
22:17:59 <alise> well that's trivial then
22:18:11 <AnMaster> alise, but I thought that was by definition so
22:18:35 <alise> http://pastie.org/834672.txt?key=ehlammleckrtzlp63rlxsw
22:18:44 <alise> I don't think MissPiggy would give me such a trivial task, though.
22:19:04 <alise> actually that desugaring isn't quite right, it's {} in the foralled things
22:19:05 <alise> but that's equivalent
22:19:23 <alise> <alise> the proof of leibniz (which should be call subst, the f(x)=f(y) version) involves subst (the f(x)->f(y) version)?
22:19:23 <alise> <alise> if so, then I /definitely/ want subst, as it is "more fundamental" in a sense
22:19:25 <alise> MissPiggy:
22:19:40 <MissPiggy> alise that paste is not right
22:19:49 <alise> yeah i know
22:19:53 <alise> I was just playing by AnMaster's rules
22:19:59 <alise> or do you mean i made an actual error
22:20:02 <alise> in which case my brain really is off today
22:20:11 <MissPiggy> wel you just repeated the question then went QED
22:20:12 <MissPiggy> :D
22:20:12 <AnMaster> alise, well without that axiom I'm quite confused as how to prove it
22:20:20 <alise> MissPiggy: exactly
22:20:23 <alise> AnMaster: duh that's why it's hard
22:20:39 <alise> AnMaster: you have to prove that (f x ≡ f y) → ⊥
22:20:47 <alise> i.e. it is impossible to construct a value of type (f x ≡ f y)
22:20:51 <AnMaster> alise, exactly, but I wasn't aware of that it was not considered axiom/definition
22:20:57 <alise> I was responding to
22:20:57 <alise> <AnMaster> alise, well without that axiom I'm quite confused as how to prove it
22:21:09 <alise> anyway MissPiggy i don't want to prove it i want you to answer my question :)
22:21:11 <alise> <alise> <alise> the proof of leibniz (which should be call subst, the f(x)=f(y) version) involves subst (the f(x)->f(y) version)?
22:21:11 <alise> <alise> <alise> if so, then I /definitely/ want subst, as it is "more fundamental" in a sense
22:21:11 <alise> :P
22:24:23 * alise whacks MissPiggy
22:24:39 <MissPiggy> hey I am writing something for you
22:24:42 <MissPiggy> stop attacking me!
22:24:44 <alise> oh okay
22:24:52 <alise> i was just making scientific inqierie
22:24:54 <AnMaster> alise, possible answer (but certainly incorrect): "because it is call by value"
22:24:55 <MissPiggy> lol
22:25:03 <alise> AnMaster: that still isn't a proof
22:25:10 <alise> you don't understand what a proof is :)
22:25:11 <AnMaster> alise, I said it was incorrect duh
22:25:16 <AnMaster> alise, it was a joke
22:25:20 <alise> even if it was call by value
22:25:22 <alise> it wouldn't be a proof
22:25:23 <MissPiggy> http://pastie.org/834684.txt
22:25:34 <AnMaster> alise, exactly. all math is
22:25:40 <AnMaster> well
22:25:42 <AnMaster> almost all
22:25:42 <MissPiggy> alise a proof is a term in the language! which will typecheck
22:25:44 <alise> all math is what?
22:25:48 <alise> call by value? bullshit
22:25:53 <alise> MissPiggy: i know _that_
22:26:14 <AnMaster> alise, I did correct it...
22:26:15 <alise> okay, so leibniz > subst
22:26:28 <alise> wait MissPiggy you're giving me homework!
22:26:30 <alise> >:|
22:26:32 <MissPiggy> yes :P
22:26:40 <alise> anyway i have no dependent language installed so i can't prove it
22:26:40 <alise> nyah
22:26:51 <MissPiggy> you are not supposed to use a type theory just do it by hand
22:26:58 <alise> okay lamer :P
22:27:10 <alise> ugh i have to rewrite your fucking lame syntax in sane syntax :|
22:27:17 <alise> maybe I'll refuse to
22:27:23 <alise> also, why P instead of p
22:27:26 <alise> it's a variable
22:27:27 <MissPiggy> well I want to see how you rewrite it because I don'\t know what's bad about that syntax
22:27:34 <MissPiggy> there is no lower/uppercase distinction
22:27:37 <MissPiggy> (which is a good thing)
22:27:47 <alise> yes
22:27:49 <alise> but convention
22:27:56 <alise> also you can't use (T:*); this is /inside/ Unifiable
22:28:01 <alise> er wait no
22:28:08 <alise> er wait yes
22:28:12 <alise> i've been using \equiv all along lol
22:28:13 <alise> when I really mean =
22:28:31 <alise> MissPiggy: I cannot prove what you put there; = is in Unifiable and is defined by the implementer. The proof will differ for each type.
22:28:41 <alise> Do you mean for Unifiable, i.e. ≡?
22:28:54 <alise> i.e. the refl thing
22:28:55 <alise> erm
22:28:57 <alise> Do you mean for not Unifiable, i.e. ≡?
22:29:00 -!- augur has quit (Read error: Connection reset by peer).
22:29:01 <MissPiggy> alise, you can replace = with any 2-ary relation, the definition doesn't matter
22:29:02 <alise> I assume you do, otherwise I cannot help
22:29:06 <alise> MissPiggy: can't
22:29:13 <alise> because the proof differs for each definition of = in Unifiable
22:29:18 <MissPiggy> no it doesn't
22:29:20 <alise> so I'll assume equiv
22:29:23 <alise> MissPiggy: yes, it does
22:29:25 <MissPiggy> :|
22:29:30 <alise> because the definition of = differs
22:29:33 -!- augur has joined.
22:29:34 <alise> the proof using = must differ too
22:30:29 <alise> anyway do you want \equiv i.e. same normal form
22:30:37 <alise> or = i.e. defined depending on the type
22:30:46 <alise> (since we have unifiable = (t,=,leibniz))
22:30:51 <alise> choose
22:31:15 <MissPiggy> alise, listen to me :(
22:31:23 <alise> If the former is acceptable I would prefer it, for I do not need to include records in the type.
22:31:26 <alise> Is the former acceptable?
22:31:27 <alise> Yes or no.
22:31:27 <MissPiggy> if you replace all occurecense of x = y with R x y
22:31:30 <alise> Yes, I know.
22:31:32 <MissPiggy> and f x = f y with R (f x) (f y)
22:31:32 <alise> Is the former acceptable?
22:31:35 <MissPiggy> then you can still do the proof
22:31:38 <alise> Is the former acceptable?
22:31:52 <MissPiggy> geez you really dont understand what 'listen to me' means
22:31:55 <alise> I do.
22:32:04 <alise> And I understand what you said.
22:32:15 <alise> However, I will continue to ask the question until I am absolutely certain what I am going to do what you want.
22:32:25 <MissPiggy> what question
22:32:36 <alise> leibniz : ∀(a:*) (x:a) (y:a), (p:a→*) → x ≡ y → p x → p y
22:32:39 <alise> where
22:32:41 <alise> data _≡_ : {a:Set} → a → a → Set where
22:32:41 <alise> refl : {x:a} → x ≡ x
22:32:52 <alise> Now, I am not proving leibniz; correct? I am proving leibniz implies subst.
22:32:59 <MissPiggy> yes
22:33:00 <alise> Is this, then, acceptable?
22:33:00 <MissPiggy> "leibniz impiles subst (prove this)"
22:33:01 <AnMaster> MissPiggy, but does that really hold for any R?
22:33:03 <alise> Good
22:33:07 <AnMaster> MissPiggy, and any function?
22:33:36 <MissPiggy> any relation R which has reflexivity
22:33:43 <AnMaster> ah
22:34:55 <AnMaster> MissPiggy, but if we set R to be =< and define f x to be a hash function it doesn't seem to hold
22:35:07 <AnMaster> and =< is reflexive
22:35:20 <MissPiggy> "it doesn't hold"? what is it?
22:35:54 <AnMaster> that x =< y implies md5(x) =< md5(y) for example
22:36:08 <AnMaster> MissPiggy, since =< *is* reflexive
22:36:22 <MissPiggy> AnMaster, forget about proving subst or proving liebniz,
22:36:32 <MissPiggy> we are thinking about proving subst -> leibniz, or leibniz -> subst
22:36:41 <AnMaster> MissPiggy, hm right
22:37:10 <MissPiggy> you are right that with R as =< it you can't construct subst, but that is not really an issue
22:37:46 <AnMaster> MissPiggy, so you need more than just reflexive. I think you need symmetric too
22:37:53 <AnMaster> probably transitive as well
22:37:54 <alise> what's the tex for the or symbol again?
22:38:14 <AnMaster> alise, \cup ?
22:38:18 <MissPiggy> AnMaster: you can prove symmetry and transitivity from leibniz!
22:38:20 <alise> thanks
22:38:42 <AnMaster> or maybe it is \vee
22:38:43 <AnMaster> forgot
22:38:56 <AnMaster> MissPiggy, hm okay
22:41:48 <alise> MissPiggy: lol well I thought I'd proved it
22:41:52 <alise> but I'd actually proved
22:41:53 <alise> ∀(a:*) (x:a) (y:a) (b:*) (f:a→b),
22:41:53 <alise> x ≡ y → (f y ≡ f x) → (f x ≡ f y)
22:42:00 <alise> sec, I believe I have the basic technique right
22:42:30 <MissPiggy> alise yes!
22:42:38 <alise> yes what?
22:42:39 <MissPiggy> oh wait
22:42:40 <MissPiggy> no!
22:42:41 <MissPiggy> sorry
22:42:42 <alise> indeed :P
22:42:46 <MissPiggy> I thought you did it too
22:42:50 <AnMaster> alise, you proved commutativity of equal :D
22:42:53 <alise> i'm close though
22:42:54 <AnMaster> or what?
22:42:57 <alise> AnMaster: not equality; equivalence
22:43:00 <AnMaster> right
22:43:07 <alise> given ∀(a:*) (x:a) (y:a) (p:a→*), x ≡ y → p x → p y
22:43:17 <alise> lol you know
22:43:20 <alise> I've had a journey with equality
22:43:30 <alise> first I used shitty languages that only had one or two equality operators and shit sucked
22:43:48 <AnMaster> eh
22:43:51 <alise> then I used Scheme; it had a multitude of equality operators defining every type of equality given mutable pointers
22:43:57 <alise> and I thought dayum, this language sum rigorous bitch
22:44:10 <alise> then I used Haskell: lo, for it only had one equality, by removing that hideous wretch of mutability and pointers.
22:44:14 <AnMaster> oh I get what you are talking about now
22:44:24 <alise> And I thought: lo, this bitch did remove sum complexity with it's purity; dayum.
22:44:45 <alise> Now, I use dependent languages; they have every type of mathematical equality, equivalence under reduction, and ponies.
22:45:00 <alise> And I think: Dayum, I sure am glad I'm messing with this instead of doing actual real work.
22:45:05 <AnMaster> alise, yeah all those equal variants in scheme annoyed me
22:45:06 <AnMaster> as in
22:45:12 <AnMaster> I could never remember which one I wanted
22:45:14 <MissPiggy> haha
22:45:24 <alise> *its purity
22:45:28 <alise> (after haskell line)
22:45:46 <alise> okay so what i need to do is basically give a suitable p
22:45:59 -!- augur_ has joined.
22:46:02 <alise> so that (p x -> p y) means the same thing as (f x === f y)
22:46:21 <alise> well i can't connect the xs and ys on each side, so i will have to do it for both x and y redundantly
22:46:32 <alise> however, p x must not be the actual statement that f x ≡ f y
22:46:36 -!- augur has quit (Read error: Connection reset by peer).
22:46:37 <alise> otherwise, I have merely a tautology
22:47:04 <alise> got it
22:47:09 <oklopol> MissPiggy: will this be on the exam?
22:47:15 <MissPiggy> oklopol, certainly
22:47:22 <oklopol> oh shit this gunna be long night
22:47:27 <oklopol> sleep ->
22:47:58 <AnMaster> MissPiggy, what exam?
22:48:10 <AnMaster> oh wait it was a joke right?
22:48:14 <AnMaster> anyway, night too
22:48:57 <alise> MissPiggy: http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow I have proved that leibniz implies subst.
22:49:16 <alise> I now must show why ~(subst -> leibniz), correct? After you make sure my proof is correct. Miss P.
22:49:24 <MissPiggy> no
22:49:30 <MissPiggy> don't prove ~(subst -> leibniz)
22:49:36 <alise> Probably I made some trivial error as I often do.
22:49:37 <MissPiggy> just explain why subst doesn't imply leibniz
22:49:38 <alise> MissPiggy: not prove; just explain why
22:49:42 <alise> lol
22:49:44 <MissPiggy> yes
22:49:49 <alise> ut yeah, check http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow is to your satisfaction
22:50:19 <alise> True/False are assumed to be of type *,
22:50:20 <alise> and we are assumed to have ∩ doing the obvious thing on True
22:50:20 <alise> and False.
22:50:23 <alise> this is not needed in the actual proof
22:50:26 <alise> just debris from a previous version
22:50:31 <MissPiggy> alise, almost..
22:50:41 <MissPiggy> subst {a} {x} {y} {b} {f} e = leibniz {a} {x} {y} {λz → f x ≡ f z} e _
22:50:47 <MissPiggy> shouldn't that _ be (refl (f x))?
22:51:18 <AnMaster> <alise> MissPiggy: http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow I have proved that leibniz implies subst. <-- reminds me of Knuth's programming style somehow
22:51:22 <alise> well i read that agda implements implicit arguments as syntactic sugar by replacing them with _
22:51:24 <alise> which is where the real magic is
22:51:31 <alise> oh
22:51:35 <alise> because _ is letting the compiler prove it
22:51:36 <alise> which is cheating
22:51:36 <alise> right?
22:52:07 <MissPiggy> well I mean why not just write subst {a} {x} {y} {b} {f} e =
22:52:07 <alise> AnMaster: How? Knuth is a literate C man.
22:52:12 <MissPiggy> subst {a} {x} {y} {b} {f} e =
22:52:14 <MissPiggy> wugh!!
22:52:15 <MissPiggy> subst {a} {x} {y} {b} {f} e = _
22:52:17 <AnMaster> alise, the literate bit is what I meant
22:52:18 <MissPiggy> why not just that ^ ;P
22:52:20 <alise> MissPiggy: yeah exactly
22:52:25 <alise> I get your point
22:52:34 <alise> http://pastie.org/834713.txt?key=f7bl2cjpmw9tmchuyqdw
22:52:35 <alise> Revised proof.
22:52:37 <alise> AnMaster: lol
22:52:48 <MissPiggy> yes alise this is perfect
22:52:54 * MissPiggy puts down the cane :)
22:53:40 <AnMaster> alise, what you done there *is* literate programming it seems
22:53:45 <alise> *did
22:53:52 <alise> "What you done there" sounds... uncouth!
22:53:53 <AnMaster> alise, youve*
22:53:57 <AnMaster> err
22:54:04 <AnMaster> plus ' possible
22:54:08 <alise> Whateva yoove doned there's
22:54:14 <alise> It's you've.
22:54:18 <AnMaster> yeah
22:54:22 <AnMaster> alise, that was the real typo
22:54:36 <AnMaster> as in I intended to write you've
22:54:37 <alise> Anyway, it's literate programming, sort of; there's no delimiters, though, and I define subst's type twice, which isn't quite cosher.
22:54:45 <alise> But yes, it is text interspersed with code. :P
22:54:51 <alise> MissPiggy: Okay so now I have to do the reverse
22:54:55 <MissPiggy> no
22:55:00 <alise> yes i know not a proof
22:55:01 <alise> an explanation
22:55:03 <alise> blah blah blah
22:55:34 <AnMaster> alise, an indirect proof sounds like the way to go there
22:57:32 <AnMaster> wait, maybe not
22:57:35 <alise> MissPiggy: actually I'm not seeing it
22:57:39 <alise> So what does "p x → p y" really mean? It means that given
22:57:39 <alise> a value of type (the result of p x), we can return a
22:57:39 <alise> value of type (the result of p y). Since values with the
22:57:39 <alise> same normal form is distinguishable, this is equivalent
22:57:39 <alise> to (p x → p x), a tautology.
22:57:47 <alise> obviously p x has the same normal form as p x
22:57:55 <MissPiggy> no no
22:58:00 <alise> and that's what subst talks about
22:58:03 <MissPiggy> x = y does not mean x and y have the same normal form
22:58:05 <alise> f x having the same normal form as f y
22:58:09 <alise> MissPiggy: x === y does though
22:58:15 <alise> you /said/ equiv was acceptable
22:58:17 <MissPiggy> no
22:58:26 <alise> the two values are /the same value/
22:58:30 <alise> so obviously they share a normal form
22:58:36 <MissPiggy> it's only when you have refl <something : x = y that they have the same normal form
22:58:49 <MissPiggy> 3 = 5 typechecks.. and that is valid (but unprovable.. which is good)
22:59:10 <MissPiggy> but also you can prove (by induction) x + y = y + x
22:59:21 <alise> Oh, so I should substitute _|_ for the equivs to see why it isn't possible.
22:59:38 <alise> All that tells me is that my proof is id, because I already have a _|_.
22:59:42 <alise> I don't really see your point.
22:59:47 <alise> I am slightly thick though
23:01:00 <MissPiggy> well what I said earlier was a bit confusing
23:01:19 <MissPiggy> what I really meant was that, refl n : x = y only typechecks if x reduces to n and y reduces to n
23:01:45 <alise> of course
23:01:48 <MissPiggy> now in the closed context, everything reduces to normal form (so any proof of equality reduces to refl, hence its paramters are equal normal forms too)
23:02:07 <alise> do i have to do this homework? i did the interesting one :(
23:02:09 <MissPiggy> but in an open context it's different
23:02:13 <alise> this is just... mathematical philosophy
23:03:08 <MissPiggy> :D
23:03:24 <alise> what this is telling me is, Unifiable should include leibniz of the p x -> p y form and not subst
23:03:38 <alise> and I am grateful for that! NOW DIEEEE
23:03:53 <MissPiggy> lol if you don't complete it will not attain full marks
23:03:59 <alise> maybe later
23:04:06 <MissPiggy> alise nah we covered it
23:04:12 <alise> Also, * sucks! \star, \bigstar, Set or Type please. :P
23:04:16 <MissPiggy> I mean look, subst can only produce an equality
23:04:19 <alise> (You may choose.)
23:04:21 <alise> MissPiggy: yeah
23:04:23 <MissPiggy> but liebniz can produce _anything)
23:04:24 <alise> whereas leibniz can produce anything
23:04:25 <MissPiggy> _anything_
23:04:26 <MissPiggy> yes
23:04:26 <alise> lol
23:04:34 <alise> subst is just a restriction of leibniz's type pretty much
23:04:36 <MissPiggy> so that's why it's stronger
23:04:38 <alise> modulo a few, really unimportant things
23:05:17 <MissPiggy> no but they are important!
23:05:29 <alise> whatevs :P
23:05:34 <alise> anyway, on to important matters
23:05:38 <alise> \star, \bigstar, Set or Type
23:05:41 <MissPiggy> lol
23:05:46 <MissPiggy> \bigstar
23:05:57 <alise> what type has \bigstar?
23:06:08 <alise> ★₁?
23:06:12 <alise> oh wow that star is ugly in this font
23:06:14 <alise> not antialiased
23:07:36 -!- madbr has joined.
23:07:47 <alise> MissPiggy: THESE ARE IMPORTANT SYNTACTIC MATTERS :P
23:08:18 <MissPiggy> every though I read your note I still don't get why it's important..
23:08:45 <alise> it's not I'm just joking
23:08:57 <alise> syntax is important but not the name of the set of sets :)
23:09:14 <alise> Set is a bit of a misnomer though, isn't it?
23:09:19 <alise> because set theory is subverted in some places, no?
23:09:37 <MissPiggy> yeah it's kind of weird to call it set
23:09:44 <alise> or wait no, the subversion is (exists a. a) as a type
23:09:53 <alise> but i'm not sure i even have existential quantification
23:09:57 <alise> what does it even mean in a dependent language
23:11:08 <alise> MissPiggy: if it obeys set theory though what's the problem
23:12:01 <MissPiggy> but it's not a set
23:12:07 <alise> howso?
23:12:16 <alise> it's an inductively defined set if i have my set theory terminology right
23:12:21 <MissPiggy> you can interpret it as a set.. .but that's just like, your interpretation.. man
23:12:42 <alise> are you saying that because you could equally well call it ConstructiveStatement?
23:13:22 <alise> "The view from the left", paper introducing Epigram:
23:13:42 <alise> "{says that it uses \bigstar_n blah blah} These level subscripts can be managed mechanically (Harper & Pollack, 1991), so we shall freely omit them."
23:13:45 <alise> I was unaware.
23:14:21 <alise> wait, records are the same thing as modules aren't they
23:14:24 <alise> given a good record system
23:14:44 <alise> well, rather, record types = module signatures
23:14:52 <alise> inferred with modules obvs
23:16:28 -!- augur_ has quit (Ping timeout: 240 seconds).
23:18:31 -!- augur has joined.
23:24:55 -!- chickenzilla has joined.
23:25:00 <Wareya> hey
23:26:07 -!- augur_ has joined.
23:26:30 -!- augur has quit (Ping timeout: 268 seconds).
23:26:53 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:31:04 -!- BeholdMyGlory has joined.
23:32:12 -!- augur has joined.
23:35:00 -!- augur__ has joined.
23:35:04 -!- augur has quit (Read error: Connection reset by peer).
23:35:07 -!- augur_ has quit (Read error: No route to host).
23:35:15 -!- scarf has quit (Remote host closed the connection).
23:35:30 -!- MigoMipo has quit (Remote host closed the connection).
23:38:28 <alise> guh
23:38:32 <alise> I need to understand Agda's library
23:39:08 <alise> ooh, I like its syntax for forall
23:39:24 <alise> ∀{a} → b
23:39:46 <alise> ⊥-elim : ∀ {w} {Whatever : Set w} → ⊥ → Whatever
23:39:46 <alise> ⊥-elim ()
23:40:48 -!- tombom_ has quit (Quit: Leaving).
23:41:12 <alise> MissPiggy: there are subtle problems at every single damn level of this and they all involve advanced mathematics, what the fuck am I doing?!
23:41:17 <alise> this is INSANE!
23:41:28 <alise> I /know/ I'm not clever enough to do this
23:41:54 <MissPiggy> yes you are
23:41:54 <MissPiggy> once you have philosophy on your side it will become much easier
23:42:20 <MissPiggy> listen to this http://www.youtube.com/watch?v=q3nV6WqA4Y0
23:42:44 <alise> what do you mean by "philosophy on your side" exactly?
23:42:51 <alise> like some sort of coherent "idea" of my language that everything follows from?
23:43:05 <MissPiggy> just think about what stuff means and such
23:43:09 <alise> huh it seems that agda's solution to having one _+_ with multiple definitions is just to... rename them on import
23:43:12 <alise> unless i'm reading this wrong
23:43:15 <alise> MissPiggy: yeah i try
23:43:16 <MissPiggy> things will unify
23:43:34 <alise> MissPiggy: i'm almost certain I'm not intelligent enough to prove my language correct, though.
23:43:46 <alise> I don't have a Ph.D., I haven't studied proving such things.
23:43:48 <MissPiggy> alise oh of course you are, just implement a model in some other type theory
23:43:59 <alise> ...you know, you're right.
23:44:06 <alise> I just have to implement this in Agda or Coq or whatever and I'm done.
23:44:18 <alise> My fear there is that implementing it in Agda will show how ridiculously similar to Agda my language is. :)
23:44:30 <MissPiggy> I can't understand the proof for stuff like Coq but I know it's not a hoax :P
23:44:46 <alise> wow, gedit highlights agda as... wait for it...
23:44:47 <alise> VHDL
23:45:01 <MissPiggy> thats kind of ironic lol
23:45:06 <alise> it actually doesn't work too ridiculously badly
23:45:11 <alise> it highlights open and record
23:45:13 <alise> not data though
23:45:24 <alise> highlights String too but not most other data types :P
23:45:31 <alise> highlights comments though which is the main thing imo
23:45:43 <alise> data ℤ : Set where
23:45:43 <alise> -[1+_] : (n : ℕ) → ℤ -- -[1+ n ] stands for - (1 + n).
23:45:43 <alise> +_ : (n : ℕ) → ℤ -- + n stands for n.
23:45:47 <alise> Interesting representation.
23:46:19 <MissPiggy> did you like the song
23:46:32 <alise> which song
23:46:37 <MissPiggy> http://www.youtube.com/watch?v=q3nV6WqA4Y0
23:46:43 <alise> oh right
23:46:47 <alise> my flash is borken, guess it's time to restart ff again
23:47:05 <alise> i love you adobe. let me violate you with a rake
23:47:37 -!- augur__ has quit (Ping timeout: 264 seconds).
23:47:46 <MissPiggy> heh you can get a script that makes youtube not use flash :P
23:49:24 <alise> i know.
23:50:18 <alise> MissPiggy: also, http://www.youtube.com/watch?v=a8Dshk1XfDc
23:50:30 <MissPiggy> i love that lol
23:50:38 <alise> ditto
23:50:41 <MissPiggy> he is one completely great actor
23:51:11 <alise> god, dependent languages are so amazing
23:51:26 <alise> i should make a channel for them, in fact i just did #dependent
23:51:35 <MissPiggy> I did that :( nobody joined
23:51:42 <alise> WE CAN JOIN
23:52:59 <alise> It even has a topic! JOIN ME
23:54:26 -!- alise has quit (Quit: Leaving).
23:54:47 -!- alise has joined.
2010-02-21
00:09:35 -!- oerjan has quit (Quit: Good night).
00:11:43 -!- kar8nga has quit (Remote host closed the connection).
00:14:21 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:15:42 -!- P4 has joined.
00:15:48 <P4> Hi!
00:16:11 <Sgeo> o.O
00:16:21 <Sgeo> What's a contest doing in here?
00:16:33 <alise> ?
00:16:37 <alise> Hi P4.
00:17:04 <P4> i have a brainfuck interpreter, the trigger is !brainfuck [code] if you'r einterested
00:17:21 <Sgeo> Does it have a PSOX interpreter?
00:17:37 -!- BeholdMyGlory has joined.
00:17:51 <MissPiggy> !brainfuck [code]
00:17:51 <P4> Execution time: 0 sec., used 1 items.
00:18:01 <Sgeo> !brainfuck [+.]
00:18:02 <P4> Execution time: 0 sec., used 1 items.
00:18:07 <P4> quite frankly, i don't know :P the script i use is here http://pastebin.com/d3e4a2f93
00:18:08 <MissPiggy> !brainfuck +[code]
00:18:34 <Sgeo> What language is that?
00:18:37 <Sgeo> And is it secure/
00:18:43 <Sgeo> !brainfuck [++.]
00:18:48 <MissPiggy> !brainfuck +[code]
00:18:51 <Sgeo> It's not multithreaded, is it
00:19:00 <Sgeo> A single infinite loop kills it
00:19:08 <Sgeo> !brainfuck [code]
00:19:35 <MissPiggy> !brainfuck +[code]
00:19:35 <Sgeo> Either make it so that execution stops after a certain time, or multithread it. Actually, you should probably do both
00:21:07 <alise> P4: lol you didn't even *write* the script you mean?
00:22:05 <Sgeo> I don't recognize the language
00:22:22 <P4> that is right, i just wanted to test it for the exploiting
00:22:30 -!- augur has joined.
00:22:43 <Sgeo> Oh, mIRC
00:22:59 <P4> that is right, http://www.mirc.net/paste/?3758 here is better view
00:23:08 <Sgeo> People should learn to write real bots
00:23:16 <P4> pastebin.com seems to be failing on mirc type
00:23:28 <Sgeo> Or Python scripts for XChat or something, at the very least
00:23:37 <Sgeo> But real bots can be run by anyone regardless of client
00:23:46 <P4> well, actually i use supybot as a main bot, i could write plugins in python if i knew that language :p
00:24:22 * Sgeo has had issues getting supybot to work
00:25:23 <madbr> http://www.youtube.com/watch?v=ox_7tPA-vYo&feature=related
00:26:03 <P4> Sgeo: i will help you if i can, but #supybot-bots is more apropriate channel
00:26:12 <Sgeo> P4, it was a while ago
00:26:15 <Sgeo> And I don't need it now
00:26:25 <P4> mhkay (:
00:26:31 <Sgeo> If I need to write a bot anytime soon, I'm comfortable using irclib, and can survive with Twisted
00:27:30 <Sgeo> http://www.youtube.com/watch?v=_RbNdwY4ujw
00:29:12 <Gregor> EgoBot: I wurve you
00:29:19 <Gregor> !bf_txtgen Gregor: I WURVE YOU TOO
00:29:27 <EgoBot> 221 ++++++++++++++[>++++>++>+++++>++++++++<<<<-]>>>+.>++.-------------.++.++++++++.+++.<<<++.>++++.>++.<.>>---------------------------.--.---.<+++++++++++++.<<+++++++++++.>.>+++.>---.<----.<.>-.-----..<----------------------. [499]
00:29:43 <Gregor> !bf ++++++++++++++[>++++>++>+++++>++++++++<<<<-]>>>+.>++.-------------.++.++++++++.+++.<<<++.>++++.>++.<.>>---------------------------.--.---.<+++++++++++++.<<+++++++++++.>.>+++.>---.<----.<.>-.-----..<----------------------.
00:29:46 <EgoBot> Gregor: I WURVE YOU TOO
00:30:31 <MissPiggy> !bf_txtgen abcdefghijklmnopqrst
00:30:33 <EgoBot> 98 +++++++++++[>+++++++++>+++++++++>+><<<<-]>--.+.>.+.+.+.<+++++.+.+.+.+.+.>+++++++.+.+.+.+.+.+.+.>-. [323]
00:30:45 <MissPiggy> !bf_txtgen abcdefghijklmnopqrstuvwxyz
00:30:47 <EgoBot> 112 +++++++++++[>+++++++++>++++++++++>+><<<<-]>--.+.+.+.+.+.+.+.+.+.+.+.+.>.+.+.<++++.+.+.+.>+++++.+.<+++.+.+.+.>>-. [1000]
00:31:28 <Sgeo> We live to dance, another day / Just now we have to dance, for one more of us / So stop looking so damned depressed / And sing with all our hearts / Long live the queen
00:31:50 <P4> thanks for all the fish :)
00:31:50 -!- P4 has left (?).
00:31:54 <Gregor> Haw
00:31:57 <Gregor> I scared 'im off.
00:37:17 <Sgeo> Was watching Hulu.
00:37:30 <Sgeo> They just showed a Verizon commercial that was a blatant.. Twilight thingy
00:44:15 <Wareya> !bf_textgen wat
00:44:46 <Sgeo> !bf_txtgen We live to dance, another day / Just now we have to dance, for one more of us / So stop looking so damned depressed / And sing with all our hearts / Long live the queen
00:45:01 <Sgeo> !bf_txtgen wat
00:45:03 <EgoBot> 1923 +++++++++++[>+++>++++++++>++++++++++>++++<<<<-]>>-.++++++++++++++.<-.>>--.---.+++++++++++++.<.<.>>--.-----.<<.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>----.>-.<<-.++.>>>.------------.<<.<+++++++++.>>+.<<++++++.>>-------.---.<<--.>>>.<-.<.<+++++++.>>>.+++++++++++++++.<--------------------------------------------------------------------.>+++++++++++++++++++++++++++.<<<----.--.+.>>.>++++++++++++++++++++++++++++++++++++.+.
00:45:07 <Wareya> there we go
00:45:14 <Wareya> !bf +++++++++++[>+++>++++++++>++++++++++>++++<<<<-]>>-.++++++++++++++.<-.>>--.---.+++++++++++++.<.<.>>--.-----.<<.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>----.>-.<<-.++.>>>.------------.<<.<+++++++++.>>+.<<++++++.>>-------.---.<<--.>>>.<-.<.<+++++++.>>>.+++++++++++++++.<--------------------------------------------------------------------.>+++++++++++++++++++++++++++.<<<----.--.+.>>.>++++++++++++++++++++++++
00:45:15 <EgoBot> We live to dance, another day / Just
00:45:30 <Wareya> lol
00:45:40 <Wareya> espernet cut off the message
00:46:07 <chickenzilla> I just did this http://chicken.olol.eu/tests/index.bf
00:46:21 <alise> http://dresdencodak.com/2009/01/27/advanced-dungeons-and-discourse/
00:46:29 <alise> Wareya: you mean freenode.
00:46:33 <Wareya> right
00:46:38 <Wareya> i'm on alot of servers
00:46:38 <alise> chickenzilla: .b not .bf
00:46:40 <alise> .bf is befunge
00:46:49 <Wareya> alise: people use bf for brainfuck too
00:46:53 <alise> Wareya: they are wrong
00:46:55 <Wareya> also, .b is for B
00:46:56 <alise> .bf is befunge, .b is brainfuck
00:46:56 <chickenzilla> ok
00:46:59 <Wareya> .b is B
00:47:00 <alise> simple rule, obeyed by everyone
00:47:02 <alise> Wareya: no it's not
00:47:04 <Wareya> yes it is
00:47:07 <alise> B was obsolete before we used file extensions
00:47:07 <Wareya> I code B
00:47:11 <Wareya> so?
00:47:21 <alise> so brainfuck got there first. and dbc does it, so stop whining.
00:47:29 <Wareya> okay?
00:47:40 <Sgeo> What was B like?
00:47:48 <Wareya> then I'll use .bfk, .bfg, and .b
00:48:21 <Gregor> Well, it was BCL.
00:48:35 <alise> Sgeo: crappy
00:48:44 <Gregor> Erm, BCPL rather
00:51:59 * Sgeo is tired
00:54:01 <Wareya> yes
00:54:12 <Wareya> but I'm being forced to use it because f schol
00:54:21 <Wareya> my keyboard's daying
00:54:23 <Wareya> dying*
00:56:04 <alise> your SCHOOL uses BCPL?!
00:56:22 <Wareya> yes
00:56:46 <alise> I cannot even /begin/ to comprehend how gob-smackingly, jaw-droppingly, goat-molestingly FUCKING RETARDED someone ten times as intelligent as them must be.
00:56:46 <Gregor> Wareya studies in The Doctor's School of Time Travel and Computer Science
00:57:15 <alise> Also, B wasn't BCPL; B is a separate language.
00:57:20 <Wareya> yes
00:57:26 <Wareya> I knw this
00:57:29 <Wareya> know*
00:59:57 <Gregor> alise: Will you be watching men's curling in two hours?
01:00:00 <Gregor> Canada vs the UK!
01:00:08 <Gregor> I'll be taking Canada's side, so we can be competitors.
01:00:18 <alise> No!
01:00:45 <Gregor> LOSER
01:03:41 <alise> Well, maybe I will.
01:03:49 <alise> That will be 3 AM, though; how long will it endure for?
01:04:08 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
01:07:47 <alise> "While working on my book" Yudkowsky
01:07:48 <alise> YES
01:10:10 <Gregor> alise: About three hours :P
01:10:42 -!- adam_d has quit (Ping timeout: 272 seconds).
01:10:42 <alise> Well, I won't be up at 6, that is for certain.
01:27:10 -!- Aszstal has quit (Ping timeout: 272 seconds).
01:32:49 <Wareya> http://baetzler.de/humor/c_more_or_less.html
01:36:02 -!- cal153 has quit.
01:38:11 -!- FireFly has quit (Quit: Leaving).
01:47:19 -!- gm|lap has joined.
01:52:35 <alise> http://www.reddit.com/user/Lojban The reddit-account equivalent of a "what".
01:59:50 <Wareya> heh
02:08:00 <Sgeo> E actually has a few comments with positive karma
02:08:15 <alise> I'm pretty sure he really did get castrated, though
02:08:35 <alise> I had some sort of "discussion" with him (basically I tried to probe him to figure out WTF he was doing) and based on that I think he did
02:09:35 * Sgeo doesn't get the golf site thing
02:10:15 <alise> Other shticks he's had: most of reddit are single moms
02:10:23 <alise> I'm sure you can infer his most common metaschtick based on that.
02:13:01 <Wareya> COUCH.
02:15:16 <Gregor> 45 minutes 'til Canada starts whoopin' some UK arse!
02:16:27 <augur> anyone a latex god
02:16:39 <alise> what
02:16:47 <alise> well i can define me some macros yeah
02:17:55 <augur> i need to draw little trapezoids between lines, where the top and bottom parts are under/overlines to some parts of the adjacent lines
02:19:04 <alise> oh i thought you meant like
02:19:07 <alise> bdsm.
02:19:08 <alise> i was punning.
02:19:30 <augur> bdsm latex is boring.
02:20:43 <augur> basically i need to show a bunch of rewrites on a string, and i want to be able to show clearly what is rewritten in the transition from line to line
02:22:48 <Sgeo> SG-1 seasons 9 and 10: Worth watching?
02:22:59 <augur> meh.
02:24:24 -!- Pthing has quit (Remote host closed the connection).
02:39:44 -!- cal153 has joined.
03:00:44 <Gregor> CURLING TIME
03:02:06 <alise> link me to an online stream
03:02:09 <alise> and i'll watch
03:03:34 <Gregor> I don't know where TF the online stream is :P
03:04:11 <MissPiggy> www.curling.com
03:04:31 <MissPiggy> Youre premiere curling director!
03:04:33 <alise> Eh!
03:04:34 <MissPiggy> y
03:06:07 <alise> hey Gregor
03:06:08 <alise> Britain beats China 9-4 in men's Olympic curling‎ - 4 hours ago
03:06:14 <Gregor> That's China.
03:06:16 <Gregor> WhoTF cares.
03:06:27 <alise> Chinese players get executed for even THINKING of bad strategies.
03:08:33 <augur> :\
03:09:06 <alise> augur: what
03:09:22 <augur> LaTeX! :(
03:10:33 <Sgeo> Olympics
03:10:34 <Sgeo> My Head
03:38:42 <Gregor> alise: Canada's ahead 2-0 after the second end :)
03:38:47 <alise> Feck.
03:39:00 <Gregor> Oh, there's still plenty of game left.
03:39:03 * Sgeo should set up his grandmother's TV so she can actually watch
03:53:56 <Sgeo> Done
03:58:48 <alise> http://pastie.org/835023.txt?key=hhgvq1jyj8oic2xkcdkog
03:58:51 <alise> Quotient types in action.
03:59:22 <alise> Arbitrary fractions + equality on fractions -> the rationals. Where two equal fractions are actually ===, i.e. "are the exact same value".
03:59:33 <alise> (= have the same normal form; the constructor is basically x -> Eq x x)
04:09:04 -!- sebbu2 has joined.
04:11:47 -!- sebbu has quit (Ping timeout: 252 seconds).
04:12:58 <alise> Sgeo: Gregor: augur: be impressed.
04:13:28 <augur> what is it
04:13:43 <MissPiggy> 04:12 < alise> Sgeo: Gregor: augur: be impressed.
04:13:43 <MissPiggy> 04:13 < augur> what is it
04:13:51 <MissPiggy> haha reminds me of when I used to paint
04:14:16 <Sgeo> I don't even know the typed lambda calculus
04:14:17 <alise> augur: it defines the rationals in an almost painfully cool manner
04:14:30 <Gregor> Can't read. Too busy watching curling.
04:14:38 <augur> alise: how do i do math in latex
04:14:43 <alise> You telepathied my message to your own mind, Gregor?
04:14:45 <alise> augur: >_<
04:14:48 <alise> augur: JFGI
04:14:50 <MissPiggy> Sgeo sorry :(
04:15:00 <augur> i did, but nothing useful comes up for the obvious reason
04:15:06 <MissPiggy> Sgeo it's easy you will learn it in two mins
04:15:12 <Sgeo> I need to go eat
04:15:18 <MissPiggy> Sgeo but it's like you have to know the details and there's a lot of them
04:15:45 <Gregor> alise: Nope, I'm just guessing what you might say and typing blind.
04:16:05 <alise> Gregor: How much wood could a woodchuck chuck if a woodchuck could chuck wood?
04:16:52 <Gregor> alise: Nope, don't have time.
04:17:17 <alise> Gregor: Let's have sex! Everyone in the channel!
04:17:48 <augur> cmon alise
04:17:51 <augur> lets have it
04:17:52 <MissPiggy> hahaha
04:18:13 <Gregor> alise, augur: I'm in!
04:18:17 <augur> ;x
04:18:26 <alise> Gregor: EXPOSED
04:18:27 <augur> how do i do math in latex.
04:18:37 <alise> ...AND ERE*shot*
04:18:49 <alise> Now let us steer away quickly from this topic forever.
04:18:55 <alise> (Or at least until I'm 16.)
04:19:02 <alise> augur: How do I shot web. In LaTeX.
04:19:04 <MissPiggy> augur math in latex is easy??
04:19:09 <alise> augur: how do I program in Scheme?
04:19:13 <MissPiggy> $$ \sqrt{2} $$
04:19:19 <MissPiggy> I knew it would come in handy one day!
04:19:27 <alise> MissPiggy: what would?
04:19:29 <augur> MissPiggy: no, not how do i write math equations
04:19:34 <augur> how do i do actual calculations
04:19:37 <alise> augur: you don't
04:19:39 <alise> it's a typesetting system
04:19:42 <augur> ok then.
04:19:44 <MissPiggy> well you CAN
04:19:46 <alise> you /can/, it's turing complete
04:19:49 <alise> but you'd be an idiot
04:19:59 <alise> augur: are you writing a macro or sth?
04:20:13 <alise> i think tex has sufficient drawing primitives and stuff that do that shit for you
04:20:46 <augur> im writing a command that needs to draw some stuff automatically. its with tikz, so i know its possible. but im guessing its a tikz extension not a latex thing.
04:21:08 <alise> so read whatever tikz is's documentation
04:21:36 <augur> doing so :P
04:22:03 <Sgeo> LaTeX is turing complete?
04:22:05 <Sgeo> o.O
04:22:18 <alise> It has macros.
04:22:19 <alise> Q.E.D.
04:22:23 <Sgeo> Is there a particular name for using a non-esoteric language in an esoteric manner?
04:23:05 <MissPiggy> I wish there was!
04:23:18 <MissPiggy> abusing is the most common term I guess? but it's not quite perfect
04:23:21 <alise> Sgeo: Walling
04:23:23 <alise> after Larry
04:24:20 <Sgeo> Larry Wall is the Perl guy, right? As far as Perl is concerned, I know just that a common joke is that random strings will turn out to be syntactically correct
04:24:37 <alise> Perl is basically an abuse of itself.
04:24:38 <Sgeo> And variable names can start with $ or @ or something else I think
04:24:46 <alise> Perl = Walled Perl
04:24:57 <alise> An amazing recursive feat; too bad Perl itself can do nothing so grand. >:D
04:25:22 <alise> Also, he's a damned Christian!
04:25:45 <alise> (I am going to temporarily pretend that pikhq is not here.)
04:25:58 <Sgeo> You'd expect most Christians not to be damned, I guess
04:26:00 <Sgeo> </silly>
04:26:22 <Sgeo> And I'm assuming you're not actually judging him or Perl based on his beliefs, just joking about doing so
04:26:23 <alise> ((Well, at least pikhq didn't study linguistics to make a writing system for an African language so that they can translate the Bible in to it.))
04:26:31 <alise> (((Missionaries. Fuck them!)))
04:26:55 <alise> Sgeo: Well, he's obviously irrational because of his beliefs, but that doesn't tend to matter in practice. Being a missionary, though, especially one of such magnitude, I can't forgive.
04:27:04 <Sgeo> I don't think most missionary girls would let me
04:27:05 <Sgeo> >.>
04:27:16 <Sgeo> alise, ah.
04:27:18 <alise> Try using the missionary position.
05:02:07 -!- Gracenotes has joined.
06:37:28 -!- MissPiggy has quit (Quit: Lost terminal).
06:50:29 -!- Gracenotes has quit (Remote host closed the connection).
06:59:35 -!- Gracenotes has joined.
07:27:16 -!- madbr has quit (Quit: Radiateur).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:28:26 -!- oerjan has joined.
08:43:19 -!- MigoMipo has joined.
08:44:17 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:09:17 -!- kar8nga has joined.
09:09:49 -!- kar8nga has quit (Remote host closed the connection).
09:10:14 -!- kar8nga has joined.
09:20:03 -!- oerjan has quit (Quit: leaving).
09:34:18 -!- oklopol has quit (Ping timeout: 240 seconds).
09:38:49 -!- oklopol has joined.
09:40:22 <oklopol> i think people who kill babies for fun are evil
09:49:59 -!- adam_d has joined.
09:56:51 -!- MigoMipo has quit (Remote host closed the connection).
09:57:37 -!- oklofok has joined.
09:57:49 -!- oklopol has quit (Ping timeout: 264 seconds).
10:15:41 -!- BeholdMyGlory has joined.
10:16:54 -!- oklofok has quit (Read error: Connection reset by peer).
10:42:27 -!- FireFly has joined.
10:42:53 -!- kar8nga has quit (Remote host closed the connection).
10:50:34 -!- Sgeo_ has joined.
10:53:44 -!- Sgeo has quit (Ping timeout: 260 seconds).
11:00:08 <augur> i now have a program that will do my homework for me
11:02:09 <AnMaster> alise, btw it was \vee not \cup, misremembered yesterday
11:03:44 -!- MizardX has joined.
11:04:38 <AnMaster> alise, \cup \cap \vee \wedge, always mix the first three up and I always have to look up what the last one was called -_-
11:19:38 <cheater2> how do you mix up cup and cap? you don't drink coffee out of your hat do you?
11:20:12 <AnMaster> cheater2, well that is the issue, I don't like coffee at all
11:20:16 <AnMaster> nor tea
11:20:55 <cheater2> juice
11:20:56 <cheater2> water
11:21:09 <AnMaster> normally I drink water, and usually from a glass, not a cup
11:21:17 <cheater2> also: eating ice cream out of your wedgies is nasty
11:21:34 <cheater2> but ice cream fits in a Vee just well
11:21:41 <AnMaster> heh
11:21:53 <AnMaster> bbiab, restarting X for upgrade of it
11:22:02 <AnMaster> err s/it/nvidia drivers/
11:25:23 -!- AnMaster has quit (Read error: Connection reset by peer).
11:28:33 -!- AnMaster has joined.
11:30:57 <AnMaster> gah, ended up as reboot due to unexpected issues.
11:34:04 -!- kar8nga has joined.
11:35:25 -!- tombom has joined.
11:48:04 -!- oklopol has joined.
11:51:08 -!- puzzlet has quit (*.net *.split).
11:54:17 -!- puzzlet has joined.
11:55:38 -!- oklopol has quit (Read error: Connection reset by peer).
11:55:58 -!- oklopol has joined.
12:39:59 -!- deschutron has joined.
12:40:33 -!- deschutron has left (?).
12:41:14 -!- base3 has joined.
12:41:19 -!- base3 has left (?).
12:54:08 -!- oklopol has quit (Read error: Connection reset by peer).
12:54:29 -!- oklopol has joined.
13:09:36 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
13:32:17 -!- kar8nga has quit (Remote host closed the connection).
13:41:30 -!- BeholdMyGlory has joined.
13:54:40 -!- Sgeo__ has joined.
13:57:44 -!- Sgeo_ has quit (Ping timeout: 256 seconds).
14:00:56 -!- BeholdMyGlory has quit (Remote host closed the connection).
14:08:09 -!- BeholdMyGlory has joined.
14:19:40 <alise> l
14:24:12 -!- Asztal has joined.
14:30:59 <alise> Topickale.
14:31:03 <alise> Gregor: who won?
14:31:21 -!- sebbu has joined.
14:32:57 -!- sebbu2 has quit (Ping timeout: 248 seconds).
14:36:37 <alise> augur: talk about how "you're a fool!" is more offensive than "you're a damn fool!"
14:39:35 -!- Pthing has joined.
14:48:11 <alise> " On the nth turn, you have a 1/(n+1)^2 chance of winning and receiving $n. Else proceed next turn. How much would you pay to play this game?"
14:48:52 <alise> s/" O/"O/
15:02:08 -!- MissPiggy has joined.
15:03:07 <Wareya> is 1/(n+1)^2 left to right?
15:04:00 <MissPiggy> looks pretty left to right to me
15:04:12 <alise> no we are temporarily violating the laws of usual mathematics.
15:04:14 <Wareya> you missed the context. :D
15:04:14 <alise> (yes)
15:04:18 <MissPiggy> unless you start at the bottom and work upside down
15:04:19 <Wareya> okay
15:04:20 <alise> the context was
15:04:21 <alise> <alise> " On the nth turn, you have a 1/(n+1)^2 chance of winning and receiving $n. Else proceed next turn. How much would you pay to play this game?"
15:04:21 <alise> <alise> s/" O/"O/
15:09:09 <Wareya> so if n=2, then you would have a 0.111... chance?
15:09:21 <alise> yes. but remember that you must have played the previous turn first
15:09:26 <Wareya> yes
15:09:39 <alise> and if you won on the previous turn (which is the most likely turn to win on), the game will end
15:09:48 <alise> of course then you only get a buck back
15:09:57 <alise> you might even lose money, depending on how much it costs to play
15:10:02 <alise> (per-turn i assume)
15:10:44 <Wareya> I'm not going to bother writing a script, and assume that it's a pointless bet.
15:10:58 <alise> I can tell you there that you are wrong.
15:11:07 <Wareya> Okay.
15:11:17 <Wareya> I was always told to not gamble anyway.
15:11:29 <alise> Expected return, bitch.
15:14:57 -!- oklopol has quit (Ping timeout: 256 seconds).
15:31:48 -!- KingOfKarlsruhe has joined.
15:32:07 <alise> "SourceForge.net chooses Python, TurboGears and MongoDB to Redesign their Web Site"
15:32:09 <alise> How pointless.
15:32:15 -!- puzzlet has quit (Ping timeout: 245 seconds).
15:38:16 -!- Sgeo_ has joined.
15:38:30 -!- puzzlet has joined.
15:41:33 -!- Sgeo__ has quit (Ping timeout: 265 seconds).
15:53:01 -!- zeotrope has joined.
16:08:22 -!- MigoMipo has joined.
16:30:27 <AnMaster> alise, prediction github, launchpad and so on will all hit the same destiny in 10 years or so
16:30:36 <AnMaster> s/on /on: /
16:30:38 <alise> What; Singularity?
16:30:42 <alise> :P
16:30:46 <AnMaster> alise, as sf.net
16:30:47 <AnMaster> I meant
16:30:53 <alise> Yeah, I was just creatively misinterpreting.
16:30:57 <AnMaster> alise, I know
16:31:03 <alise> I know you know.
16:31:28 <AnMaster> and I suspected you knew that I knew that you knew
16:31:57 <AnMaster> hm I think I mixed up that one
16:32:06 <AnMaster> meh too much work figuring it out
16:32:58 <AnMaster> bbl making food
16:39:14 -!- oerjan has joined.
16:44:04 <alise> god dammit dependent types are awesome
16:45:49 <MissPiggy> your face is awesome
16:45:50 <oerjan> <alise> augur: talk about how "you're a fool!" is more offensive than "you're a damn fool!"
16:45:58 <MissPiggy> okloping?
16:46:26 <oerjan> lessee, damn fool is swearing and swearing is not usually literally meant. while the former might be, and so is genuinely insulting.
16:46:35 <alise> "You're a fucking cunt."
16:46:39 <alise> that's pretty offensive
16:46:45 <alise> and it's "just" swearing
16:46:58 <alise> and it's worse than "you're a cunt"
16:47:10 <oerjan> well sure but "cunt" is already swearing
16:47:43 <alise> "You're a fucking idiot."
16:48:27 <oerjan> i think just idiot is worse there... but i'm not native so
16:49:19 <oerjan> also i was making a theory, since no one else did
16:49:32 <alise> no, "fucking idiot" is definitely worse than "idiot"
16:50:02 <oerjan> in that case is it generally agreed that "fool" is worse than "damn fool"?
16:50:36 <alise> yes
16:50:37 <oerjan> idiot is also common in swearing though
16:50:57 <alise> "I'm going to kickflip off this building while eating a banana." "You're a fool." "Fuck you, man."
16:51:02 <alise> "I'm going to kickflip off this building while eating a banana." "You're a damn fool." "Haha, I know, man."
16:51:19 <MissPiggy> lol
16:51:56 * oerjan will wait for the scientific survey
16:53:45 <oerjan> MissPiggy: there seems to be a severe oklodeficiency here at the moment
16:54:24 <MissPiggy> okokok
16:56:08 -!- coppro has joined.
17:05:31 <Gregor> alise: Canada, of course :)
17:05:38 <alise> Gregor: Feck, eh.
17:06:15 -!- coppro has set topic: totally 0 days since last anyone sighting. 'part from hcf, 2592 and a bit days. http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:07:58 <alise> hcf fanclub
17:27:36 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
17:27:45 <alise> boom
17:28:42 <oerjan> boom of doom
17:36:26 <Gregor> Why do we explode when pooppy leaves?
17:36:39 <alise> See quit message.
17:36:45 <Gregor> I see it.
17:36:49 <Gregor> That doesn't answer the question :P
17:37:15 <alise> it is a categorial imperative
17:37:19 <alise> *categorical
17:37:30 <Gregor> Well, good point :P
17:42:13 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
17:42:44 -!- augur has quit (Ping timeout: 276 seconds).
18:35:05 -!- MizardX- has joined.
18:37:13 -!- MizardX has quit (Ping timeout: 248 seconds).
18:37:33 -!- MizardX- has changed nick to MizardX.
18:39:58 -!- BeholdMyGlory has joined.
18:53:11 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
19:08:50 -!- Sgeo_ has changed nick to Sgeo.
19:49:32 -!- MizardX has quit (Read error: Connection reset by peer).
19:52:44 -!- MizardX has joined.
20:02:20 -!- kar8nga has joined.
20:21:13 -!- adam_d has quit (Ping timeout: 264 seconds).
21:14:22 -!- augur has joined.
21:17:56 -!- scarf has joined.
21:23:38 -!- augur_ has joined.
21:23:48 -!- augur has quit (Read error: No route to host).
21:33:20 -!- augur_ has quit (Ping timeout: 256 seconds).
21:56:27 -!- augur has joined.
22:01:09 <Gregor> alise: Men's curling, US vs UK RIGHT NOW
22:01:22 <alise> Um okay what channel in the UK I mean I don't even
22:01:25 <alise> BBC or ITV or what
22:01:29 <alise> Or do I need some shitty sports channel
22:01:32 * oerjan curls his toes
22:01:52 <alise> BBC
22:02:03 <alise> ok um as soon as I get the motivation to turn on the tv I will watch
22:02:07 <alise> sort of
22:03:53 -!- augur_ has joined.
22:03:56 -!- augur has quit (Ping timeout: 256 seconds).
22:04:20 -!- MigoMipo has quit (Remote host closed the connection).
22:06:11 <alise> "HTML6 is project of novations, allowing to write broken line from any to any HTML-element, to refer to place without attribute "id" and "name", to display table 3x100 of DBMS as table 10x10 of browser, to display hyper-cube as table, to hide and show HTML-elements. It proposes new control "picture" (attached graphic file is displayed in document), style for attribute to display its value. HTML6 enters new elements, which send data like form, but automatica
22:06:11 <alise> lly: to browse column of database and to browse tree of database. And many others."
22:06:16 <alise> whatttttttttttttt
22:07:05 <alise> lol same guy made "sql 5" http://sql50.euro.ru/site/sql50/en/author/index_eng.htm
22:07:26 <alise> unicode 7 (UPDATING): http://unicode70.euro.ru/
22:07:33 <alise> and... computer 2! also updating: http://computer20.euro.ru/
22:07:41 <alise> the first example: http://html6.by.ru/
22:07:46 <alise> i think this guy may be crazy
22:07:59 <alise> http://unicode70.euro.ru/site/unicode70/en/author/index_eng.htm old version of unicode 7, wtf
22:08:09 <oerjan> but is he CRAZY2 ?
22:08:35 <alise> i have... i just the
22:08:45 <oerjan> omg he broke alise
22:10:34 <alise> it's
22:11:17 <alise> computer 2.0: http://computer2.by.ru/site/computer20/en/author/index_eng.htm
22:11:19 <oerjan> as we all suspected, alise was really an AI, and the russians developed an illogic bomb against it
22:12:26 <alise> oerjan: the of it ⊥ → a ∴ a and AND it ¬a the
22:12:35 -!- MizardX- has joined.
22:12:47 <oerjan> dammit unicode again
22:13:50 <alise> http://translate.google.com/translate?hl=en&ie=UTF-8&sl=auto&tl=en&u=http://html6.by.ru/site/html60/ru/index_ru.htm&prev=_m
22:13:51 * oerjan thinks he recalls such a pyramid of dots from principia mathematica
22:13:57 <alise> the glorious html html html html html 6 6 6 6 6 the html 6
22:14:24 <alise> oerjan: therefore, therefore, therefore a a a a a a it therefore the operator of unicode look->[*&& p~2 :: Set === a and the \nPRIVMSG #esoteric :
22:14:48 <oerjan> ok
22:14:49 -!- MizardX has quit (Ping timeout: 248 seconds).
22:15:03 -!- MizardX- has changed nick to MizardX.
22:24:20 -!- augur_ has quit (Ping timeout: 256 seconds).
22:31:01 -!- cheater2 has quit (Ping timeout: 260 seconds).
22:36:17 -!- scarf has set topic: <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:36:25 <scarf> that's a great quote
22:36:39 <scarf> especially if you know IWBTG
22:37:39 <Asztal> I beat 3 bosses on it and then lost my save file >:(
22:38:19 <scarf> wow, I've never actually tried to /play/ IWBTG
22:38:23 <scarf> but it's funny watching other people play
22:38:26 <alise> I have played it
22:38:28 <alise> I was really bad
22:38:34 <alise> also, *IWBTG:TM:TG
22:38:41 <scarf> alise: ?
22:38:53 <alise> and dtsund*I Wanna Be The Guy: The Movie: The Game
22:39:01 <alise> (yes, I did just invent targeted correction syntax.)
22:39:08 <alise> scarf: It's the full name.
22:39:14 <oerjan> `addquote <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside.
22:39:14 <scarf> ah
22:39:30 <HackEgo> 132|<dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside.
22:41:11 <Asztal> hmm, it looks like you can generate your own save files with I Wanna Be The Fix, maybe I'll try to finish it :)
22:45:12 -!- tombom has quit (Quit: Leaving).
22:49:38 <alise> someone beat iwbtg without any saves
22:49:39 <alise> O_O
22:49:56 <scarf> some random japanese person
22:49:57 -!- kar8nga has quit (Remote host closed the connection).
22:50:01 <alise> no
22:50:17 <alise> someone with the youtube moniker "tijitdamijit"
22:50:17 <scarf> oh, someone /else/?
22:50:24 <alise> this is on impossible mode
22:50:26 <alise> = no saves
22:50:32 <alise> i think the only person to do it
22:50:34 <scarf> actually, you can save in impossible mode
22:50:40 <scarf> the fake save point can apparently be used for one frame
22:50:41 <scarf> due to a bug
22:50:43 <alise> well, yes
22:50:44 <alise> but it wasn't
22:50:49 <scarf> but you'd pretty much need to TAS to pull that one off
22:50:58 <alise> someone managed it without that
22:50:58 <alise> anyway
22:50:59 <alise> http://www.youtube.com/watch?v=pnllGJy7lSk <-- part 1
22:51:11 <alise> sped up x3
22:51:14 <scarf> do they do it in less than an hour?
22:51:31 <alise> dunno, it's multiple videos and most (all?) are sped up because it's such a tedious game
22:52:10 <alise> this guy beat the fucking game without dying once I mean damn
22:52:48 <scarf> I saw a video of someone /else/ doing it in one save
22:52:52 <scarf> as in, without saving
22:52:56 <scarf> so it clearly isn't impossible
22:53:06 <alise> Impossible for mortals is presumably the implication
22:53:21 <scarf> from what I've heard, part of it's dexterity, but a lot is memorisation
22:53:28 <scarf> if you know everything to do off by heart it's a lot easier
22:53:37 <alise> of course, platforms appear in disappear in basically random places
22:53:53 <alise> dexterity and a really good sense of time are the main other skills yeah
22:54:03 <alise> you have to time everything absolutely perfectly
22:54:09 <alise> and without really any time to just stand and think
22:54:20 <scarf> the whole game's deterministic, IIRC
22:54:28 <alise> Doesn't matter
22:54:33 <alise> You still need perfect timing
22:54:35 <scarf> yes
22:54:55 <alise> writing a bot to play IWBTG would be godly
22:55:00 <alise> it could even /speedrun/ it
22:55:09 <scarf> that would basically be an IWBTG TAS
22:55:21 <alise> yes, but less frustrating :P
22:55:35 <scarf> alise: have you seen the platform games designed to be TAS-only?
22:55:36 <olsner> how about an esolang where the program is control input for a platform game?
22:55:44 <alise> scarf: haha lol no
22:55:50 <scarf> they're much much harder than IWBTG, obviously
22:55:51 <alise> you mean bastard mario and its ilk?
22:55:55 <alise> i.e. really hard ones
22:55:57 <scarf> alise: mostly it's mario romhacks
22:55:59 <alise> or really ones meant to be tas-only
22:56:01 <scarf> but even harder than those
22:56:06 <alise> (yeah I know bastard mario isn't called that)
22:56:10 <alise> (actually even in english it's asshole mario)
22:56:11 <scarf> look for "Item Abuse TAS" on Youtube
22:56:17 <alise> (but remembering the japanese name is far too boring)
22:56:26 <scarf> someone made a level where you had to perform every single known glitch to solve it
22:56:30 <alise> lol
22:56:48 <scarf> and most of them require perfection to the frame
22:58:40 <alise> hmm
22:58:51 <alise> a game where you can't kill any of the enemies would be interesting
22:58:58 <alise> you'd just have to avoid them while considering every other part of the game
22:59:38 <scarf> nah, there are loads of games like that
22:59:54 <alise> yes, but not platformers afaik
23:02:22 <olsner> moving killing-things is pretty common though, so isn't that just a platform game without enemies but with slightly more moving-killing-things in it?
23:02:42 <alise> well, no, because moving-killing-things generally don't follow and shoot at you
23:02:51 <scarf> beh, you just made me watch Item Abuse for the fifth or sixth time
23:05:18 <Sgeo> Why do I keep randomly disconnecting?
23:06:57 <alise> Do you?
23:08:11 * alise downloads IWBTG in hopes of playing it via wine
23:08:25 <alise> Since when is it 68 megs?
23:08:37 <Sgeo> There's a demo, with a few levels, and the full version
23:08:44 <alise> This is the full on
23:08:45 <alise> *one
23:08:48 <alise> But 68 megs?
23:09:03 <Sgeo> *shrug* Is that more or less than you were expecting?
23:09:48 <alise> more
23:10:30 -!- fxkr has joined.
23:10:47 <alise> hi fxkr
23:10:55 <fxkr> hi alise
23:11:04 <alise> you look new. so sacrifice goats!
23:11:19 * fxkr sacrifices two goats
23:12:09 <fxkr> actually i'm not new, i just a) havent been here for >= 1 year and b) have never used this nickname here ;)
23:12:19 <fxkr> (at least iirc)
23:12:24 <scarf> ok, and your /whois doesn't give anything away
23:12:28 <Sgeo> That's only going to make fxkr thing it's a channel for esotericism.. oh
23:12:31 <scarf> what was your nick last time, or would you rather we didn't know?
23:12:35 <alise> then clearly either you must tell us who you are
23:12:39 <alise> or we will have to forcibly extract this knowledge
23:12:46 <alise> scarf: the latter is obviously not an option
23:12:50 <scarf> it is for me
23:12:53 <fxkr> scarf: no problem with you knowing, but i just dont have a damn clue
23:12:59 <alise> I'll probably work it out based on how he talks
23:13:07 <alise> fxkr: Are you that german dude?
23:13:31 <oerjan> that would be jix
23:13:38 <oerjan> who is still here
23:13:39 <alise> no, no
23:13:40 <alise> another one
23:13:42 <fxkr> what makes you think i'm german?
23:13:44 <alise> he was like nooga but less annoying
23:13:55 <alise> fxkr: pattern recognition on your name, use of ;) and omitting of apostrophes
23:13:56 <scarf> fxkr: your +1 timezone?
23:13:59 <alise> it's a heuristic, perhaps it's wrong.
23:14:09 <scarf> there are lots of other countries in +1, though
23:14:11 <oerjan> also, nooga is polish ;)
23:14:15 <alise> scarf: *you're, presumably
23:14:18 <alise> in a
23:14:22 <alise> oerjan: /like/ nooga
23:14:23 <alise> but less annoying
23:14:26 <scarf> alise: no, the +1 timezone belongs to him
23:14:30 <scarf> not alone, but at least partially
23:14:38 <scarf> I don't see anything wrong with what I wrote
23:14:41 <alise> oh it was an answer to a question
23:14:41 -!- Gracenotes has quit (Ping timeout: 252 seconds).
23:15:02 <oerjan> another guess: kipple
23:15:25 <alise> Kipple wouldn't forget his name; he was a permanent fixture.
23:15:29 <fxkr> scarf: yep its +1 timezone.. (+2 sometimes, because of this daylight saving time stuff)
23:15:38 <alise> And his absence has been more than a year!
23:15:41 <alise> fxkr: so what country?
23:15:50 <fxkr> alise: :P
23:15:56 <fxkr> alise: behind you
23:15:59 <oerjan> fxkr said >= 1 year, not =
23:16:01 <alise> <fxkr> scarf: no problem with you knowing, but i just dont have a damn clue
23:16:06 <alise> I thought you didn't mind us knowing.
23:16:12 <alise> oerjan: the big bang was >= 1 year ago too
23:16:19 <alise> kipple's been away since like 2005
23:16:29 <fxkr> alise: i just meant i would tell you if i knew
23:16:34 <fxkr> that @ nickname
23:16:46 <alise> then we should clearly try and discover your nick!
23:16:49 <alise> now give us information :|
23:16:50 <oerjan> thematrixguy or whoever...
23:17:05 <fxkr> @country: dont really care, but not telling you is the more interesting option
23:17:20 <oerjan> or was that someone who kept forgetting his password and changing because of that
23:17:49 <oerjan> hm... that south african, hasn't been here in a while has he?
23:17:55 <oerjan> now what was his nick
23:18:02 -!- augur has joined.
23:18:03 <scarf> Hiato
23:18:07 <oerjan> right
23:18:46 <oerjan> that's about the most interesting country we've had in that timezone
23:19:07 <oerjan> hm there was a spaniard at one time wasn't there
23:19:14 * oerjan isn't quite sure
23:19:23 <alise> thematrixeatsyou is gm|lap
23:19:25 <alise> aka greasemonkey
23:19:27 <oerjan> ah
23:19:39 <alise> he's the guy that raged at you because he wanted a non-pd license on the wiki and you said no :P
23:19:48 <alise> (aka ben russell now)
23:19:56 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:20:10 <alise> fxkr: anyway what langs do you like
23:20:16 <fxkr> alise: nice try
23:20:24 <alise> ...what?
23:20:40 <fxkr> alise: eh wait, i thought you meant natural languages..
23:20:47 <alise> -_-
23:20:48 <fxkr> alise: well, brainfuck for starters
23:20:55 <alise> ah, one of the boring ones!
23:20:58 <alise> :)
23:21:00 <oerjan> we don't want no steenking natural languages here, right augur
23:21:21 <fxkr> well, there are some esoterical natural languages
23:21:22 <fxkr> "natural"
23:21:25 <fxkr> french springs to mind
23:23:01 <augur> oerjan: hey, sup
23:23:03 <oerjan> i guess we can scratch of french now...
23:23:04 <augur> natural languages huh
23:23:09 <augur> AWESOME LETS TALK NATLANGS
23:23:10 <oerjan> augur: just trolling you
23:23:23 <oerjan> *out
23:24:18 <oerjan> fxkr: maybe you're andreou, that would be sorta ironic
23:24:35 <fxkr> no, definitely not
23:24:42 <fxkr> something i should know about him?
23:24:54 <oerjan> the channel founder who hasn't been around for years
23:25:09 <fxkr> haha
23:25:19 <alise> #
23:25:21 <oerjan> you're not that hcf guy in the topic?
23:25:24 <alise> haha no
23:25:30 <alise> hcf is the author of clog
23:25:38 <oerjan> wait the previous topic
23:25:39 <alise> (not administrated by him, or anyone, any more, though)
23:25:48 <alise> (far just reboots the server occasionally)
23:26:02 <alise> augur: talk about how "you're a fool" is more offensive than "you're a damn fool"
23:26:07 <alise> as opposed to "you're an idiot" vs "you're a fucking idiot"
23:26:18 <augur> alise: is it now
23:26:23 <augur> thats not the kind of linguistics i do
23:26:31 <alise> i don't care, make it into how like
23:26:37 <fxkr> <-- afk, i'll read the scrollback during tomorrows lecture though
23:26:38 <alise> expressing contempt through added expletives
23:26:43 <alise> only works when your morphological syntactic component
23:26:44 <augur> not my kind of linguistics.
23:26:46 <alise> is remorphic
23:26:46 <fxkr> please dont write more than i can read in 4 hours
23:26:48 <fxkr> thanks :D
23:26:51 <alise> it totally applies then
23:26:53 <alise> bitch
23:27:00 <augur> remorphic?
23:27:41 -!- Gracenotes has joined.
23:28:14 <oerjan> alise is making up words like linguists do ;D
23:28:24 <alise> ohhhhh ice burn
23:29:00 * alise hides the zygohistomorphic prepromorphisms
23:29:20 <oerjan> that was category theory, obviously
23:29:24 <alise> http://www.haskell.org/haskellwiki/?title=Zygohistomorphic_prepromorphisms&action=history oh how we adore roconnor
23:29:45 <oerjan> or was it linguistics? or possibly, _both_
23:30:24 <alise> curry-howard-augur isomorphism
23:30:55 <oerjan> i think there's another third name sometimes used
23:30:57 <augur> :)
23:31:14 <alise> yeah apparently linguistics<->logic
23:31:21 <alise> so therefore linguistics<->LC
23:31:38 <oerjan> lambek was it
23:31:48 <alise> dunno
23:32:02 <oerjan> that wasn't a question
23:32:08 <augur> alise, no, semantics ~ logic, and syntax ~ logic
23:32:09 <alise> ah :P
23:32:14 <alise> augur: yeah yeah whatever
23:32:16 <oerjan> maybe i should use punctuation sometimes
23:32:17 -!- FireFly has quit (Quit: Leaving).
23:35:00 <augur> im thinking of doing a series of blog posts on formal grammars from a proof theoretic perspective
23:37:11 <MissPiggy> good!!
23:41:30 -!- scarf has quit (Remote host closed the connection).
23:42:35 <MissPiggy> where is oklopol
23:43:52 <oerjan> oklogone
23:43:54 -!- Pthing has quit (Remote host closed the connection).
23:44:32 <alise> MissPiggy: he has too much of an interesting life to come on much nowadays
23:44:34 <alise> also too much uni work
23:44:38 <oerjan> <oerjan> MissPiggy: there seems to be a severe oklodeficiency here at the moment
23:44:59 <oerjan> hasn't been seen since
23:46:02 <alise> uh he's been here this weekend...
23:46:04 <alise> no?
23:46:34 <oerjan> well yesterday, yes
23:46:57 <alise> lol
2010-02-22
00:04:10 -!- Pthing has joined.
01:21:41 -!- Pthing has quit (Remote host closed the connection).
01:42:14 -!- jcp has joined.
01:53:07 -!- oerjan has quit (Quit: Good night).
02:01:53 <Gregor> Just got the backorder email for the Barbie computer engineer (it's not really on backorder, it's preorder, but whatever). The product name there: "BRB I CAN BE DOLL computer eng"
02:02:24 <alise> Gregor: who won curling
02:02:30 <Gregor> UK.
02:02:30 -!- bsmntbombdood has quit (Read error: Operation timed out).
02:02:31 <alise> also... :D
02:02:33 <Gregor> Of course.
02:02:37 <alise> i'ma buy that doll
02:02:46 <MissPiggy> me too
02:02:49 <Gregor> The BRB I CAN BE DOLL
02:02:51 <alise> brb, I can be doll
02:02:57 <alise> IF I JUST TRY
02:03:01 <Sgeo> How much do you want to bet that I won't get my HW done?
02:03:11 <alise> Horse whaling?
02:03:14 <alise> I'm not sure you can even whale a horse.
02:03:14 <Gregor> Sgeo: YOUR HOMEWORK
02:03:40 -!- bsmntbombdood has joined.
02:14:58 -!- Asztal has quit (Ping timeout: 256 seconds).
02:16:06 -!- augur has quit (Ping timeout: 256 seconds).
02:33:37 -!- augur has joined.
02:35:00 -!- kwertii has joined.
02:37:00 -!- MissPiggy has quit (Quit: Lost terminal).
02:44:00 * Sgeo is so tired
02:44:10 <Sgeo> I have an exam tomorrow, and homework due tomorrow
03:12:31 -!- Gracenotes has quit (Remote host closed the connection).
03:13:56 <alise> Sgeo: what time is it there?
03:14:07 <Sgeo> Right now, 10:13.
03:14:10 <Sgeo> PM
03:17:22 -!- bsmntbombdood_ has joined.
03:17:25 <alise> 3:16 am here. I don't know when I have to be up, because the place is run by incompetent fools that do not tell you when they will arrive.
03:17:39 <alise> Until the morning, that is; add a few hours to whatever they tell you, and that's when they'll arrive.
03:17:51 <alise> Earliest I have to be up is probably 9:30, but I don't care.
03:19:59 -!- bsmntbombdood has quit (Ping timeout: 252 seconds).
03:27:05 -!- bsmntbombdood_ has quit (Ping timeout: 246 seconds).
03:39:50 -!- bsmntbombdood_ has joined.
03:40:09 -!- MizardX has quit (Ping timeout: 248 seconds).
03:44:32 -!- bsmntbombdood_ has quit (Ping timeout: 260 seconds).
03:57:46 -!- bsmntbombdood_ has joined.
04:20:26 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
04:22:04 <alise> Well, so ends another week.
04:22:13 <alise> Sgeo, I believe, is the only one active, so... anything to say?
04:22:34 <Sgeo> I hope your situation improves soon.
04:22:44 <alise> Funny. So do I. :P
04:22:51 <Sgeo> :D
04:23:01 <alise> Anyway, see you guys on Friday.
04:23:12 <alise> I guess one could say that this is the end of Dispatch 3, though I've never really thought of them as having endings per se.
04:23:23 <alise> Which is a rather appropriately me-like thought to end my stay with. Bye!
04:23:27 -!- alise has quit (Quit: Leaving).
04:30:06 -!- pikhq has quit (Read error: Connection reset by peer).
04:42:23 -!- pikhq has joined.
05:01:57 -!- lament has quit (Ping timeout: 265 seconds).
05:03:27 -!- lament has joined.
05:52:05 -!- augur has quit (Ping timeout: 272 seconds).
05:54:00 -!- jcp has quit (Ping timeout: 272 seconds).
05:55:36 -!- jcp has joined.
06:12:56 -!- augur has joined.
06:45:54 -!- BeholdMyGlory has joined.
06:48:01 -!- BeholdMyGlory has left (?).
06:50:49 -!- augur has quit (Read error: Connection reset by peer).
06:51:08 -!- puzzlet has quit (Changing host).
06:51:09 -!- puzzlet has joined.
06:59:48 -!- tombom has joined.
07:02:18 -!- lament has quit (Ping timeout: 265 seconds).
07:02:36 -!- lament has joined.
07:06:58 -!- FireFly has joined.
07:24:44 -!- augur has joined.
07:51:27 -!- tombom has quit (Quit: Leaving).
07:59:46 -!- FireFly has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:33 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
08:43:45 -!- BeholdMyGlory has joined.
09:03:23 -!- KingOfKarlsruhe has joined.
09:05:05 -!- zeotrope has quit (Ping timeout: 252 seconds).
09:19:14 -!- Gracenotes has joined.
09:35:29 -!- coppro has joined.
09:48:53 -!- oerjan has joined.
09:52:39 -!- scarf has joined.
09:53:24 * oerjan hopes freefall isn't approaching a downer ending :(
09:54:10 -!- kwertii has quit (Quit: bye).
10:09:30 <augur> so
10:09:46 -!- Pthing has joined.
10:10:02 <augur> GIGs minus the initial terminal in the push rule = turing complete
10:10:22 <augur> someone should implement this
10:22:58 -!- coppro has quit (Read error: Operation timed out).
10:24:50 -!- Pthing has quit (Remote host closed the connection).
10:43:20 -!- oerjan has quit (Quit: leaving).
11:03:18 -!- scarf_ has joined.
11:03:27 -!- scarf has quit (Read error: Connection reset by peer).
11:03:37 -!- scarf_ has changed nick to scarf.
11:14:34 <Ilari> augur: GIG?
11:31:35 -!- Pthing has joined.
11:37:03 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
12:20:01 -!- Asztal has joined.
13:07:06 -!- FireFly has joined.
13:53:47 -!- MigoMipo has joined.
14:01:27 -!- scarf_ has joined.
14:39:00 -!- Pthing has quit (Remote host closed the connection).
14:50:31 -!- MizardX has joined.
14:55:19 <scarf_> can anyone here remember why Java has 13 months in a year?
14:55:22 <scarf_> I used to know, but forgot
14:55:31 <scarf_> (it may be something about lunar calendar compatibility, or something)
15:01:11 -!- amca has joined.
15:01:31 -!- Sgeo_ has joined.
15:04:25 -!- Sgeo has quit (Ping timeout: 248 seconds).
15:10:08 <AnMaster> scarf_, discworld year?
15:10:27 <AnMaster> or wait, how many months was that
15:11:47 <AnMaster> ah yeah http://en.wikipedia.org/wiki/Discworld_%28world%29#Calendar
15:11:54 <AnMaster> scarf_, clearly for compat with that :)
15:13:02 <AnMaster> (when I googled I thought I would get an lspace link, but first hit was wikipedia, heh)
15:13:27 <AnMaster> http://wiki.lspace.org/wiki/Discworld_calendar seems somewhat more comprehensive though
15:26:19 <fizzie> Oh yes, the Undecimber.
15:26:26 <fizzie> It's sort of explained in http://en.wikipedia.org/wiki/Undecimber
15:26:36 <fizzie> Lunar calendar compatibility indeed.
15:27:12 <fizzie> You won't get the 13th month out of a Java Calendar object that's using the standard Gregorian calendar.
15:29:35 -!- Gracenotes has quit (Read error: Operation timed out).
15:29:54 <fizzie> I suppose it also returns 12 if you ask for getMaximum(Calendar.MONTH).
15:35:32 -!- cpressey has joined.
15:43:43 <AnMaster> fizzie, is january 0?
16:06:05 -!- MissPiggy has joined.
16:18:04 -!- tombom has joined.
16:40:53 -!- cal153 has quit.
16:46:44 -!- MizardX- has joined.
16:49:05 -!- MizardX has quit (Ping timeout: 260 seconds).
16:49:14 -!- MizardX- has changed nick to MizardX.
16:59:55 -!- kar8nga has joined.
17:35:48 -!- scarf_ has quit (Quit: Page closed).
17:36:21 -!- Sgeo__ has joined.
17:37:48 <AnMaster> Deewiant, TURT headings are counter clockwise right?
17:38:59 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
17:39:07 -!- cheater2 has joined.
17:50:21 -!- jcp has joined.
17:52:49 -!- cheater2 has quit (Ping timeout: 268 seconds).
17:58:55 -!- MigoMipo has quit (Remote host closed the connection).
17:59:40 -!- cheater2 has joined.
18:02:05 -!- MigoMipo has joined.
18:03:29 -!- jcp has quit (Read error: Connection reset by peer).
18:05:09 -!- cheater2 has quit (Ping timeout: 268 seconds).
18:05:59 -!- cheater2 has joined.
18:26:27 -!- Sgeo_ has joined.
18:29:23 -!- Sgeo__ has quit (Ping timeout: 252 seconds).
18:32:25 -!- Pthing has joined.
18:32:28 -!- kar8nga has quit (Remote host closed the connection).
18:35:40 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
18:36:30 <fizzie> AnMaster: Yes. "The first month of the year in the Gregorian and Julian calendars is JANUARY which is 0; the last depends on the number of months in a year."
18:37:12 <AnMaster> fizzie, why are they SHOUTING the name of the MONTH?
18:37:41 <fizzie> Because in Java, CONSTANTS tend to be SHOUTED.
18:37:56 <AnMaster> fizzie, but that seems so C PREPROCESSOR
18:38:00 <AnMaster> rather than nice enums
18:38:03 <AnMaster> or such
18:38:22 <fizzie> They're not nice enums, though; they're just integer constants. (Still, I think real enums get NOISY names too.)
18:38:37 <AnMaster> doesn't java have enums?
18:38:46 <fizzie> Yes, but they were added in Java 1.5/5.0 or so.
18:38:51 <scarf> enums are fun
18:38:52 <AnMaster> heh
18:38:58 <scarf> they're basically static arrays of generic objects
18:39:01 <scarf> and you just compare pointers
18:39:11 <AnMaster> scarf, wtf
18:39:19 <AnMaster> why not basically map to integers with type checking
18:39:20 <fizzie> They're a lot more complicated than C enums, though, since you can defined methods and everything for "enum classes".
18:40:06 <scarf> public enum InputFormat { BZIP2, GZIP, TTYREC, SCRIPT };
18:40:14 <scarf> ^-- an actual line of code from a Java program I'm writing
18:40:19 <fizzie> Okay, so they can be simple too.
18:40:40 <fizzie> But you can define constructors, and then list arguments there in the list of enum values.
18:40:45 <scarf> well, due to namespacing, you have to call the actual formats TtyrecAnalyzer.InputFormat.BZIP2 or whatever
18:41:55 <AnMaster> even though erlang's record syntax (somewhat like struct) is noisy (one of the few things that irritate me with erlang), this is still a lot less code than would have been required in for example C:
18:42:00 <AnMaster> add_circle(#turtle{pen=false}, Drawing = #drawing{}) ->
18:42:00 <AnMaster> Drawing;
18:42:00 <AnMaster> add_circle(#turtle{pos=Pos,colour=Colour, pen=true}, Drawing = #drawing{nodes=N}) ->
18:42:00 <AnMaster> Circle={circle,Colour,Pos},
18:42:00 <AnMaster> Drawing#drawing{nodes=[Circle|N]}.
18:42:17 <AnMaster> and that last one could be compressed to one line without causing much readability issues
18:42:22 <fizzie> For example, I have (stripping comments): public enum Side { BLUE, RED, NONE; public Side opposite() { if (this == BLUE) return RED; else if (this == RED) return BLUE; else return NONE; } }
18:42:36 <fizzie> That lets you say BLUE.opposite() or some-such.
18:42:53 <AnMaster> he
18:42:54 <AnMaster> heh*
18:43:00 <fizzie> (Or, in general, when you have a Side foo, foo.opposite(); I doubt BLUE.opposite() gets used much, since it's the same as RED.)
18:43:05 <AnMaster> fizzie, is NONE supposed to happen?
18:43:14 <fizzie> Yes, sometimes.
18:43:20 <AnMaster> fizzie, such as?
18:43:23 <fizzie> It's used for the winner in a draw, and so on.
18:43:42 <AnMaster> fizzie, so blue and red indicates winner/looser?
18:43:51 <fizzie> No, they're just the names of the sides.
18:44:05 <fizzie> There's a blue player and a red player, and a getWinner() method that returns RED, BLUE or NONE (if draw).
18:44:05 <AnMaster> oh you mean like that
18:44:09 <AnMaster> like winner = none
18:44:11 <fizzie> Yes.
18:44:21 <AnMaster> fizzie, still I like the way you SHOUT the sides
18:44:58 <fizzie> It's also used by getOwner() for board squares part of the no man's land in the middle of the board (the game board is divided to three parts; home area of the blue player, home area of the red player, and the part in the middle owned by nobody.)
18:45:08 <AnMaster> oh that thing
18:45:09 <AnMaster> right
18:45:33 <lament> i'm board
18:45:53 <fizzie> lament: I will split you in three parts, then.
18:46:21 -!- oerjan has joined.
18:47:37 <AnMaster> fizzie, karate style?
18:47:50 <AnMaster> (or whoever it is that do that sort of stuff)
18:50:16 <oerjan> 10:41:55 <AnMaster> even though erlang's record syntax (somewhat like struct) is noisy (one of the few things that irritate me with erlang), this is still a lot less code than would have been required in for example C:
18:50:20 <oerjan> 10:42:00 <AnMaster> add_circle(#turtle{pen=false}, Drawing = #drawing{}) ->
18:50:45 <oerjan> how do you make a record syntax _less_ noisy than that? it's almost the same format as haskell's...
18:51:02 <oerjan> i suppose you could lose the #
18:51:33 <fizzie> With the constructors, you can do something like: public enum Foo { BAR(42, "pink"), BAZ(6667, "octarine"); public Foo(int price, String color) { this.price = price; this.color = color; } public int price; public String color; }; and then use BAR.price and BAZ.color around.
18:51:53 <fizzie> (My only example for that sort of stuff is from the messy messy GUI parts of that game, and it's too messy to present here.)
18:55:28 <AnMaster> <oerjan> how do you make a record syntax _less_ noisy than that? it's almost the same format as haskell's... <-- it is?
18:55:28 <AnMaster> heh
18:55:39 <AnMaster> I thought haskell would have used something lean
18:55:40 <AnMaster> like
18:55:46 <AnMaster> inferring what sort of record it was
18:56:01 <AnMaster> since for erlang it is basically a tagged tuple
18:56:10 <oerjan> Turtle{pen=False} would be perfectly fine haskell
18:56:28 <oerjan> oh haskell cannot do that because one data type can have several constructors
18:56:40 <lament> PFH
18:57:04 <oerjan> even with shared fields, as long as they are the same type
18:57:06 <AnMaster> oerjan, well erlang record syntax checks that the first thing in the tuple is the correct atom (it should be the record type).
18:57:22 <AnMaster> oerjan, anyway, you just did that there
18:57:27 <AnMaster> "Turtle{pen=False}"
18:57:45 <AnMaster> you skipped what sort of record it was, didn't you?
18:57:54 <AnMaster> oerjan, or do you make types upper case?
18:58:00 <oerjan> um Turtle is the data constructor
18:58:08 <AnMaster> oerjan, blink?
18:58:10 <oerjan> and can be for only one data type
18:58:14 <AnMaster> that was pattern matching
18:58:18 <AnMaster> not constructing a new one
18:58:21 <AnMaster> oerjan, ^
18:58:36 <oerjan> er what was
18:58:42 <AnMaster> <AnMaster> add_circle(#turtle{pen=false}, Drawing = #drawing{}) ->
18:58:52 <AnMaster> that bit is matching against the parameter
18:59:01 <oerjan> oh
18:59:03 <scarf> wow, the longest registered MIME type is apparently "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"
18:59:14 <AnMaster> scarf, ms office related?
18:59:23 <scarf> yep, OOXML to be precise
18:59:26 <oerjan> ok, i think that would still be Turtle{pen=False} in haskell
18:59:29 <AnMaster> unsurprising
18:59:34 <scarf> for a glossary inside a OOXML word document
18:59:46 <AnMaster> scarf, do they have a length limit?
18:59:55 <oerjan> and indeed i think haskell lacks a way to not specify the data constructor there
18:59:58 <scarf> application/vnd.oasis.opendocument.text is the ODF equivalent
19:00:01 <scarf> and I suspect not
19:00:05 <scarf> based on that monstrosity
19:01:25 -!- lament has quit (Ping timeout: 264 seconds).
19:02:37 -!- lament has joined.
19:03:04 -!- Pthing has quit (Remote host closed the connection).
19:04:44 <AnMaster> oh and here is a funny thing
19:04:54 <AnMaster> the inferred type spec for that function is:
19:04:56 <AnMaster> -spec add_circle(#turtle{},#drawing{nodes::[{'circle',{_,_,_},{_,_}} | {'line',{_,_,_},[any()]}]}) -> #drawing{nodes::[{'circle',{_,_,_},{_,_}} | {'line',{_,_,_},[any()]}]}.
19:05:05 <AnMaster> (using the dialyzer tool)
19:05:16 <AnMaster> you can declare aliases thankfully
19:05:27 <AnMaster> so that will end up relatively short when I write in what I want
19:06:44 <AnMaster> in fact:
19:06:46 <AnMaster> -spec add_circle(turtle(),drawing()) -> drawing().
19:06:59 <AnMaster> anyway most of that type info is in the record definition already
19:07:37 <AnMaster> <scarf> application/vnd.oasis.opendocument.text is the ODF equivalent <-- where does it say it's a glossary though?
19:08:25 <scarf> AnMaster: it doesn't have a separate MIME type for glossaries
19:08:33 <scarf> that would be like, say, C having a separate MIME type for functions
19:09:40 -!- Pthing has joined.
19:09:58 -!- amca has quit (Quit: nap time).
19:10:38 <fizzie> scarf, AnMaster: RFC4288 ("Media Type Specifications and Registration Procedures"): 4.2. ("Naming Requirements"): "Type and subtype names MUST conform to the following ABNF: type-name = reg-name; subtype-name = reg-name; reg-name = 1*127reg-name-chars; ..."
19:10:41 -!- amca has joined.
19:10:46 <fizzie> So it has a length limit of 127 chars.
19:11:04 <fizzie> That's not strictly speaking part of the MIME spec, just the RFC that specifies what IANA wants to register, though.
19:11:27 <scarf> !c char[] x = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; printf("%d",(int)sizeof c);
19:11:40 <EgoBot> Does not compile.
19:11:44 <scarf> ugh
19:11:48 <scarf> !c char[] x = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; printf("%d",(int)sizeof x);
19:11:49 <fizzie> char x[], you mean.
19:11:49 <EgoBot> Does not compile.
19:11:51 <scarf> how did I do that?
19:11:58 <scarf> !c char x[] = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; printf("%d",(int)sizeof x);
19:11:59 <scarf> oh, right
19:12:02 <EgoBot> 85
19:12:03 <scarf> I've been teaching Java all day
19:12:22 <fizzie> And the "application" and "vnd...+xml" are the "type" and "subtype" parts, so they both can be 127 characters.
19:13:10 <scarf> does anything have anything but "text" or "application" as the type?
19:13:18 <fizzie> image/png?
19:13:27 <scarf> ah, forgot about those
19:13:49 <AnMaster> why not do the obvious thing instead:
19:14:37 <fizzie> IANA has defined seven top-level types: text, image, audio, video, application, multipart, message.
19:15:04 <AnMaster> !befunge98 "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"ad+y1-.a,@
19:15:05 <EgoBot> 83
19:15:18 <AnMaster> hm?
19:15:35 <AnMaster> oh the minus 1 was in error
19:15:38 <AnMaster> !befunge98 "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"ad+y.a,@
19:15:38 <EgoBot> 84
19:15:51 <AnMaster> scarf, still your char count includes an ending \0 I think
19:15:52 <pikhq> !c printf("%d", (int)sizeof("application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"));
19:15:53 <EgoBot> 85
19:16:26 <oerjan> !haskell length "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"
19:16:27 <AnMaster> what was the prefix of HackEgo?
19:16:27 <pikhq> Yeah, the ending \0 is part of the length.
19:16:31 <AnMaster> I forgot
19:16:35 <EgoBot> 84
19:16:35 <pikhq> `
19:16:36 <HackEgo> No output.
19:16:43 <AnMaster> `help
19:16:44 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
19:16:58 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -l
19:16:59 <HackEgo> 0
19:17:01 <AnMaster> err
19:17:03 <pikhq> `run ls bin/
19:17:03 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -w
19:17:04 <HackEgo> ? \ addquote \ calc \ commands \ creatures \ define \ esolang \ etymology \ fortune \ google \ helpme \ imdb \ karma \ minifind \ paste \ ping \ quote \ rec \ runfor \ sayhi \ strfile \ swedish \ toutf8 \ translate \ translatefromto \ translateto \ unstr \ url \ wolfram
19:17:05 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -n
19:17:07 <AnMaster> of course
19:17:10 <AnMaster> -_-
19:17:14 <AnMaster> but
19:17:18 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -c
19:17:19 <AnMaster> maybe?
19:17:19 <HackEgo> No output.
19:17:19 <HackEgo> 1
19:17:20 <HackEgo> 84
19:17:23 <AnMaster> what
19:17:32 <AnMaster> which one was which?
19:17:51 <oerjan> you will NEVER know
19:17:55 <AnMaster> or
19:17:58 <AnMaster> I run them again
19:18:00 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -c
19:18:01 <HackEgo> 84
19:18:06 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -n
19:18:07 <HackEgo> No output.
19:18:10 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -l
19:18:11 <HackEgo> 0
19:18:17 <AnMaster> `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -w
19:18:18 <AnMaster> ah
19:18:18 <HackEgo> 1
19:18:32 <AnMaster> I almost always use wc -l
19:18:37 <AnMaster> so that is why I forgot the other ones
19:18:43 <fizzie> !befunge98 "NRTS"4(n"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"N.a,@
19:18:43 <EgoBot> 84
19:18:47 <AnMaster> anyway
19:18:56 <AnMaster> the befunge solution I had was shortest so far
19:19:07 <AnMaster> fizzie, why not use y (23) ?
19:19:11 <AnMaster> for size of TOSS
19:19:16 <AnMaster> it is faster too
19:19:27 <scarf> !ul (84)S
19:19:35 <AnMaster> no need for function pointers, no need to actually count to a zero on stack
19:19:42 <scarf> ^ul (84)S
19:19:43 <fungot> 84
19:19:44 <scarf> I win
19:19:46 <AnMaster> scarf, shortest-non-cheating
19:19:48 <AnMaster> I mean
19:20:05 <AnMaster> !befunge98 "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"ad+y.@
19:20:05 <EgoBot> 84
19:20:25 <AnMaster> which means, as little program code apart from the string as possible
19:20:29 <AnMaster> scarf, anyway:
19:21:21 <AnMaster> !befunge98 c7*,@
19:21:21 <EgoBot> T
19:21:24 <AnMaster> err
19:21:26 <AnMaster> !befunge98 c7*.@
19:21:26 <EgoBot> 84
19:21:27 <AnMaster> of course
19:21:31 <AnMaster> scarf, that is equally short
19:21:46 <fizzie> ^bf +[>+<,]>-.!application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
19:21:47 <fungot> T
19:21:56 <fizzie> If you don't mind the encoding of the value as an ASCII char.
19:22:01 <AnMaster> fizzie, I do mind that
19:22:04 <AnMaster> convert it to integer
19:22:25 <scarf> that program would either be trivial, or fail utterly, in INTERCAL
19:22:34 <scarf> because all known methods of representing strings require knowing their length in advance
19:22:53 <scarf> or else just padding out a really large buffer
19:22:58 <scarf> sort of, like C without string literals
19:23:06 <AnMaster> scarf, doesn't that make intercal sub-bf-complete?
19:23:36 <scarf> no
19:23:46 <AnMaster> scarf, then it must be possible in some way
19:23:54 <scarf> because you can emulate a Minsky machine and use that to store the strings
19:23:57 <AnMaster> scarf, anyway why not use some sort of tree structure?
19:24:04 <scarf> except, ouch, it's easier just to calculate the length in advance
19:24:24 <AnMaster> which one is the minsky machine now again?
19:24:36 <scarf> bignum BF with a fixed-length tape
19:24:57 <AnMaster> mhm
19:25:14 <AnMaster> scarf, anyway why not use a tree structure of some sort to store them in intercal?
19:25:28 <AnMaster> of course implementing such a tree structure would be horrible
19:25:35 <scarf> AnMaster: have you ever /tried/ to do a tree structure in INTERCAL?
19:25:44 <scarf> the only plausible method I can think of is encoding it into an array
19:25:55 <AnMaster> scarf, no. But my point is that once it is done it could be made into a library
19:26:06 <AnMaster> call it treelib.i or whatever
19:26:08 <fizzie> Incidentally, the IANA mime type application form -- http://www.iana.org/cgi-bin/mediatypes.pl -- has the subtype field defined as <input type="text" name="shortname" value="" size="40" maxlength="60"> so you couldn't have registered that thing with it. (Technically you get up to 64, because the "vnd." part is selected from a drop-down thing.)
19:26:44 <AnMaster> fizzie, edit the html code using something like firebug?
19:26:53 <AnMaster> and see if the server handles the longer length
19:27:24 <fizzie> Yes, it would be hilarious if Microsoft had done that.
19:27:45 <AnMaster> fizzie, is that mime type registered though?
19:28:20 <fizzie> Didn't scarf say it was?
19:28:31 <scarf> I saw on a forum that it was
19:28:35 <cpressey> scarf: Are arrays also fixed size in INTERCAL, or can they expand?
19:28:48 <fizzie> It seems to be.
19:28:49 <scarf> cpressey: it's like C; they're fixed-size upon creation, but you can create them dynamically as the program runs
19:28:56 <fizzie> http://www.iana.org/assignments/media-types/application/ is the definitive list.
19:28:57 <cpressey> Hm, k.
19:29:02 <scarf> so if you want a bigger array, you create a bigger array then copy your data into it
19:29:33 <scarf> there's a cap at 2^32 max size for any dimension, though; INTERCAL is TC, but not because of the arrays (you have to mess about with scoping to get TCness)
19:30:39 <fizzie> scarf: There are two other types that are equally long, though: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml" and "vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml".
19:30:56 <scarf> ooh, you actually checked?
19:30:57 <scarf> thanks
19:31:02 <AnMaster> fizzie, both are ooxml crap yeah
19:31:10 <fizzie> I only checked the "application/" category, though.
19:31:43 <scarf> I'm kind-of shocked that you can just fill in a form to apply for a MIME type
19:32:21 <fizzie> fis@eris:~$ cat tmp.txt | awk '{print $1;}' | perl -ne 'print length($_), " $_";' | sort -nr | head
19:32:21 <fizzie> 73 vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
19:32:21 <fizzie> 73 vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml
19:32:21 <fizzie> 73 vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml
19:32:21 <fizzie> 71 vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
19:32:22 <fizzie> 70 vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml
19:32:26 <fizzie> That's the top-five.
19:32:37 <AnMaster> fizzie, use cut for that
19:32:38 <AnMaster> not awk
19:32:41 <AnMaster> or
19:32:44 <AnMaster> do it all in awk
19:32:45 <AnMaster> that is better
19:33:08 <AnMaster> fizzie, and can't you do that awk thing in perl anyway?
19:33:22 <cpressey> Hey, awk and perl in the same pipeline scores positive points in my book.
19:33:34 <AnMaster> cpressey, it's like UUOC to me
19:33:45 <AnMaster> awk and sed would have been fine
19:33:55 <fizzie> You can probably do the whole thing in awk, or in perl; it's just that I build my pipelines in stages.
19:33:55 <AnMaster> sed and perl... maaaaybe
19:34:14 <AnMaster> fizzie, yeah but use the right tool for the job
19:34:28 <cpressey> A subshell to compile and run a C program on the fly for one of the pipe stages would be the icing on the cake.
19:34:30 <AnMaster> for just getting first field with no other processing: cut
19:34:37 <AnMaster> cpressey, XD
19:35:27 <fizzie> I would argue that for a one-off pipeline, the "right tool" is the one you can think of fastest. Anyway, cut fails because it generates loads of empty fields for consecutive delimiters, and those lines had a bit differing number of preceding whitespace in them.
19:35:49 <AnMaster> hm okay
19:36:14 <AnMaster> how did you download it as plain text?
19:36:42 <fizzie> With a copy-paste from a browser.
19:36:55 <fizzie> Anyhow, yes, in this case awk '{print length($1)" "$1;}' would have made more sense.
19:37:14 <fizzie> I blame the way I think.
19:37:49 <Ilari> fizzie: Are those the longest MIME type names in there?
19:38:06 <AnMaster> longer if you include the application/
19:38:33 <fizzie> Yes, but the length limits are defined separately for the "application" part and that subtype part.
19:38:49 <fizzie> I would guess those are the longest in general, but I'll check the other top-level types too.
19:38:52 <Ilari> But usually one won't see any "exotic" types.
19:39:10 <fizzie> Longest one in audio/ is "audio/vnd.sealedmedia.softseal.mpeg".
19:39:49 <fizzie> "image/vnd.sealedmedia.softseal.jpg" -- heh, sealedmedia is quite a leader in these.
19:40:09 <fizzie> "message/global-disposition-notification"
19:40:25 <fizzie> "model/vnd.parasolid.transmit.binary"
19:40:46 <fizzie> "multipart/voice-message"
19:41:06 <fizzie> "text/vnd.net2phone.commcenter.command"
19:41:15 <AnMaster> what is sealedmedia?
19:41:28 <AnMaster> it smells drm a long way away that name
19:41:30 <fizzie> "video/vnd.nokia.interleaved-multimedia"
19:41:36 <fizzie> Yay, Nokia slipped one in too
19:42:08 <fizzie> The image/ one was actually a shared win with "vnd.sealedmedia.softseal.gif".
19:42:32 <scarf> wait, are they repackaging file extensions that already exist as MIME types?
19:43:00 <fizzie> It has their DRM wrapper around it, I guess.
19:43:00 <cpressey> Embrayce and exshtend.
19:43:14 <AnMaster> scarf, googling indicates it is drm crap
19:43:17 <fizzie> "Oracle Information Rights Management (IRM, formerly SealedMedia) is a new form of information security technology that secures and tracks sensitive digital information everywhere it is stored and used."
19:43:31 <fizzie> That WP clip starts like a press release/ad copy.
19:43:41 <scarf> why did Oracle buy them?
19:43:44 <fizzie> "Conventional information management products only manage documents, emails and web pages while they remain stored within server-side repositories. Oracle Information Rights Management uses encryption to extend the management of information beyond the repository - to every copy of an organization's most sensitive information, everywhere it is stored and used - on end user desktops, laptops and mobile wireless devices, in other repositories, inside and outside t
19:43:44 <fizzie> he firewall."
19:43:48 <fizzie> And continues that way too.
19:44:00 <cpressey> I WANT IT I WANT IT
19:44:07 <AnMaster> fizzie, is there any advertisment template on it?
19:44:07 <pikhq> Because Oracle believes that cp does not exist.
19:44:08 <scarf> so what's to stop you juts taking a screenshot of these DRMed PNG files?
19:44:10 <scarf> *just
19:44:12 <AnMaster> if not I suggest you put one there
19:44:16 <pikhq> scarf: Jack shit.
19:44:22 <fizzie> AnMaster: No, there doesn't seem to be.
19:44:29 <AnMaster> fizzie, add one then
19:44:29 <fizzie> AnMaster: Just listen to this: "Oracle Information Rights Management introduces some new elements into information workflows, such as encrypting ("sealing") and classifying documents, emails and web pages, and the requirement to install Oracle IRM Desktop agent software on every end user device on which sealed information is created or used. But the disruptions to existing workflows are sufficiently small, and the benefits so considerable, that information righ
19:44:29 <fizzie> ts management is now routinely being adopted by enterprises and government agencies worldwide to secure their most confidential information."
19:44:50 <AnMaster> blergh
19:45:06 <fizzie> It's copy-paste directly from http://www.oracle.com/technology/products/content-management/irm/index.html
19:45:09 <AnMaster> well
19:45:15 <scarf> fizzie: tag it copyvio
19:45:16 <AnMaster> advertisment and a few more at least
19:45:27 <AnMaster> scarf, not advertisment?
19:45:28 <scarf> easy way to get rid of a c&ped press release
19:45:31 <AnMaster> ah
19:45:33 <AnMaster> :)
19:45:36 <scarf> AnMaster: you could use both, but copyvio's a /much/ more urgent tag
19:45:46 <AnMaster> scarf, right
19:46:13 <pikhq> Yeah, definitely copyvio.
19:46:16 <AnMaster> scarf, both can't hurt!
19:47:24 <scarf> look at the history: if the page wasn't edited afterwards, {{db-copyvio|url=http://www.oracle.com/technology/products/content-management/irm/index.html}} should be the only tag you need if it's as blatant as that
19:48:40 <fizzie> Well, it has two edits; one by DrilBot fixing two [[foo|foo]] links to just [[foo]], one "Removed category Information Rights Management (using HotCat)".
19:49:15 <scarf> neither counts
19:49:27 <scarf> for preventing speedy copyvio, that is
19:50:24 <fizzie> I'll see if I can manage to successfully add that. Wikipedia makes me nervous, though.
19:50:38 <AnMaster> what is hotcat?
19:50:44 <scarf> you might get someone yelling at you for not warning the user in question
19:50:49 <scarf> AnMaster: an interface to the category system
19:50:59 <AnMaster> what is db-copyvio btw?
19:51:03 <scarf> that's basically a bit faster than typing out by hand
19:51:12 <scarf> AnMaster: mentally read "db" as "delete because"
19:51:15 <AnMaster> scarf, ah
19:51:21 <scarf> with the implication that it should be deleted Right Now, thank you very much
19:51:32 <AnMaster> scarf, I tried "database" and "decibel"
19:51:43 <AnMaster> neither fitted :)
19:51:47 <fizzie> scarf: The user in question seems to have disappeared; at least the user link is red, and his/her talk-page just has someone complaining about adding random links to the Information Management topics.
19:51:51 <scarf> it adds the page to one of the top-priority admin action categories
19:52:08 <scarf> fizzie: fine, then you can warn them without worrying about getting a reply
19:52:18 -!- MizardX- has joined.
19:52:30 <scarf> (something may be wrong with my reasoning here...)
19:54:32 -!- MizardX has quit (Ping timeout: 240 seconds).
19:54:47 -!- MizardX- has changed nick to MizardX.
19:56:50 <AnMaster> can someone tell me if this logic is correct
19:56:51 <AnMaster> I think it is
19:56:55 <AnMaster> but I'm somewhat tired:
19:56:57 <AnMaster> normalise_angle(Heading) when Heading < 0 ->
19:56:57 <AnMaster> Heading rem 360 + 360;
19:56:57 <AnMaster> normalise_angle(Heading) ->
19:56:57 <AnMaster> Heading rem 360.
19:57:16 <AnMaster> heading is in degrees and is an integer
19:57:24 <scarf> AnMaster: depends on what rem does
19:57:31 <scarf> which is really hard to tell, as it differs from lang to lang
19:57:39 <AnMaster> scarf, reminder. Erlang's name for modulo
19:57:48 <scarf> (with negative numbers, I mean; with positives, it's obvious)
19:57:53 <cpressey> How does rem handle signs?
19:57:58 <AnMaster> well
19:58:16 <AnMaster> 1> -301 rem 300.
19:58:17 <AnMaster> -1
19:58:29 <AnMaster> 2> -299 rem 300.
19:58:29 <AnMaster> -299
19:58:44 <AnMaster> does that answer the question?
19:58:49 <cpressey> Then your logic looks right to me. I'm tired too though :)
19:58:57 <scarf> yep, same here, and even same disclaimer
19:59:00 <AnMaster> cpressey, also I don't know if this is specified
19:59:08 <AnMaster> or if it just happens to be that way
19:59:12 <cpressey> If it's not specified you're better off avoiding it
19:59:13 <AnMaster> isn't that C99 modulo?
19:59:17 <fizzie> Do we have a Scheme interpreter here?
19:59:25 <AnMaster> fizzie, try #irp
19:59:26 <AnMaster> ;P
19:59:27 <cpressey> while x < 0 x += 360
19:59:44 <AnMaster> cpressey, efunge is bignum
19:59:47 <AnMaster> that could take some time
20:00:32 <cpressey> Are you anticipating having to normalize 10^61 ? :)
20:00:34 <AnMaster> anyway it would have to be tail recursive
20:00:41 <AnMaster> cpressey, 10^-61 maybe
20:00:45 <AnMaster> err
20:00:49 <AnMaster> -10^61
20:00:50 <AnMaster> I meant
20:00:52 <AnMaster> of course
20:00:56 <AnMaster> cpressey, but yes, it might happen
20:00:59 <fizzie> C99 % would indeed give -1 there.
20:01:01 <AnMaster> and then I want it to work smoothly
20:01:43 <cpressey> All I meant was that if it's not defined, you're taking your chances. If you want to ensure correctness you'll need to compute remainder yourself somehow.
20:02:09 <cpressey> Whatever "correctness" means w.r.t. Befunge-98, given my sloppy spec :)
20:02:16 <AnMaster> why couldn't the degrees be a power of two
20:02:27 <AnMaster> then some tricky bitshifting would have solved it
20:02:50 <AnMaster> cpressey, anyway I assume TURT is counter clockwise like the normal math notation?
20:02:52 <fizzie> C99's % is defined so that (a/b)*b + a%b == a as long as a/b is representable. And / truncates towards zero, so (-301/300)*300 = (-1)*300 = -300, and from -300 + x = -301 → x = -1.
20:03:17 <cpressey> AnMaster: sounds like a reasonable assumption. It wasn't intended to be evilly weird...
20:03:36 <cpressey> Wait
20:03:51 <AnMaster> cpressey, well the fact that it is global "To keep this fingerprint tame, a single Turtle and display is defined to be shared amongst all IP's. The turtle is not defined to wrap if it goes out of bounds (after all this interface might just as well be used to drive a real turtle robot.) "
20:04:00 <AnMaster> really makes it very feral
20:04:05 <AnMaster> from a efunge point of view
20:04:09 <AnMaster> tame for cfunge of course
20:04:24 <AnMaster> quite hilarious that per-ip state is trivial in efunge but somewhat messier in cfunge
20:04:30 <AnMaster> and the reverse applies for global state
20:05:03 <oerjan> a _real_ turtle robot would wrap after 40000000 m
20:05:07 <AnMaster> cpressey, btw if it isn't counter-clockwise both me and Deewiant will personally murder you, same for a few other funge authors I suspect
20:05:11 <AnMaster> oerjan, it would?
20:05:21 <AnMaster> oerjan, oh going around earth
20:05:22 <AnMaster> har
20:05:26 <oerjan> well, approximately
20:05:26 <scarf> oerjan: beautiful
20:05:35 <scarf> oerjan: exactly by the original definition of a metre
20:05:37 <AnMaster> oerjan, but the cable wouldn't be long enough
20:05:38 <cpressey> Assuming it can travel through oceans safely.
20:05:39 <scarf> although the definition has since changed
20:05:43 <scarf> cpressey: it's a turtle, it can swim
20:05:52 <cpressey> scarf: Indeed.
20:06:15 <AnMaster> wait, which one is turtle and which one is tortoise? They have the same name in Swedish
20:06:19 <AnMaster> this always confuses me
20:06:37 <fizzie> And does the real turtle robot also actually teleport on the T command, instead of just boringly moving without the pen down?
20:06:55 <lament> tortoises, like porpoises, live in water
20:07:05 <lament> but which is the porpoise and which is the dolphin?
20:07:10 <AnMaster> -_-
20:07:29 <pikhq> It depends on the variant of English.
20:07:32 <AnMaster> cpressey, btw, how is the pen colour and paper colour supposed to work for real turtle bots?
20:07:38 <AnMaster> would they have ink mixers in them?
20:07:54 <oerjan> lament is lying. ban him!
20:08:07 <AnMaster> err
20:08:10 <AnMaster> "Tortoises or land turtles are land-dwelling reptiles of the family of Testudinidae, ..."
20:08:10 <pikhq> British English calls them turtles if they live at sea, terrapins if they live in fresh or brackish water, and tortoises if they live on land.
20:08:13 <AnMaster> says wikipedia
20:08:18 <AnMaster> however
20:08:20 <AnMaster> it also says
20:08:22 <AnMaster> "This article is in need of attention from an expert on the subject. WikiProject Tree of Life may be able to help recruit one. (November 2008)"
20:08:30 <fizzie> Yes, the "clear with color" command on a real turtle bot will paint the whole earth with that color.
20:08:39 <fizzie> Try not to paint everything pink.
20:08:40 <AnMaster> fizzie, hehe
20:08:47 <AnMaster> fizzie, ultramarine?
20:08:50 <oerjan> AnMaster: i sincerely doubt it's particular piece of information they need an expert for
20:08:55 <oerjan> *it's that
20:08:55 <pikhq> American English calls them turtles if they live in water, turtles or tortoises if they live on land, and terrapins if they're the diamondback terrapin.
20:09:11 <cpressey> AnMaster: I don't know about "normal math notation", but in navigation, headings go up clockwise, not counter-clockwise.
20:09:53 <cpressey> Oh no
20:09:54 <AnMaster> cpressey, you know around the unit circle?
20:09:58 <oerjan> <AnMaster> oerjan, but the cable wouldn't be long enough <-- sheesh AnMaster, this is the wireless age
20:09:58 <fizzie> cpressey: On the other hand, you have query heading return "0=east", which sounds more like the "normal math notation".
20:10:06 <cpressey> All the drawings made by one TURT will be inverted by another TURT.
20:10:09 <cpressey> Chaos will ensue.
20:10:17 <lament> oerjan: you have ops, you can ban me
20:10:20 <AnMaster> cpressey, quite
20:10:27 <fizzie> If it were "navigationary", you'd think that 0=north.
20:10:33 <AnMaster> fizzie, yes
20:10:36 <AnMaster> and that isn't the cas
20:10:38 <AnMaster> case*
20:10:43 <AnMaster> it says 0deg = east
20:10:45 <AnMaster> in the spec
20:10:51 <oerjan> <AnMaster> cpressey, btw, how is the pen colour and paper colour supposed to work for real turtle bots?
20:11:04 <oerjan> bodily fluid variations. aren't you glad you asked?
20:11:15 <AnMaster> oerjan, turtle *bots*
20:11:17 <AnMaster> not turtles
20:11:17 <cpressey> Yeah, 0=east strongly implies whoever wrote that was thinking of the unit circle, trig, and all that. Not aircraft navigation.
20:11:18 <AnMaster> -_
20:11:19 <AnMaster> -_-
20:11:20 <cpressey> The freak.
20:11:40 <AnMaster> cpressey, if it was aircraft navigation it would be using nautical miles
20:11:44 <AnMaster> for the distances
20:11:57 <AnMaster> cpressey, also where is my ILS glideslope :(
20:11:59 <oerjan> how boring.
20:12:06 <fizzie> For really big turtle bots, maybe one pixel equals one nautical mile.
20:12:20 <AnMaster> fizzie, that doesn't even work for mine. I render to svg
20:12:22 <fizzie> Sblooosh, goes the paint.
20:12:45 <AnMaster> fizzie, one square nautical mile? Or do we use non-square pixels?
20:12:52 <fizzie> How much paint would it take to paint a square nautical mile of seawater, say, pink?
20:12:55 <oerjan> lament: no i don't have ops
20:13:32 <fizzie> oerjan: -ChanServ- 5 oerjan +votsriRfA [modified 2 days, 22:50:33 ago]
20:13:34 <oerjan> unless someone forgot to tell me
20:13:35 <fizzie> oerjan: You certainly seem to have.
20:13:36 <AnMaster> fizzie, no clue
20:13:51 <AnMaster> fizzie, does the colour mix in water?
20:13:59 <oerjan> wow
20:14:01 <AnMaster> or does it float on top and try in the sun?
20:14:04 <fizzie> Everyone else has "[modified ? ago]".
20:14:06 * oerjan goes mad with power
20:14:08 <lament> oerjan: i forgot to tell you.
20:14:21 <AnMaster> oerjan, doesn't you have ability to edit access list too?
20:14:26 <AnMaster> yeah there is +f there
20:14:40 <AnMaster> only thing you are lacking seems to be +F
20:14:44 <AnMaster> (founder access)
20:15:04 <lament> we need whatshisname for that.
20:15:09 <lament> the founder.
20:15:21 <oerjan> good grief. i seem to have achieved powers i don't even understand.
20:15:22 <AnMaster> lament, well of course
20:15:22 <fizzie> lament: Isn't that "whatshisface"?
20:15:48 <AnMaster> fizzie, "andreou" says the access list
20:15:50 <lament> fizzie: i dunno, are they the same person?
20:16:03 <AnMaster> lament, may this person also be known as "andreou"?
20:16:09 <lament> oh right
20:16:15 <AnMaster> -NickServ- Information on andreou (account andreou):
20:16:15 <AnMaster> -NickServ- Last seen : (about 39 weeks ago)
20:16:16 <AnMaster> heh
20:16:22 <AnMaster> and registered in 2003
20:16:34 <AnMaster> which is very early on freenode iirc
20:16:35 <lament> it's an old channel
20:16:38 <lament> walks with a limp
20:16:43 <lament> freenode was called openprojects back then
20:16:51 <AnMaster> that old? heh
20:16:52 <lament> walks with a limp, talks with a lisp
20:17:01 <AnMaster> -NickServ- Information on lament (account lament):
20:17:02 <AnMaster> -NickServ- Registered : Jan 03 01:33:46 2003 (7 years, 7 weeks, 3 days, 18:42:45 ago
20:17:14 <AnMaster> hey, only a few minutes after andreou registered his nick
20:17:23 <lament> that's how he got founder :)
20:17:27 <AnMaster> hehe
20:17:41 <AnMaster> didn't know you went back that far
20:18:00 <AnMaster> ooh fizzie beats you both
20:18:05 <AnMaster> -NickServ- Information on fizzie (account fizzie):
20:18:05 <AnMaster> -NickServ- Registered : Sep 23 06:08:22 2002 (7 years, 22 weeks, 0 days, 14:09:05 ago)
20:18:06 <pikhq> Hmm. It's merely been about 5 years since I registered.
20:18:07 <AnMaster> 2002!
20:18:11 <fizzie> AnMaster: Yes, but I joined after lament.
20:18:19 <AnMaster> -NickServ- Information on AnMaster (account AnMaster):
20:18:19 <AnMaster> -NickServ- Registered : Dec 26 16:35:03 2005 (4 years, 8 weeks, 3 days, 03:42:46 ago)
20:18:19 <AnMaster> hm
20:18:36 <fizzie> AnMaster: On the other hand, I have no idea what sort of channels I might have been on openprojects before #esoteric.
20:18:44 <pikhq> I've been around longer than AnMaster? Hah.
20:18:47 <AnMaster> pikhq registered about half a year before
20:18:48 <lament> i was on the network before, just didn't need to register before #esoteric
20:18:48 <AnMaster> yeah
20:18:52 <AnMaster> pikhq, I was on efnet before
20:18:58 <AnMaster> amongst other places
20:19:06 <pikhq> ... And why do I have Kial registered to my account?
20:19:15 <AnMaster> I can't see that
20:19:26 <AnMaster> fizzie, strange
20:19:43 <AnMaster> ooh ais/scarf is new here
20:19:47 <AnMaster> 2007
20:19:55 <scarf> AnMaster: yep
20:20:02 <scarf> I found the wiki ages before I found the IRC channel
20:20:12 <AnMaster> scarf, but wasn't I in this channel like in late 2006?
20:20:19 <AnMaster> you joined *after* me?
20:20:20 <AnMaster> wth
20:20:31 <AnMaster> -NickServ- cpressey is not registered.
20:20:35 <scarf> and when I first came here, my only IRC client was Chatzilla running inside Mozilla (not even Firefox) on an ancient SunOS box which only had CDE, via X forwarding
20:20:42 <AnMaster> hey! know what to do when he next disconnects?
20:20:45 * AnMaster runs
20:21:12 <AnMaster> scarf, I have a vague memory of you mentioning that
20:21:20 <AnMaster> scarf, but what terminal were you using?
20:21:28 <scarf> xterm, I think
20:21:33 <AnMaster> ...
20:21:39 <scarf> oh, Exceed
20:21:40 <AnMaster> scarf, terminal as in system to access it
20:21:42 <fizzie> AnMaster: Weird. My oldest log dir for freenode seems to have only #esoteric in it, starting on Mon Dec 09 07:24:10 2002; what on earth have I been doing from Sep 23, 2002 to Dec 09, 2002...
20:21:44 <scarf> running on Windows
20:21:45 <AnMaster> hardware terminal
20:21:47 <AnMaster> scarf, oh?
20:21:52 <AnMaster> wth is exceed?
20:21:55 <scarf> AnMaster: all the computers were running Windows
20:22:00 <scarf> and it seems to do X forwarding
20:22:03 <AnMaster> scarf, apart from that sunos box
20:22:08 <fizzie> It's one of the X servers for Windows, isn't it?
20:22:13 <fizzie> Among winaXe and such.
20:22:15 <scarf> no, as in, Exceed is a Windows X client
20:22:20 <scarf> that you forward to
20:22:25 <AnMaster> scarf, what?
20:22:32 <scarf> so things happen on the server, they come up in your Exceed window
20:22:32 <AnMaster> aren't x clients the application programs?
20:22:42 <AnMaster> scarf, kind of like vnc?
20:22:43 <fizzie> Yes, X gets the terminology backwards like that.
20:22:44 <scarf> now I'm confused
20:22:46 <scarf> AnMaster: very like vnc
20:22:57 <fizzie> What you run on your system, and which shows the windows on your screen, is the X server.
20:23:01 <scarf> ah, ok
20:23:08 <AnMaster> scarf, x clients = application programs. X server = the Xorg program or such
20:23:08 <fizzie> And the apps, which you run on a remote server (possibly), are clients.
20:23:14 <AnMaster> which draws to hardware
20:23:33 <scarf> ouch
20:23:42 <AnMaster> scarf, I thought this was well known
20:23:46 <AnMaster> I mean "the x server"
20:23:53 <AnMaster> is the typical name of it
20:24:00 <AnMaster> when talking
20:24:12 <scarf> I assumed that that would be what was running on the SunOS server actually doing the forwarding
20:24:13 <fizzie> We got a copy of the I-think-it-costs-money-in-general WinaXe on the "new student CD" of the university; there was some sort of a campus license agreement.
20:24:29 <AnMaster> scarf, the forwarding.. well that is a tricky issue
20:24:49 <AnMaster> fizzie, when was that?
20:25:02 <scarf> X reminds me of Java, they both have infinity layers of abstraction to make absolutely sure you can do anything, but have no idea how
20:25:03 <fizzie> AnMaster: 2003 is when I started.
20:25:16 <AnMaster> fizzie, hm
20:26:16 <cpressey> scarf: The section about the X Window System in the UHH is definitely fun reading.
20:26:17 <fizzie> Seems they've been keeping the license thing going; the computing centre web pages have a use-your-service-password-to-login link to WinaXe plus 8.4. I assume it must cost money, since they have it password-protected.
20:26:34 <AnMaster> hm
20:26:57 <fizzie> They also have a free license for "Comsol Multiphysics 3.5a (Windows, Linux, Mac)", some sort of partial differential equation numerical solver package.
20:26:58 <Deewiant> The whole UHH is fun reading
20:27:18 <scarf> what's the UHH?
20:27:32 <Deewiant> UNIX-HATERS Handbook
20:27:53 <scarf> heh
20:27:58 -!- Pthing has quit (Remote host closed the connection).
20:28:04 <scarf> do they hate all other OSes too? or just UNIX in particular?
20:28:16 <Deewiant> You don't know of it?
20:28:16 <scarf> or just POSIXy ones?
20:28:19 <scarf> no, I don't
20:28:22 <Deewiant> It's a classic
20:28:23 <Deewiant> http://en.wikipedia.org/wiki/The_UNIX-HATERS_Handbook
20:28:29 <scarf> I vaguely remember having heard of it now I've seen the name
20:28:48 <Deewiant> http://www.simson.net/ref/ugh.pdf is the whole thing
20:29:07 <fizzie> Oh, as a member of the university faculty, you can buy Windows 7 Ultimate for 20 eur? I didn't know that.
20:29:18 * scarf downloads
20:29:36 <AnMaster> fizzie, while students can get it for free using MSDNAA?
20:29:41 <scarf> fizzie: Microsoft's general strategy on Windows is to price it ridiculously high, then give a massive discount to anyone who might plausibly buy it
20:29:55 <scarf> AnMaster: MSDNAA tends to only be for engineering and computer science students
20:30:02 <scarf> as in, people who might plausibly go into programming
20:30:13 <AnMaster> ah I see
20:30:26 <AnMaster> scarf, oh btw what about OEM for windows?
20:30:31 <AnMaster> they get it really cheap?
20:30:49 <scarf> AnMaster: depends on the sort of computer, I think
20:30:56 <scarf> I heard a while back that it's $6 on netbooks
20:31:01 <scarf> presumably to compete with Linux
20:31:05 <scarf> but I don't know for certain that that's true
20:31:14 <scarf> it's likely to be much much cheaper than the retail version, at least
20:31:28 <AnMaster> <Deewiant> http://www.simson.net/ref/ugh.pdf is the whole thing <-- that pdf index is confusing. Page 8 is befoge page 4 in the side bar
20:31:40 <AnMaster> which means the selection jumps about when you scroll
20:31:49 <scarf> AnMaster: hey, if you typo "befoge", "befunge" starts to seem more plausible
20:32:00 <AnMaster> scarf, "befoge"?
20:32:08 <scarf> AnMaster: read your own comment
20:32:25 <AnMaster> ah
20:32:27 <AnMaster> before
20:32:35 <AnMaster> befoge
20:32:43 <AnMaster> see how close they are on qwerty
20:32:52 -!- gm|lap has joined.
20:32:59 <scarf> not all that close
20:33:07 <scarf> a knight's-move
20:33:17 <Deewiant> Not that far
20:34:51 <fizzie> They sell the OEM versions of Windows in the local computers-parts place(s); in theory I guess they would sell those only if you buy enough parts that they plausibly constitute a new computer, but I've heard that's not very rigorously enforced.
20:35:18 <fizzie> Of course the "retail OEM" thing is probably much more expensive than what a real OEM with a Real Deal would get.
20:36:56 <fizzie> The documentation and such is a bit OEM-oriented, though. I helped a friend to build his box and install win7 on it; technically speaking I am now bound to provide tech support for him with a "competitive price" that is "not higher than those I charge from my other clients".
20:37:11 <fizzie> Because I happened to be the one to unwrap the box, and those were part of the license papers.
20:37:36 <fizzie> It also required me to plant that ugly sticker somewhere visible on the computer.
20:39:20 <Deewiant> Did you?
20:40:18 <fizzie> Deewiant: I, uh... no comments, someone from Microsoft might be reading. Let's just say I tried, but I might have missed the case by a metre or so.
20:40:29 <Deewiant> I knew you'd be evasive.
20:40:40 <oerjan> lol
20:40:45 <fizzie> For the record, Win7 Pro UK retail in this shop is 293.90 eur, the corresponding OEM version is 136.90 eur.
20:41:39 -!- Microsfot has joined.
20:41:44 <Microsfot> We heard that.
20:41:45 -!- Microsfot has quit (Client Quit).
20:42:02 <fizzie> They certainly are everywhere.
20:42:45 <fizzie> I did promise I'd accept tech support queries over IRC with a very reasonable rate, though.
20:42:45 <Deewiant> In Williamsburg, at least.
20:42:55 <Deewiant> Have you got many?
20:43:16 <fizzie> None so far, in fact. Must be that Windows 7 is just so good.
20:43:29 <Deewiant> Could be, could be.
20:43:39 <fizzie> (I'm trying to give some praise so that they'd forgive that whole sticker thing.)
20:44:40 <oerjan> hey, it's not your fault that you stumbled and fell with the sticker into the trash can
20:44:44 <Deewiant> Well, Windows 7 /is/ supposedly good.
20:44:55 <scarf> Deewiant: meh, it's just better than Vista
20:45:08 <scarf> and IMO, Vista was better than XP
20:45:27 <Deewiant> So what is Windows 7 worse than?
20:45:46 <cpressey> Since I started using them, I've had fewer problems with Windows 7 than I've had with Python.
20:45:52 <cpressey> Apples, oranges, whatever.
20:45:57 <Deewiant> :-)
20:46:24 <fizzie> oerjan: Actually I had the sticker ready for planting, and then I just accidentally got it stuck to the plastic bag the installation DVD and booklets were in. They're still in the same apartment as the computer, it's not that far off the mark.
20:49:29 <oerjan> ic
20:50:05 <scarf> fizzie: Microsoft licencing can be so fu
20:50:07 <scarf> *fun
20:50:13 <scarf> incidentally, the sticker seems to be on the bottom of this netbook
20:51:43 <fizzie> There were some detailed instructions on where you were allowed to stick the sticker in, but I've forgotten them.
20:51:51 <fizzie> Bottom seems to be popular with laptops, understandably.
20:52:05 <oerjan> scarf: _interesting_ freudian keyboard slip there
20:52:15 <Deewiant> _Interesting_ indeed
20:52:38 <scarf> btw, I have a spare Windows 98 sticker somewhere
20:52:44 <scarf> which I managed to peel off the computer it was originally stuck to
20:52:56 <scarf> despite all the security flanges to stop you doing that
20:55:20 <fizzie> I was under the impression that you were sort-of technically allowed to move even an OEM license from one computer to another, with some added restrictions and bureaucracy.
20:56:54 <fizzie> Interwebs seem to suggest otherwise, but that was just on some "explaining Microsoft licensing to normal people" page.
20:57:42 -!- kar8nga has joined.
20:57:51 <fizzie> "One main difference is that an OEM operating system license (such as the license for Windows) cannot be transferred from its original PC to another PC", says Education Operating System Licensing Q&A from Microsoft directly. I guess it's Not Possible(tm), then.
20:58:24 <fizzie> On the other hand, if you change one component at a time, at what time does it cease to be the "original PC"?
20:58:59 <cpressey> I've had a Windows install tell me "TOO MANY PARTS ARE DIFFERENT!!!" after I upgraded some card or other, once.
20:59:33 <cpressey> It made me re-enter the reg key or something, I forget.
21:00:35 <fizzie> Yes, it does that reactivation thing, or so I hear. I wonder if it's possible to reactivatate an OEM license like that.
21:00:35 <Asztal> I heard it was tied to the motherboard, but I could well be thinking of a different version of windows.
21:00:40 <pikhq> fizzie: That claim is perjury.
21:00:43 <pikhq> Doctrine of first sale.
21:01:28 <fizzie> Doctrine of Microsoft sending assault troopers in black helicopters if you try to argue.
21:01:45 <pikhq> fizzie: Microsoft has no assault troopers.
21:01:51 <pikhq> You're probably thinking of Blackwater.
21:02:33 <fizzie> Ooh, they even have a justification for being motherboard-bound.
21:02:48 <fizzie> "Microsoft needed to have one base component "left standing" that would still define that original PC. Since the motherboard contains the CPU and is the "heart and soul" of the PC, when the motherboard is replaced (for reasons other than defect) a new PC is essentially created."
21:02:58 <fizzie> The heart and soul!
21:03:04 <pikhq> ...
21:03:23 <pikhq> The motherboard does not contain a CPU, it contains a bus to which a CPU is attached...
21:03:44 <Deewiant> To contain: to be capable of holding
21:03:49 <fizzie> So maybe if you hit the old one with a hammer, and therefore have to replace it because of a defect, there's no problem there.
21:05:29 <pikhq> fizzie: Being old is a defect.
21:05:33 <pikhq> :P
21:06:12 -!- scarf has quit (Remote host closed the connection).
21:07:40 <cpressey> Fungot, encoding lurks dark corners. Only when the rain, ever to go with no throughput that I could see?
21:07:46 <cpressey> fungot?
21:07:49 <fungot> cpressey: such are the difficulties of adjudication were great; i think insuperable. whatever acuteness and diligence could do has been done. i have never made a speech, the bishop of st fnord stood rows of eager spectators. it is the only school which they are composed, according to your discretion; no man can estimate the amount of fnord delight and instruction which, perhaps, at the full fnord tide of your favour," said mrs
21:08:06 <Deewiant> The bishop of st fnord sounds like a cool guy
21:11:45 <augur> ilari: cfg's + a global control stack
21:12:37 -!- Pthing has joined.
21:14:38 -!- jcp has joined.
21:21:57 <cpressey> letrec a = a in a
21:22:54 <oerjan> what language is that?
21:23:12 <cpressey> I dunno. Some functional pseudocode.
21:23:30 <oerjan> if you s/letrec/let/ it would be haskell
21:23:58 <cpressey> If I used parens instead of = and in, it would be Scheme.
21:24:33 <Ilari> augur: Got URL where it is described?
21:24:51 <augur> why yes, i do!
21:25:01 <MissPiggy> let haskell = haskell in haskell where produc [1..n]
21:25:11 <augur> take a look at this wikipedia page that i created http://en.wikipedia.org/wiki/Global_index_grammar
21:25:12 <augur> :D
21:25:22 <oerjan> MissPiggy: nope
21:26:14 <MissPiggy> that looks really nice augur I like these diagrams
21:26:23 <augur> which diagrams
21:27:20 <lament> looks like music
21:27:33 <lament> #fff - sharp fortissimo
21:27:41 <lament> (sounds really bad)
21:28:21 <augur> :p
21:28:29 <AnMaster> ^style
21:28:30 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube
21:28:49 <AnMaster> ^style speeches
21:28:49 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
21:28:51 <AnMaster> ah
21:29:00 <AnMaster> ^style ct
21:29:01 <fungot> Selected style: ct (Chrono Trigger game script)
21:29:05 <AnMaster> fizzie, hi there fungot
21:29:06 <fungot> AnMaster: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself! geez! the king does not wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call that the chrono trigger. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:29:23 <AnMaster> fizzie, that sword?
21:30:43 <cpressey> That #fff reminds me, I saw a modern production of Berlioz's "Damnation of Faust" the other day. In the opening scene, Dr. Faust was sitting at what looked like an Apple ][, with some esolang-output/trace-looking-stuff flickering on the wall behind him.
21:31:09 <lament> cpressey: are you in vancouver?
21:31:17 <cpressey> lament: No.
21:31:44 <cpressey> I are in the US.
21:32:11 <lament> oh
21:36:20 <cpressey> Where I am, at present, trying to understand some "clever" Python code. And failing.
21:36:52 <fizzie> AnMaster: It alone can't stop.
21:37:22 <fizzie> AnMaster: I'm guessing it's talking about the masamune, because that's the most well-known mystical sword. I could be wrong, though.
21:38:22 -!- jcp has quit (Remote host closed the connection).
21:38:46 <AnMaster> fizzie, well iirc so
21:39:07 <AnMaster> fungot, why didn't the king wish btw?
21:39:08 <fungot> AnMaster: i shall help also. you must return to us, the chancellor's a decent man. why, this is for you guys are a lot! the hero has made the epoch, your wings! now this is a way to the ocean palace! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:39:20 <fizzie> The part "took back .. for myself!" is a direct quotation.
21:39:50 <AnMaster> fizzie, from what scene?
21:40:03 <fizzie> From when Cyrus leaves, in Frog's flashback.
21:40:31 <AnMaster> ah
21:40:40 <AnMaster> fungot, but what about the sword?
21:40:41 <fungot> AnMaster: frog will do. the king fought the mystics over 400 long years. when will it be the reptites, or you silly apes who end up ruling the world??
21:40:51 <AnMaster> fungot, fss, do that repeat
21:40:52 <fungot> AnMaster: as long as you keep crono in your heart, the day of lavos"... go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:40:55 <AnMaster> meh
21:42:06 <fizzie> And the King part is from "The King does not wish to see anybody", with the ! from something like "They must have a death wish!"
21:42:38 <fizzie> fungot: Can the sword alone stop it?
21:42:39 <fungot> fizzie: there! there it is! but by the time we're through with you, you'll be in danger. open hatch. you must return to us, the chancellor's a decent man. why, this is for you guys are a lot! the hero has made the epoch, your wings! now this is a treasure there... found the treasure!! probably filled with mystical forest powers. we are immortal! we shall hold this position to the last man! big fire where lavos fall from sky! we
21:42:44 <AnMaster> fungot, it can?
21:42:45 <fungot> AnMaster: we are looking to achieve a shorter life span... lavos will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's statue before my shift. i hate! ayla not like...
21:43:00 <AnMaster> wait
21:43:02 <AnMaster> that isn't true
21:43:08 <AnMaster> "the hero has made the epoch, your wings!"
21:43:25 <fizzie> I really should stick in the "use the previous line as the intial context", that'd make it easier to get the repepepetitition.
21:43:28 <AnMaster> I thought it was that guy in the future who did
21:43:29 -!- jcp has joined.
21:43:48 <fizzie> And the wings were added by Dalton in 12000 BC Zeal.
21:43:58 <AnMaster> fizzie, you remembered the name?
21:44:02 <fizzie> Sure.
21:44:04 <AnMaster> I knew it was added buy that other guy
21:44:07 <AnMaster> in past
21:44:08 <fizzie> It's Dalton, after all.
21:44:54 <AnMaster> fizzie, hm?
21:45:03 <fizzie> He's such a flashy guy, easy to remember.
21:45:04 <AnMaster> I forgot who that guy was, some boss
21:45:11 <fizzie> Likes the sound of his own name, too.
21:45:27 <fizzie> "Bow, and pay homage to our new liege, King Dalton! -- The old crone and the pesky Gurus are gone. I now rename Zeal, the Kingdom of Dalton!"
21:45:28 <AnMaster> mhm
21:45:34 <AnMaster> funny in Swedish
21:45:37 <AnMaster> that name
21:45:47 <AnMaster> dalton → dalta
21:46:25 <AnMaster> not sure what it is in English
21:46:26 <AnMaster> hm
21:46:33 <AnMaster> wiktionary gives it as
21:46:42 <AnMaster> " 1. coddle excessively; pamper"
21:46:44 <fizzie> "dalta vb itr, dalta med ngn klema coddle (mollycoddle, pamper) sb; kela pet (fondle) sb" says our Swedish-English dictionary.
21:47:04 <AnMaster> klema indeed
21:47:05 <fizzie> ("MOT Norstedts stora engelska ordbok 1.0")
21:47:14 <AnMaster> fizzie, huh 1.0?
21:47:30 <AnMaster> I thought they came in like "1995 edition"
21:47:39 <AnMaster> or "seventh edition"
21:47:43 <AnMaster> not in version numbers
21:49:59 <cpressey> AnMaster: probably related to English "dote" ?
21:50:18 <AnMaster> cpressey, not sure what that is?
21:50:22 <AnMaster> dote-matrix printers?
21:50:27 <AnMaster> ;)
21:50:41 <cpressey> 1.to bestow or express excessive love or fondness habitually (usually fol. by on or upon): They dote on their youngest daughter.
21:50:53 <cpressey> from dictionary.com
21:51:07 <cpressey> I wasn't aware of the other 2 meanings it gives
21:51:23 <AnMaster> cpressey, and those are?
21:51:40 <cpressey> 2. to show a decline of mental faculties, esp. associated with old age. 3. decay of wood.
21:56:00 <AnMaster> hm
21:56:24 <AnMaster> why can't double sided printing be easy
21:57:01 <fizzie> Maybe the web versions have version numbers. I don't know.
21:57:16 <AnMaster> fizzie, ah could be
21:57:31 <AnMaster> fizzie, doesn't those cost?
21:57:39 <AnMaster> some sort of yearly thing or such
21:57:43 <fizzie> "MOT Norstedts stora engelska ordbok 1.0
21:57:43 <fizzie> I denna tredje upplaga av Norstedts stora svensk-engelska ordbok har ca 6 000 aktuella ord och fraser lagts till. Dessutom har nya betydelser lagts till på befintliga uppslagsord, och innehållet har reviderats och moderniserats. -- Stockholm i maj 2000"
21:57:47 <fizzie> So this is from 2000.
21:58:00 <fizzie> They do, we have access via the university proxy though.
21:58:38 <AnMaster> ah
21:59:47 <fizzie> There used to be a "netmot foo" command-line shortcut on the standard shell server -- it used lynx --dump, IIRC -- though I think that's broken right now, there's been some URL changes now that this is the Wave University.
21:59:55 <AnMaster> btw my printer has reported that the black ink is almost used up for about a month now. During that time I printed around 200 pages of written text I think
22:00:04 <AnMaster> I wonder how it calculates
22:01:19 <fizzie> It tries to maximize profit to the printer manufacturer without *completely* lying.
22:01:34 <AnMaster> maybe
22:01:36 <AnMaster> it's a HP
22:01:44 <AnMaster> wonderful linux support there though
22:02:05 <AnMaster> better linux drivers by far than the windows drivers
22:02:10 <AnMaster> and all features supported of course
22:02:28 <AnMaster> I think there is semi-official help from HP with those drivers even
22:03:00 <AnMaster> hplip isn't it called that?
22:08:38 <fizzie> Oh, they're "wonderful" nowadays? I think at some point in time they were a horrible binary blob. But I could be wrong. (I've usually just used the free alternatives.)
22:09:41 <fizzie> Maybe it's Lexmark's binary horribleness I'm thinking about.
22:10:01 <AnMaster> fizzie, they are open source
22:10:05 <AnMaster> that is the thing about them
22:10:20 <AnMaster> hplip is open source and works very very wekk
22:10:23 <AnMaster> well*
22:10:34 <fizzie> Seems to be so.
22:10:39 <AnMaster> never got my old lexmark printer/scanner/copier to work well under linux
22:10:44 <AnMaster> as in, it wasn't even detected
22:10:46 <AnMaster> that was ages ago
22:10:49 <fizzie> Though I'm pretty sure it was HP who bundled the whole Apache Tomcat with their Windows drivers just to show some printer statistics control panel tab.
22:10:57 <AnMaster> possibly before first ubuntu version even
22:11:09 <AnMaster> I think it was on SuSE
22:11:13 <AnMaster> (heh)
22:11:29 <AnMaster> fizzie, and yes hp's windows drivers suck a lot
22:11:48 <AnMaster> while on linux it just works (remember to turn off the tray icon thingy though)
22:11:59 <AnMaster> (but once you do that it doesn't show up again)
22:12:11 <fizzie> I have (well, technically speaking my wife has) a Lexmark E232 model-cheapo B&W laser printer, which works pretty well with CUPS + gutenprint's "Generic PCL 6/PCL XL printer" drivers.
22:12:20 <AnMaster> (and the app doesn't seem to auto start at all :)
22:12:45 <AnMaster> fizzie, this is a printer/scanner/copier thingy though
22:12:55 <fizzie> Yes, those are always messier.
22:13:04 <AnMaster> fizzie, and laser printers are always easier
22:13:11 <AnMaster> they are generally postscript aren't they?
22:13:22 <AnMaster> while inkjet... are not
22:14:18 <fizzie> Cheap laser printers typically aren't postscript.
22:14:27 <fizzie> Like this one.
22:14:43 <fizzie> Quite many (like this) support the very much simpler PCL language, though.
22:15:00 <fizzie> PCL, incidentally, is a HP thing.
22:15:04 <AnMaster> heh
22:15:08 <AnMaster> fizzie, well okay
22:15:13 <AnMaster> still somewhat standard then
22:15:52 <AnMaster> fizzie, and the only postscript printers I have had to deal with have been monster things where you log in on the printer afterwards to print your buffered document
22:15:59 <AnMaster> (they have those at our university)
22:16:06 <AnMaster> oh and pseudo printers of course
22:16:10 <AnMaster> for pdf conversion
22:16:28 <fizzie> I think our printers support that sort of stuff too, but no-one uses those features, and I'm not sure they'd work anyway.
22:16:45 <AnMaster> fizzie, they aren't optional at our university
22:17:18 <fizzie> A LaserJet 5200 is the one I usually print to at work.
22:17:32 <fizzie> Or a LaserJet... 4650?, when colors are needed.
22:17:43 <AnMaster> fizzie, anyway, they have paper sorter and automatic <whatever is the English word of the metal things you punch through paper to bind them together>
22:17:47 <AnMaster> and so on
22:17:51 <AnMaster> at least some of them do
22:18:01 <fizzie> Right, those get pretty complicated.
22:18:03 <cpressey> "hole-punch"
22:18:07 <AnMaster> cpressey, no?
22:18:17 <cpressey> "staple"?
22:18:18 <AnMaster> isn't that for putting in binders
22:18:20 <AnMaster> cpressey, right
22:18:25 <AnMaster> that's it, staple
22:18:29 <AnMaster> anyway
22:19:01 <fizzie> At my civil service place all large print jobs were printed to the copy machine, which also was a horrible monstrosity with all kinds of "which parts of the paper you want stapled" options.
22:19:10 <AnMaster> fizzie, there are rumored to be colour printers at university (according to printer selection window). I have yet to successfully locate where they are physically located.
22:19:29 <AnMaster> fizzie, civil service?
22:19:31 <AnMaster> what's that
22:19:37 <fizzie> The army alternative.
22:19:47 <AnMaster> oh you have värnplikt there still?
22:20:07 <fizzie> Civiltjänst?
22:20:14 <fizzie> Yes, if it means what I think it does.
22:20:15 <AnMaster> fizzie, right. Sounds exotic
22:20:25 <AnMaster> fizzie, can't you use that dict
22:20:31 <fizzie> What can I say? We're a bit traditionalists.
22:21:58 <AnMaster> fizzie, btw, there is an even larger printer monster with automatic paper feed for copying kind of thing at one place at the university
22:22:01 <fizzie> Anyhow, I was doing desktop publishing work for Brottspåföljdssektorns utbildningscentral (the new name; I'm not sure what the old one was in Swedish) for a year.
22:22:06 <AnMaster> I don't think the other one actually has that
22:22:31 <AnMaster> fizzie, what the heck do they do. I can read each part of that
22:22:38 <cpressey> When I (first) went to university, there was a big ol' daisywheel line printer named "R5"... loud enough that it was housed in a room by itself.
22:22:45 <AnMaster> but I can only hazard a guess that it is related to crime
22:22:58 <AnMaster> it is so bureaucratic opaque
22:23:13 <AnMaster> cpressey, you are older than us
22:23:14 <AnMaster> clearly
22:23:16 <fizzie> They arrange the training you need if you want to work in a prison, basically. And some other criminology-as-a-study related stuff.
22:23:17 <AnMaster> cpressey, when was that
22:23:25 <fizzie> Oh, right; the printers. Our place has some for-students color printers in a separate room; you print things there, then collect them from the "printouts desk" and pay for it. (Black-and-white stuff is free.)
22:23:30 <cpressey> AnMaster: And the university was a bit behind the times at the time, yes :)
22:23:44 <AnMaster> cpressey, around when was it? late 1980?
22:23:46 <cpressey> Early nineties.
22:23:50 <AnMaster> heh
22:24:15 <cpressey> I'm not *that* old :)
22:24:20 <AnMaster> fizzie, we get to pay for both and have some sort of printer account thingy
22:24:41 <AnMaster> forgot how many pages I have left on it
22:24:45 <AnMaster> I very rarely print there though
22:25:12 <AnMaster> inkjet at home probably costs less in practise
22:25:28 <AnMaster> laser at home would be better
22:25:43 <AnMaster> anyway I worked out a how to correctly do double sided printing :D
22:26:51 <AnMaster> "odd pages, reverse order", put them in with the bottom at the page towards you, text facing up (it's one of those printers with the tray below where the printer comes out). Then "even pages, usual order"
22:26:58 <AnMaster> reverse order is the one where the first page ends up at the top
22:27:32 <fizzie> Ah. Our B&W printing policy is "please don't use huge amounts of resources, because if you do, then we're going to have to start enforcing quotas here, and that'll make no-one happy".
22:27:56 <AnMaster> fizzie, normal (for completely unfathomable reasons) is the one where you have to reverse the order of the printed out pages
22:28:04 <AnMaster> why not make the other the default
22:28:08 <AnMaster> would make more sense
22:28:53 <fizzie> There's a (non-free) a-bit-wider-than-A0 no-real-limit-for-length,-it's-a-huge-roll poster-printer available for students, too. But that one was pretty expensive.
22:28:55 <AnMaster> I have yet to see a printer designed so that the pages end up in the right order when you print in the non-reversed order
22:29:07 -!- MigoMipo has quit (Remote host closed the connection).
22:29:07 <AnMaster> fizzie, colour?
22:29:12 <fizzie> I think so.
22:29:26 <AnMaster> well that kind of printers are pretty fancy yeah
22:29:40 <fizzie> The print queue is called "mankeli" (Finnish for sv:mangel).
22:29:44 <fizzie> I assume it looks like one, too.
22:29:47 <AnMaster> :D
22:30:21 <Gregor> `translate mankeli
22:30:27 <HackEgo> var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var
22:30:30 <Gregor> Ah yes
22:30:46 <Deewiant> `translatefromto fi en mankeli
22:30:48 <HackEgo> mangle
22:31:02 <AnMaster> fizzie, the printers at my uni are called "followme" usually because they are supposed to point to the nearest printer of the selected color-or-b&w-nsss
22:31:05 <AnMaster> ness*
22:31:06 <fizzie> 1. mangle -- (clothes dryer for drying and ironing laundry by passing it between two heavy heated rollers)
22:31:06 <AnMaster> but
22:31:08 <fizzie> In that sense.
22:31:09 -!- jcp has quit (Remote host closed the connection).
22:31:10 <AnMaster> usually they don't
22:31:18 <AnMaster> and you have to go figure out where the heck the printer is
22:31:21 <AnMaster> (never near you)
22:31:46 <AnMaster> Gregor, #!/bin/cat?
22:32:01 <Gregor> AnMaster: ...?
22:32:10 <AnMaster> <Gregor> `translate mankeli
22:32:10 <AnMaster> <HackEgo> var sl_select, tl_select, [...]
22:32:24 <AnMaster> looked like it catted the source code?
22:32:37 <Gregor> ... yeaaaaah no.
22:32:37 <AnMaster> `type translate
22:32:38 <HackEgo> No output.
22:32:42 <AnMaster> `help
22:32:43 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:32:43 <Gregor> `cat bin/translate
22:32:44 <HackEgo> #!/bin/bash \ translateto "en $1"
22:32:52 <AnMaster> `run type translate
22:32:53 <HackEgo> translate is /tmp/hackenv.28858/bin/translate
22:33:07 <AnMaster> `run file bin/translate
22:33:08 <HackEgo> bin/translate: Bourne-Again shell script text executable
22:33:13 <AnMaster> Gregor, then why that strange output above
22:33:29 <Gregor> A) That's JAVASCRIPT code from translate.google.com
22:33:33 <AnMaster> oh
22:33:38 <Gregor> B) They keep changing their output, and I can't keep up.
22:34:04 <AnMaster> Gregor, looked slightly like perl + var to me
22:34:25 <AnMaster> but there is probably some Acme module for that
22:34:30 <Gregor> From a bunch of variable assignments? :P
22:34:41 <AnMaster> Acme::Javascript?
22:35:14 <AnMaster> Gregor, yes
22:35:18 <fizzie> The specs say mankeli's a HP DesignJet 2500CP; "600 DPI, 60 LPI", but I think that LPI value is a typo, since all specs in the web talk about "true 600 DPI". And the print queue is moderated; you have to call/email them before any submitted jobs are processed. (Presumably because they don't want a 87 cm wide and 10 metres long picture of a human penis come out of it unannounced.)
22:35:33 <AnMaster> fizzie, LPI?
22:35:41 <fizzie> Lines per inch.
22:36:06 <AnMaster> fizzie, that's pretty small text
22:36:28 <AnMaster> </intentional misinterpretation>
22:37:02 <AnMaster> fizzie, anyway, what sort of lines are those
22:37:58 <fizzie> Lines of points? LPI's just the "vertical resolution" there, while DPI's the horizontal (across-paper) one. But I really think they both are actually 600 points per inch.
22:38:11 <fizzie> The printing seems to cost 20 eur/metre, on the 90 cm wide paper.
22:38:26 <AnMaster> that's expensive
22:38:32 <fizzie> +22 % value added tax.
22:38:40 <AnMaster> fizzie, that was without tax?
22:38:44 <AnMaster> yeargh
22:38:46 -!- ttm_ has joined.
22:38:54 -!- ttm_ has changed nick to ttm.
22:39:00 <fizzie> 24.40 eur/m with tax.
22:40:01 <AnMaster> fizzie, that's very very expensive indeed
22:40:15 -!- dbc has quit (Ping timeout: 256 seconds).
22:40:24 <fizzie> Yes. I've never printed anything with it.
22:41:28 <AnMaster> fizzie, you must be at university very late?
22:41:31 <AnMaster> or sshing?
22:41:32 -!- cheater2 has quit (Read error: Connection reset by peer).
22:41:52 <fizzie> At home I am.
22:41:56 -!- cheater2 has joined.
22:41:59 <AnMaster> fizzie, vpn? ssh?
22:42:17 <fizzie> Neither. The computing centre web site is publicly available.
22:42:57 <AnMaster> fizzie, but the printer details?
22:43:00 <AnMaster> and printer queue?
22:43:17 <AnMaster> is that public to the internet too? :D
22:44:01 <fizzie> Sure.
22:44:14 <fizzie> http://itservices.tkk.fi/fi/ohjeet/hinnasto/ if you can read Finnish.
22:44:34 <fizzie> http://itservices.tkk.fi/fi/ohjeet/anvandningspolitik/ if you want to read the usage policy in Swedish.
22:44:35 <AnMaster> fizzie, so you mean anyone over the internet can submit to any of the printers at that uni?
22:44:52 <fizzie> No, just the specs and the name of the printer queue is mentioned there.
22:45:03 <AnMaster> err that is strange Swedish
22:45:05 <fizzie> Obviously you have to be using one of the university computers to actually access the queue.
22:45:14 <augur> MissPiggy: hows them gigs? 8D
22:45:23 <AnMaster> fizzie, s/politik/policy/ and it would make sens in Swedish Swedish
22:45:53 -!- cheater3 has joined.
22:46:04 <fizzie> AnMaster: I doubt they have had anyone with real skills to translate that stuff.
22:46:20 <fizzie> AnMaster: In any case, the instructions seem to be there in English too if you're terminally interested, but it's very boring stuff.
22:46:22 <AnMaster> fizzie, possibly. Also it could be sv_FI and sv_SE diffs
22:46:39 <AnMaster> fizzie, and I'm not that interested no
22:47:11 <AnMaster> fizzie, at least it is better than translations like "all your base are belong to us" or "spoony <you probably know what>"
22:47:12 -!- tombom has quit (Quit: Leaving).
22:47:41 -!- cheater2 has quit (Ping timeout: 246 seconds).
22:47:45 * AnMaster would be extremely surprised if fizzie didn't know that one
22:48:46 <fizzie> Bard, yes.
22:49:11 <AnMaster> what was the original (more literally)
22:50:18 <AnMaster> btw the last xkcd wasn't too bad
22:50:35 <AnMaster> (sysadmin one)
22:52:22 <fizzie> "After submitting a chargeable print job, please consult the pidgeonhole in room U115a for further information. Payment takes place in U115a."
22:52:41 <fizzie> "Please consult the pidgeonhole for further information."
22:53:08 <lament> pigeonhole
22:53:21 <AnMaster> fizzie, heh
22:53:21 <fizzie> Yes, there is also a spelling mistake.
22:53:25 <AnMaster> fizzie, what is in in FI?
22:53:26 <fizzie> But it's funny even without that.
22:53:30 <AnMaster> is it in*
22:54:13 <AnMaster> translated of course
22:54:17 <AnMaster> (correctly)
22:54:38 <fizzie> The Finnish instructions just say the submitted jobs can be collected from room U115a.
22:54:54 <cpressey> I'm guessing it would be something like "teller window"?
22:55:07 <fizzie> Yes.
22:55:22 <cpressey> I like pigeonhole better.
22:55:39 <cpressey> Especially if it is manned by a real pigeon.
22:56:32 <cpressey> Well, at least they didn't say "cubbyhole".
22:56:49 <fizzie> They use the word "dovecote" (fi:kyyhkyslakka, sv:duvslag) for the boxy-shelf-thing-thing where homework assignment papers and such (mostly for maths courses) are distributed from.
22:57:12 <fizzie> That one also has no live birds in it, which is a shame.
22:57:51 -!- kar8nga has quit (Remote host closed the connection).
23:00:03 <AnMaster> night →
23:01:51 <fizzie> http://en.wikipedia.org/wiki/Pigeonhole_principle -- I love the way they have a picture of real pigeons and holes.
23:18:02 -!- cpressey has left (?).
23:22:36 -!- Sgeo has joined.
23:27:52 -!- sebbu2 has joined.
23:30:14 -!- sebbu has quit (Ping timeout: 276 seconds).
23:30:15 -!- sebbu2 has changed nick to sebbu.
23:38:33 -!- sebbu2 has joined.
23:38:42 -!- comex has joined.
23:40:27 -!- sebbu has quit (Ping timeout: 252 seconds).
23:40:27 -!- sebbu2 has changed nick to sebbu.
23:48:22 -!- FireFly has quit (Quit: Leaving).
23:48:31 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:54:42 -!- jcp has joined.
2010-02-23
00:01:21 -!- lament has quit (Ping timeout: 252 seconds).
00:05:26 -!- lament has joined.
00:18:12 -!- Pthing has quit (Remote host closed the connection).
00:30:18 -!- Sgeo has quit (*.net *.split).
00:30:18 -!- ttm has quit (*.net *.split).
00:30:19 -!- Asztal has quit (*.net *.split).
00:30:19 -!- augur has quit (*.net *.split).
00:30:43 -!- ttm has joined.
00:30:45 -!- Sgeo has joined.
00:30:45 -!- augur has joined.
00:30:50 -!- Asztal has joined.
00:40:58 -!- oerjan has quit (Quit: Good night).
00:52:09 -!- cheater3 has quit (Ping timeout: 248 seconds).
01:17:08 -!- jcp has quit (Remote host closed the connection).
01:21:20 -!- Pthing has joined.
01:28:29 -!- coppro has joined.
01:39:20 -!- Pthing has quit (Remote host closed the connection).
01:44:07 -!- jcp has joined.
01:46:07 -!- jcp has quit (Remote host closed the connection).
01:49:21 -!- jcp has joined.
02:29:04 -!- Asztal has quit (Ping timeout: 265 seconds).
02:59:32 <Gregor> Oh nose D-8
02:59:35 <Gregor> There's another Gregor Richards
02:59:38 <Gregor> http://www.wideawakemusic.com/gallery.html
02:59:45 <pikhq> Oh noes.
03:03:31 -!- lament has quit (Ping timeout: 268 seconds).
03:03:46 -!- lament has joined.
03:23:43 -!- jcp has quit (Remote host closed the connection).
03:24:27 -!- MissPiggy has quit (Quit: Lost terminal).
03:27:21 <Sgeo> Oh nose ":-/"[1]
03:36:11 -!- jcp has joined.
03:58:09 -!- MizardX has quit (Ping timeout: 256 seconds).
05:12:20 -!- jcp has quit (Remote host closed the connection).
05:14:33 -!- jcp has joined.
05:18:37 <olsner> ":-/"[1]?
05:19:17 <puzzlet> fancy notation for nose
05:19:26 <olsner> oooh
05:24:00 -!- jcp has quit (Remote host closed the connection).
05:24:54 <augur> Gregor: i knew a Gregor Richardson
05:25:21 <Gregor> Not close enough.
05:36:17 <pikhq> I once knew a Gregor Richards.
05:36:31 <pikhq> Guy registered http://www.codu.org/ for some reason.
05:37:09 <coppro> wouldn't an oh nose be ":o/"[1]?
05:37:34 <pikhq> They would, in fact, like for you to think that.
05:41:36 -!- Gracenotes has joined.
05:42:34 <Gregor> pikhq: You'll notice that www.codu.org, while existent, forwards to codu.org :P
05:42:44 <pikhq> Gregor: Heheheh.
05:49:33 -!- amca has quit (Quit: Farewell).
05:56:30 -!- jcp has joined.
05:56:38 -!- jcp has quit (Client Quit).
05:59:13 -!- jcp has joined.
06:00:42 -!- cal153 has joined.
06:58:41 -!- FireFly has joined.
07:07:13 -!- tombom has joined.
07:32:16 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:46:27 -!- cheater2 has joined.
07:50:46 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:22:05 -!- FireFly has quit (Quit: Leaving).
09:19:12 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
10:48:18 -!- oerjan has joined.
10:51:20 -!- ais523 has joined.
10:51:31 -!- ais523 has quit (Changing host).
10:51:31 -!- ais523 has joined.
10:51:31 -!- ais523 has quit (Changing host).
10:51:31 -!- ais523 has joined.
10:59:57 <oerjan> poor, poor fireballs
11:20:03 <augur> current favorite book: Handbook of Formal Languages
11:20:18 <augur> just for you, oerjan
11:20:28 <augur> dont let anyone else know about it x3
11:22:06 * oerjan rolls eyes
11:22:26 <augur> :p
11:22:28 <augur> its a nifty little book
11:22:48 <augur> theres one chapter that extensively covers some extensions of context free grammars
11:22:57 <augur> called controlled grammars
11:23:31 <augur> in which the rewriting of a string is controlled in some way, either by the string itself, or by some rules on the structure of derivations
11:23:34 <augur> or whatever
11:29:55 <oerjan> i'm going with the whatever
11:30:00 * oerjan whistles innocently
11:30:12 <augur> :(
11:30:16 <augur> its cool!
11:41:56 <fizzie> Handbook of Larval Fromages.
11:43:59 <oerjan> i think i'll skip those dishes
12:03:34 <AnMaster> I have to agree with oerjan on that
12:04:45 <AnMaster> oerjan, also: s/fireballs/fromer fireballs/
12:24:41 -!- oerjan has quit (Quit: Later).
12:29:01 -!- augur has quit (Ping timeout: 268 seconds).
12:31:16 -!- BeholdMyGlory has joined.
12:36:20 <cheater> http://divingintointercal.blogspot.com/
12:37:36 <ais523> cheater: has it been updated?
12:37:41 <ais523> I'm aware of it, but didn't think it had changed in years
12:37:54 <ais523> nope, still stuck at part 3
12:38:09 <ais523> I'm secretly hoping that the author is still going, just hadn't figured out how to do anything more complex in INTERCAL yet
12:39:24 <cheater> yeah, sadly
12:39:33 <cheater> yeah, so am i
12:39:44 <cheater> i hope he'll be able to tell us how to do intercal for the web
12:40:16 <ais523> oh, I think I'm the third comment on that most recent blog post, btw
12:40:28 <ais523> I only vaguely remember writing it, and it's marked as an anon, but it looks like my style
12:41:23 <ais523> " Combining INTERCAL expressions into one line is IMO good practice; it makes them easier to optimise, and has the added advantage of being more confusing."
12:41:34 <ais523> yep, I think that's me alright
12:49:33 -!- archtech has joined.
12:50:10 <cheater> ais523: do you know if it's possible to do command line arguments for intercal programs?
12:50:52 <cheater> ais523: in that case, i could re-implement drupal in intercal
12:53:22 <ais523> cheater: not at the moment, at least in C-INTERCAL
12:53:30 <ais523> there's a standard set of args all compiled programs support
12:53:34 <ais523> but they don't support any others
12:53:42 <cheater> hmm
12:53:54 <cheater> what about CLC-INTERCAL?
12:54:02 <cheater> is this specified in the INTERCAL manual?
12:54:34 <ais523> which one?
12:54:47 <cheater> the original one
12:54:49 <ais523> C-INTERCAL's certainly pretty clear about it in its
12:55:04 <ais523> the original one talks about the Princeton compiler, which has no mention of command-line args to the compiled programs themselves
12:55:06 <ais523> just to the compiler
12:55:11 <cheater> C-IMTERCAL is not the defining standard
12:55:23 <cheater> *N
12:55:59 <cheater> ais523: but the princeton compiler itself does not disallow them does it?
12:57:08 <cheater> I *guess* you could also do first-order programming by including argv in the source and recompiling
12:59:28 <ais523> cheater: the princeton compiler existed in the days of punched cards, I'm not entirely sure if a command-line existed
12:59:48 <ais523> but I don't know what you mean by "disallow"; there's no language feature that would let you get at them
13:00:17 -!- ais523 has quit (Quit: Page closed).
13:00:21 <cheater> well, hmm, ya.
13:00:26 <cheater> o no
13:00:30 <cheater> he quits
13:14:55 -!- augur has joined.
14:10:15 -!- lieuwe has joined.
14:16:09 -!- scarf has joined.
14:23:38 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
14:31:40 <scarf> <ubuntu> there is no valid use case for a system without localhost
14:31:51 <scarf> can someone please randomly contradict that with a plausible argument
14:31:58 <scarf> that also takes into account the fact that it has ifupdown installed?
14:33:11 -!- Pthing has joined.
14:33:23 -!- Asztal has joined.
14:38:58 -!- coppro has joined.
14:40:15 -!- boily has joined.
14:48:15 -!- MizardX has joined.
14:52:54 -!- charlls has joined.
14:58:22 -!- lieuwe has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
15:00:37 -!- Blarumyrran has joined.
15:01:04 -!- Blarumyrran has left (?).
15:02:15 -!- archtech has left (?).
15:05:00 -!- coppro has quit (Quit: that school-y thing).
15:05:12 <charlls> anyone knows once you have a validated promela model how do you translate your specification into valid c/c++ code?
15:07:08 <fizzie> Isn't that just the -a flag to spin?
15:07:37 <fizzie> It should write pan.c (and a pile of other pan.X files) that's compilable to an executable verifier.
15:08:37 <fizzie> Sorry, a bit lazy reading there. You didn't want a compilable verifier, you wanted the actual promela code into C.
15:15:09 <charlls> excellent
15:15:23 <charlls> no
15:15:29 -!- cpressey has joined.
15:15:50 <charlls> what i mean is the c model you are actually trying to model with it
15:16:03 <charlls> im not sure whats the right terminology
15:16:31 <charlls> you mean that the -a flag produces a .c file that will run the verification?
15:16:40 <fizzie> Yes.
15:16:57 <charlls> ah
15:17:37 <charlls> what i mean is that once you have a model that checks out, you somehow have to use that to implement the c/c++ model right? thats the step of the process i'm not clear about
15:18:07 <fizzie> Yes, I got that a bit late. As far as I know, there's no magical tool that would turn a Promela model into C code.
15:19:13 <charlls> ok, but i'm sure there are some sort of guidelines
15:20:25 <fizzie> If you go the other way, I hear there are some (more or less restricted) tools that do (or at least help) "model extraction", i.e. take C code and generate a Promela model for that. Guidelines for that sort of stuff are in the Spin book.
15:21:04 <fizzie> After a quick look at the table of contents -- http://spinroot.com/spin/Doc/Book_extras/index.html -- it doesn't seem to talk much about the opposite problem, how to turn a Promela model into a real implementation.
15:21:38 <charlls> model extraction would work too
15:22:23 <charlls> in fact i think thats the intended usage (you write your c/c++, you extract the model, verify, check for issues, adjust your code, rinse and repeat)
15:22:32 <charlls> cool
15:22:57 <charlls> i was thinking at it backwards i suppose
15:24:08 <fizzie> I guess both ways are used; the traditionalish "design → Promela model → implementation in C" one, and the fancier "implementation in C → Promela model for checking" one.
15:24:42 <fizzie> There indeed seem to be some automation for model extraction, but I'm not really qualified to recommend any, not having used any of them.
15:25:47 <charlls> np, i will look and report back :P
15:34:07 -!- FireFly has joined.
15:36:00 -!- boily has quit (Quit: leaving).
16:05:10 -!- MigoMipo has joined.
16:06:17 -!- MissPiggy has joined.
16:37:20 <AnMaster> hm
16:37:47 <AnMaster> Deewiant, TURT has F for "move forward" and B for "move backward"
16:37:52 <AnMaster> should negative arguments be allowed
16:38:04 <AnMaster> because currently I think negative arguments to my F will move backwards
16:38:07 <AnMaster> and vice verse
16:53:01 -!- augur has quit (Ping timeout: 264 seconds).
16:54:47 <fizzie> I know nobody asked me, but that sounds reasonable.
16:55:50 <AnMaster> integer_to_colour(Value) ->
16:55:50 <AnMaster> <<R,G,B>> = <<Value:24>>,
16:55:51 <AnMaster> {R,G,B}.
16:55:54 <AnMaster> I find that rather neat
16:56:21 <fizzie> Heh, that TURT quine looks messy. I don't think I had even seen that before.
16:56:36 <AnMaster> fizzie, which turt quine?
16:56:46 <AnMaster> the one from the huge domain name guy?
16:56:55 <fizzie> Yes.
16:57:04 <fizzie> At www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info.
16:57:41 <AnMaster> fizzie, and yes it does if your interpreter handle "pen down without moving (that is, followed by a jump or pen-up event) → draw a dot"
16:57:56 <AnMaster> if you sed out all the dots that cfunge and iirc ccbi cerates it looks quite ok
16:58:48 <AnMaster> fizzie, anyway isn't that integer-to-colour-triplet function rather nice
16:58:59 <AnMaster> in C it would have been quite some bitshifting or such
16:58:59 <fizzie> I haven't run it, I was just judging based on that picture there.
16:59:13 <fizzie> But yes, it is nice.
16:59:20 <AnMaster> fizzie, oh that picture is much better than what cfunge produces (due to missing the dots)
16:59:29 <AnMaster> of course cfunge does the correct thing instead
17:00:00 <AnMaster> fizzie, anyway in cfunge it produces quite a less blocky image
17:00:04 <AnMaster> due to it producing an svg
17:01:29 <fizzie> If you don't mind portability, though, and assuming the fields line up right and there are no alignment mishaps, you could do a similar "struct rgb { unsigned char r, g, b; }; struct rgb integer_to_colour(unsigned u) { return *((struct rgb *)&u); }" thing in C too.
17:02:24 <AnMaster> fizzie, well I'm not happy if it doesn't work on big endian or such
17:02:57 <fizzie> You can #ifdef in different struct definitions depending on endianness, but right, it's not guaranteed to work anyway.
17:03:27 <AnMaster> unless otherwise specified erlang uses big-endian for bitstrings/binaries
17:03:43 <AnMaster> (you can override it to one of: big, little, native)
17:04:50 <AnMaster> fizzie, anyway the sanest way in C seems like something such as:
17:06:10 <AnMaster> struct rgb integer_to_colour(uint32_t u) { return (struct rgb){.r=u&0xff0000, .g=u&0xff00, .b=u&0xff}; }
17:06:15 <AnMaster> fizzie, agreed?
17:06:34 <AnMaster> assuming same struct as above that is
17:07:56 <AnMaster> fizzie, oh and erlang defaults to unsigned. With little endian signed it would have required something like: <<Value:24/little-signed>>
17:08:16 <AnMaster> (and similar on the other side of the pattern matching for each of R, G and B
17:08:17 <AnMaster> )
17:09:04 <fizzie> If you use the same struct rgb definition I do, ".r = u&0xff0000" with an eight-bit byte will most likely end up in an always-zero .r,
17:10:25 <fizzie> If you don't mind the reliance on well-defined unsigned wraparoundery and can assume CHAR_BIT == 8, it'd be enough with just .r = u>>16, .g = u>>8, .b = u. But maybe it's still best to mask with those masks before the shift, or with 0xff after.
17:11:09 <fizzie> (Away, food.)
17:12:31 <AnMaster> fizzie, oh right
17:12:33 <fizzie> Incidentally, I think it would be well-defined to do something like "unsigned char *p = (unsigned char *)&u; return (struct rgb){ .r = p[0], g = p[1], b = p[2] };" if you like. It's in the standard that you can access all bytes of an object with a char*, and cast any pointer to a char pointer safely.
17:12:35 <AnMaster> you need to bitshift it too
17:13:00 <fizzie> (But that's not endian-automatic the way bitshifting and masking is.)
17:13:12 <AnMaster> indeed
17:13:17 -!- tombom has joined.
17:13:21 <AnMaster> fizzie, and in C the best way is probably bitshifting
17:13:29 <AnMaster> fizzie, and that was one quick meal
17:15:53 -!- kar8nga has joined.
17:18:16 <fizzie> Oh, I'm still away.
17:23:48 <AnMaster> XD
17:35:31 <AnMaster> Deewiant, oh dear it looks like both ccbi and cfunge mix up turn left and turn right
17:35:44 <AnMaster> plus ccbi somehow manages to miss one dot in that test
17:35:51 <AnMaster> or rather
17:36:00 <AnMaster> the dot turns out the wrong colour
17:36:23 <AnMaster> (test/turt.b98 in cfunge sources)
17:36:32 <AnMaster> (I believe it might be incorrect)
17:37:20 <AnMaster> (but still, ccbi gets the wrong colour for the right dot)
17:37:31 <AnMaster> (it should be black not blue)
17:38:11 <AnMaster> still, something is up with turn left/right there
17:39:10 <AnMaster> for some reason turning right adds to the degree
17:39:18 <AnMaster> and turing left substracts from it
17:39:50 <AnMaster> and that doesn't match behaviour for set heading
17:44:46 -!- oerjan has joined.
17:46:25 -!- augur has joined.
17:51:36 <AnMaster> oerjan, btw, just need you to confirm that I'm not mixing things up here: If you keep track of a heading and want to turn right you would substract from said heading.
17:51:37 <AnMaster> right?
17:51:46 <AnMaster> and turing left you would add to it
17:51:50 <MissPiggy> There was a general rejection of the theory of Evolution when it was first presented, and wasn't thoroughly excepted until a long time afterwards.
17:51:54 <MissPiggy> Furthermore, the revelation that the Earth is flat would be a far greater revelation than evolutionary theory was, meaning the public rejection and/or outcry would be far more widespread and violent.
17:51:56 <AnMaster> assuming a math-direction
17:52:12 <oerjan> um are you sure i'm the one you want to ask? oh math direction
17:52:18 <AnMaster> as in -> = 0 ^ = 90 <- 180
17:52:20 <AnMaster> and so on
17:52:22 <oerjan> yeah then right turn would be negative
17:52:34 <AnMaster> oerjan, then wth does both cfunge and ccbi do
17:52:40 <MissPiggy> what is this AnMaster some kind of LOGO?
17:52:53 <AnMaster> MissPiggy, the fingerprint TURT for befunge
17:52:59 <MissPiggy> oh cool
17:53:19 <AnMaster> ccbi and cfunge both sets heading as in math-direction
17:53:27 <AnMaster> but mix up right and left
17:53:32 <oerjan> sheesh
17:54:11 <oerjan> well by math direction i assume you mean the standard way of displaying complex numbers, with i upwards
17:54:13 <AnMaster> however for compatibility with older programs it might be better to redefine what right and left in English means
17:54:14 <AnMaster> ;)
17:54:26 <AnMaster> oerjan, yes
17:54:30 <oerjan> so e^(i*angle) is angle counterclockwise (in radians, though)
17:54:35 <AnMaster> oerjan, well, unit circle for trig actually
17:54:40 <AnMaster> which works out to the same thing
17:54:59 <AnMaster> oerjan, and yes in radians of course.
17:55:43 <AnMaster> oerjan, suggesting that <- would be 180 radians wouldn't make sense in *any* system, thus you could conclude the unit in that case was degrees
17:55:46 <oerjan> AnMaster: there was the argument that for a turtle degrees are better, since you get exact multiples of 360 (2*pi is not exact on floating point)
17:56:03 <AnMaster> oerjan, turtle degrees?
17:56:17 <AnMaster> oh
17:56:17 <scarf> AnMaster: like bachelor of chenelography, etc
17:56:20 <oerjan> *turtle, degrees
17:56:23 <AnMaster> oerjan, right
17:56:46 <AnMaster> oerjan, and yes the unit in question for the interface is degrees in integer
17:57:26 <AnMaster> so I track it as degrees but convert it to radians to calc sin and cos values for move(Distance)
17:57:27 <oerjan> of course even turns by 60 degrees gives you irrational x,y parts
17:57:39 <oerjan> (for integer forwards)
17:57:49 <AnMaster> oerjan, true. And that is defined to be integer x,y
17:58:01 <oerjan> oh it is?
17:58:04 <AnMaster> so I think it might be possible to get supposedly straight lines that are somewhat curved
17:58:15 <AnMaster> oerjan, well, you have an integer-interface for TURT
17:58:24 <AnMaster> (not sure about a real turtle bot)
17:58:29 <oerjan> i'm more thinking about how you might not end up where you started if you do a triangle, say
17:58:30 <AnMaster> and there is a query position thingy
17:58:49 <AnMaster> so you have to round to integers when drawing
17:58:51 <oerjan> because of rounding errors, if you are using integers
17:59:04 <AnMaster> anyway since there is "jump to x,y" too
17:59:17 <AnMaster> you want a line to continue where you left off
17:59:23 <AnMaster> if you jump to current position
18:00:02 <AnMaster> oerjan, and yes quite. Unless you do that 3/4/5 one
18:00:13 <AnMaster> (or another one like that)
18:00:55 <oerjan> ah but that one has an irrational _degree_, i'd think
18:01:52 <oerjan> !haskell arctan(4/3)*(180/pi)
18:02:00 <AnMaster> oerjan, oh hm
18:02:31 <oerjan> huh, EgoBot claimed a parse error
18:02:34 <AnMaster> oerjan, well, if you round to nearest then just ending up near where you wanted to go is enough
18:02:46 <oerjan> oh it's that two possible compilations thing
18:02:47 -!- kar8nga has quit (Remote host closed the connection).
18:02:58 <AnMaster> oerjan, how can that compile in two ways?
18:03:30 <oerjan> i probably misremembered the name of arctan, so the compilation as an expression failed. then the compilation as a file failed (obviously) and gave me a parse error
18:03:31 <cpressey> I shouldn't ask, but, don't all turtle interfaces have a rounding problem? I certainly remember Apple LOGO did.
18:03:58 <scarf> there has to be /some/ way to do it without a rounding issue
18:04:00 <oerjan> cpressey: in _principle_ you could track exact algebraic expressions :D
18:04:19 <cpressey> Even though pi is irrational?
18:04:36 <cpressey> OK, I suppose.
18:04:53 <oerjan> you don't _use_ pi in a turtle. the actual sin and cos are algebraic when the angles are rational _degrees_
18:04:58 <oerjan> (i think)
18:06:11 <oerjan> for example sin (60 degrees) = (sqrt 2)/2
18:06:24 <oerjan> er wait
18:06:28 <AnMaster> cpressey, it seems nearly all turt programs I have found depend on left and right being mixed up
18:06:32 <cpressey> Well, even if they weren't, you could probably still do it.
18:06:44 <oerjan> (sqrt 3)/2
18:06:45 <AnMaster> cpressey, but set-heading doing the math set-heading
18:06:51 <AnMaster> as in, counter clockwise
18:07:26 <cpressey> I mean, track all movements since the beginning as an algebraic expression incl. sin and cos, reduce when possible using trig rules, and *only for output*, approximate the pixels.
18:07:28 <oerjan> !haskell atan(4/3)*(180/pi)
18:07:30 <EgoBot> 53.13010235415598
18:07:36 <cpressey> AnMaster: That's unfortunate.
18:07:48 <AnMaster> cpressey, yes quite
18:07:53 <cpressey> Sounds almost like someone should define TUR2.
18:07:54 <oerjan> cpressey: that's what i assumed you meant
18:08:01 <AnMaster> cpressey, why not TURT2?
18:08:28 <cpressey> Aren't fingerprint IDs four characters?
18:08:42 <AnMaster> cpressey, I don't think it says anywhere that longer aren't permitted
18:08:44 <AnMaster> nor shorter
18:09:00 <cpressey> Then it's a convention?
18:09:11 <AnMaster> cpressey, you should know ;P
18:09:26 <AnMaster> "The ( "Load Semantics" instruction loads the semantics for a given fingerprint onto any or all of the instructions A to Z. ( pops a count. It then pops count cells. For each cell that it pops, it multiplies a temporary value (which is initially zero) by 256, and adds the cell value to it.
18:09:26 <AnMaster> In this way, ( builds a fingerprint. This mechanism makes it simple to express large fingerprints like 0x452e472e in printable ASCII such as ".G.E"4( ... ), while not requiring the use of ASCII as the medium for all fingerprints. "
18:09:31 <AnMaster> quoting from the 98 spec
18:09:41 <AnMaster> and yes it is a convention afaik
18:10:01 <AnMaster> cpressey, certainly there is nothing preventing me creating a fingerprint 0
18:10:11 <AnMaster> or such
18:10:18 <cpressey> Then not TURT2 because it breaks convention. :)
18:10:34 <AnMaster> cpressey, also it causes issues in 32-bit funges
18:10:39 <cpressey> TURT2 would evaluate to a 40-bit value, is why, and 32-bit... exactly
18:10:39 <AnMaster> which is a thing of the past anyway
18:10:52 <cpressey> Huh
18:11:01 <AnMaster> cpressey, things are 64-bit or bignum nowdays (at least the thing *I* write ;P)
18:11:07 <AnMaster> well,
18:11:08 <cpressey> You say that like things of the past have less value than things of the present.
18:11:11 <AnMaster> cfunge has an option
18:11:17 <AnMaster> cpressey, I was joking -_-
18:11:29 <AnMaster> I think 32-bit funges are still fairly common
18:11:43 <AnMaster> cfunge is 64- or 32-bit (compile time option)
18:11:46 <AnMaster> efunge is bignum
18:11:57 <AnMaster> cfunge defaults to 64-bit iirc
18:13:12 <AnMaster> anyway, the issue is that TURT is so badly specced
18:13:27 <cpressey> Indeed
18:14:24 <cpressey> Hard to believe mixing up left and right, though.
18:15:33 <AnMaster> cpressey, well, at least http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/tquine.php seems to depend on that behaviour and that plus a few test suite thingies are the only users of TURT I know of
18:16:06 <AnMaster> cpressey, and yes, left/right is problematic. Probably it has been copied for compat between implementations since then
18:16:32 <AnMaster> fizzie, btw did you ever do any more work on JIT-funge?
18:17:37 <cpressey> I think if I had to redesign it I would leave out the teleporting and the absolute-heading-setting stuff.
18:18:16 <AnMaster> cpressey, and define which direction it was to turn in (math one is the only one that makes sense IMO)
18:18:25 <AnMaster> (for relative ones at least)
18:18:32 <cpressey> Well, yes.
18:18:41 <AnMaster> cpressey, also what about transparent colours?
18:18:53 <AnMaster> you could have semi-transparent pen-colours
18:19:00 <AnMaster> more realistic too
18:19:02 <cpressey> Gamma, huh.
18:19:10 <AnMaster> cpressey, I was thinking of alpha channel
18:19:16 <cpressey> Oh, right.
18:19:27 <AnMaster> cpressey, gamma is something quite different isn't it?
18:19:35 <cpressey> Yes, I was mixed up.
18:19:37 <AnMaster> anyway since I render to svg, alpha should be trivial
18:20:38 <AnMaster> cpressey, now, should it be additive (light based) mixing or subtractive (ink/crayon/...) based mixing?
18:20:49 <AnMaster> the former would be way easier to implement
18:20:59 <AnMaster> unless you render to a real turtle bot
18:21:04 <AnMaster> but for me who renders to svg...
18:21:37 <Deewiant> TURT2 is fine, it just overlaps with something 4-character
18:21:38 <cpressey> I think it would be forgivable for a real turtle robot to stick to black-and-white.
18:21:43 <AnMaster> cpressey, oh and you should probably define TURT and TUR2 to share the same underlying turtle bot in case both are used during a single program run
18:21:44 <Deewiant> (In 32-bit)
18:22:28 <cpressey> AnMaster: Just so you know, I'm almost certainly never going to get around to defining TUR2. Sorry.
18:22:44 <cpressey> Don't let that stop you or anyone else who wants to, though.
18:22:49 <AnMaster> Deewiant, see about ccbi or cfunge having left/right mixed up for relative turining
18:22:58 <Deewiant> I saw your comment
18:22:59 <AnMaster> Deewiant, fixing it breaks the TURT quine amongst other things
18:23:07 <Deewiant> :-)
18:23:21 <AnMaster> Deewiant, so what are we to do?
18:23:32 <AnMaster> provide a command line option?
18:23:45 <cpressey> You could always have a "chirality" flag you pass to the implementation, a boolean saying how left and right should be determined in TURT
18:24:00 <lament> chirality!!!
18:24:07 <AnMaster> cpressey, well, the thing is that it is different in set-heading and turn left/right
18:24:09 <cpressey> Chirality is dead
18:24:22 <oerjan> --goatie
18:24:31 <AnMaster> what did I miss there?
18:24:39 <AnMaster> some sort of pop culture reference?
18:24:55 <cpressey> The point is to provide a command line option that makes the behaviour compatible with what existing programs expect
18:24:57 <oerjan> people in mirror worlds have goaties, of course
18:25:09 <oerjan> wait
18:25:12 <oerjan> *goatee
18:25:20 <Deewiant> AnMaster: But hmm, what makes it inconsistent?
18:25:36 <AnMaster> Deewiant, well set heading acts like it is math rotation
18:25:43 <cpressey> (Chivalry is dead)
18:25:44 <Deewiant> How does it act like it?
18:25:57 <Deewiant> set-heading 90 goes north?
18:25:59 <AnMaster> Deewiant, as in, 0 = east, 90 = straight up
18:26:05 -!- kar8nga has joined.
18:26:06 <AnMaster> as far as I can tell yes
18:26:32 <Deewiant> I find that highly unlikely
18:26:40 <AnMaster> hm
18:26:43 <Deewiant> Looking at CCBI's source, at least :-P
18:27:00 <AnMaster> Deewiant, how comes it renders the same as cfunge then
18:27:03 <AnMaster> which does it that way
18:27:13 <Deewiant> Beats me
18:27:14 <Deewiant> void turnRight() { turt.heading += toRad(cip.stack.pop); turt.normalize(); }
18:27:14 <Deewiant> void setHeading() { turt.heading = toRad(cip.stack.pop); turt.normalize(); }
18:27:20 <AnMaster> Deewiant, anyway, turn right should substract
18:27:21 -!- MigoMipo has quit (Remote host closed the connection).
18:27:22 <MissPiggy> GROSS
18:27:26 * MissPiggy pukes on Deewiant
18:27:26 <AnMaster> assuming math degrees
18:27:28 <AnMaster> Deewiant, and it doesn't
18:27:31 <AnMaster> Deewiant, that is the issue
18:27:37 <Deewiant> According to this, and starting at 0, 90 right and 90 set-to are identical
18:27:54 -!- MigoMipo has joined.
18:28:02 <AnMaster> Deewiant, yes that is the bug. Look at how you use those values
18:28:18 <Deewiant> AnMaster: I wouldn't assume math degrees: to quote the docs "A 'Query Heading' (positive angle relative to east) "
18:28:27 <Deewiant> Oh, never mind
18:28:32 <Deewiant> That doesn't mean anything :-P
18:28:54 <AnMaster> quite. The reason I didn't reply was I was trying to figure out wth you meant with that :P
18:29:49 <AnMaster> all it means is that 0 =< A < 360 (or 0 < A =< 360, both are valid ways to interpret that)
18:30:03 <AnMaster> (I would go for the former)
18:30:17 <AnMaster> actually it doesn't even mean that
18:30:19 <cpressey> Actually, I'm not even sure it means that. It sounds quite meaningless to me
18:30:22 <AnMaster> returning 720
18:30:24 <AnMaster> is valid
18:30:27 <AnMaster> but -720 isn't
18:30:38 <Deewiant> AnMaster: "TRUT"4(n9a*HA.a,@
18:30:43 <AnMaster> Deewiant, ?
18:30:50 <cpressey> Could have just been "positive angle"
18:30:51 <Deewiant> Whether H or R, this prints 90 for me
18:31:04 <Deewiant> So where's the inconsistency?
18:31:29 <AnMaster> Deewiant, that doesn't render anything
18:31:31 <AnMaster> so I can't check it
18:31:41 <AnMaster> Deewiant, and sure.
18:31:43 <Deewiant> I don't give a damn about rendering
18:31:47 <AnMaster> err
18:31:56 <AnMaster> how else can you check it?
18:31:58 <Deewiant> You just said that H is inconsistent wrt R/L
18:32:12 <cpressey> AnMaster, OOC, have you looked at Etcha at all?
18:32:27 <AnMaster> cpressey, never heard of it
18:32:34 <AnMaster> cpressey, and define OOC
18:32:34 <cpressey> http://catseye.tc/projects/etcha/
18:32:40 <cpressey> Out Of Curiosity
18:32:43 <AnMaster> ah
18:32:59 <AnMaster> Deewiant, yes because when you render it turning right ends up turning left
18:33:05 <cpressey> Etcha does the turtle thing, but combines it with the program source
18:33:18 <Deewiant> TURT has A and Q which print the heading and pos respectively, if there is a bug in pen movement these should be enough to show it
18:33:21 <AnMaster> Deewiant, remember it is relative the turtle bot
18:33:29 <AnMaster> Deewiant, (except for set heading)
18:33:42 <AnMaster> Deewiant, now look at tests/turt.b98 in cfunge source. It has:
18:33:45 <cpressey> (Etcha's also implemented in some horrendous Java that MissPiggy would probably like.)
18:33:50 <AnMaster> 5F 9a*L 11x> ; Draw vertical line, turn 90 deg right.;
18:33:50 <AnMaster> 0C 5F 11x> ; Change to black, draw line. ;
18:34:10 <AnMaster> which is very strange
18:34:53 <Deewiant> Looks like a typo in your comment or code :-P
18:35:17 <AnMaster> Deewiant, wait, is svg's coordinate system upside down?
18:35:22 <AnMaster> hm
18:35:23 <Deewiant> AnMaster: I'm still not seeing anything: "TRUT"4(n9a*HaF1PI@ prints a dot to the south as expected
18:35:27 <AnMaster> that could explain some of the things
18:35:50 <AnMaster> Deewiant, btw in that turt test code above you print the supposed-to-be-black dot as blue
18:35:55 <AnMaster> and blue was never set as pen colour
18:36:00 <AnMaster> it was set as the bg colour though
18:36:26 <AnMaster> Deewiant, using ccbi x86_64 binary downloaded from your website today
18:39:32 <Deewiant> Gah inkscape isn't zooming to the correct place by default
18:39:47 <AnMaster> Deewiant, it zooms at the pointer iirc
18:39:49 <AnMaster> when you scroll
18:40:02 <AnMaster> (with ctrl down)
18:40:17 <AnMaster> that's certainly how it works here
18:40:32 <Deewiant> It's failing at using my viewbox
18:40:41 <AnMaster> Deewiant, it uses it just fine for cfunge for some reason
18:41:13 <Deewiant> It displays it fine in the preview thing when I have it selected in file->open
18:41:41 <AnMaster> huh
18:42:18 <Deewiant> Zooming in would take forever as it starts from like -200 to 800 and it's supposed to go to -0.001 to 0.002 or so
18:42:56 <AnMaster> Deewiant, anyway, svg uses +y as down right?
18:43:04 <AnMaster> or do I misremember?
18:43:10 <Deewiant> Yes I'd think so
18:43:26 <AnMaster> why can't it use a sane way like in math :/
18:43:56 <AnMaster> Deewiant, it seems to start pretty decently zoomed for ccbi output for me
18:44:05 <Deewiant> It used to for me too
18:44:07 <Deewiant> What version?
18:44:25 * AnMaster starts it again
18:44:30 <Deewiant> inkscape --version
18:45:05 <AnMaster> 0.46
18:45:08 <Deewiant> Well, all the more reason to rewrite this thing to not use tiny coordinates :-P
18:45:12 <Deewiant> Inkscape 0.47 r22583 (Jan 22 2010)
18:45:31 <AnMaster> on 0.47 on my other computer I see those problems you mention
18:45:53 <Deewiant> Alright, so it's not my fault as such
18:45:53 <AnMaster> efunge doesn't use tiny coordinates btw, both versions work fine there
18:46:13 <Deewiant> I planned on using SVG Tiny originally which had a limitation of +-32767 or some such, which is why I used tiny coordinates
18:46:36 <AnMaster> Deewiant, cfunge causes same issues as ccbi there
18:46:39 <Deewiant> I ended up not doing so but I already had the coordinate impl at that point
18:46:46 <AnMaster> trivial to fix
18:46:55 <AnMaster> just stop scaling it
18:47:24 <Deewiant> But I'll lose all my cool optimizations for printing numbers ;-P
18:47:47 <Deewiant> Although I think I disabled them already for some reason or other
18:48:13 <Deewiant> As it doesn't seem to emit 5e-5 which'd be shorter than .00005
18:52:05 <AnMaster> <Deewiant> But I'll lose all my cool optimizations for printing numbers ;-P <-- ?
18:52:28 <AnMaster> you were golfing the TURT output
18:52:30 <AnMaster> ??
18:52:46 <Deewiant> It did help for stuff like the quine
18:53:17 <AnMaster> Deewiant, oh?
18:53:32 <Deewiant> I mean, reduction measureable in kilobytes not bytes :-P
18:53:51 <AnMaster> Deewiant, do you still try to make the paths as long as possible
18:53:52 <AnMaster> that is
18:53:56 <AnMaster> using M if jumping
18:54:00 <AnMaster> instead of creating a new path
18:54:07 <Deewiant> Of course, turning .00005 to .5 will help even more
18:54:12 <Deewiant> AnMaster: Yes
18:54:13 <AnMaster> Deewiant, I do that in cfunge but not in efunge.
18:54:25 <Deewiant> Since SVG supports it, might as well
18:54:28 <AnMaster> Deewiant, the quine is sluggish to zoom in with inkscape for the cfunge output
18:54:33 <AnMaster> but snappy for the efunge output
18:54:40 <AnMaster> so it seems like a counter optimisation
18:54:55 <Deewiant> Space for speed
18:55:08 <Deewiant> Do you only use M at the start of a path then?
18:55:12 <AnMaster> Deewiant, correct
18:55:14 <AnMaster> in efunge
18:55:55 <Deewiant> How big are the quine SVGs from cfunge and efunge?
18:55:58 <AnMaster> Deewiant, only space optimisation I do is to delete dots that are hidden under other dots or under "corner" points of paths
18:56:45 <AnMaster> which is a reasonably fast "scan the cons-style list from newest to oldest and built a set (erlang stdlib provides that) with coordinates, remove circles if they are already in it"
18:56:58 <AnMaster> Deewiant, you have to remember to get circles and lines in the straight order
18:57:03 <AnMaster> I don't know if you do that
18:57:06 <AnMaster> cfunge doesn't it seems
18:57:13 <AnMaster> it always draws lines first then circles
18:57:42 <AnMaster> but those two groups have their order preserved internally
18:57:47 <AnMaster> just not between each other
18:58:52 <AnMaster> Deewiant, btw I assume your output contains no newlines then?
18:59:03 <AnMaster> oh hm it does
18:59:14 <AnMaster> Deewiant, also "#00f000"
18:59:20 <AnMaster> oh wait
18:59:21 <AnMaster> misread
18:59:32 <AnMaster> heck you do turn 0000ff into 00f
18:59:36 <AnMaster> -_-
18:59:41 <Deewiant> Of course ;-P
18:59:57 <AnMaster> Deewiant, what is the algorithm for that. The one I can think of is fairly wordy
19:00:13 <cpressey> I'm sorry: "Etcha does the turtle thing, but combines it with the program source" -- it actually doesn't. It's like BitChanger but uses a turtle graphics playfield instead of a tape.
19:00:40 <Deewiant> AnMaster: if (buf[1] == buf[2] && buf[3] == buf[4] && buf[5] == buf[6])
19:00:41 <AnMaster> cpressey, oh I bookmarked it for later
19:00:49 <AnMaster> Deewiant, *cringe*
19:00:54 <Deewiant> :-D
19:01:00 <AnMaster> Deewiant, that assumes you have a fairly imperative language
19:01:10 <Deewiant> Not really
19:01:16 <AnMaster> Deewiant, now go implement it in scheme
19:01:29 <AnMaster> Deewiant, for cons-list style strings
19:01:42 <AnMaster> Deewiant, or maybe in haskell
19:01:45 <Deewiant> Those can still be indexed?
19:01:54 <AnMaster> Deewiant, can cons lists really?
19:01:56 <AnMaster> well
19:01:59 <AnMaster> cdar
19:02:00 <AnMaster> I guess
19:02:19 <AnMaster> (or was it cadr? I always mix those up)
19:02:39 <AnMaster> (as in, I never remember which order to read the operations in)
19:03:37 <AnMaster> oh cadr it seems
19:03:43 <AnMaster> which doesn't make a lot of sense to me
19:04:07 <Deewiant> uncurry (==) $ join (***) (map fst) $ (filter (even.snd) &&& filter (odd.snd)) $ zip (tail x) [0..]
19:04:21 <Deewiant> This is how I'd write that comparison in Haskell if I wanted to be general about it
19:04:31 <Deewiant> Where x is the #rrggbb string
19:05:01 <Deewiant> If I wanted to be nongeneral I'd do (x !! 1 == x !! 2 && x !! 3 == ...)
19:05:18 <Deewiant> But that's also less efficient since it traverses the list multiple times :-P
19:05:34 <Deewiant> AFK for a bit ->
19:07:33 <AnMaster> Deewiant, found the cause of the wrong colour circle in ccbi yet?
19:07:39 <cpressey> match([X,X|r]) -> match(r); match([]) -> true; match(_) -> false
19:07:58 <AnMaster> cpressey, wth at that tail (assuming erlang)
19:08:18 <cpressey> AnMaster: ?
19:08:25 <cpressey> My syntax isn't exact
19:08:26 <AnMaster> cpressey, lower case R
19:08:32 <AnMaster> it's an atom
19:08:35 <cpressey> Fine.
19:08:37 <cpressey> R.
19:08:46 <AnMaster> cpressey, you coded erlang before, there is no excuse ;)
19:09:25 -!- kar8nga has quit (Remote host closed the connection).
19:10:10 <AnMaster> hm does css and svg accept color:red/color="red"?
19:10:18 <AnMaster> if so that is shorter than #f00
19:10:25 <cpressey> I was merely surprised you didn't see there was an elegant way to express it in a functional language that you'.
19:10:30 <cpressey> re fluent in...
19:10:49 <AnMaster> cpressey, I'm not that fluent, also I found that somewhat non-elegant
19:11:58 <AnMaster> cpressey, however it's late and I had not just _a_ heavy day but several heavy days. And another one tomorrow...
19:13:09 <AnMaster> cpressey, anyway, I have the colour as a binary at that point it seems. I blame io_lib:format for this
19:13:19 <AnMaster> which is very strange
19:13:26 <AnMaster> since no binary was involved
19:14:03 <Deewiant> AnMaster: I'm not looking
19:14:04 <cpressey> Binaries always made me hesistate, but I *think* you can say things like <<X:8, X:8 | Y >> to match them
19:17:22 -!- MizardX- has joined.
19:17:41 <Deewiant> Something like all (uncurry (==)) . map snd . filter fst . zip (cycle [True,False]) . ap zip tail . tail might be nicer actually
19:18:06 -!- MizardX has quit (Ping timeout: 260 seconds).
19:18:08 <Deewiant> MissPiggy: Is this kind of stuff less puke-worthy?
19:18:20 -!- MizardX- has changed nick to MizardX.
19:18:20 <MissPiggy> no
19:18:24 <MissPiggy> that's worse
19:18:29 <Deewiant> D'oh
19:18:40 <pikhq> Deewiant: ap zip tail?
19:18:50 <pikhq> You know as well as I do that that should be zip`ap`tail.
19:18:59 <pikhq> The Aztec god of consecutive numbers.
19:19:07 <Deewiant> I know that it could be, not that it should be
19:19:32 <pikhq> On a more serious note: I find infix "ap" to be much more readable.
19:19:35 <Deewiant> In expressions like that where it'd need extra brackets to invoke the gawd I'd rather leave it as such
19:20:12 <pikhq> Mmm...
19:20:32 <pikhq> (zip `ap` tail) is nicer IMO, but... Whatever.
19:20:43 <Deewiant> <*> has unfortunate precedence too, so that doesn't help
19:21:11 <cpressey> I still think the Erlang version is closest to how I think.
19:21:15 <pikhq> You're not going to get anything better, because of the precedence of 「.」.
19:22:03 <Deewiant> cpressey: Yes, but that requires writing a separate function ;-)
19:22:06 <AnMaster> <Deewiant> AnMaster: I'm not looking <-- at what?
19:22:13 <Deewiant> For bugs.
19:22:20 <Deewiant> At the code, whatever.
19:22:32 <pikhq> As a side note, non-English punctuation is really nice for discussing programming. Doesn't collide at all for most languages.
19:22:48 <lament> "" is not English punctuation
19:22:59 <pikhq> Erm.
19:23:00 <pikhq> Bleh.
19:23:03 <pikhq> Not punctuation.
19:23:18 <cpressey> lament: Don"t confuse us.
19:23:19 <AnMaster> Deewiant, why not?
19:23:35 <lament> cpressey: well ' isn't English punctuation either :)
19:23:49 <pikhq> ... Other word that refers to various bits of non-pronouncable inline metadata used in the writing of natural language.
19:24:01 <lament> although on the rare occasions that people use the correct apostrophe... they just get laughed at
19:24:24 <AnMaster> cpressey, anyway for 3 colours you could just do [$#,X,X,Y,Y,Z,Z]
19:24:29 <AnMaster> now that would be nice
19:24:37 <Deewiant> AnMaster: Because TURT isn't on the top of my TODO list :-P
19:24:46 <cpressey> 'Struth!
19:24:48 <AnMaster> Deewiant, nor is ccbi I guess?
19:24:57 <Deewiant> I meant, "of CCBI"
19:25:08 <Deewiant> But yeah, it isn't either, as such
19:25:15 <AnMaster> Deewiant, well okay. Still ccbi 1 still recieves bug fixes I thought?
19:25:25 <AnMaster> receives*
19:26:08 <Deewiant> I'd rather avoid messing with CCBI1 at all unless it's something relatively important
19:26:31 <AnMaster> Deewiant, and TURT isn't?
19:26:47 <Deewiant> Not IMO, especially since it mostly works :-P
19:26:57 <Deewiant> AnMaster: Do you have a simple testcase for the north/south thing?
19:27:49 <AnMaster> Deewiant, hm? well you may be right, the coordinate system of svg confused me I think
19:28:07 <Deewiant> Alright
19:28:11 <AnMaster> Deewiant, but the wrong colour of dot: yes
19:28:19 <AnMaster> it is src/turt.b98
19:28:21 <Deewiant> So now there's that colour thing and preserving order of lines/points
19:28:23 <AnMaster> err
19:28:26 <Deewiant> Actually tests/turt.b98
19:28:27 <AnMaster> test/turt.b98
19:28:28 <AnMaster> I meant
19:28:30 <AnMaster> yeah tests even
19:28:33 <Deewiant> :-P
19:28:40 -!- charlls has quit (Read error: Connection reset by peer).
19:28:43 <AnMaster> Deewiant, obviously you found it by yourself though
19:29:01 <Deewiant> Thus my 93-line TODO for CCBI grows by four lines.
19:29:05 <AnMaster> Deewiant, anyway do you optimise #f00 into red?
19:29:09 <Deewiant> Nope.
19:29:16 <AnMaster> Deewiant, :/
19:29:20 <Deewiant> >_<
19:29:25 <AnMaster> Deewiant, what?
19:29:33 <AnMaster> afaik it is legal
19:29:36 <Deewiant> ":/" seems hardly warranted :-D
19:29:47 <Deewiant> Especially from someone who outputs #ff0000
19:29:49 <AnMaster> Deewiant, THINK OF THE EXTRA BYTES
19:29:53 <scarf> why is that an optimisation?
19:29:59 <Deewiant> It saves a byte of space
19:30:01 <AnMaster> scarf, fewer bytes
19:30:12 <cpressey> For the want of a byte of space, the kingdom was lost.
19:31:04 <AnMaster> Deewiant, anyway I was ridiculing you for your extreme space optimisations that are time pessimisationsa
19:31:07 <AnMaster> s/a$//
19:31:18 <AnMaster> also you still try to format the svg nicely
19:31:22 <Deewiant> "red" is the only one with any advantage, I think
19:31:29 <AnMaster> lots of un-needed newlines and spaces
19:31:49 <AnMaster> cfunge puts it all on one line (due to using the genx library to generate the xml)
19:31:51 <Deewiant> Yes, I know
19:31:55 -!- charlls has joined.
19:31:59 <AnMaster> (ehird managed to convince me to do that, not sure why)
19:32:20 <Deewiant> I might do that M-only-at-start thing as well, seems nice enough
19:32:21 <AnMaster> (since it outputs stuff like: <circle cx="136" cy="232" fill="#000000" r="0.25"></circle>)
19:32:55 <Deewiant> Aha, the defined colours are actually stuff like #808080 as well, so there's more advantage to be had
19:33:05 <AnMaster> Deewiant, hm?
19:33:24 <Deewiant> Continuing from my '"red" is the only one with any advantage, I think'
19:33:41 <AnMaster> Deewiant, iirc those are (used to be?) different between browsers
19:33:52 <Deewiant> No, they're well-defined
19:33:53 <AnMaster> the only ones you could trust were black/white/red/blue/green
19:34:02 <AnMaster> Deewiant, this might have been when HTML 4 was still new
19:34:04 <Deewiant> There are 16 defined colours in HTML 4.0
19:34:05 <AnMaster> I don't remember
19:34:13 <Deewiant> And those same colours are defined in SVG 1.1
19:34:28 <AnMaster> Deewiant, so which ones are advantages?
19:34:30 <Deewiant> Which actually linked to the CSS 2.0 spec
19:34:46 <Deewiant> There's system colours as well, which obviously aren't portable
19:35:07 <Deewiant> AnMaster: silver, gray, maroon, red, purple, green, olive, navy, teal
19:35:08 <AnMaster> Deewiant, btw why no DOCTYPE?
19:35:18 <scarf> did CSS steal the colour list from X11, or vice versa?
19:35:22 <scarf> or do they both have a common source?
19:35:31 <AnMaster> scarf, X11 has a colour list?
19:35:36 <Deewiant> I think X11 defines more colours than CSS?
19:35:37 <scarf> I think so
19:35:49 <scarf> some of them are really weirdly named
19:35:52 <scarf> Deewiant: hmm, maybe
19:35:55 <Deewiant> AnMaster: http://jwatt.org/svg/authoring/#doctype-declaration
19:36:58 <AnMaster> Deewiant, the link to why is dead
19:37:16 <AnMaster> or at least to where they tell it
19:37:20 <AnMaster> I get a redirect loop
19:37:36 <Deewiant> Accept cookies from yahoo.com
19:37:55 <Deewiant> Or enable javascript or whatever you have disabled
19:38:23 <Deewiant> AnMaster: But anyway, the fact that SVG 1.2 won't have one is also some proof I guess
19:38:24 <AnMaster> Deewiant, I use lynx atm
19:38:29 <AnMaster> let me try w3m
19:38:34 <Deewiant> That would be a problem
19:38:39 <Deewiant> :-P
19:38:42 <AnMaster> Deewiant, I don't have X running
19:38:47 <AnMaster> on this system
19:39:02 <Deewiant> So you probably won't be able to use yahoo groups
19:39:14 <AnMaster> maybe google has a cached copy
19:39:31 <AnMaster> yep, cache:http://groups.yahoo.com/group/svg-developers/message/48562 worked
19:39:32 <cpressey> fungot, We have managed out of existence of interconnecting principles, then they were
19:39:33 <fungot> cpressey: cyrus! are you leaving! we must use! let's show ' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
19:40:03 <AnMaster> cpressey, you sounded almost as bad as fungot there XD
19:40:04 <fungot> AnMaster: cyrus! are you leaving! back to the present? he's been known. we reptites will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's place...
19:40:10 <cpressey> AnMaster: Well, I try. :)
19:41:52 <AnMaster> Deewiant, is there any good svg validator btw?
19:42:08 <AnMaster> Deewiant, since the w3c one accepted a viewbox of "hello"
19:42:16 <Deewiant> :-D
19:42:48 <Deewiant> I don't know of any others
19:43:00 <AnMaster> Deewiant, and the w3c one is obviously quite useless
19:43:35 <AnMaster> Deewiant, btw how easy would it be in ccbi to replace the rendering to svg with a completely different format?
19:44:08 <Deewiant> Depends on how easy it is to render that format :-P
19:44:18 <AnMaster> Deewiant, well, lets say png
19:44:34 <Deewiant> I don't know enough about image formats to be able to say anything
19:44:48 <AnMaster> Deewiant, well, any bitmap format then
19:45:01 <Deewiant> But basically the stuff is stored as paths and dots
19:45:20 <Deewiant> So it depends on how easily you can turn that into an image
19:45:23 <AnMaster> Deewiant, how funge specific is it?
19:45:48 <AnMaster> Deewiant, I mean, does the turtle part have a clean and nice interface that could be used for other things?
19:46:18 <Deewiant> There's hardly any interface
19:46:32 <AnMaster> (in efunge that is the case, and it can render to two formats, though one is slightly cheating: svg and raw (debug dump of all the nodes))
19:46:57 <Deewiant> Rendering once you have the data is trivial enough to do to any format (assuming you can render paths and dots)
19:46:59 <AnMaster> I still haven't made it save to a file though
19:47:56 <Deewiant> Getting the original image data to render is something that's only "cleanly" doable through the funge commands
19:48:23 -!- Gracenotes has quit (Ping timeout: 246 seconds).
19:48:34 <AnMaster> Deewiant, what do you mean with that?
19:49:20 <Deewiant> I mean that the only "clean" interface to getting a turtle-drawn picture is the funge commands, there's no nice turtle.moveforward(10) or turtle.turnright(45) or anything
19:50:11 <AnMaster> start/0, start_link/0, stop/0, get_info/0, clear/0, render/1, rotate/1, set_heading/1, jump/1, move/1, set_bg_colour/1, set_pen_colour/1, set_pen_state/1]).
19:50:19 <AnMaster> err ignore that ]). at the end
19:50:20 <AnMaster> anyway
19:50:30 <AnMaster> that is the api for efunge_turtle.erl
19:51:00 <Deewiant> I have hardly any API, just a few structs and then the functions defining the funge commands
19:51:19 <AnMaster> Deewiant, even in cfunge I mostly have separate functions for it, though not completely
19:51:24 <Deewiant> A few helpers do exist which could be part of an API if there were one
19:51:28 <AnMaster> it would require some work to pick it out
19:51:34 <AnMaster> but not much
19:51:35 -!- scarf has quit (Remote host closed the connection).
19:51:58 <AnMaster> Deewiant, and render returns an iolist
19:52:27 <AnMaster> (erlang data type of mixed, possibly deep, cons list containing mixed binaries and cons-style strings)
19:53:00 <AnMaster> (since the file and console io routines can work with this it is common for purposes where you expect it to go to IO only)
19:53:11 <AnMaster> (no need to flattern it in any sort of nice way)
19:55:24 <AnMaster> btw an idea for an interesting bitmap format: start with the middle pixel, then the one above it, then the one left of that
19:55:28 <AnMaster> then one down
19:55:30 <AnMaster> and so on
19:55:33 <AnMaster> in a spiral
19:56:37 <AnMaster> a nice property is that even if the image is cut off somewhere near the middle you would still get the center of the image where the most interesting things usually are
19:57:02 <AnMaster> cpressey, Deewiant: opinions?
19:57:53 <AnMaster> for non-square pictures you could just skip over the parts outside (would require a header with dimensions then)
19:58:32 <cpressey> Yes, it has a nice streamableness to it
19:58:42 <AnMaster> cpressey, har
19:58:47 <AnMaster> well actually
19:58:48 <AnMaster> it does
19:59:25 <AnMaster> so basically like:
19:59:27 <AnMaster> v<<<<<
19:59:27 <AnMaster> vv<<<^
19:59:27 <AnMaster> vvv<^^
19:59:27 <AnMaster> vvv^^^
19:59:27 <AnMaster> vv>>^^
19:59:28 <AnMaster> v>>>>^
19:59:32 <AnMaster> >...
19:59:32 <cpressey> If you have a "not really a part of the picture" color, you could do non-square pictures without a header (run-length encoding the pixels would help here)
20:00:05 <cpressey> Hell, you could do arbitrarily-shaped pictures with that "color" :)
20:00:17 <AnMaster> cpressey, yes basically like alpha right?
20:00:26 <AnMaster> :P
20:00:50 <AnMaster> cpressey, anyway, sure you could have an alpha channel or whatever
20:00:53 <cpressey> I guess, with the additional implication that "you can just discard this part of the picture after it's done"
20:00:59 <AnMaster> hm
20:01:06 <cpressey> as opposed to "I want a transparent border" or something
20:01:13 <AnMaster> right
20:01:31 <cpressey> But yeah, very similar to alpha otherwise.
20:01:34 <AnMaster> cpressey, would require removing one specific shade or adding one more bit/byte
20:02:02 <AnMaster> cpressey, I imagine one would use 16-bit integers per channel here
20:02:12 <AnMaster> or 8 bits at the very least
20:02:25 <cpressey> OR, you could embed commands to clip the existing image -- and additional pixels should flow around the new clipped region.
20:02:39 <AnMaster> 32-bit floating point per channel is kind of heavy (I have dealt with HDR, I know this)
20:02:45 <cpressey> You could stream entire slideshows, in a strange manner, if you went that way
20:02:58 <AnMaster> cpressey, how?
20:03:18 <cpressey> stream a spiral, clip it to 0x0, stream another spiral, clip it...
20:03:25 <AnMaster> oh I see
20:03:29 <AnMaster> hm
20:03:46 <AnMaster> cpressey, I wasn't thinking of the streaming aspect of it before
20:03:52 <AnMaster> but that is interesting indeed
20:04:08 <AnMaster> cpressey, I wonder how well it would compress though
20:04:16 <cpressey> I don't like the idea of embedding a "command" as much
20:04:34 <AnMaster> cpressey, you could use embedded befunge ;)
20:04:49 <AnMaster> would fit the 2D nature
20:04:55 <cpressey> Well, RLE is probably the simplest kind of compression you could do
20:04:58 <cpressey> Har
20:05:18 <AnMaster> cpressey, I was thinking of "how well will deflate work on this
20:05:34 <AnMaster> or such
20:10:52 <AnMaster> Deewiant, do you know if you can set r of a circle using css in svg?
20:10:56 <AnMaster> that would save quite a lot
20:11:17 <Deewiant> Yes, and no you can't.
20:11:29 <Deewiant> I remember you asking me about this a year+ ago too ;-P
20:12:15 <AnMaster> ah
20:24:56 <fizzie> "Triton cluster has 112 compute nodes. Each of them has two 6-core "AMD Opteron 2435" CPUs, which corresponds to total of 1344 cores." Yay, more university-internal computational resources.
20:25:35 <AnMaster> fizzie, you have access to that?
20:25:46 <AnMaster> or will have rather
20:26:13 <AnMaster> with that you could build some nice models for fungot! ;P
20:26:13 <fungot> AnMaster: see? i like marle better than " princess,' the chosen time has come! he's strong and he's gonna thrash those monsters! yea! is it?
20:26:16 <fizzie> Yes. Though we have to share it with the physicists and the BECS ("Biomedical Engineering and Computational Science") people, so it'll probably be a bit crowded.
20:27:00 <AnMaster> just pushed TURT updates to cfunge and the new TURT for efunge
20:27:29 <AnMaster> still some TODO for the efunge one. Like compact colours and properly testing clear when pen is down
20:28:01 -!- adam_d has joined.
20:29:12 <AnMaster> Deewiant, btw isn't black the default colour of paths and circles?
20:29:22 <AnMaster> (assuming no css overrides)
20:29:29 <Deewiant> There is no defined default for anything
20:29:35 <AnMaster> ouch
20:29:44 <Deewiant> Or did you mean SVG?
20:29:49 <Deewiant> I don't know about SVG, that was about TURT
20:30:20 <cpressey> Words and phrases to use in specs! "Of course", "Generally", "Without a doubt", "Except for trivial cases", "Positive angle relative to east"
20:30:31 <Deewiant> :-D
20:32:01 <cpressey> I've learned my lesson -- unfortunately my newfound zest for precision will probably not be applied to Befunge anytime soon.
20:35:55 <cpressey> Maybe Befunge-111
20:36:13 <Deewiant> Ah, hey, speaking of inprecise specs
20:36:25 <Deewiant> cpressey: TOYS: B ('pair of shoes') pops two cells off the stack and pushes the result of a "butterfly" bit operation.
20:37:02 <Deewiant> I don't /think/ we've asked you what 'a "butterfly" bit operation' was supposed to be
20:37:26 <AnMaster> indeed
20:37:29 <AnMaster> I would like to know too
20:37:41 <Deewiant> We've asked a lot of people, but I don't think we've asked you ;-)
20:37:45 <AnMaster> since the only one we found doesn't work on that number of inputs iirc
20:37:57 <Deewiant> No, we've got the (a+b, a-b) one
20:38:12 <AnMaster> Deewiant, well yes, but that one was just copied from some other interpreter
20:38:14 <Deewiant> Reverse-engineered from !Befunge
20:38:18 <Deewiant> But also justified
20:38:20 <Wareya> hey
20:38:29 <AnMaster> Deewiant, oh?
20:39:01 <Deewiant> http://en.wikipedia.org/wiki/Butterfly_diagram
20:40:06 <cpressey> It was inspired by the mention in here: http://catseye.tc/projects/starw/doc/starw.html
20:40:15 <cpressey> But I have no idea why it has two inputs, or what that means.
20:40:16 <cpressey> Sorry.
20:40:18 -!- jcp has joined.
20:40:23 <Deewiant> heh
20:40:37 <cpressey> "Butterfly the bits of X, i.e., 11001100 becomes 10100101."
20:40:41 <Deewiant> FWIW I have no idea what that butterfly does either
20:40:42 <cpressey> Also a great spec.
20:40:49 <Deewiant> Yep :-)
20:41:16 <cpressey> http://en.wikipedia.org/wiki/Butterfly_%28disambiguation%29
20:41:31 <cpressey> ATM, "Butterfliies Eat Pants" is the current vandalism.
20:41:51 <Deewiant> >_<
20:41:58 <Wareya> DESU
20:42:22 <pikhq> Wareya: もっとです?
20:43:42 <cpressey> I think the 8-bit diagram in the Butterfly_diagram page might explain the *W butterfly operation
20:43:47 <Wareya> ?
20:43:51 <cpressey> Or not
20:44:27 <AnMaster> cpressey, it looks like it tries to distribute those one-bits symmetrically?
20:44:36 <AnMaster> according to a pleasing pattern perhaps
20:44:59 <cpressey> That's as good as anything I can come up with :)
20:45:39 <AnMaster> cpressey, note that the two identical nibbles (separated with space): 1100 1100 becomes 1010 0101
20:45:53 <AnMaster> patterns to note:
20:46:02 <AnMaster> identical nibbles in input
20:46:15 <AnMaster> symmetrical output byte
20:46:32 <Wareya> If you change directions in my language, you can change 1100 to 0011 or to 1000 if you're not careful!
20:46:33 <AnMaster> mirror nibbles (follows from the previous one though)
20:46:46 <AnMaster> every other bit is one in each nibble
20:47:04 <AnMaster> the only place with two identical bits is where the nibbles join up
20:47:40 <AnMaster> this is clearly very significant for, uh... significant reasons!
20:48:03 <AnMaster> (of great significance of course)
20:48:15 <AnMaster> it should also be noted that the sign bit was *not* changed
20:48:17 <AnMaster> again very important
20:48:18 <cpressey> I think it's this
20:48:30 <AnMaster> cpressey, ?
20:48:33 <cpressey> first 1100 -> 1x1x0x0x
20:48:42 <cpressey> second 1100 -> x0x0x1x1
20:48:47 <AnMaster> cpressey, what are those x?
20:48:49 <cpressey> (second is like first just mirrored)
20:49:00 <cpressey> x means "use the bit from the other half"
20:49:14 <AnMaster> so
20:49:18 <AnMaster> then what
20:49:26 <AnMaster> oh wait
20:49:28 <cpressey> So if you combin 1x1x0x0x and x0x0x1x1 you get: 10100101
20:49:43 <AnMaster> cpressey, ah interesting. You know this would have been trivial in intercal I think
20:49:49 <AnMaster> which is kind of amazing
20:50:19 <cpressey> So, there's your answer, I think. For two inputs, just treat each like the nibbles in *W
20:50:55 <AnMaster> cpressey, but then the answer is twice the number of bits of the funge implementations?
20:51:05 <cpressey> :D
20:51:08 <AnMaster> s/s\?/\?/
20:51:20 <AnMaster> cpressey, anyway it doesn't work out
20:51:40 <AnMaster> oh wait
20:51:44 <AnMaster> just push two separate cells
20:51:53 <AnMaster> one with the upper 64 bits and one with the lower 64 bits
20:51:58 <cpressey> Sure!
20:52:01 <AnMaster> of course this breaks down for bignum
20:52:02 <AnMaster> -_-
20:52:10 <cpressey> Since the spec doesn't say how many result values there should be for B
20:52:44 <AnMaster> cpressey, but it is impossible in a bignum funge.
20:53:06 * AnMaster mandates a "bignum considerations" section after the "security considerations" for future fingerprints
20:53:16 <AnMaster> cpressey, want to see the ATHR spec btw?
20:53:33 <AnMaster> it is somewhat in a flux
20:53:37 <cpressey> As I've mentioned, Funge, like C, just doesn't do bignum.
20:53:44 <AnMaster> due to trying to figure out what is feasible
20:53:45 <cpressey> Sure.
20:53:50 <Wareya> you can emulate bignums in C
20:53:52 <AnMaster> cpressey, and I declare that wrong. Becuase it does
20:53:53 <AnMaster> :)
20:54:26 <cpressey> "do bignum" => "cleanly support bignums as a primitive type"
20:54:35 <AnMaster> cpressey, yep
20:54:39 <AnMaster> and it works mostly
20:54:45 <AnMaster> cpressey, anyway http://sprunge.us/icgB
20:54:53 <cpressey> Because both languages define a MAXSIZE for integers.
20:54:54 <AnMaster> and it is somewhat in flux due to various reasons
20:54:58 <AnMaster> cpressey, -1
20:55:01 <AnMaster> I return -1
20:55:04 <AnMaster> for that y thing
20:55:59 <AnMaster> cpressey, at least be happy I don't insist on doing a balanced ternary bignum funge!
20:58:51 <cpressey> ATHR looks pretty good, I like the books.
20:59:13 -!- gm|lap has joined.
20:59:16 <AnMaster> cpressey, it is also rather well specced especially how it interacts with other known feral fingerprints
20:59:35 <AnMaster> (especially the RCS ones which are infamously underspecced in general)
21:00:19 <AnMaster> of course, I refuse to even try to figure out how it works with TRDS
21:00:48 <AnMaster> since it is bound to cause issues when you time travel and have async threads
21:03:24 <cpressey> My head hurts.
21:04:08 <AnMaster> cpressey, from TRDS alone or from ATHR + TRDS?
21:04:12 <AnMaster> The implementation shall detect deadlocks (in a reasonably timely manner) when
21:04:12 <AnMaster> two IIPC operations are waiting on each other and break them by making one of
21:04:12 <charlls> is it just me, or the link for downloading verisoft is dead? http://cm.bell-labs.com/who/god/verisoft/files.html
21:04:12 <AnMaster> the blocking threads reverse.
21:04:16 <AnMaster> added that paragraph
21:04:29 <cpressey> >From all of it.
21:05:03 <AnMaster> cpressey, what download link? Somewhere on that page?
21:05:24 <cpressey> AnMaster: you mean charlls?
21:05:25 <charlls> yes
21:05:34 <AnMaster> oh
21:05:36 <AnMaster> right I did
21:05:45 <AnMaster> charlls, indeed it seems to be dead
21:05:52 <AnMaster> charlls, but look that page mentions .Z
21:05:54 <AnMaster> it is OLD
21:06:08 <AnMaster> and "http://www.gnu.ai.mit.edu/home.html."
21:06:10 <AnMaster> wth :)
21:06:13 <charlls> indeed
21:07:00 -!- jcp has quit (Remote host closed the connection).
21:07:08 <charlls> do you know other model checking tools for c++? i've found inspect which seems somewhat mantained and ongoing but i'm not sure how to use it for lock-free primitives (cas and ll-sc)
21:07:18 <charlls> c/c++ i meant, c is fine too
21:07:38 <AnMaster> charlls, I have no clue
21:07:49 <AnMaster> charlls, I use a message passing language when I need to do threads
21:07:51 <AnMaster> such as erlang
21:08:00 <AnMaster> I refuse to touch pthreads directly
21:08:04 <oerjan> !scramble scramble
21:08:15 <AnMaster> is egobot here?
21:08:20 <AnMaster> ^scramble scramble
21:08:20 <fungot> srmlebac
21:08:26 <AnMaster> oerjan, or did you mean fungot?
21:08:27 <fungot> AnMaster: we must do it to save you! who the heck are you?! c'mon!!
21:08:33 <AnMaster> ^scramble srmlebac
21:08:34 <fungot> smeacblr
21:08:39 <AnMaster> ^scramble smeacblr
21:08:40 <fungot> seclrbam
21:08:42 <oerjan> !unscramble 11001100
21:08:44 <AnMaster> ^scramble seclrbam
21:08:45 <fungot> scramble
21:09:03 <AnMaster> so at least for "scramble" it has a short period
21:09:05 <AnMaster> oerjan, ...
21:09:06 <oerjan> oh right
21:09:10 <oerjan> ^unscramble 11001100
21:09:11 <fungot> 10100101
21:09:15 <oerjan> yay!
21:09:16 <AnMaster> wow
21:09:20 <AnMaster> cpressey, ^
21:09:27 <AnMaster> oerjan, what is the algorithm used there?
21:09:33 <AnMaster> ^show scramble
21:09:34 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
21:09:47 <oerjan> ^unscramble unscramble
21:09:47 <fungot> uenlsbcmra
21:09:57 <AnMaster> ^unscramble uenlsbcmra
21:09:58 <fungot> uaernmlcsb
21:10:01 <cpressey> Looks like butterflyification to me.
21:10:01 <AnMaster> ^unscramble uaernmlcsb
21:10:02 <fungot> ubasecrlnm
21:10:06 <AnMaster> ^unscramble ubasecrlnm
21:10:06 <fungot> umbnalsrec
21:10:10 <AnMaster> ^unscramble umbnalsrec
21:10:11 <fungot> ucmebrnsal
21:10:15 <AnMaster> ^unscramble ucmebrnsal
21:10:15 <fungot> ulcamsenbr
21:10:19 <AnMaster> ^unscramble ulcamsenbr
21:10:20 <fungot> urlbcnaems
21:10:25 <AnMaster> ^unscramble urlbcnaems
21:10:25 <fungot> usrmlebacn
21:10:30 <AnMaster> ^unscramble usrmlebacn
21:10:31 <fungot> unscramble
21:10:35 <AnMaster> longer period for that one
21:10:36 <AnMaster> hm
21:10:42 <AnMaster> ^scramble 12345678
21:10:43 <fungot> 13578642
21:10:53 <AnMaster> ^unscramble 12345678
21:10:54 <fungot> 18273645
21:11:00 <AnMaster> ^unscramble 123456789
21:11:01 <fungot> 192837465
21:11:08 <AnMaster> ^scramble 123456789
21:11:08 <fungot> 135798642
21:11:14 <AnMaster> ^scramble abc
21:11:14 <fungot> acb
21:11:19 <AnMaster> ^scramble abcd
21:11:20 <fungot> acdb
21:11:27 <AnMaster> cpressey, not quite I think
21:11:31 <oerjan> i think we calculated periods around when those commands were first added
21:11:40 <AnMaster> oerjan, ah
21:11:49 <AnMaster> ^list
21:11:51 <AnMaster> ^show
21:11:52 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
21:11:54 <cpressey> ^unscramble 12345678
21:11:54 <fungot> 18273645
21:11:58 <AnMaster> ^show wc
21:11:58 <fungot> []
21:12:02 <AnMaster> what
21:12:04 <AnMaster> fizzie, ^
21:12:14 <AnMaster> ^show ul
21:12:15 <fungot> >,[>,]<[<]>[<+4[>-8<-]+>-[-7[-2[<+3[>-4<-]+>[<+4[>-5<-]+>[-11[-3[[-]<2[>[-]>+<2-]>>[<2+>>-]+<[->-<3[[>+<-]<]>>[>]]>[->[>]<[[>+<-]<]<2[[>+<-]<]<[[>+<-]<]>>[>]>[[[>]>+<2[<]>-]<2[[>+<-]<]>>[>]>[>]>[<2[<]<[<]<+>>[>]>[>]>-]<2[<]>]>>[[<+>-]>]<2[<]]]<[->>[>]<[[>>+<2-]<]<2[[>+<-]<]>+>[>]+5[>+8<-]+2>-[<+[<]>+[>]<-]]>]<[->>[[<2+>>-]>]<3[[>+<-]<]]>]<[-<[[<]>.[-]>[[<+>-]>]>>[[<+>-]>]<2[<]<2]>>>[[<+>-]>]<2[<]<]>]<[->>[>]<[[>+<-]<]<2[>>>>[>]
21:12:21 <cpressey> 1x2x3x4x, x8x7x6x5
21:12:22 <AnMaster> well that one is cut short
21:12:37 <fizzie> It's also not used.
21:12:46 <fizzie> I don't know what that wc is about.
21:12:52 <fizzie> It doesn't look very worky.
21:12:56 <fizzie> ^wc foo bar baz
21:12:56 <AnMaster> fizzie, ^ul isn't used?
21:13:08 <AnMaster> what then is it for
21:13:26 <cpressey> ^show choo
21:13:26 <fungot> >,[>,]+32[<]>[[.>]<[<]>[-]>]
21:13:28 <AnMaster> ^show cho
21:13:29 <fungot> >,[>,]<[<]>[[.>]<[<]>[-]>]
21:13:33 <AnMaster> ^cho test
21:13:35 <fungot> testeststt
21:13:38 <fizzie> I mean that brainfuck code is just a leftover from time before Underload was a directly supported language by fungot.
21:13:38 <AnMaster> ^choo test
21:13:38 <cpressey> ^choo test
21:13:39 <fungot> fizzie: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! it's time you jumped off this mortal coil...
21:13:39 <fungot> test est st t
21:13:39 <fungot> test est st t
21:13:43 <AnMaster> fizzie, ah
21:14:00 <AnMaster> ^pow2 test
21:14:01 <fungot> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 42949672 ...
21:14:05 <AnMaster> eh?
21:14:09 <AnMaster> ^show pow2
21:14:09 <fizzie> That one doesn't take any inputs.
21:14:09 <fungot> +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3]
21:14:12 <AnMaster> fizzie, right
21:14:16 <fizzie> It just outputs powers of two.
21:14:17 <AnMaster> ^show source
21:14:18 <fungot> (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98)S
21:14:23 <AnMaster> ^show help
21:14:23 <fungot> (^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool)S
21:14:34 <AnMaster> ^show show
21:14:38 <AnMaster> aww
21:14:43 <AnMaster> ^show hw
21:14:44 <fungot> >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+.
21:14:48 <AnMaster> ^hw
21:14:49 <fungot> Hello World!
21:15:13 <AnMaster> ^fib
21:15:14 <fungot> 0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ...
21:15:38 <AnMaster> cpressey, what is your opinion on the coding style in http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 ;)
21:15:38 <fungot> AnMaster: frog will do. the king fought the mystics over 400 long years. when will it be the reptites, or you silly apes who end up ruling the world? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:15:56 <fizzie> Should at some point fix that >>> bug too. It collapses multiple <<<s together, but not multiple >>>s.
21:16:53 -!- tombom_ has joined.
21:17:04 <cpressey> AnMaster: I have no strong feelings about it.
21:17:06 <AnMaster> fizzie, what was that triangle in the code for now again?
21:17:11 <AnMaster> fizzie, around line 157
21:18:10 <fizzie> Converts punctuation token indices to characters.
21:18:13 <cpressey> I'm just amazed the thing actually works.
21:18:25 <AnMaster> cpressey, well it uses the SOCK fingerprint for sockets of course
21:18:34 <fizzie> There's really no reason to have a triangle there, since a "comb-style" jump table would work as well.
21:18:56 -!- tombom has quit (Ping timeout: 240 seconds).
21:18:57 <AnMaster> fizzie, or a binary w tree?
21:19:13 <fizzie> Well, that too, but since it's a contiguous range, I think a jump table makes sense.
21:19:19 <fizzie> The letters above the triangle are comments, in fact.
21:19:22 <AnMaster> fizzie, a j table yes
21:19:22 <cpressey> It's also pretty.
21:19:37 <AnMaster> cpressey, have you looked at mycology source then?
21:19:44 <cpressey> I don't think so.
21:19:57 <fizzie> Mycology's a lot wider, it's not always easy to look at it.
21:20:14 <AnMaster> cpressey, http://sprunge.us/KcWN
21:20:16 <AnMaster> and what fizzie said
21:20:22 <AnMaster> also contains a literal null byte
21:20:25 <AnMaster> to test that
21:20:52 <cpressey> Christ.
21:21:05 <AnMaster> cpressey, the upper corner is a 93 test suite
21:21:10 <AnMaster> the rest is for 98
21:21:23 <AnMaster> you can see it is somewhat more compact up there
21:21:27 <AnMaster> cpressey, also Deewiant wrote it
21:21:30 <AnMaster> also,*
21:21:53 <AnMaster> I fail to see how he can maintain it :)
21:21:59 <AnMaster> I'm happy he does though
21:22:40 <AnMaster> cpressey, I love the vertical strings in it
21:22:42 -!- Phantom_Hoover has joined.
21:22:49 <AnMaster> and how some stuff is used differently in different directions
21:23:13 <Phantom_Hoover> INTERCAL is not IWBTG. Malbolge is.
21:23:38 <AnMaster> IWBTG?
21:23:55 <Phantom_Hoover> I Wanna Be The Guy.
21:24:04 <Phantom_Hoover> Insanely hard computer game.
21:24:47 <AnMaster> mhm
21:25:07 <Phantom_Hoover> Per the topic.
21:25:23 <AnMaster> oh hadn't noticed
21:25:33 -!- AnMaster has set topic: 0 days since last topic change | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:26:04 <AnMaster> ooh
21:26:09 <Deewiant> Mycology is 180 columns wide
21:26:19 <Phantom_Hoover> Mycology?
21:26:32 <Deewiant> Probably matches what fits in UltraEdit-32, 1600x1200, Andale Mono 10pt or something
21:26:36 <AnMaster> http://sprunge.us/KcWN
21:26:58 <AnMaster> Phantom_Hoover, or official source: http://users.tkk.fi/~mniemenm/befunge/mycology.html
21:27:11 <Deewiant> Or permalink: http://iki.fi/matti.niemenmaa/befunge/mycology.html
21:27:37 <AnMaster> Deewiant, I just copy from top of browser. Always. At all sites.
21:27:52 <Deewiant> Well then you're an idiot
21:27:57 <AnMaster> Deewiant, why?
21:28:06 <AnMaster> it should work. It makes sense if it works
21:28:08 <AnMaster> and it is easiest
21:28:09 <Deewiant> Because that's not always the best link to use
21:28:20 <AnMaster> Deewiant, then the wrong link is displayed at the top
21:28:31 <Deewiant> Not all URLs are permanent
21:28:35 <cpressey> "if you must use FBBI"
21:28:35 <cpressey> heh
21:29:05 <cpressey> I should *probably* apply those patches. Someday.
21:29:31 <cpressey> Or, Befunge-111. Ha.
21:29:37 <Deewiant> Given that one of them is by you I'm surprised it isn't applied :-P
21:29:45 <AnMaster> cpressey, befunge-111?
21:29:48 <AnMaster> oh that
21:30:03 <AnMaster> cpressey, well I was the guy working on s/108/109/
21:30:12 <AnMaster> but well, few people seemed to care
21:30:55 <cpressey> Well, probably the number of people who do care is greater than the number who seem to care.
21:31:16 <cpressey> I would never have guessed that there would be that many Befunge-98 implementations out there.
21:31:19 <AnMaster> I suggest a technical memorandum clarifying k, fixing t behaviour (so it doesn't spawn infinite threads, no one implements the spec to the letter here), and clarifying out-of-order fingerprint unloading
21:31:44 <AnMaster> plus probably some other minor points
21:31:48 <Deewiant> I suggest doing something about every UNDEF in Mycology ;-P
21:31:57 <AnMaster> Deewiant, well, possibly
21:32:07 -!- Phantom_Hoover has quit (*.net *.split).
21:32:07 -!- adam_d has quit (*.net *.split).
21:32:11 <AnMaster> Deewiant, but most of them are in RCS fingerprints
21:32:32 -!- adam_d has joined.
21:32:37 -!- Phantom_Hoover has joined.
21:32:47 <AnMaster> cpressey, also define k on k
21:32:51 <Deewiant> Well yes, obviously not those ones
21:32:52 <AnMaster> which Deewiant refuses to touch
21:33:01 <AnMaster> (I worked it out for cfunge)
21:33:03 <Deewiant> I see k on k as perfectly well defined :-P
21:33:07 <AnMaster> Deewiant, oh?
21:33:12 <Deewiant> You worked out your own view on the matter
21:33:19 <Deewiant> I think mine is what CCBI implements :-P
21:33:27 <AnMaster> Deewiant, you don't handle k on k is what you said before
21:33:36 <Deewiant> I don't special-case it
21:33:40 <Deewiant> The spec doesn't; why should I
21:33:51 <cpressey> Not too thrilled about the idea of an "addendum". There needs to be a new spec.
21:33:54 <AnMaster> which means it ends up in a very very strange way iirc
21:34:06 <AnMaster> cpressey, well corrigendum then
21:34:26 <AnMaster> cpressey, that can be applied with reasonable effort to existing implementations
21:34:31 <Deewiant> "Very very strange" - it's exactly what the spec defines :-P
21:34:35 <AnMaster> while 111 are for more radical changes
21:34:44 <Deewiant> Sure, you can argue that the spec /should/ special-case k on k
21:34:47 <AnMaster> cpressey, see what I mean?
21:34:58 <cpressey> AnMaster: No. Or, maybe I do, and I disagree.
21:34:59 <AnMaster> Deewiant, k on k used to *crash* ccbi iirc
21:35:00 <Deewiant> But since it doesn't, I don't think any conforming interpreter should either
21:35:08 <Deewiant> AnMaster: You misrecall
21:35:14 <AnMaster> Deewiant, maybe it was cfunge then
21:35:15 <Deewiant> It used to crash cfunge, maybe ;-P
21:35:23 <AnMaster> I know cfunge crashed on 3k@
21:35:27 <AnMaster> at one point
21:35:44 <Deewiant> I recall that
21:35:46 <AnMaster> (for t build only)
21:35:48 <cpressey> The problem is, and has been since 1999, that there are so many directions Funge could go "post-98". And, no one seemed interested.
21:36:00 <AnMaster> cpressey, I don't know what those directions are
21:36:12 <AnMaster> cpressey, but if I have anything to say there should be some room for bignum out there
21:36:25 <Deewiant> Another minor nit in the spec is the "team number" that y pushes
21:36:32 <AnMaster> ooh yes
21:36:35 <Deewiant> "Only significant for NetFunge, BeGlad, and the like."
21:36:40 <AnMaster> maybe cpressey can explain wth it is
21:36:44 <AnMaster> or was supposed to be
21:36:45 <cpressey> AnMaster: Well, just consider how many things could be taken out of the language because someone doesn't like them.
21:36:54 <Deewiant> AnMaster: I thought it was mentioned in those old mailing list logs?
21:36:58 <cpressey> Or how many features could be added in the name of "makes it harder to compile".
21:37:16 <AnMaster> cpressey, some time ago we discussed 98s in this channel. Which is befunge98 but with all the commands also in befunge93 taken away
21:37:26 <AnMaster> it resulted in a very strange and interesting language
21:37:27 <cpressey> "team number" was for BeGlad, which was supposed to be Core Wars in Befunge
21:37:44 <AnMaster> at one point I suggested there should be a 80x25 hole in fungespace from origo
21:37:48 <AnMaster> but that was just insane
21:38:21 <AnMaster> cpressey, ah interesting. And NetFunge was similar?
21:38:35 <cpressey> Probably for NetFunge it would be a like a node ID or something.
21:38:49 <AnMaster> sounds like I could abuse that thing for ATHR then
21:38:50 <cpressey> But, that's the kind of thing that should be taken out. Should be in a fingerprint.
21:38:58 <AnMaster> cpressey, true
21:39:01 <AnMaster> like ATHR
21:39:03 <cpressey> But, i never liked the fingerprint system much.
21:39:08 <gm|lap> i originally made TheSquare to be a sort of combat game of some sort
21:39:14 <AnMaster> cpressey, true they should use URIs
21:39:16 <AnMaster> ;)
21:39:21 <AnMaster> that was one plan for 109
21:39:26 <AnMaster> and I think it was the wrong thing to do
21:39:34 <AnMaster> collisions aren't that common
21:39:50 <AnMaster> cpressey, still befunge without loadable extensions would mean the end to things like fungot and ATHR
21:39:51 <fungot> AnMaster: you! take! we find! you are crono. why not? then you should leave quickly!
21:40:09 <AnMaster> fungot, now where was that phrase from.... I remember it from ct...
21:40:09 <fungot> AnMaster: that no one was allowed to use the crane, enter any two of these letters, a b y.
21:40:36 <cpressey> AnMaster: Well, the main thing I didn't like about it was that there was no real way to make it portable. But that's not a good reason.
21:40:51 <cpressey> I think handprints are worse, and should just be thrown out.
21:41:01 <AnMaster> cpressey, let IANA give out the numbers
21:41:01 <Deewiant> What do you mean by "portable", exactly?
21:41:11 <cpressey> maybe have a handprint-revealing-fingerprint, at best.
21:41:12 <AnMaster> $ ./cfunge ../mycology/mycology.b98 | grep ^UNDEF | wc -l
21:41:12 <AnMaster> 140
21:41:13 <AnMaster> $ ./cfunge -F ../mycology/mycology.b98 | grep ^UNDEF | wc -l
21:41:13 <AnMaster> 8
21:41:16 <AnMaster> Deewiant, ^
21:41:26 <AnMaster> -F is "disable all fingerprints"
21:41:26 <Deewiant> Handprints are fairly useless, yes
21:41:43 <cpressey> Deewiant: Well, you can't really package them, into say a .so
21:42:06 <Deewiant> Why not?
21:42:14 <AnMaster> cpressey, fingerprints could in theory be loaded dynamically I guess but the speed penalties would be horrible
21:42:23 <gm|lap> i recall k was just an utter pain in the arse
21:42:28 <AnMaster> cpressey, I would refuse to do it for cfunge since cfunge is all about uttermost speed
21:42:31 <Deewiant> Just the fact that there are different interpreters?
21:42:41 <cpressey> Deewiant: Well you CAN, but then, any implementation that doesn't easily support .so's, doesn't easily support fingerprint-packages.
21:43:10 <cpressey> I suppose you could do all kinds of messing about with SWIG and such, for say a Python implementation.
21:43:33 <Deewiant> Yes, there's no way of implementing a fingerprint once and have it work for all implementations
21:43:34 <cpressey> But, yes, I agree this can easily be outside the bounds of the language spec.
21:43:40 <AnMaster> cpressey, I run mycology in around 0.040 seconds (wall clock)
21:43:44 <Deewiant> But I don't think that's necessary a problem
21:43:51 <cpressey> There could be a seperate module spec for modules that implement fingerprints, or something.
21:43:52 <AnMaster> (measured with time builtin in bash)
21:43:59 <cpressey> Or multiple of those.
21:44:04 <AnMaster> <cpressey> Deewiant: Well you CAN, but then, any implementation that doesn't easily support .so's, doesn't easily support fingerprint-packages.
21:44:06 <Deewiant> Since fingerprints are sometimes so feral that it's not reasonable to do it anyway
21:44:13 <AnMaster> cpressey, how do you hook into the interpreter?
21:44:22 <AnMaster> cpressey, after all they have very different internal representations
21:44:33 <cpressey> AnMaster: Like I said, module spec.
21:45:00 <Deewiant> That'd probably tie implementations to some design choices that the current spec doesn't
21:45:01 <cpressey> Which is None Of My Business As Language Definer (or something like that.)
21:45:15 <AnMaster> cpressey, for cfunge the stack is a malloced chunk with a pointer to the top of it. It is grown one page at a time and never shrinks.
21:45:21 <cpressey> Deewiant: Only if they choose to follow it, which they wouldn't have to, to adhere to the language.
21:45:26 <AnMaster> cpressey, for efunge it is a erlang list with top of stack at the start of the list
21:45:36 <AnMaster> cpressey, no way those are even close to compatible internally
21:46:01 <AnMaster> cpressey, and funge space: a static array around 0,0 with a memory pool backed hash table for the rest (cfunge) or an ets table (efunge)
21:46:04 <cpressey> AnMaster: In principle, you could write an adapter to whatever interface the module system uses.
21:46:14 <cpressey> In principle.
21:46:21 <AnMaster> yeah in your dreams
21:46:24 <cpressey> There's no way I'd want to force that on any implementer.
21:46:38 <AnMaster> cpressey, what about that mini-funge thing
21:46:42 <AnMaster> with fingerprints in befunge itself
21:46:50 <cpressey> Well, now you see why I answered <Deewiant> Why not? the way I did :)
21:46:51 <AnMaster> of course works reasonably well for very tame fingerprints
21:47:16 <cpressey> AnMaster: I don't know what it is, but I have a secret project that sounds like it, but even better :)
21:47:29 <cpressey> and/or don't remember, if I did know once.
21:47:32 <AnMaster> cpressey, just try implementing TRDS in minifunge
21:47:48 <AnMaster> cpressey, here is the TRDS spec: http://rcfunge98.com/rcsfingers.html#TRDS
21:48:23 <AnMaster> cpressey, and here is an addenum: http://rcfunge98.com/trds.html
21:48:25 -!- sshc has quit (*.net *.split).
21:48:32 <gm|lap> AnMaster: ....far out.
21:48:40 <AnMaster> gm|lap, ?
21:48:50 <gm|lap> that's just... like... wrong
21:48:59 <AnMaster> gm|lap, what? TRDS?
21:49:00 <Deewiant> The easiest way of implementing TRDS in minifunge is implementing a Funge-98 interpreter in minifunge
21:49:04 <AnMaster> I didn't write it
21:49:09 <gm|lap> yeah
21:49:18 <AnMaster> Deewiant, exactly
21:49:33 <AnMaster> Deewiant, and ATHR you can't even do in minifunge
21:49:41 <cpressey> The secret project, FWIW, is to combine Mascarpone and Befunge -- define Befunge with a reflective meta-circular interpreter.
21:49:45 <AnMaster> because SOCK needs to be non-blocking w.r.t. other threads
21:49:47 <AnMaster> same for other IO
21:50:23 -!- sshc has joined.
21:50:24 <Deewiant> AnMaster: Sure you can: write minifunge which writes a Funge-98 interpreter in <any suitable language> to a file and then executes that
21:50:25 <AnMaster> a pitty scarf isn't here
21:50:34 <AnMaster> otherwise we could have suggested FTHR to him
21:50:38 <Deewiant> cpressey: That sounds quite scary
21:50:39 <AnMaster> (Feather for Befunge :D)
21:50:39 <cpressey> And actually the secret project was to be called "Beefgun" (an anagram of Befunge), not FWIW.
21:51:02 <AnMaster> Deewiant, but = is implementation defined!
21:51:10 <cpressey> What is Feather, exactly?
21:51:19 <Deewiant> AnMaster: So's minifunge :-P
21:51:19 <cpressey> I only heard scarf mention it once.
21:51:34 <AnMaster> cpressey, a language where you can rewrite the interpreter retroactively kind of
21:51:38 <AnMaster> I can't really explain it
21:51:50 <cpressey> "Retroactively" is scary, yeah.
21:52:10 <AnMaster> Deewiant, good point
21:52:31 <Phantom_Hoover> AnMaster: Not on the wiki.
21:52:45 <AnMaster> Phantom_Hoover, what isn't?
21:52:49 <AnMaster> feather?
21:52:51 <AnMaster> well that is known
21:52:55 <AnMaster> since the spec isn't finished
21:53:05 <AnMaster> ais/scarf is still working on working it out iirc
21:53:30 -!- sshc_ has joined.
21:53:59 <AnMaster> cpressey, anyway I think ais/scarf is up to the task
21:54:01 <cpressey> So what would the Befunge-111 spec need to address? Cleaning up ambiguities, specifying bignum behavior, throwing out useless crap like handprints and team numbers
21:54:05 <AnMaster> cpressey, after all he maintains C-intercal
21:54:12 <cpressey> I wish him luck.
21:54:29 <AnMaster> cpressey, and he wrote/is writing gcc-bf (bf backend for gcc)
21:54:40 <cpressey> I don't think Befunge-111 should add anything much to the language.
21:54:42 <AnMaster> which is done to a large part but quite untested and buggy still
21:55:09 <cpressey> The reason I wouldn't want it to just be an addendum is because it needs such an overhaul.
21:55:10 <AnMaster> cpressey, bignum is quite simple. You need a special value (such as -1) for cell size
21:55:36 <Deewiant> cpressey: If you're up to it, going through the Cat's Eye fingerprints would be nice too ;-)
21:55:58 <AnMaster> cpressey, and the rest that needs to be cleaned up for bignum is in fingerprints
21:56:09 <AnMaster> the core language works just fine once you deal with y
21:56:20 <AnMaster> s/ deal/'ve dealt/
21:56:35 <gm|lap> is befunge-109 out or not?
21:56:44 <cpressey> AnMaster: It still needs to be *specified*, less some program assume they can rely on there always being a fixed size, or something.
21:56:46 <Deewiant> There's the partial spec
21:56:57 <Deewiant> But no, it's not "out" as such
21:57:03 <AnMaster> cpressey, indeed
21:57:10 <AnMaster> not out indeed
21:57:17 <cpressey> Deewiant: I don't think I'm up for it, at least not as such.
21:57:38 <cpressey> Maybe TURT, since it seems popular (??!?)
21:58:02 <AnMaster> cpressey, s/popular/discussed since it is ambig and I have been implementing it again recently
21:58:04 <Deewiant> Not really popular, just hard to test automatically which is why it's always buggy ;-)
21:58:16 <AnMaster> and what Deewiant said
21:58:22 <cpressey> Yeah, OK.
21:58:39 <cpressey> Sigh.
21:58:58 <AnMaster> TOYS is quite nice but you need to reverse engineer large parts of it
21:59:00 <Deewiant> Of course, it's hard to say what exactly is "popular" when we're starting out with Befunge-98
21:59:01 <AnMaster> at least I had to
21:59:07 <Phantom_Hoover> On an unrelated tack, based on Safalra's method of evaluating the number of valid BF programs of length n, it would appear that a compression system could be worked out.
21:59:08 <Deewiant> AnMaster: Not really.
21:59:55 <Deewiant> One annoyance in TOYS is F and G's "pops a vector, then a value i" followed by "j groups of i cells each" <-- where did j come from?!
22:00:28 <AnMaster> yeah stuff like that
22:00:32 <Deewiant> Other than that, I don't think there's even any UNDEF stuff in TOYS, unless I misremember.
22:00:40 <AnMaster> Deewiant, butterfly
22:00:53 <Deewiant> Well yeah, but that's so-so
22:01:10 <Deewiant> If it weren't for the word "bit" in there I'd make it a non-undef at this point :-P
22:01:13 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.8/20100214235838]).
22:01:45 <AnMaster> cpressey, to not break old programs those places where handprint and such were should be "reversed for backward compat/future reuse" or such
22:01:57 <AnMaster> otherwise offsets to y would need to be adjusted everywhere
22:02:01 <AnMaster> which would be a pain
22:02:20 <cpressey> AnMaster: So you think Befunge-111 should be 100% compatible with Befunge-98?
22:02:44 <cpressey> I agree that anything less could mean major rewrites for existing programs.
22:02:58 <AnMaster> cpressey, no, but something like "most programs should work just fine"
22:03:02 <cpressey> Then again, those programs can still be run under -98 implementations.
22:03:13 <AnMaster> like 93 does in 98 possibly with some non-SGML space emulation
22:03:23 <AnMaster> a few programs depend on stuff like f reflecting
22:03:32 <AnMaster> but we won't run into that, all instructions are in use after all
22:03:34 <gm|lap> -111 could really be a clarified / decrapped -98
22:03:50 <AnMaster> gm|lap, you forgot "bug fixed"
22:03:58 <AnMaster> since t in 98 as written in the spec doesn't work
22:04:12 <gm|lap> hmm
22:04:13 <cpressey> I'm going to have to read this "spec" of which you speak, someday.
22:04:16 <AnMaster> the new ip will there execute t on the first turn
22:04:25 <AnMaster> cpressey, ;P
22:04:38 <Deewiant> Yes, only writing something doesn't give a really good picture of it
22:04:43 <Deewiant> You need to read it as well
22:04:44 <AnMaster> true
22:04:47 <cpressey> I'm happy with breaking programs that rely on some of the fuxxier corners.
22:05:02 <Deewiant> As long as I don't have to rewrite all of Mycology
22:05:08 <gm|lap> TheSquare does concurrency by bouncing an IP backwards; however, i think you'd be best to go left/right
22:05:09 <AnMaster> cpressey, yes, but y offsets is not one of those for stuff like "elements on TOSS"
22:05:19 <AnMaster> which iirc is offset 21 or 23
22:05:22 <gm|lap> as a bounce back would imply that it's not supported
22:05:23 <AnMaster> don't remember exactly
22:05:31 <AnMaster> (for *be*funge that is)
22:05:42 <AnMaster> (I don't deal with other dimensionality normally)
22:05:50 <cpressey> Um, so
22:06:12 <gm|lap> hmm, actually...
22:06:12 <cpressey> yeah
22:06:14 <AnMaster> gm|lap, ?
22:06:18 <AnMaster> hm
22:06:23 <gm|lap> i think it should bounce back
22:06:29 <AnMaster> it should indeed bounce
22:06:31 <gm|lap> and send something forward
22:06:34 <AnMaster> since 1) you check it with t
22:06:36 <AnMaster> err
22:06:37 <AnMaster> with y
22:06:41 <cpressey> Unicode?
22:06:46 <AnMaster> 2) you can see if anything else came the other way
22:06:57 <AnMaster> cpressey, would be a pain for cfunge. fine for efunge
22:07:11 <Deewiant> The way I read the spec, Unicode is currently optional
22:07:15 <gm|lap> my main reason was that if one had Unefunge / Trefunge, it'd just be plain confusing
22:07:16 <AnMaster> cpressey, since cfunge takes every shortcut available for speed. Including mmap()ing to load files
22:07:18 <Deewiant> You're allowed to have it or not
22:07:24 <AnMaster> and what Deewiant said
22:07:33 <Deewiant> CCBI2 will have it as an option
22:07:44 <Deewiant> At least, if it's finished before Funge-111
22:07:54 <cpressey> I'm thinking more along the lines of 'stop using the word ASCII so damned much'.
22:07:55 <AnMaster> efunge currently does byte io for files and unicode code point IO for stdio
22:08:13 <AnMaster> this could be trivially changed (5-10 minutes of work at most)
22:08:18 <gm|lap> kleinefunge could be interesting =D
22:08:28 <Deewiant> cpressey: I don't think there are any egregious uses of ASCII
22:09:17 <AnMaster> cpressey, anyway, what about EBCDIC? :(
22:09:22 <cpressey> "However, a Funge-98 interpreter may also expose any number of proprietary instructions above ASCII 127 or below ASCII 0." -- internally, they shouldn't be thought of as ASCII, or even "characters" really, they're instructions.
22:09:51 <cpressey> Also, stack stack?
22:10:00 <AnMaster> I considered making 2^666 in efunge print "BIGNUM!"
22:10:04 <AnMaster> at one point
22:10:12 <Deewiant> What about the stack stack? It's actually useful
22:10:21 <AnMaster> yes stack stack is nice
22:10:27 <AnMaster> and Deewiant would hate if it went away
22:10:35 <AnMaster> I would miss it but not as badly
22:10:50 <gm|lap> -1 would be an amusing thing to have
22:10:52 <Deewiant> Would I miss it more?
22:10:57 <AnMaster> gm|lap, -1 what?
22:11:01 <cpressey> I'll just point out that it's equivalent to a single stack, plus a special marker that can be placed on the stack to partition it into sub-stacks.
22:11:03 <gm|lap> as an instruction index
22:11:05 <AnMaster> Deewiant, yeah I think so
22:11:13 <Deewiant> OK
22:11:27 <Deewiant> cpressey: That's an implementation detail
22:11:27 <AnMaster> cpressey, not quite, there is the storage offset. Also you can't optimise the way you suggested as well
22:11:39 <cpressey> Deewiant: True.
22:11:45 <AnMaster> cpressey, after all, I do memcpy between stacks when I can avoid reversing order
22:11:48 <cpressey> I don't recall storage offset, will look.
22:11:50 <AnMaster> :)
22:11:58 <AnMaster> wow you are rusty :)
22:12:02 <Deewiant> The storage offset isn't really related to stack stacks in any way
22:12:03 <AnMaster> (no offence meant)
22:12:13 <Deewiant> It's just coincidentally modified by the same commands that modify the stack stack
22:12:17 <AnMaster> true
22:12:29 <AnMaster> Deewiant, idea: storage delta offset
22:12:35 <cpressey> Yeah, i've only been busy designing like two dozen other !@#$%^&*ing languages since 1998
22:12:39 <Deewiant> AnMaster: Y'wot?
22:12:55 <gm|lap> damn i used to have the catseye rss feed
22:12:56 <AnMaster> Deewiant, that way you can not just move it, you can mirror it and what not
22:12:57 <Deewiant> cpressey: Yeah, your time would've been better spent memorizing the Funge-98 spec as you wrote it
22:13:08 <cpressey> Deewiant: Damn straight.
22:13:20 <AnMaster> Deewiant, exactly ;P
22:13:25 <Deewiant> AnMaster: How can you "mirror" the value put by p?
22:14:07 <AnMaster> Deewiant, well for bignum compat it would have to be around the 0 axis, which is now moved thanks to the storage offset
22:14:45 <cpressey> One problem is that I find new designs much more interesting, so I have a hard time not thinking about them when looking at something like this.
22:14:48 <AnMaster> so 0,2 with a storage delta of -1,-1 gives you the position -2 relative that offset
22:14:54 <AnMaster> Deewiant, see what I mean?
22:15:04 <Deewiant> AnMaster: What's the point? Why not just modify the offset directly?
22:15:07 <AnMaster> if only I could make a nice animation showing what I meant
22:15:11 <AnMaster> Deewiant, no but it is mirrored
22:15:16 <gm|lap> burro was interesting IIRC
22:15:22 <AnMaster> so higher value is in the other direction
22:15:40 <Deewiant> AnMaster: So add the negation of the value to the offset
22:15:45 <AnMaster> Deewiant, imagine you rotate befunge along the X axis 180 degrees
22:15:49 <gm|lap> also this seems kinda interesting: http://www3.sympatico.ca/mt0000/bicom/bicom.html
22:16:02 <AnMaster> Deewiant, multiply the value with the storage delta rather
22:16:19 <AnMaster> then do it relative storage offset
22:16:23 <AnMaster> Deewiant, see what I mean now?
22:16:34 <Deewiant> AnMaster: So it modifies the value, not the position, now?
22:16:48 <AnMaster> Deewiant, yes, it is an additional value to storage offset
22:16:51 <AnMaster> both would co-exist
22:16:57 <cpressey> gm|lap: Burro is broken, but I have a fix for it... slowly underway.
22:17:22 <gm|lap> hmmkay
22:17:24 <Deewiant> AnMaster: So it's just a multiplier that is applied to p/g values?
22:18:25 <AnMaster> <gm|lap> also this seems kinda interesting: http://www3.sympatico.ca/mt0000/bicom/bicom.html <-- how can that work and still be a compression?
22:18:31 <gm|lap> wrt bicom: wow crap, a c++ program that actually compiles properly!
22:18:36 <AnMaster> some inputs must grow instead of shrink
22:18:39 <cpressey> AnMaster: I was thinking that vectors would be atomic objects (pop 2 vectors off stack, add them and push resulting vector, etc)
22:18:51 <AnMaster> Deewiant, hm yes
22:18:58 <gm|lap> AnMaster: same deal happens with most compressions
22:19:01 <gm|lap> actually
22:19:03 <gm|lap> all compressions
22:19:04 <AnMaster> Deewiant, should be more like able to skew stuff. Maybe we should have a translation matrix instead
22:19:10 <AnMaster> or rotation matrix or something
22:19:12 <gm|lap> except for cat compression, where the input is the same as the output
22:19:14 <AnMaster> for really fancy stuff
22:19:42 <AnMaster> cpressey, I considered tagged tupes in funge-space/on stack at one point
22:19:44 <gm|lap> i think the idea would be to split it into blocks and make sure that they remap correctly
22:19:56 <AnMaster> cpressey, for implementing FPSP/FPDP (floating point support)
22:20:12 <gm|lap> wait... it's not really that bijective :/
22:20:15 <AnMaster> cpressey, but erlang has sucky floating point semantics for NaN/inf so I decided not to
22:20:27 <gm|lap> -rwxr-xr-x 1 ben ben 83742 2010-02-24 11:18 bc
22:20:27 <gm|lap> -rw-r--r-- 1 ben ben 33528 2010-02-24 11:20 bc.bc
22:20:27 <gm|lap> -rw-r--r-- 1 ben ben 33941 2010-02-24 11:20 bc.bc.bc
22:20:27 <gm|lap> -rw-r--r-- 1 ben ben 34369 2010-02-24 11:20 bc.bc.bc.bc
22:20:41 <AnMaster> gm|lap, what?
22:20:41 <gm|lap> ohthatispoopy.
22:20:52 <gm|lap> USAGE: bc [-d] [-p passwd] <infile> <outfile>
22:20:52 <AnMaster> oh I guess there is bc/unbc
22:20:52 <gm|lap> -d: decompress (default is compress)
22:21:00 <AnMaster> right
22:21:06 <AnMaster> gm|lap, so not same function both ways
22:21:09 <gm|lap> i think it might also use LZ
22:21:39 <gm|lap> it uses arithmetic coding AFAIK
22:22:13 <gm|lap> i might try a truly bijective audio compression scheme
22:22:47 <gm|lap> just treat everything as an elias gamma code or something like that
22:22:57 <gm|lap> and then remap where appropriate or something
22:23:03 <gm|lap> ...that's not going to work, is it? :/
22:23:20 <gm|lap> plan B: pair some chars together in a special way
22:23:36 <gm|lap> it'd be like a samplewise huffman
22:23:46 <AnMaster> mhm
22:23:57 <gm|lap> probably catch a delta of it or something
22:24:18 <AnMaster> cpressey, anyway vectors being atomic would be annoying for cfunge that depends on the plain integer nature of funge space
22:24:33 <AnMaster> cpressey, in the inline SSE asm for example (there are C fallbacks, but still)
22:25:30 <cpressey> AnMaster: Yeah, it would be a different language.
22:25:44 <AnMaster> and are you scared of cfunge yet?
22:25:48 <AnMaster> ;P
22:25:53 <cpressey> Well, not really...
22:26:27 <cpressey> I am starting to have some ideas for befunge-111, which is scaring me.
22:27:00 <AnMaster> cpressey, mmap(), posix_madvise(), inline SSE asm, regparm calling convention on 32-bit x86 (using gcc __attribute__s), static array for the most commonly used funge space area around origo and hash library to fill out the rest
22:27:03 <AnMaster> the list can go on
22:27:11 <AnMaster> with various stack-stack optimisations
22:27:21 <AnMaster> oh and y that is a lookup table for low fixed-offset values
22:27:24 <cpressey> Whatever gets you through the night :)
22:27:32 <AnMaster> cpressey, "whatever makes me fastest" in cfunge
22:27:37 <cpressey> y is executed so rarely...
22:27:43 <AnMaster> cpressey, not in mycology
22:27:50 <cpressey> Well, true
22:27:51 <AnMaster> which is one of the things I speed test against
22:28:20 <AnMaster> cpressey, oh and there is an option to use fully buffered stdout of course
22:28:59 <Deewiant> Mycology really isn't worth speed-testing against, it's too quick to run through :-P
22:29:10 <AnMaster> Deewiant, not for that befunge in perl
22:29:14 <cpressey> Would anyone kick and scream if Befunge-111 was only defined for 2 dimensions? Generalizing to different #s of dimensions would be nicer in that language where vectors are first class.
22:29:18 -!- MigoMipo has quit (Remote host closed the connection).
22:29:21 <AnMaster> cpressey, only JIT-funge beats cfunge
22:29:26 <AnMaster> and jitfunge is basically dead
22:29:32 <AnMaster> unless fizzie starts working on it again
22:29:33 <Deewiant> AnMaster: Just because there exists a slow implementation doesn't mean the test case isn't fast
22:29:58 <AnMaster> cpressey, mike Riley might
22:30:01 <AnMaster> bbl urg
22:30:07 <Deewiant> "urg"?
22:30:23 <Deewiant> Too much cfungeing for one night?
22:30:36 <cpressey> Either something "urg"ent came up, or...
22:30:38 <gm|lap> the basic idea behind compression: each file is a number, e.g. a file containing 0xBEEF might be the number 0x1BEEF (you need that top bit to give a fair representation).
22:30:49 <Deewiant> Ah, urg-ent indeed
22:31:18 <gm|lap> basically, you want to make it so that the most relevant/likely files are the smallest numbers and the least are the biggest.
22:31:45 <cpressey> Also have an urge to deprecate =.
22:32:13 <Deewiant> Or make it useful by being C system() or something always
22:33:55 <cpressey> = and t sound like they should go into fingerprints.
22:34:44 <Deewiant> And the file I/O stuff too, I reckon
22:35:00 <cpressey> Sure, I could go for that.
22:35:40 -!- tombom_ has quit (Quit: Leaving).
22:36:04 <cpressey> Also, maybe fingerprints should be able to redefine a wider set of instructions, maybe all instructions except ")". That would let = and t stay the same. A compatibility-oriented implementation could "pre-load" the fingerprints for those,.
22:36:26 <Deewiant> Basically, all the stuff for which y needs to be asked to know whether it's implemented
22:36:44 <Deewiant> cpressey: That's opening the door to all kinds of abuse ;-)
22:37:05 <cpressey> Deewiant: More abuse than now?
22:37:13 <Deewiant> I'd say so, yes
22:37:31 <Deewiant> Say, could you redefine space (" ") in a fingerprint?
22:37:32 <cpressey> Well, maybe, and I didn't say I wasn't against it...
22:37:48 <cpressey> OK, " " and ";" are special.
22:38:06 <cpressey> They aren't instructions, therefore can't be redefined.
22:38:18 <cpressey> Well, maybe ";" can.
22:38:18 <Deewiant> Agreed
22:38:22 <Deewiant> No, not ";" :-P
22:38:40 <cpressey> :)
22:38:43 <Deewiant> They're both markers and work completely differently
22:38:58 <Deewiant> For example! 1k;;;;1 will execute the 1
22:39:13 <cpressey> Oh god, combining k and ;
22:39:23 <cpressey> Yeah.
22:39:24 <Deewiant> Same for 1k 1, of course
22:39:51 <Deewiant> But anyway, messing with those is a bad idea
22:40:20 <cpressey> Yeah, I agree.
22:41:13 <Deewiant> Still, I don't like the idea of being able to redefine such basic things as #, $, 0-9, etc
22:41:40 <cpressey> Well, I like it in one sense, but I agree that it's probably too large a departure.
22:42:07 <cpressey> Still, I'd like to see t, i, o, = et al move to a fingerprint.
22:42:10 <Deewiant> I can see the appeal,
22:42:26 <Deewiant> but I don't think there's much of a use case except for malware :-P
22:42:34 <Deewiant> (Malfunge?)
22:43:02 <cpressey> It feeds the "nightmare to compile" goal somewhat.
22:43:40 <cpressey> As does mapping the stack to funge-space. But neither has ever had a lot of support.
22:44:04 <cpressey> So maybe they're just not "Befunge-y". And that should trump the other goal.
22:44:05 <Deewiant> Eh? You mean the stack overlays a location in funge-space?
22:44:25 <cpressey> Yes, that was one proposal. Pushing something onto the stack actually p's it somewhere.
22:44:40 <cpressey> That, too, could be a fingerprint, though.
22:44:49 <Deewiant> Stick it in MODE :-P
22:45:04 <cpressey> I mean, with extremely feral fingerprints, the sky's the limit anyway
22:45:21 <Deewiant> Yep
22:45:50 <Deewiant> When it comes to "hard to compile", I don't think there's any advantage to either of the things you mentioned
22:46:22 <Deewiant> Whether it's just 'A' or all of 0-126 that are modifiable by ( doesn't really matter, the implementation is essentially the same
22:46:45 <Deewiant> And making the stack commands just work on funge-space is actually a simplification since you don't need to implement a stack :-P
22:48:16 <cpressey> Well, from the point of view of a compiler writer... if the stack is mapped to an arbitrary point in funge-space, I can no longer just use the machine stack, and I can no longer do simple optimizations
22:49:04 <Deewiant> Optimizations it does inhibit, true
22:50:18 <Deewiant> I wouldn't use the machine stack anyway, the spec doesn't indicate that you're ever allowed to fail on simple operations like 0-9 ;-)
22:51:28 <Deewiant> (And the machine stack would run into limits pretty fast, I think)
22:51:40 <cpressey> Yeah, the spec doesn't define arithmetic overflow either though.
22:52:12 <Deewiant> "In Funge-98, stack and Funge-Space cells alike should be treated as signed integers of the same size."
22:52:20 <Deewiant> It doesn't define what should happen, true
22:52:31 <Deewiant> But it at least implicitly acknowledges that the size is limited
22:52:49 <cpressey> It assumes it :)
22:53:25 <Deewiant> My point is that it allows for it, at least :-P
22:53:41 <Deewiant> Whether as the only option or not is a different question ;-)
22:54:03 <cpressey> Yeah.
23:00:20 <fizzie> jitfunge uses a sort of a machine-assisted stack: the stack memory is surrounded by no-access memory pages, and the "pop 0 from empty stack" is handled by catching the sigsegv, manipulating the saved context (to make the registers look like it would have read a 0 out) and then resuming execution from the next instruction.
23:00:54 <Deewiant> But it still lives in the heap, no?
23:01:35 <fizzie> It's a separately mmap'd area, so.. I guess it depends on your definition of the heap. Certainly it's not the C heap.
23:02:10 <fizzie> But it's not in the "real" stack; it's just that there's nothing really magical about that stack either.
23:03:42 <fizzie> You could argue that it's not the machine stack because I don't use esp/rsp to point at it, nor do I use the push/pop instructions to access it.
23:04:12 <Wareya> guys
23:04:28 <Wareya> Is it possible to implement liberal 2D flow controll and expression nesting without allowing for paradoxes?
23:10:16 <Wareya> control*
23:11:20 <cpressey> Depends - what's a paradox?
23:12:26 -!- MizardX- has joined.
23:12:57 -!- adam_d has quit (Ping timeout: 248 seconds).
23:13:04 <Wareya> well
23:15:28 <Wareya> an expression nested with others with tests such that you continually reformed the initial test before ever completing interpreting the expression
23:15:31 -!- MizardX has quit (Ping timeout: 276 seconds).
23:15:37 <AnMaster> back
23:15:47 <AnMaster> Deewiant, urg = urgent
23:15:50 <AnMaster> due to nosebleed
23:15:54 <Wareya> like a self modifying language in an infinite loop
23:16:14 -!- MizardX has joined.
23:16:37 <cpressey> Wareya: Sounds like Feather, or Chronofunge / TRDS -- you search for a "fixed point" where all your definitions work out, but there might not be such a point
23:16:53 <AnMaster> <Deewiant> Or make it useful by being C system() or something always <-- often impossible to implement
23:16:55 <Wareya> that's the problem
23:16:57 <Deewiant> cpressey: Chronofunge?!
23:17:07 <cpressey> I think you always have to allow for the possibility of a paradox (infinite loop while looking for a stable state)
23:17:42 <cpressey> Deewiant: Chronofunge was the idea I had to add time-travel to Befunge
23:17:57 <cpressey> Don't know if TRDS was influenced by it
23:18:09 <Wareya> Zybourne time travel or traditional time travel?
23:18:40 <cpressey> I have no idea.
23:18:46 <AnMaster> <cpressey> It feeds the "nightmare to compile" goal somewhat. <-- JIT compiling works just fine
23:18:46 -!- MizardX- has quit (Ping timeout: 276 seconds).
23:19:16 <cpressey> AnMaster: JIT compiling doesn't really count.
23:19:48 <AnMaster> <Deewiant> And making the stack commands just work on funge-space is actually a simplification since you don't need to implement a stack :-P <-- funge space is quite a bit slower due to the sparse-ness
23:20:25 <Wareya> zybourne time travel is the idea that time travel towards to passt just modified history as it was, and while the particular initial point of when you initiated traveling back in time once existed in time, it doesn't any more.
23:20:30 <Wareya> past&*
23:20:32 <Deewiant> AnMaster: Speed was not the issue
23:20:33 <Wareya> past*
23:20:35 <AnMaster> <Deewiant> "In Funge-98, stack and Funge-Space cells alike should be treated as signed integers of the same size." <-- so the stack is a single signed integer?
23:20:48 <Deewiant> AnMaster: (stack and Funge-Space) cells
23:21:10 <Deewiant> AnMaster: Not: stack and (Funge-Space cells)
23:22:00 <Deewiant> The latter would require a "the" to be valid anyway
23:22:11 <Wareya> traditional time travel is time travel that insists that causalty must remain intact, so going to the past would be virtually impossible without causing a paradox.
23:22:47 <AnMaster> <Deewiant> AnMaster: (stack and Funge-Space) cells <-- I know
23:22:54 <AnMaster> I was just joking
23:23:07 <Deewiant> Your joke failed because your parse is not valid
23:23:10 -!- augur has quit (Read error: Connection reset by peer).
23:23:15 <AnMaster> Deewiant, meh
23:23:29 <Deewiant> Wareya: TRDS is Zybourne, then
23:23:44 -!- augur has joined.
23:24:25 <AnMaster> Wareya, with zybourne "[...] the particular initial point of when you initiated traveling back in time once existed in time" is problematic
23:24:31 <AnMaster> what does "once existed" mean here
23:24:46 <oerjan> once upon a time
23:24:49 <AnMaster> it implies a beore
23:24:50 <AnMaster> before*
23:24:55 <AnMaster> but along what time axis?
23:24:58 <Wareya> ?
23:25:08 <Wareya> "once existed" is illogical
23:25:15 <Wareya> it's the only expression I could come up with
23:25:28 <AnMaster> that's the issue indeed I had with it
23:25:33 <Wareya> k
23:25:44 <AnMaster> anyway, night →
23:26:00 <Wareya> It doesn't exist in time, but the cause is something that doesn't exist because of its effect.
23:26:03 <Wareya> Night.
23:26:08 <oerjan> i would suggest a certain book by dr. dan streetmentioner
23:26:44 <pikhq> oerjan: Which willo-onhaven been written, I presume?
23:26:56 <oerjan> presumably
23:28:54 -!- augur has quit (Ping timeout: 256 seconds).
23:36:54 -!- coppro has joined.
23:48:44 -!- cpressey has left (?).
23:50:24 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
2010-02-24
00:01:48 -!- lament has quit (Ping timeout: 252 seconds).
00:02:11 -!- lament has joined.
00:05:44 -!- MizardX has quit (Ping timeout: 256 seconds).
00:14:39 -!- FireFly has quit (Quit: Leaving).
00:22:40 -!- Gracenotes has joined.
00:39:59 -!- MizardX has joined.
01:24:11 -!- jcp has joined.
01:25:28 <gm|lap> ok guys, i have a crazy brilliant idea or something
01:25:42 <gm|lap> a type of machine code which uses something like LZW compression
01:26:12 <gm|lap> so that it's really really compact
01:29:35 <Ilari> How to handle jumps?
01:31:31 <coppro> decompression is done JIT
01:32:43 -!- MissPiggy has quit (Quit: Lost terminal).
01:34:08 * oerjan inserts funny comment about x86 already working like that
01:36:12 -!- adu has joined.
01:36:14 <adu> hi
01:36:25 <oerjan> hi adu
01:36:37 * oerjan vaguely recalls you from before
01:36:40 <adu> how goes?
01:36:52 <adu> yes, i was here 2 months ago, and 6 months before that
01:37:14 <adu> I've been doing naughty things
01:37:21 <oerjan> quiet at the time, lots of befunge discussion earlier today
01:37:28 <adu> nice
01:37:37 * adu <3 <3 Funge-98
01:38:22 <adu> i honestly don't know why people still make new VMs, Funge-98 is the most universal extensible VM out there
01:38:30 <oerjan> cpressey (the inventor) has recently started coming here again
01:38:35 <adu> cool
01:40:40 <oerjan> oh right gm|lap just said something about compressed machine code
01:40:52 <oerjan> so not entirely quiet
01:41:07 <adu> i like machine code
01:42:29 <adu> have you heard of VSM?
01:43:26 <oerjan> no
01:43:36 <adu> http://en.wikipedia.org/wiki/Viable_System_Model
01:44:26 <adu> I've been considering making a VM for it, although the name VSM-VM might be confusing...
01:45:39 <oerjan> mhm
02:10:17 -!- songhead95 has joined.
02:10:29 <songhead95> Hello World!
02:10:49 <Gregor> I am not the world!
02:11:46 <songhead95> Oh!
02:12:40 <songhead95> Has anyone seen the language I posted?
02:12:44 <songhead95> WTFZOMFG
02:14:39 <songhead95> ?
02:15:49 -!- songhead95 has quit (Quit: Java user signed off).
02:15:58 -!- songhead95 has joined.
02:16:04 <songhead95> Okay
02:16:11 -!- songhead95 has quit (Client Quit).
02:16:21 -!- songhead95 has joined.
02:16:30 -!- songhead95 has quit (Client Quit).
02:17:21 <Gregor> Curious.
02:21:47 -!- songhead95 has joined.
02:22:04 <songhead95> hello, my IRC crashed
02:22:15 <songhead95> *irc client
02:22:27 <coppro> /kill songhead95 goodbye, my client didn't
02:22:45 <songhead95> wait what?
02:23:32 <songhead95> oh I see what you did there
02:24:23 <pikhq> Hmm. Looks to me like an IRC noob.
02:24:31 <songhead95> yes sorry.
02:24:35 <pikhq> Hello there, and welcome to Internet Relay Chat.
02:24:58 <songhead95> ah
02:27:42 <songhead95> ...so yes I am a noob
02:28:34 <pikhq> ようこそう、ね。
02:30:00 <songhead95> 私は歓迎するが、感じがわからない日本語
02:30:28 <pikhq> Hah.
02:30:34 <songhead95> so I use google translate
02:30:56 <pikhq> Heheheh.
02:31:06 <pikhq> Yeah, figured.
02:31:30 <pikhq> That's some exceptionally weird grammar there.
02:31:59 <songhead95> mhmm sometimes I translate something in google translate to like 6 languages, then get it back to english
02:32:29 <songhead95> Eventually "What is a man? A dirty pile of lies!" turns into "How many? A pile dirty secret!?
02:35:31 <songhead95> Hmmm... could google translate be turing-complete? Looks like a job for esolangs!
02:36:02 <pikhq> No.
02:36:38 <songhead95> Sorry if I make stupid jokes. I am a noob to chat alltogether
02:36:47 <pikhq> Is okay.
02:36:58 <pikhq> Most of us were noobs at some point.
02:37:11 <pikhq> And stupid jokes are almost a pastime on IRC.
02:37:18 <pikhq> (seriously, have you read bash.org?)
02:38:13 <songhead95> Lol I haven't before but that is really funny!
02:40:06 <songhead95> I have to go learn the ways of the chat, and then come back when I am a master. bye :)
02:40:11 -!- songhead95 has left (?).
02:40:16 -!- Asztal has quit (Ping timeout: 256 seconds).
02:40:21 <pikhq> ...
02:40:29 <pikhq> I don't think he realises the way to do that is be in chat.
02:41:01 <oerjan> some people _do_ try to read the manual first
02:41:46 <pikhq> oerjan: There's a manual?
02:41:55 <pikhq> Sure wasn't when I IRC'd.
02:42:21 <oerjan> i assume that would be bash.org. i haven't read it myself.
02:42:39 <Gregor> The IRC RFC :P
02:42:42 * oerjan whistles half-innocently
02:42:56 <oerjan> i almost read that
02:43:13 <pikhq> Gregor: Ah, that.
02:43:26 <pikhq> oerjan: bash.org is a major IRC quote server.
02:44:06 <oerjan> i may have had a slight suspicion of that fact.
02:45:18 <Sgeo> There are never any new quotes in the top 100
02:45:19 <Sgeo> :(
02:45:35 <Gregor> qdb.us is a modicum better than bash.org
02:46:02 <pikhq> More actively maintained, at least.
02:52:22 <Sgeo> Huh. Until now, I thought Ocarina was a made up .. word thingy for some game
02:52:30 <pikhq> Nope.
02:52:35 <pikhq> Genuine musical instrument.
02:52:48 <Sgeo> And not invented for the game either, according to wiki
02:52:55 <pikhq> Yup.
02:53:36 <oerjan> octarine is made up, however.
02:54:30 * Sgeo shouldn't have had to Google that
02:54:33 <Sgeo> It's been a while
02:55:17 -!- Pthing has quit (Remote host closed the connection).
02:59:00 -!- Sgeo has quit (Read error: Connection reset by peer).
02:59:22 -!- Sgeo has joined.
02:59:30 * Sgeo blames http://qdb.us/140717
03:02:01 -!- augur has joined.
03:05:05 -!- charlls has quit (Read error: Connection reset by peer).
03:05:22 -!- charlls has joined.
03:17:11 <Sgeo> "THE COMMUNISTS HAVE CONTROL OF GRAND CENTRAL STATION AND THEY WILL BRING THE COMMIE TRAINS TO TOWN! WE MUST WARN THE MAYOR CHOO CHOO"
03:26:35 -!- jcp has quit (Read error: Connection reset by peer).
03:27:44 -!- jcp has joined.
03:31:37 <Wareya> http://shii.org/knows/Zybourne_Clock
03:31:53 <Wareya> Imagine four balls on the edge of a cliff. Say a direct copy of the ball nearest the cliff is sent to the back of the line of balls and takes the place of the first ball. The formerly first ball becomes the second, the second becomes the third, and the fourth falls off the cliff. Time works the same way.
03:46:10 * Sgeo gets confused at 2^O(c^n)
03:51:15 <oerjan> i guess it means that the _logarithm_ is O(c^n)
03:52:35 <oerjan> which is not the same as O(2^(c^n))
03:52:38 * Sgeo is still confuzzled
03:52:55 <oerjan> for example, 3^(c^n) is the former but not the latter
03:53:41 * Sgeo is too tired to think right now
03:54:00 <oerjan> because 3^(c^n) = 2^(logBase 2 3 * c^n), so just a constant multiplier after you take the logarithm
03:55:14 <oerjan> while before, it is an extra power - 3^(c^n) = (2^(c^n))^(logBase 2 3)
03:56:12 * Sgeo isn't even looking right now
03:57:08 <coppro> http://asset.soup.io/asset/0453/8747_0991_800.png
04:02:47 <Sgeo> bsmntbombdood is on qdb.us!
04:04:18 <oerjan> shocking!
04:04:25 <oerjan> (where?)
04:05:33 <Sgeo> http://qdb.us/71165
04:07:46 <oerjan> word of god, that
04:10:14 -!- adu has quit (Quit: adu).
04:15:15 <Wareya> I got spam mail in base 64.
04:19:08 -!- adu has joined.
04:22:49 <bsmntbombdood> Sgeo: more than once
04:28:02 <pikhq> Sgeo: Yeah, most IRC denizens are.
04:28:18 * Sgeo looks for himself
04:28:29 <oerjan> *gasp*
04:29:01 <Sgeo> I'm in 2 quotes (and a third that wasn't actually me)
04:29:08 <Sgeo> All 3 are apparently sucking
04:29:17 <pikhq> http://qdb.us/264456 This one's a better quote, anyways.
04:29:18 <Sgeo> The one non-me is the only one that's not negative
04:29:33 <Sgeo> http://qdb.us/search?q=Sgeo&order=real_score&sort=desc&limit=25&approved=-1
04:32:21 <pikhq> http://qdb.us/301257 Freaking zzo38.
04:32:43 -!- MizardX has quit (Ping timeout: 276 seconds).
04:33:35 <oerjan> wait i searched for myself and got no results, but there i am?
04:34:16 * Sgeo mindboggles at zzo's choice of client
04:37:02 <oerjan> heck even i couldn't vote for that mess, and i seem to be the joke maker
04:38:10 <coppro> I'm on 0
04:38:23 <coppro> not even on bash
04:41:38 -!- augur has quit (Ping timeout: 265 seconds).
04:58:20 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
05:01:23 -!- oerjan has quit (Quit: Good night).
05:03:17 -!- adu has quit (Quit: adu).
05:30:02 -!- augur has joined.
05:51:29 -!- EvanDonovan has joined.
05:54:51 -!- EvanDonovan has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.8/20100202152834]).
06:49:15 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:51:15 -!- FireFly has joined.
07:04:15 -!- tombom has joined.
07:07:06 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
07:24:08 -!- kar8nga has joined.
07:50:58 -!- tombom has quit (Quit: Leaving).
07:52:33 -!- FireFly has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:28:50 -!- adam_d has joined.
09:10:41 -!- amca has joined.
09:17:58 -!- amca has quit (Ping timeout: 245 seconds).
09:20:19 -!- amca_ has joined.
09:24:04 -!- amca_ has changed nick to amca.
09:28:25 -!- chickenzilla has quit (Ping timeout: 264 seconds).
10:08:07 -!- chickenzilla has joined.
10:42:59 -!- BeholdMyGlory has joined.
11:49:53 -!- oerjan has joined.
12:13:42 <Ilari> Esolang: Each cell in field can hold 32-bit number, and there are 32-bit registers R0 and R1. IP travels on the field and if cell it lands on contains valid instruction, it executes it...
12:14:04 <Ilari> Instructions: Unconditional turn to cardinal direction, and the same on condition that R0 != 0.
12:14:31 <Ilari> ... Rotate R0 left by 1 place. NAND R0 and R1 and store to R0...
12:14:59 <Ilari> And instructions to store/load R0/R1 from one of cardinally adjacent to IP cells.
12:15:32 <Ilari> Plus of course print R0 as character, read character to R0 and exit instructions.
12:43:27 -!- amca has quit (Quit: booork).
12:51:56 -!- kar8nga has quit (Remote host closed the connection).
12:52:58 -!- MissPiggy has joined.
12:58:32 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:17:10 -!- Pthing has joined.
13:34:41 <MissPiggy> want to tell OKLOPORK
13:34:42 <MissPiggy> GRRR
13:44:04 -!- LemmingLemming has joined.
13:45:00 -!- LemmingLemming has quit (Client Quit).
13:49:33 -!- oerjan has quit (Quit: Later).
14:03:45 -!- MizardX has joined.
14:43:21 -!- oklopol has joined.
14:43:52 <oklopol> heh, uni friend wrote this interpreter thingie in clue, reading the language is like solving a fucking puzzle :P
14:44:17 <oklopol> (i guess that's sort of obvious)
14:55:10 <AnMaster> oklopol, which language?
14:55:21 <AnMaster> clue?
14:55:26 <AnMaster> as in, self-interpreter?
14:57:22 <AnMaster> wait what? That doesn't seems plausible for http://esolangs.org/wiki/Clue
15:01:03 <oklopol> other clue
15:01:03 <oklopol> and no not self-interpreter, just an interp for some random language
15:01:03 <oklopol> (actually the language called random, pun not intended)
15:01:23 <oklopol> heh
15:01:41 <AnMaster> :)
15:01:53 <AnMaster> oklopol, is either of those on the wiki?
15:02:08 <AnMaster> http://esolangs.org/wiki/Random ?
15:02:11 <AnMaster> as in, that one?
15:02:23 <oklopol> i didn't put any sort of comparison in the language, so he added another function for that for speedness; i just knew it was comparison, but not whether a<b => 1 or a<b => -1; cool thing is with clue, both work
15:02:34 <oklopol> yeah that's the language he made the interp for
15:02:38 <oklopol> in clue
15:02:40 <AnMaster> oklopol, and in which clue?
15:02:46 <AnMaster> if it wasn't the one on the wiki
15:02:53 <AnMaster> as in, spec for the other clue
15:02:55 <oklopol> clue is not on the wiki yet, but it will be once i find the time to make a small spec.
15:03:07 <AnMaster> oklopol, or do you mean the game Clue?
15:03:14 <oklopol> although it seems you can just pick up the language from the ski interp
15:03:28 <oklopol> no, my language clue i've been talking about for like years
15:03:34 <AnMaster> oh
15:03:36 <oklopol> :P
15:03:51 <AnMaster> oklopol, maybe another name to not collide with the existing language clue?
15:04:08 -!- cpressey has joined.
15:04:12 <oklopol> 1. i had the name first 2. why not collide?
15:04:23 <oklopol> 3. for my language, the name makes sense
15:04:32 <AnMaster> cpressey, btw I think I worked out how to do *W butterfly for bignum in a sensible way
15:06:39 <AnMaster> cpressey, basically, you use the smallest fixnum that could fit it, rounded up to 32*(2^n) where n is a positive integer.
15:07:00 <AnMaster> well, positive or 0
15:07:34 <AnMaster> cpressey, of course the results in most fixnum interpreters will vary depending on if they use 32-bit or 64-bit cells
15:07:39 <AnMaster> so the operation is pretty useless for those
15:07:42 <AnMaster> non-portable
15:08:03 <AnMaster> (other cell sizes would cause similar problems of course)
15:10:19 <oklopol> haha, this is actually so cool, you can, to some extent, just change whatever conventions you wish in the stdlib, and chances are programs will still work
15:10:30 <AnMaster> oklopol, in what language?
15:10:45 <oklopol> for instance, you can permute any function's parameter list in absolutely any way, and it's guaranteed no function can break
15:10:49 <oklopol> AnMaster: okay what the fuck
15:11:04 <oklopol> i have not, do not, and will not, ever, talk about any language other than clue
15:11:30 <AnMaster> oklopol, oh? what about oklotalk?
15:11:35 <AnMaster> you talked about some time ago
15:11:39 <AnMaster> and lots of other languages
15:12:05 <AnMaster> or did you mean "today"?
15:12:14 <oklopol> well so's your face
15:12:14 <oklopol> can permute parameters!
15:12:45 <AnMaster> oklopol, how do you ensure this property? Named parameters?
15:12:59 <oklopol> well you can't actually call a function in clue
15:13:16 <AnMaster> okay that helps
15:13:27 <AnMaster> then bf have the same property!
15:13:56 <AnMaster> it doesn't even *have* functions so every property of the functions that don't conflict with not having functions is true there!
15:14:22 <oklopol> well if you consider the bf instructions the functions, then clearly you can call them, if you consider only functions functions, then yes, bf has the same property, it's just en empty property because there are no functions.
15:14:27 <oklopol> yep
15:14:54 <oklopol> but i think the property is more interesting when it actually means something
15:17:31 <AnMaster> oklopol, then how do you use the functions in question in clue?
15:17:34 <AnMaster> if you can
15:17:45 <AnMaster> can't* call the functions it *seems* to be a fairly useless property
15:18:47 <oklopol> well you see the paradigm is you give examples of computation, and you give functions the compiler can use
15:18:48 <AnMaster> I assume you do something tricky that actually makes it possible to somehow pass parameters to a function and cause it to execute sometime during the program run
15:18:52 <oklopol> and it finds an implementation
15:19:12 <oklopol> so you can not in any way rely on specifics like the order of parameters
15:19:36 <AnMaster> oklopol, does it error out if there is more than one possible function matching it?
15:19:59 <AnMaster> well there would always be unless you define all possible combinations of parameters
15:20:02 <AnMaster> as examples
15:20:07 <oklopol> no, it returns the first one it finds
15:20:14 <oklopol> it's not specified which one
15:20:35 <oklopol> what did you mean by that combination thing
15:20:43 <AnMaster> oklopol, so does it interpolate the values between the examples?
15:20:56 <oklopol> what does that mean?
15:21:14 <oklopol> it just brute-forces definitions until it finds one that fits.
15:21:39 <oklopol> or at least it's not required to do anything more intelligent
15:22:10 <AnMaster> oklopol, well, like say: sin(0)->0; sin(pi/4)->1/sqrt(2) sin(pi/2)->1
15:22:23 <AnMaster> and it takes an average if given pi/6 or such
15:22:28 <oklopol> you can study my ski interp if you want to learn more.
15:22:39 <oklopol> err
15:22:39 <oklopol> no, that would be silly
15:22:45 <AnMaster> oklopol, hm, nah you could give an example of what you mean
15:22:52 <AnMaster> oklopol, weighted average of course
15:23:25 <oklopol> hey, if a random uni dude could reverse-engineer the language in a few hours, i'm not even sure i'm ever gonna make a spec :)
15:23:59 <oklopol> i can show you the append function maybe
15:24:10 <AnMaster> oklopol, "a random" <-- insert joke along the lines if he designed that language
15:24:20 <AnMaster> oklopol, that should be interesting
15:24:22 <oklopol> append ~ <empty?>; car; cdr; cons
15:24:39 <oklopol> means "append uses the functions car, cdr and cons, and its condition function is 'empty'"
15:24:48 <oklopol> then
15:25:09 <oklopol> append ~ {. [], [1, 2, 3] -> [1, 2, 3] . [], [4] -> [4] }
15:25:13 <oklopol> two examples of the base case
15:25:18 <oklopol> (separated by .)
15:25:28 <AnMaster> mhm
15:25:42 <oklopol> append ~ {:. [1,2,3],[4,5,6] -> [1,2,3,4,5,6] : [2,3],[4,5,6] -> [2,3,4,5,6] }
15:26:01 <oklopol> example of recursive case, with :. being the call, : being the subcall
15:26:05 <AnMaster> ah
15:26:18 <oklopol> that's it basically
15:26:27 <AnMaster> oklopol, are there just those in the code or are there more examples you didn't paste here?
15:26:47 <oklopol> that's the whole append, you can write a shorter one ofc
15:27:03 <AnMaster> oklopol, how do you call it or whatever later
15:27:03 <AnMaster> as in
15:27:15 <AnMaster> example of how it is used
15:27:33 <oklopol> well say you want a function that appends lists together
15:27:42 <AnMaster> well you have that there don't you?
15:27:52 <oklopol> then you might have multiappend ~ <length>; append; ...
15:27:59 <AnMaster> hm?
15:28:00 <oklopol> oh sorry
15:28:08 <oklopol> i mean an arbitrary amount of lists
15:28:20 <oklopol> [[1,2],[3,4],[5,6]] -> [1,2,3,4,5,6]
15:28:22 <oklopol> concat
15:28:25 <AnMaster> oklopol, I mean example of how you cause two specific lists to be appended
15:28:29 <AnMaster> to each other
15:28:36 <oklopol> you can't do that
15:28:44 <AnMaster> oklopol, well, what about from user input then?
15:28:47 <AnMaster> or something
15:28:55 <oklopol> well you could write a function that appends two lists and returns the result
15:29:07 <oklopol> oh well i haven't decided yet, probably there's a main function that takes user input as a list
15:29:12 <AnMaster> oklopol, fine. What would it look like if it was supposed to use that function "append"
15:30:09 <AnMaster> oklopol, basically: lets say I somehow want to use your append function above to make the language calculate what appending [9,-3,4] to the end of [27,22,3] is
15:30:26 <AnMaster> that is, getting the result [27,22,3,9,-3,4]
15:30:43 <AnMaster> oklopol, using your above append function of course :)
15:30:48 <AnMaster> that is what I'm wondering about
15:31:12 <oklopol> i think this should work
15:31:12 <oklopol> multiappend ~ {. [] -> [] }
15:31:15 <oklopol> multiappend ~ {:. [[1,2], [3,4]] -> [1,2,3,4] : [[3,4]] -> [3,4]
15:31:15 <oklopol> :. [[],[1],[]] -> [1] : [[1],[]] -> [1]}
15:31:15 <oklopol> multiappend ~ <empty?>; append; cons; car; cdr
15:31:53 <AnMaster> oklopol, yes, and where do the data I provided go into that? :)
15:31:56 <oklopol> well you'd call the compiled function append, prolly
15:32:13 <AnMaster> oklopol, eh?
15:32:18 <oklopol> you can put data into the functions by calling the python functions the compiler returns.
15:32:23 <AnMaster> aha
15:32:25 <oklopol> that's really a non-issue.
15:33:24 <AnMaster> oklopol, so it would work for that example above? It would be able to figure it out? Even using lists of different lengths too? Like appending to [27,22,3,472,283,172,3872] instead of that one above?
15:33:40 <oklopol> yeah that should work for all lists of lists.
15:33:47 <oklopol> i can test it ofc
15:34:08 <AnMaster> oklopol, err the original append function you gave doesn't take a list of list does it?
15:34:13 <AnMaster> it takes two lists it seems
15:34:22 <AnMaster> now I'm confused
15:34:38 <AnMaster> oklopol, also how does the parameter order to it not matter, that I'm interested in too
15:35:55 <oklopol> [[1,2,3],[2,3],[3]] --> [1, 2, 3, 2, 3, 3]
15:35:59 <oklopol> seems to works
15:36:01 <oklopol> *work
15:36:18 <oklopol> had one error, the function that tests if a list is empty is called "empty", not "empty?"
15:36:34 <oklopol> AnMaster: well consider cons
15:36:50 <oklopol> i just give cons as a helper function, "you can use this function in any way, if you find it necessary"
15:36:54 <oklopol> if you swap the args to cons
15:36:55 <AnMaster> hm
15:37:04 <oklopol> then the compiler will just use it, but swap the arguments.
15:37:16 <AnMaster> oh?
15:37:33 <oklopol> well okay, in some cases it might find some other function first, because swapping the args made it harder for it to find the correct implementation
15:37:57 <AnMaster> oklopol, I mean, append([4,5,6],[1,2,3]) seems like it should give a different result than append([1,2,3],[4,5,6])
15:37:58 <oklopol> but sofar no function has bee incorrectly implemented, all errors have been mine
15:38:13 <oklopol> well actually i don't think i've made any errors
15:38:20 <oklopol> oh well sure
15:38:43 <oklopol> but see
15:38:46 <oklopol> if i had append in a program
15:38:50 <oklopol> and i reversed its arguments
15:39:00 <oklopol> then all functions that use append would just be compiled with the new order of arguments
15:39:07 <AnMaster> hm okay
15:39:16 <oklopol> otherwise they would be wrong, so the compiler would have to reverse them.
15:39:24 <AnMaster> ah hm
15:39:43 <AnMaster> oklopol, I guess compiling can take quite a bit?
15:39:53 <AnMaster> even for fairly simple functions
15:39:54 <oklopol> 0.13 seconds to compile the multiappend thing
15:40:00 <oklopol> 9 seconds to compile my ski interpreter
15:40:06 <oklopol> 1 second to compile the random interpreter
15:40:09 <AnMaster> hm
15:40:18 <oklopol> so yeah, a fuckload of time for even simple tasks
15:40:34 <oklopol> but it's just a crappy python hack
15:40:37 <oklopol> the interp
15:40:42 <AnMaster> well, yes considered how long it would take for most compilers
15:40:55 <AnMaster> possibly you might beat g++ but that is all ;)
15:41:12 <AnMaster> oklopol, is the source code for the interpreter online?
15:41:16 <AnMaster> well
15:41:22 <AnMaster> interpreter/compiler I guess
15:41:28 <oklopol> maaaybe i could put it up
15:41:59 <AnMaster> oklopol, you should probably wait until you wrote a rough spec so you don't get everyone asking you to explain how it works ;)
15:45:13 <oklopol> i'll put the ski interp online too, you can just read that
15:45:22 <oklopol> for teh idiomatic clueness
15:45:46 <AnMaster> oklopol, well, I suck at ski..
15:46:03 <oklopol> okay i just more than doubled all compilation times by adding a tiny fix :)
15:46:33 <AnMaster> oklopol, always keep falling when skiing downhill. I'm reasonably okay at it on mostly flat ground
15:46:45 <oklopol> now it can call a function with many copies of the same objec
15:46:45 <oklopol> t
15:46:45 <oklopol> flat is nicer
15:46:52 <oklopol> also called cross-country
15:46:56 <AnMaster> oklopol, yep
15:47:05 <AnMaster> I don't fall all the time there
15:47:31 <AnMaster> and I'm scared of heights, which doesn't really help avoiding falling when going downhill
15:48:03 <oklopol> but, many of the helper functions i wrote are pretty basic and not ski-specific
15:48:03 <oklopol> how can you fall?
15:48:04 <oklopol> move your legs man
15:48:26 <AnMaster> oklopol, err? I said when going downhill
15:48:29 <AnMaster> not when cross country
15:48:41 <oklopol> still
15:49:10 <AnMaster> still what?
15:50:03 -!- adam_d has quit (Ping timeout: 245 seconds).
15:51:34 -!- scarf has joined.
15:51:38 <AnMaster> hi scarf
15:52:54 -!- kar8nga has joined.
15:58:48 <oklopol> AnMaster: do you open rar?
15:59:31 <oklopol> well anyway www.vjn.fi/oklopol/clue.rar
15:59:46 <oklopol> i'll make a spec and put it on esolang during march, hopefully
16:01:38 <oklopol> i'm assuming there won't be a massive surge of programs making that a de facto standard or anything.
16:02:55 <scarf> hi everyone
16:03:09 <oklopol> CLUE INTERPRETER NOW ONLINE SOURCE SORT OF OPEN TOO.
16:03:17 <MissPiggy> link
16:03:27 <oklopol> www.vjn.fi/oklopol/clue.rar
16:03:55 <scarf> oklopol: ooh
16:04:01 <oklopol> as i mentioned, someone reverse-engineered the ski-interp and wrote a random interp, so i'm assuming anyone who wants to play can just do that as well.
16:04:21 <oklopol> random, again, being the language random on esolang
16:05:03 <oklopol> the parser is not very good, it works pretty well as long as you don't make any errors, but doesn't really help you locate them.
16:05:20 <scarf> wow at that SKI
16:05:50 <scarf> is there anything significant at all in the identifier names? or are they just compared for equality?
16:06:15 <oklopol> just compared for equality
16:06:39 <scarf> <is list?> and <id> are presumably builtins?
16:06:44 <oklopol> i might make identifier name matching fuzzy, because i typo them a lot and forget whether i had a "?" in the end, and they are always pretty long.
16:06:47 <oklopol> yep
16:06:55 <oklopol> stuff.py contains a list of builtins
16:06:56 <scarf> and cons/car/cdr are library functions?
16:07:10 <oklopol> there are just builtins
16:07:15 <scarf> ah, ok
16:07:16 <oklopol> those are builtins too
16:07:20 <scarf> why do some have angle brackets, and others not?
16:07:30 <oklopol> what doesn't have angle brackets?
16:07:36 <scarf> cons, car, cdr
16:07:38 <oklopol> ahh
16:07:40 <scarf> whereas <is list?> and <id> do
16:07:41 <oklopol> well see
16:07:49 <oklopol> every function needs a "cond", which is <cond>
16:07:54 <oklopol> you can just have multiple helper lists
16:08:11 <scarf> oh, angle brackets mean that that function's a good one to try as a condition
16:08:31 <Sgeo> We need to invent branfuck
16:08:32 <oklopol> yep, and in fact it is what *will be* used as a condition
16:08:32 <Sgeo> http://www.reddit.com/r/programming/comments/b5v3v/yo_just_print_like_hello_world_bro/c0l4545
16:08:39 <oklopol> that's something you could actually drop from the language
16:08:39 <scarf> now I have to figure out how more-than-3 works
16:08:45 <scarf> well "more than 3"
16:08:48 <oklopol> the guy who made the random interp just used <id> there
16:08:52 <oklopol> for all functions
16:09:33 <scarf> hmm, #0 and #1 refer to particular sorts of recursion?
16:09:40 <oklopol> nope, they are constants :)
16:09:47 <scarf> heh, just like in INTERCAL
16:10:00 <scarf> I've never seen something which has so much INTERCAL inspiration in the syntax and yet looks so different
16:10:07 <oklopol> :)
16:10:26 <oklopol> it's pretty different from everything, afaik.
16:10:38 <scarf> still, if more than 3 is supposed to work on arbitrary integers, I don't have a clue how it works
16:10:46 <scarf> if it's only meant to work on 0..5, it's obvious
16:10:47 <oklopol> oh well probably just on naturals
16:10:54 <scarf> hmm, ok
16:11:04 <oklopol> oh well see
16:11:05 <oklopol> more than 3 ~ {. 4 -> 1
16:11:05 <oklopol> . 5 -> 1 }
16:11:11 <oklopol> this means 4 and 5 return 1
16:11:17 <oklopol> but they have to return 1 using the same rule
16:11:21 <scarf> aha, "if it's 0, 1, 2, or 3, return 0, otherwise return 1" is the function you're trying to produce
16:11:33 <scarf> now I get it
16:11:33 <oklopol> that means it will have to make that the "default branch" and make it return the constant 1
16:11:46 <scarf> because you can only test for one value in each conditional
16:11:54 <oklopol> there can be one default branch
16:11:56 <oklopol> yeah
16:12:26 <oklopol> basically it combines parameters somehow, and puts the result in the <cond> function, result is used to differentiate between branches, the {...} things
16:13:06 <oklopol> if only one of them contains multiple values, then that'll be the default branch
16:13:34 <oklopol> i mean if there are multiple examples in some branch, they all have to return the same result with cond, except for the default branch
16:13:40 <oklopol> (if there's one)
16:14:01 <scarf> hmm, I keep using the wrong mouse button
16:14:18 <scarf> the left mouse button on this mouse has broken (it's ignoring about 2/3 of the clicks I use), so I swapped the buttons
16:14:42 <scarf> in particular, I keep trying to use the right mouse button to right-click, although I'm getting good for using it to left-click
16:14:54 <oklopol> why not just ask a 4-dimensional dude to swap your left and right?
16:15:31 <oklopol> i c, i c
16:15:53 <oklopol> btw tell me if you touch clue, i actually like reading programs in it
16:16:05 <oklopol> probably the first language ever with that property ;)
16:17:02 <oklopol> i should probably add comments to the language...
16:17:28 <oklopol> i guess you could say "the following is a comment ~ ..."
16:17:42 <oklopol> no wait that won't work
16:17:43 <scarf> theory: Google bought Youtube /just/ for leverage in getting rid of IE6
16:17:58 <oklopol> have to go for a bit ->
16:18:02 <scarf> oklopol: use the comment as an identifier name
16:18:05 <scarf> and give it a trivial definition
16:18:31 <scarf> like this is a comment, isn't this program great? ~ { . 0 -> 0 }
16:18:38 <scarf> but you'd need to repeat it again on the next line
16:18:57 <scarf> maybe it should be possible to put nothing before a ~ in order to effectively get a repeat of the previous identifier
16:20:41 -!- jcp has joined.
16:25:37 <cpressey> AnMaster: That sounds as reasonable as anything, given that butterfly seems inherently a fixed-size operation.
16:26:15 <AnMaster> mmm
16:26:57 <AnMaster> <oklopol> well anyway www.vjn.fi/oklopol/clue.rar <-- downloaded
16:26:58 <oklopol> well actually the name of an identifier can contain arbitrarily many \n's
16:27:17 <oklopol> whitespaces are just stripped into " "'s
16:27:32 <oklopol> like "\n \t\n\n \n" -> " "
16:27:50 <oklopol> and yeah the repetition thing would be nice
16:28:12 <oklopol> the parser isn't very complete
16:28:58 <cpressey> the standards for parsers in the realm of esolang implementation are... pretty low, so i wouldn't worry about it. (I saw ALPACA's parser again the other day. Eeesh.)
16:29:21 <AnMaster> cpressey, what about the one of ick?
16:29:39 <AnMaster> it looked pretty okay considering the language it is supposed to parse iirc
16:29:54 <oklopol> the thing is this is so simple to parse you can do it as crappily as you want, and i wanted to watch scrubs while is coded, so...
16:30:02 <AnMaster> there is that hack because you need infinite lookahead for some construct in intercal
16:30:04 <oklopol> *i coded
16:30:24 <AnMaster> other than that it is just fairly complex lex and yacc iirc
16:30:46 <AnMaster> scarf, right?
16:30:51 <scarf> AnMaster: yep, the lex and yacc are tied into each other, although not quite as much as in gcc
16:31:08 <oklopol> scarf: so did you master the language already? :)
16:31:12 <scarf> oklopol: not yet
16:31:22 <scarf> I have work to do, even though I'm on a non-work connection
16:31:29 <oklopol> yarr
16:31:30 <AnMaster> scarf, well... doesn't the yacc part depend on what output exactly the lex part produces in all cases?
16:31:42 <scarf> AnMaster: yes, but also vice versa
16:31:44 -!- KingOfKarlsruhe has joined.
16:31:59 <oklopol> it's just what other people do is always more interesting than the things i do myself, when it comes to my languages
16:32:01 <scarf> which is mentioned as being necessary sometimes in the lex/yacc documentation, but which seems silly to anyone who knows about parsers
16:32:10 <AnMaster> scarf, well you could say that also exists, because if you change the lex part without changing the yacc part the whole thing might break
16:32:28 <AnMaster> unless you meant in some other way?
16:33:04 <scarf> AnMaster: I mean, the actual tokens produced depend on the current state of the parser
16:33:15 <AnMaster> scarf, non-work connection? Public wlan? Finally have internet at home?
16:33:24 <scarf> AnMaster: a friend's house
16:33:25 <AnMaster> scarf, yeargh
16:33:36 <scarf> I've been connecting from here for ages, just most people weren't paying attention
16:33:51 <AnMaster> scarf, that means it is context dependant in some rather strange way doesn't it?
16:33:55 <scarf> AnMaster: yes
16:34:00 <AnMaster> scarf, you have a cloak though
16:34:02 <AnMaster> how could I know?
16:34:10 <scarf> to be precise, whether a paren-equivalent is opening or closing is context-dependant
16:34:17 <scarf> and I was doing this from well before I was cloaked
16:34:38 -!- charlls has quit (Ping timeout: 245 seconds).
16:34:41 <AnMaster> scarf, the reverse dns with something like bham in one part of it?
16:34:45 <AnMaster> I thought that was uni
16:34:48 <scarf> that one is uni
16:34:58 <oklopol> burning ham
16:34:59 <scarf> the other one's virgin media
16:35:08 <AnMaster> don't remember that one
16:35:24 <AnMaster> brb
16:36:01 * scarf goes back to the Phorm website
16:36:12 <scarf> I'm effectively polling it by hand to see if and when they decide to turn it on for virgin media
16:36:23 <scarf> it'll be a distaster, but not one that people notice right away
16:36:27 <scarf> *disaster
16:37:09 <oklopol> i need to add io to clue so i can make an irc bot
16:38:40 <oklopol> probably just something like >> after the output of a function to also output bytes or << after the input of a function to read bytes
16:39:35 <oklopol> Hello world! ~ {. 0 -> 0 >> [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33] }
16:40:22 <scarf> yep, makes sense
16:40:39 <scarf> would you need to explicitly specify >> [] for other cases if you specify >> anywhere, or would that be assumed?
16:42:13 <oklopol> oh err
16:42:15 <oklopol> assumed
16:42:23 <AnMaster> scarf, what is Phorm?
16:42:48 <scarf> AnMaster: basically, it's a targeted advertising service
16:42:54 <scarf> the controversial bit is the amazing way it operates
16:43:03 <AnMaster> oh injection thingy
16:43:04 <AnMaster> right
16:43:05 <scarf> which basically involves multiple redirects for every single http request you make ever
16:43:26 <scarf> and MITMing every website on the internet to inject cookies
16:43:32 <AnMaster> scarf, that sounds like it shouldn't be legal for various reasons.
16:43:35 <scarf> (it doesn't trigger on https, if you were wondering)
16:43:43 <scarf> AnMaster: yep, some people think it isn't
16:43:44 <AnMaster> Net neutrality comes to mind amongst other things
16:43:54 <scarf> they haven't actually dared turn the thing on yet; there's meant to be an opt-out
16:44:11 <AnMaster> scarf, so I assume it will be taken to court as soon as it is turned on
16:44:26 <scarf> oh, someone will probably try
16:44:32 <AnMaster> "try"?
16:44:38 <oklopol> okay, more interesting: echo n ~ {:. 5 <<[7] -> _ >>[7] : 4 -> _ }
16:45:00 <scarf> AnMaster: they might not be able to get the funding
16:45:04 <oklopol> and of course, echo n ~ {. 0 -> _ }
16:45:25 <scarf> what does the underscore mean again?
16:45:32 <oklopol> oh that's new
16:45:48 <oklopol> i just thought it might be nice to be able to say the return value doesn't matter
16:45:52 <oklopol> once you have IO
16:46:04 <AnMaster> scarf, funding? How so? After all you don't need funding in case the police catch a thief that stole something from you.
16:46:04 <scarf> heh, it's a RealWorld
16:46:14 <scarf> AnMaster: hmm, you mean a criminal rather than civil case?
16:46:24 <AnMaster> scarf, ah right forgot that difference
16:46:24 <scarf> you'd need to persuade the Crown Prosecution Service to take it
16:46:38 <oklopol> scarf: actually it's just the empty list, except you don't have to put an explicit #[] in the helper list
16:46:46 <scarf> ah, ok
16:49:03 <oklopol> hmm okay i have sort of a problem
16:49:22 <oklopol> if <<[5,6] is an example, "if you get bytes 5 and 6 as input, ..."
16:49:22 <oklopol> then
16:49:27 <oklopol> how many should it read?
16:50:04 <oklopol> always two bytes, always till eof, always two, unless there are other examples with different lengths, in which case till eof?
16:50:22 <oklopol> (two in the case of an example of length 2)
16:50:38 <oklopol> well in any case maybe IO isn't the first thing i should add
16:50:46 <AnMaster> oklopol, is that for stdin?
16:50:53 <oklopol> although i would definitely like to see pong in this.
16:50:58 <oklopol> would be so outta character
16:51:03 <oklopol> AnMaster: IO
16:51:06 <oklopol> err
16:51:08 <oklopol> yeah << is input
16:51:14 -!- adam_d has joined.
16:51:37 <AnMaster> oklopol, line buffered is probably sanest for an esolang
16:51:44 <AnMaster> and then I guess whole line makes most sense
16:51:47 <oklopol> but... i hate line buffered :-(
16:52:08 <AnMaster> oklopol, well then, I can't work out sane semantics for it
16:58:08 <oklopol> gotta go ->
17:01:32 <scarf> something's up with Yahoo mail, it seems
17:01:50 <scarf> I can't access the site at all in Firefox (I just get errors), and w3m goes into an infinite META REFRESH loop after logging in
17:02:19 <scarf> as in, the page has a META REFRESH with a timeout of 0 on, and w3m is honouring it for some reason
17:04:32 <pikhq> Ugh.
17:05:27 <scarf> seems to be a problem with the connection itself (tried a different computer on the same router)
17:05:28 -!- tombom has joined.
17:05:30 <scarf> and the DNS is fine
17:06:00 <scarf> hmm, working again now
17:06:02 <scarf> that was suspicious
17:10:54 <scarf> also, I just typed my root password in another channel by mistake
17:10:59 <scarf> well, sudo-root
17:12:44 -!- Pthing has quit (Quit: Leaving).
17:13:40 <AnMaster> scarf, so change the password now
17:13:46 <scarf> I am, don't worry
17:14:03 <scarf> actually, I changed it even before I typed it, somehow
17:14:12 <scarf> as in, I typed the old password in-channel rather than the new one
17:15:16 <AnMaster> heh
17:16:49 <scarf> just one place left to change it; do you know how to change the master password for the KDE password wallet?
17:17:03 <scarf> not that I care too much, because there's only one password /in/ that wallet and it's a publically-available one anyway
17:17:19 <AnMaster> a publically-available password?
17:17:20 <AnMaster> huh?
17:17:38 <scarf> AnMaster: in this case, as an anti-spam measure
17:17:44 <AnMaster> ah
17:17:52 <scarf> the password and the place you have to enter it are in two completely separate places
17:18:04 <AnMaster> scarf, what is it for?
17:18:14 <scarf> guarding a file-upload server
17:18:20 <AnMaster> ah
17:18:26 <AnMaster> public one?
17:18:56 <scarf> sort-of; public, but very specific purpose
17:19:02 <AnMaster> oh?
17:19:11 <scarf> it's for uploading Enigma levels
17:19:24 <AnMaster> ah
17:20:39 <MissPiggy> hm?
17:20:57 <MissPiggy> I like that enigma game
17:21:48 <augur> miss piggeh
17:22:33 <MissPiggy> shut up hi augur
17:22:57 <augur> :(
17:23:12 <augur> whatd i do D:
17:23:23 <AnMaster> interesting. SVG defines colours like "mediumspringgreen"
17:23:24 <scarf> MissPiggy: when the next version comes out, you'll find many levels by me
17:23:31 <MissPiggy> scarf oh cool! what sort of levels?
17:23:45 <AnMaster> (that one is rgb( 0, 250, 154) )
17:23:45 <scarf> mostly intelligence levels (as in, traditional puzzle-style)
17:23:48 <MissPiggy> I guess there's a turing machine in enigma now.....
17:23:51 <scarf> but there are all sorts
17:23:51 <AnMaster> http://www.w3.org/TR/SVG/types.html#ColorKeywords
17:23:55 <AnMaster> quite a massive list
17:23:56 <scarf> and no, I didn't add a turing machine
17:24:00 <MissPiggy> scarf well that's exciting! when does it come out?
17:24:07 <scarf> MissPiggy: no release date yet, but they're getting closer
17:24:18 <augur> T_T
17:24:22 * augur runs away crying
17:24:26 <scarf> they're in a string freeze for internationalisation at the moment
17:24:38 <scarf> and if they're like a typical open source project, that's getting near a release
17:25:01 <scarf> umm, it's a rather less strict sort of string freeze than typically, though
17:25:03 <Deewiant> AnMaster: Darn, I missed that; I just read the bit about having to support the CSS names
17:25:24 <AnMaster> Deewiant, well I don't know if it supports those embedded in css in the svg
17:25:30 <AnMaster> Deewiant, or just in the svg directly
17:26:23 <AnMaster> "The format of an RGB value in hexadecimal notation is a '#' immediately followed by either three or six hexadecimal characters. The three-digit RGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example, #fb0 expands to #ffbb00. This ensures that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on
17:26:23 <AnMaster> the color depth of the display."
17:26:24 <AnMaster> err
17:26:36 <AnMaster> "removes any dependencies on the color depth of the display"?
17:26:36 <Deewiant> Presumably in the SVG directly only
17:26:42 <AnMaster> what does that mean exactly
17:26:42 -!- kar8nga has quit (Ping timeout: 256 seconds).
17:26:43 <AnMaster> and how
17:27:28 <cpressey> I love the term "string freeze" for some reason. Sounds like it should be a kind of candy.
17:27:29 <AnMaster> Deewiant, CSS3 seems to have these extra ones
17:27:36 <AnMaster> but that is still a draft iirc
17:27:38 <AnMaster> http://www.w3.org/TR/css3-color/
17:27:44 <AnMaster> and also it says draft there
17:28:15 <AnMaster> Deewiant, so yeah you can't use those portably yet in CSS
17:28:33 -!- augur has quit (Ping timeout: 240 seconds).
17:29:31 * Sgeo has homework he needs to do NOW
17:29:36 <AnMaster> Sgeo, go do it then
17:29:38 <AnMaster> *shrug*
17:30:09 <AnMaster> Deewiant, anyway most of those named colours would expand rather than save space
17:30:45 <AnMaster> snow #fffafa
17:30:48 <AnMaster> err sure...
17:31:10 <AnMaster> snow varies widely and is in sunshine definitely extremely white
17:31:14 <AnMaster> more white than that
17:31:38 <AnMaster> also that was interesting
17:31:44 -!- Sgeo has quit (Quit: Homework time).
17:31:58 <AnMaster> the text I actually selected and copied was: "snow #FFFAFA"
17:32:07 <AnMaster> somehow it was lower cased when pasting
17:32:14 * AnMaster uses firebug on that thing
17:32:30 <AnMaster> table.x11colortable td.c {
17:32:30 <AnMaster> text-transform:uppercase;
17:32:30 <AnMaster> }
17:32:31 <AnMaster> heh
17:32:40 <AnMaster> but why
17:32:46 <AnMaster> and why wasn't it copied that way
17:37:25 -!- adam_d_ has joined.
17:37:26 <AnMaster> Deewiant, ^
17:37:51 <Deewiant> What?
17:37:59 <AnMaster> all of it
17:38:29 <Deewiant> text-transform is just how to display it, of course it should copy the text itself
17:39:07 <AnMaster> so a firefox bug there
17:39:27 -!- kar8nga has joined.
17:39:29 -!- kar8nga has quit (Client Quit).
17:40:14 <AnMaster> on the other hand I don't know if the spec says it should not be processed when copied
17:40:24 <Deewiant> No, it's not a bug.
17:40:29 <Deewiant> It does exactly what I'd expect.
17:40:29 <AnMaster> Deewiant, it isn't?
17:40:36 <AnMaster> Deewiant, why does it make sense
17:40:36 <Deewiant> And what I said it should.
17:40:41 <AnMaster> to not copy the text transform
17:40:41 -!- adam_d has quit (Ping timeout: 256 seconds).
17:41:04 <Deewiant> Because that's just a style note on how to display it
17:41:09 <Deewiant> It's not the text
17:41:09 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
17:41:20 <AnMaster> hm
17:46:15 -!- kar8nga has joined.
17:46:18 -!- kar8nga has quit (Client Quit).
17:46:29 <AnMaster> Deewiant, you know that mycology's TURT test is broken right?
17:46:36 <AnMaster> <rect x="-1" y="-1" width="3" height="3" style="fill:#000001;stroke:none"/>
17:46:36 <AnMaster> <circle cx="0" cy="0" fill="#000001" r="0.25"/>
17:46:36 <AnMaster> <circle cx="1" cy="1" fill="#000001" r="0.25"/>
17:46:54 <AnMaster> as in, if it wasn't for svg you couldn't even be sure the circles were there
17:46:58 <AnMaster> imagine it rendered to bmp
17:52:30 <Deewiant> Hmm, I thought it was white background with two dots
17:52:41 <Deewiant> Maybe it's the same bug in CCBI's colour stuff ;-)
17:52:48 <AnMaster> Deewiant, well I don't think the error is on my side
17:52:49 <Deewiant> But I seem to recall that !Befunge rendered it as such
17:53:03 <AnMaster> Deewiant, I don't have !befunge around to test with
17:53:41 <AnMaster> Deewiant, also I seem to recall that when I first implemented TURT in cfunge and found that the ccbi implementation was completely broken, it didn't ever use the bg colour
17:53:48 <AnMaster> it does nowdays but still...
17:54:22 <Deewiant> Sure it did
17:54:30 <AnMaster> Deewiant, back then? No
17:54:34 <Deewiant> I recall one bug being that it didn't "clear paper with colour", it just reset the bg colour
17:54:43 <AnMaster> Deewiant, reset it to what?
17:54:49 <Deewiant> To what was requested
17:54:50 <AnMaster> hm
17:54:52 <AnMaster> ah
17:54:55 <Deewiant> It just didn't overwrite the dots and paths etc
17:55:48 <AnMaster> Deewiant, I think efunge currently has the least buggy turtle implementation
17:55:56 <AnMaster> at least that I know of
17:57:42 <MissPiggy> wow I can not read python at all
17:58:02 <MissPiggy> looking at clue impl. and I am just like HUH??
17:58:50 <AnMaster> MissPiggy, it is somewhat compact python
17:58:55 -!- augur has joined.
17:59:03 <augur> o hai
17:59:05 <AnMaster> MissPiggy, and uncommonly it uses lambda
17:59:22 <AnMaster> for python that isn't quite as common normally as it is in that file
17:59:32 <AnMaster> same goes for map
17:59:59 <AnMaster> MissPiggy, the key to reading it is realising that indention defines the block
18:00:22 <MissPiggy> hehe
18:00:29 <MissPiggy> I know that much python but that's all
18:00:30 <AnMaster> MissPiggy, no {} or comma-vs-period or such
18:01:06 <AnMaster> MissPiggy, also python's OOP seems used in there
18:01:10 <oklopol> the implementation lacks abstraction in maaaany places, because most of the thing was coded while watching scrubs
18:01:35 <AnMaster> oklopol, scrubs?
18:01:45 -!- lament has quit (Ping timeout: 265 seconds).
18:01:46 <MissPiggy> oklopol is a bit scary
18:01:58 <MissPiggy> in terms of writing code that does miracles while not even looking
18:02:17 -!- lament has joined.
18:02:51 <augur> miss piggehhh
18:05:27 -!- kar8nga has joined.
18:05:30 -!- kar8nga has quit (Client Quit).
18:22:28 <AnMaster> Deewiant, there? Would you consider it allowed for FPDP/FPSP instructions to reflect on NaN and +/-inf?
18:22:46 <AnMaster> after all the spec doesn't define it to use IEEE semantics iirc
18:23:29 <Deewiant> IIRC the spec says something like "A (a b -- n) add fp numbers"
18:23:44 <AnMaster> Deewiant, yes but that doesn't define it to be IEEE floating point
18:23:52 <Deewiant> Yes that was exactly my point
18:24:07 <Deewiant> Like all of Mike's, there is practically no spec
18:24:10 <AnMaster> Deewiant, also does FPDP require two cells per value? I don't remember
18:24:37 <Deewiant> I'm not sure how Mycology will react to reflection on those though
18:26:01 <AnMaster> Deewiant, and FPDP spec doesn't say it has to be two cells
18:26:57 <Deewiant> Of course not, that's just an implementation detail for 32-bit funges
18:27:10 <Deewiant> (Who assume "double precision" = "64-bit")
18:28:08 <Deewiant> The fact that it uses the term "double precision" does sort of imply IEEE 754 semantics though, since double is an IEEE 754-1985 term
18:33:20 <fizzie> Deewiant: Alternatively, you could argue that it's supposed to use the platform's "standard" Fortran compiler's floating point formants, since "double" is also a FORTRAN term.
18:33:49 -!- augur has quit (Ping timeout: 276 seconds).
18:33:55 <Deewiant> D'oh
18:35:07 <fizzie> It's a silly name; "double what?" (Double the size of single, of course, but *still*...)
18:35:39 <cpressey> "I'd like a double bacon cheeseburger, please, with double interpreted as from IEEE 754-1985"
18:35:45 -!- augur has joined.
18:36:04 <fizzie> They'll give you a burger with 64 discrete bits of bacon.
18:36:24 <fizzie> Of which one is the sign bacon.
18:39:02 <scarf> !c printf("\u0082");
18:39:14 <EgoBot> Does not compile.
18:39:23 <scarf> !c printf("\u00c0");
18:39:26 <EgoBot> À
18:39:30 <scarf> !c printf("\u00c8");
18:39:31 <EgoBot> È
18:39:37 <scarf> !c printf("\u00a8");
18:39:38 <EgoBot> ¨
18:39:47 <Deewiant> fizzie: IEEE 754-2008 calls it binary64, which is a bit less silly.
18:41:20 <fizzie> Deewiant: Yes, but on the other hand a "binary64 bacon cheeseburger" is more silly.
18:42:03 <scarf> incidentally, why does unicodesnowmanforyou.com use javascript?
18:42:06 <scarf> it seems to work just as well without
18:42:40 <fizzie> I think the scripts there are just google-analytics code.
18:48:01 <AnMaster> I should encode it as tagged tuple BCD encoded 66 bit floating point (why? because 65 bits would make the single format 32.5 bits, which is quite hard to implement)
18:48:08 <AnMaster> I doubt mycology would like that
18:48:38 <scarf> AnMaster: why?
18:48:55 <AnMaster> scarf, because it would be a DS9K implementation
18:48:57 <AnMaster> doh
18:50:03 <AnMaster> scarf, or did you mean "why wouldn't mycology like that"?
18:50:20 <AnMaster> well, it would not have inf or NaN but would reflect on those to begin with
18:50:42 <AnMaster> heck technically the spec would allow me to change to any delta for those
18:52:17 <Deewiant> Just because the spec doesn't say you're not allowed to do something doesn't mean you should do it ;-P
18:53:21 <AnMaster> Deewiant, true. Still if I implemented it in efunge it will be as opaque values on stack and reflect on nan/inf
18:53:42 <AnMaster> I could do something like the "union with integer" trick, sure
18:53:47 <AnMaster> but I don't think I should
18:54:02 <AnMaster> it encourages bad programming practise in programs using FPSP/FPDP
18:54:04 <fizzie> Heh, funny motd from the shell server, when you interpret (like I did) the second part as a consequence of the first:
18:54:04 <fizzie> "Matlab Parallel Computing Toolbox has been installed for Matlab R2009b (latest version, run with 'matlab') and runs on any cluster machine or 64-bit Linux workstation. Scanning and sending documents from photocopier in corridor B works now."
18:54:08 <AnMaster> like hard coding constants
18:54:12 <MissPiggy> ;_;
18:54:14 <AnMaster> which is unreliable
18:54:20 <AnMaster> and depend on endianness and various stuff
18:54:26 <MissPiggy> augur
18:54:46 <AnMaster> fizzie, :D
18:55:51 <Gregor> fizzie: I write all my scanning software in matlab.
18:58:00 <Wareya> I can't imagine an object balancing a little as possible in four dimensions
18:58:13 <Wareya> like in 2d you have something halfway off a cliff
18:58:36 <Wareya> and in 3d you have something 1/2 off a corner in both directions
18:58:43 <Wareya> so it's on by only 1/4
18:59:04 <MissPiggy> imagine things balancing on a point
18:59:07 <Wareya> in 4d you have something 1/6 or 1/8 off an object
18:59:11 <MissPiggy> a line, a plane, a cube....
18:59:20 <Wareya> yes
18:59:22 <Wareya> I've done that
18:59:39 <cpressey> Uh, if only 1/4 of the surface area of a book is supported by a table under it... well, that doesn't sound balanced to me...
18:59:43 <Wareya> I made this earlier for someone else: http://img693.imageshack.us/img693/5504/lkjsdkf.png
18:59:45 -!- Pthing has joined.
18:59:48 <Wareya> cpressey, it is
19:00:00 -!- adam_d_ has quit (Ping timeout: 265 seconds).
19:00:06 <Gregor> cpressey: If the table is round with a hole in the middle, and the book's edges are all supported by the ring of the table, then it 's perfectly balanced :P
19:00:29 <Wareya> gregor: I'm dealing with solid objects
19:00:43 <cpressey> Oh great, now tables with holes in them are gaseous.
19:00:56 <Wareya> I meant convex
19:00:57 <Wareya> :P
19:01:00 <cpressey> I should probably break from lunch before these unit tests drive me crazy.
19:01:03 <Gregor> But yeah, that puck would not stay on the table, 1/4 supported.
19:01:05 <cpressey> or for lunch, even
19:01:16 <Wareya> gregor: it would approach 1/4
19:01:27 <Gregor> Ahhh, 1/4 is the tipping point you're saying.
19:01:31 <Wareya> yes
19:01:39 <Wareya> or right behind it
19:02:25 <Wareya> but I can't imaging that king of interaction on 4D
19:02:28 <Wareya> imagine*
19:02:33 <Wareya> kind*
19:02:41 <Wareya> in*
19:02:53 <cpressey> Well, I just tried it with a pad of paper, and, yeah, I guess 1/4 is the approachable value for tipping.
19:03:03 <Wareya> great
19:03:53 <Wareya> I'm not sure if the approachable value in 4D is 1/6 or 1/8
19:05:04 <cpressey> I think 1/8
19:05:25 <Wareya> I would think so too
19:05:33 <Wareya> but then the interaction is happening on a 3D surface
19:07:30 <Wareya> it could either be 1/2^surfacedimensions or 1/(dimension-1)^dimension
19:07:36 <Wareya> er
19:07:50 <Wareya> *dimension
19:08:01 <Wareya> but I assume without testing that those are the same?
19:19:58 <Ilari> I think 1/8 too (1/2^d, where d is number of dimensions in contact surface).
19:21:02 <Wareya> Ah, I meant 1/d*2 - d being the contact surface's scope
19:21:54 <Wareya> rather than 1/(dm-2)^dm
19:34:59 -!- adam_d_ has joined.
19:40:09 -!- sshc has quit (Quit: leaving).
19:40:09 -!- sshc_ has quit (Quit: leaving).
19:40:16 -!- sshc has joined.
19:46:56 -!- FireFly has joined.
19:51:20 <oklopol> what are you talking about?
19:51:35 <oklopol> tipping point?
19:52:26 <Wareya> yes
19:52:43 <oklopol> oh picture was relevant
19:52:58 -!- BeholdMyGlory has joined.
19:53:45 <oklopol> so what does "approaches 1/4" mean
19:54:13 <Wareya> you can approach 1/4 before I woudln't know what happens between falling and staying on
19:54:18 <Wareya> wouldn't*
19:54:27 <oklopol> approach 1/4 in what sense?
19:54:34 <oklopol> what approaches 1/4?
19:54:34 <Wareya> contact
19:54:44 <Wareya> the contact area
19:54:45 <oklopol> surface area of the object?
19:54:51 <oklopol> that's in contact with the table
19:54:57 <Wareya> yes
19:55:09 <Wareya> the surface in contact must be 2D
19:55:18 <cpressey> It's because the centre of gravity of the object must go off the table if anything less than 1/4 of the surface area is supported
19:55:29 <Wareya> yes
19:55:43 <Wareya> we're assuming an object like a perfectly balanced disk
19:55:44 <oklopol> the surface in contact must be 2d?
19:55:46 <oklopol> what...
19:55:50 <cpressey> right, uniform density
19:56:00 <scarf> cpressey: what if the object is, say, a really large disc, with a relatively small hole in the middle that's still larger than the table, with a thin beam across the middle that lies on the table?
19:56:11 <scarf> that way, the centre of gravity is over the table even though most of the object isn't
19:56:42 <oklopol> and we assume the table is what shape?
19:56:42 <cpressey> scarf: That object is not uniform density, then, I think
19:56:45 <Wareya> why have a hold in the middle latger than the table?
19:56:50 <scarf> cpressey: it is, but not convex
19:56:51 <Wareya> hole*
19:57:00 <scarf> Wareya: ooh, good point, that isn't needed
19:57:07 <scarf> you could just have a disc larger than the table
19:57:18 <scarf> so I suspect that the missing assumption is that the table is infinitely large
19:57:26 <cpressey> Um, yes.
19:57:35 <Wareya> I'm assuming that the table is larger than the object, actually
19:57:36 <cpressey> Or at least that the object fits entirely on the table
19:57:39 <scarf> I love that sort of assumption
19:57:46 <Wareya> yes
19:58:03 <Wareya> I'm thinking of a very specific kind of case; like the plate I have on the corner right here
19:58:21 <oklopol> is the edge of the table a (d-2)-dimensional line?
19:58:46 <Wareya> it doesn't matter as long as the table is flat and its coners are square
19:58:50 <oklopol> because then obviously 1/2 of the object must be supported
19:59:04 <Wareya> and I'm on the corner, not the edge
19:59:30 <oklopol> ohh.
19:59:33 <oklopol> now i get the picture
19:59:51 <oklopol> well let's see
20:00:00 <cpressey> scarf: I'm also assuming a 90 degree corner.
20:00:19 <cpressey> A 60 degree corner, well I'm not sure what fraction has to be supported, but it's less than 1/4.
20:00:22 <oklopol> okay it's obviously 1/8 in four dimensions
20:00:22 <cpressey> It could be worked out
20:01:22 <oklopol> the surface is a ball one eight of which must be inside the cube
20:01:32 <oklopol> eighththth
20:01:48 <Wareya> it's 1/8 or 1/6
20:02:01 <oklopol> can't really visualize 5 dimensions, but it clearly grows exponentially
20:02:02 <oklopol> 1/8
20:02:03 <cpressey> OK, if it's a disc, and a 60 deg corner, then 1/6. I was still thinking "book" though.
20:02:10 <AnMaster> <cpressey> Uh, if only 1/4 of the surface area of a book is supported by a table under it... well, that doesn't sound balanced to me... <-- you could have it balanced on a point in the middle. can't you?
20:02:13 <AnMaster> so
20:02:14 <Wareya> I'm thinking of the 4D case, though
20:02:19 <AnMaster> that means almost none of it is supported
20:02:24 <AnMaster> and yet it is balanced
20:02:30 <AnMaster> Wareya, right?
20:02:31 <Wareya> it's not none
20:02:31 <oklopol> in four dimensions, 1/8
20:02:33 <Wareya> it's a singularity
20:02:46 <Wareya> or...
20:02:49 <Wareya> yeah, actually
20:02:54 <Wareya> I'd call the 1/4 a singularity
20:03:14 <Wareya> or, infinitely before 1/4
20:03:23 <Wareya> I can't tell...?
20:03:29 <cpressey> Limit, maybe
20:03:40 <oklopol> you do realize this is just whether the center is on the surface?
20:03:52 <cpressey> oklopol: Yes, well I mentioned that anyway
20:04:08 <oklopol> the 1/(2^(d-1)) thing just comes from not just having the point, but a certain sort of cube around it
20:04:10 <AnMaster> Wareya, am I not right about the balance in middle thing?
20:04:32 <cpressey> AnMaster: the other assumption: table is larger than object
20:04:58 <cpressey> rather, objects fits entirely on table
20:05:07 <AnMaster> ah
20:05:22 <Wareya> http://img693.imageshack.us/img693/5504/lkjsdkf.png
20:05:30 <AnMaster> cpressey, what if the object is heavier on one side
20:05:35 <AnMaster> then it could stick out more
20:05:36 <cpressey> uniform density
20:05:40 <AnMaster> oh that too
20:05:46 <AnMaster> wasn't clearly stated at the beginning!
20:05:50 <oklopol> yeah cpressey, what if we make the problem even more boring
20:05:53 <Wareya> oh well* :D
20:05:59 <Wareya> ?
20:06:01 <cpressey> It's in your scrollback and/or the log, just not at the beginning
20:06:08 <AnMaster> Wareya, also what if we don't have a equal height object
20:06:09 <AnMaster> say
20:06:11 <AnMaster> a cone
20:06:19 <oklopol> (that was to generalize what AnMaster said)
20:06:22 <cpressey> oklopol: the more interesting the problem, the more boring the result :)
20:06:23 <Wareya> it needs to have infinite rotational symmetry
20:06:23 <AnMaster> then couldn't it stick out more than half
20:06:27 <Wareya> and it must be concave
20:06:27 <AnMaster> a flat cone of course
20:06:32 <Wareya> er
20:06:33 <Wareya> convex
20:06:35 <AnMaster> Wareya, and a flat top?
20:06:44 <Wareya> whatever :D
20:06:47 <oklopol> cpressey: i prefer "the more complicated the problem, ..."
20:06:49 -!- lament has quit (Ping timeout: 264 seconds).
20:07:02 <AnMaster> Wareya, does it need a flat top or not?
20:07:06 <AnMaster> and a flat bottom
20:07:10 <Wareya> oklopl, I take issues and I simplify parts of them to try to disprove things
20:07:17 <Wareya> it needs a 2D bottom
20:07:25 -!- lament has joined.
20:07:25 <Wareya> polgonal bottom
20:07:27 <Wareya> lsdkjasd
20:07:31 <Wareya> polygonal bottom
20:07:46 <AnMaster> Wareya, so not a perfect circle?
20:07:52 <AnMaster> as in, that picture
20:08:03 <Wareya> even if you need to ignore the "infinite number or sides" idea or a polygon
20:08:08 <AnMaster> ah
20:08:16 <Wareya> and it doesn't need infinite rotational symmetry, it needs 90 degree rotational symmetry
20:08:27 <AnMaster> Wareya, well this is boring. Too specific problem
20:08:37 <Wareya> okay
20:08:47 <AnMaster> which agrees with oklopol's correction of cpressey's suggestion
20:08:54 <AnMaster> Wareya, I don't know the 4D thing either
20:09:00 <Wareya> k
20:09:08 <AnMaster> Wareya, but do a drawing in 5D for me :)
20:09:27 <Wareya> http://img651.imageshack.us/img651/3928/sagitor.png
20:09:47 <AnMaster> what is that?
20:09:53 <oklopol> 4d is pretty easy to visualize, because you just need to look at a 3d-segment
20:10:01 <oklopol> i mean the 4d case is
20:10:12 <AnMaster> oklopol, yeah I have seen a 4D screensaver. Confusing!
20:10:14 <Wareya> then the collision is 3D
20:10:20 <Wareya> which I can't stand :(
20:10:28 <Wareya> stand -> deal with
20:11:19 <AnMaster> Wareya, hm. isn't it basically that one specific point needs to be supported
20:11:30 <AnMaster> not sure what the name of it is
20:11:34 <Wareya> the object must be smaller than the static one
20:11:40 <cpressey> AnMaster: "center of gravity"
20:11:44 <AnMaster> cpressey, right
20:11:50 <AnMaster> could only remember the Swedish word
20:11:52 <oklopol> AnMaster: it's not that hard to visualize the 3d projection of a 4d object, and the screensaver would project it even further
20:11:56 <Wareya> and the static one should be analogous to a rectangle
20:12:11 <AnMaster> oklopol, was some hypercube turning iirc
20:12:16 <Wareya> oklopl: I can deal with 4D, but not collision inside of it.
20:12:23 <oklopol> but you can also "visualize" 4d using color and density etc
20:12:30 <Wareya> yes
20:12:34 <oklopol> AnMaster: how's that confusing
20:12:40 <AnMaster> Wareya, anyway yes I think it basically needs center of gravity to be supported
20:12:49 <AnMaster> oklopol, not everyone finds 4D easy to think in!
20:12:54 <Wareya> that's not what I'm wondering, though.
20:12:54 <AnMaster> oklopol, not everyone is like you
20:12:56 <AnMaster> okay?
20:13:06 <AnMaster> Wareya, well then what exactly are you asking?
20:13:22 <Wareya> I described it enough
20:13:23 -!- gm|lap has joined.
20:13:25 <oklopol> well i mean it's just a 2d projection of the movement
20:13:32 <AnMaster> Wareya, how much of the thing needs to be supported
20:13:45 <AnMaster> Wareya, well "whatever is enough to cover the center of gravity" is my answer
20:14:00 <cpressey> It should be fairly easy to generalize the concept of center of gravity of a uniform-density, symmetrical object, to /n/ dimensions.
20:14:11 <AnMaster> cpressey, yes quite
20:14:14 <cpressey> It mean, it's the geometric center.
20:14:58 <oklopol> now the question is, do we need a vector space, or could we also do it for measurable metric spaces?
20:15:23 <cpressey> Mmmmmmmmmaybe.
20:16:01 <oklopol> a point is central if it's close to all the other points, and we can measure the sets of points at distance > d, so we can make this precise
20:16:05 <cpressey> Since we apparently don't find 4D difficult to visualize :)
20:16:13 <cpressey> difficult *enough*, I mean
20:16:53 <oklopol> yeah 4d is for kids
20:17:35 <AnMaster> oklopol, so do it in 93d
20:17:42 <oklopol> do what?
20:17:54 <AnMaster> oklopol, anything at all
20:18:02 <AnMaster> Wareya, btw what do you need this for?
20:18:54 <oklopol> so let's see, in n dimensions, we'd take the z0 such that the integral of (z - z0)^(smth) over the object is as small as possible?
20:19:02 <oklopol> that's at least some sort of center
20:19:26 <Wareya> it was just an idea
20:19:36 <Wareya> I was wondering what the fraction would be for the fourth dimension
20:19:40 <Wareya> whether it were 1/6 or 1/8
20:20:11 <Wareya> in the specific case of a shape with a convex, 2d base and 90 degree rotational symmetry along its vertical access
20:20:16 <AnMaster> Wareya, now figure it out for 1d (I'm not even sure what it would mean there)
20:20:24 <Wareya> 1d is 1
20:20:51 <Wareya> you can't have an object rotate in 1 dimension
20:20:59 <AnMaster> indeed
20:21:15 <Wareya> 1/1, 1/2, 1/4, 1/8
20:21:22 <Wareya> so it would make sense that it's 1/8
20:21:43 <oklopol> the sequence is 1/2^n as mentioned
20:23:26 <oklopol> the surface touching the table is (d-1)-dimensional, consider the unit ball in d-1 dimensions, the table surface will be {(x1,...,xn) | xi > 0 for all i}, that is, the infinite cube spanned by the positive axes.
20:23:39 <oklopol> so we have d-1 axes, and we take half of each
20:23:50 <oklopol> => 1/2^(d-1)
20:24:22 <Wareya> it would be easier to use the analog of a cyninder to the dimension
20:24:29 <oklopol> what?
20:24:32 <Wareya> than the analog of a sphere
20:24:34 <AnMaster> oklopol, unit ball as in unit circle?
20:24:38 <Wareya> http://img693.imageshack.us/img693/5504/lkjsdkf.png
20:24:42 <AnMaster> shouldn't that be unit sphere?
20:24:44 <oklopol> the disc is uniform, so we just need to consider the surface touching the table
20:24:47 <AnMaster> or maybe not
20:24:49 <oklopol> which is a ball
20:24:58 <Wareya> if you use a sphere, the surface would be a singularity
20:25:01 <Wareya> and... you know
20:25:32 <cpressey> Wareya: it's a balance tipping point, you're dealing with a limit anyway.
20:25:43 <Wareya> yes
20:25:49 <Wareya> and if you deal with a limit and a singularity ,then what?
20:25:57 <oklopol> no, it's not a unit sphere. consider the concrete dimensions: in 2d we have a line as the unit ball of d-1 dimensions, in 3d, we have a 2d disc, in 4d, we have a normal 3d ball
20:25:59 <oklopol> etc
20:26:14 <Wareya> that works
20:26:34 <cpressey> "singularity" is just another way to say "limit", isn't it?
20:26:39 <Wareya> no
20:26:49 <Wareya> a singularity uses a limit to describe itself
20:26:57 <cpressey> Where is the "singularity" in this sphere, then?
20:27:05 <oklopol> Wareya: there's no "analog of sphere" or "analog of cylinder", by a d-1 dimensional ball i mean the natural embedding of a d-1 dimensional ball into a d dimensional space
20:27:22 <Wareya> the contact area of a 3D sphere against a 3D rectangular prism can only be a singularity
20:27:26 <oklopol> so in 3d, you'd have a disc, in 2d, you'd have an etc
20:27:26 <Wareya> unless they intersect
20:27:40 <Wareya> oklopol, okay
20:27:45 <oklopol> so, what the fuck is a singularity?
20:27:51 <Wareya> size n
20:27:55 <Wareya> lim(n->0)
20:28:17 <cpressey> Wareya: so the contact area is lim(n->0), which sounds like a limit to me
20:28:18 <oklopol> on reals that limit is 0
20:28:27 <Wareya> the "singularity" of a computer screen is a pixel
20:28:49 <Wareya> of the scope of a*
20:28:49 <oklopol> sounds like some sort of intuitive nonstandard analysis
20:28:59 <oklopol> aka bullshit
20:29:04 <oklopol> :)
20:29:09 <Wareya> :D
20:29:34 <Wareya> http://en.wikipedia.org/wiki/Mathematical_singularity
20:30:27 <cpressey> Nothing discontinuous in the sphere/table setup, though.
20:30:44 <oklopol> why do you need a "singularity", can't you just say the object's center is exactly at the tip of the corner
20:30:46 <Wareya> if you have two colliding singularities, what do you do?
20:30:58 <Wareya> treat them as spheres, boxes?
20:31:27 <oklopol> Wareya: these singularities are not actually well-defined mathematical objects
20:31:39 <oklopol> well the ones the article talks about are
20:31:48 <Wareya> neither is an infinitely small point
20:31:58 <Wareya> which the surface of intersection with a sphere is
20:32:08 <oklopol> 2infinitely small point"?
20:32:11 <oklopol> *"
20:32:18 <Wareya> yes
20:32:27 <oklopol> in any sensible measure of volume, a set containing just one point has measure 0
20:32:31 <Wareya> that's my use of the word in this case
20:32:35 <oklopol> so all points are infinitely small
20:32:51 <cpressey> Yet some points are infinitely smaller than others!
20:32:58 <oklopol> so why not just put the disc on the corner
20:33:10 <Wareya> that's what I was using to begin with
20:33:44 <MissPiggy> oklopol what's bullshit about that
20:35:03 <cpressey> MissPiggy, I prefer the term "science fiction". Whereever there is a singularity, there is a paradox caused by execessive quantum flux.
20:35:27 <oklopol> because people who talk about singularities in that sort of context don't have any idea what they're talking about
20:35:43 <cpressey> I have a proof for this, but my wormhole ate it.
20:35:53 <Wareya> oklopol, it's another way of using the word.
20:37:13 <oklopol> i mean what the fuck does "lim n-->0" mean, the point that n approaches as n approaches 0?
20:37:20 <oklopol> that sounds sensible
20:37:27 <MissPiggy> cpressey hehe
20:37:36 <Wareya> n is its size
20:37:46 <Wareya> the size of the OBJECT that we are calling a singularity
20:38:04 <MissPiggy> mesh size?
20:38:09 <oklopol> so do we have some sort of measure on these objects?
20:38:13 <MissPiggy> nonstandard analysis is just as much bullshit as ZFC
20:38:15 <oklopol> what's the size of 1? is it 1?
20:38:25 <oklopol> MissPiggy: there's nothing bullshitty about nonstandard analysis
20:38:33 <MissPiggy> (since there is an algorithm to translate proofs back)
20:38:35 <oklopol> there's a lot of bullshit about people doing it without knowing what it is
20:38:39 <Wareya> oklopol, what is the unit of "1"?
20:38:43 <MissPiggy> souds like all caluculus oklopol
20:38:52 <MissPiggy> people doing it all without knowing what it means
20:38:55 <MissPiggy> mostly
20:39:01 <oklopol> yeah, that's bullshit too
20:39:13 <AnMaster> <cpressey> I have a proof for this, but my wormhole ate it. <-- no no "but the singularity is too small to contain it!
20:39:15 <AnMaster> "
20:39:18 <oklopol> well sure, they're memorizing useful algorithms
20:39:27 <oklopol> but i mean for a mathematician
20:39:33 <scarf> AnMaster: ok, that's actually a good joke
20:39:39 <cpressey> AnMaster: Um... it was a very small proof?
20:39:58 <AnMaster> cpressey, -_-
20:40:03 <AnMaster> Fermat joke
20:40:18 <cpressey> Lost on me, sorry.
20:40:24 <cpressey> OH
20:40:27 <oklopol> no it isn't
20:40:34 <oklopol> i mean you have to know the story
20:40:35 <cpressey> Hah.
20:40:51 <scarf> I liked both cpressey's original, and AnMaster's correction
20:40:58 <scarf> the correction wouldn't have been funny without the original joke
20:41:44 <Wareya> lol
20:41:55 <AnMaster> scarf, you could have used the corrected one in place of the original
20:41:58 <oklopol> Wareya: i assumed we were talking about a vector space, if the size of a vector is its length, then obviously the only vector whose length is smaller than any positive number is the zero vector.
20:42:12 <oklopol> obviously = by definition
20:42:18 <scarf> the original was funny too, though, and doing them in the other order wouldn't have worked
20:42:19 <Wareya> it's not vector space
20:42:28 <AnMaster> scarf, true
20:42:29 <oklopol> then what is it?
20:42:31 <Wareya> it's real space - the one we don't know how to define
20:42:35 <AnMaster> scarf, but just doing one would have worked
20:42:37 <oklopol> oh
20:42:42 <oklopol> that's discreete afaik
20:42:44 <oklopol> *discrete
20:42:47 <Wareya> okay
20:42:47 <scarf> AnMaster: yes, but it wouldn't have been as funny cumulatively
20:42:50 <AnMaster> by the way
20:42:51 <scarf> two jokes are better than one
20:42:52 <oklopol> and who cares
20:42:54 <AnMaster> wormholes
20:43:01 <AnMaster> how does that interact with gravity
20:43:02 <AnMaster> I mean
20:43:14 <Wareya> AnMaster: The higssdafjkshdfjklsdh boson did it
20:43:23 <AnMaster> imagine you have a wormhole from somewhere near earth surface to somewhere on the moon
20:43:30 -!- Gracenotes has quit (Ping timeout: 245 seconds).
20:43:32 <AnMaster> would that give earth gravity at the moon?
20:43:37 <AnMaster> or what the heck would happen
20:44:20 <cpressey> AnMaster: since physics seems to happily accept the idea that gravity means curved space, ...
20:44:22 <Wareya> gravity is a field effect
20:44:38 <Wareya> is it a distortion of an object's inertia
20:44:45 <AnMaster> cpressey, yes. But what would happen here
20:44:57 <cpressey> AnMaster: well, a wormhole is curved space, too, right?
20:45:07 <cpressey> Therefore wormholes are a kind of gravity.
20:45:11 <AnMaster> hm
20:45:20 <AnMaster> cpressey, holes that changes the topology too iirc
20:45:42 <cpressey> So they're gravity++
20:46:00 <AnMaster> heh
20:46:08 <AnMaster> cpressey, so everyone would get crushed in wormholes?
20:47:03 <cpressey> It seems "reasonable" that it would be much easier to "fall" into one than to get out, anyway.
20:47:45 <cpressey> I mean, if it goes straight from Earth to Earth's moon, that's one hell of a curve.
20:47:47 <Wareya> Yet things get out.
20:47:57 <AnMaster> so they? I have yet to see one
20:48:02 <AnMaster> s/so/do/
20:48:52 <Wareya> "Under the theory of quantum mechanics black holes possess a temperature and emit Hawking radiation.
20:48:56 <Wareya> "
20:48:59 <Wareya> http://en.wikipedia.org/wiki/Black_hole
20:49:01 <Wareya> lol
20:49:03 <AnMaster> oh that yes
20:49:17 <AnMaster> but a wormhole wouldn't have a event horizon iirc
20:49:39 <Wareya> a black hole contains a wormhole
20:49:42 <Wareya> from what I've read
20:50:18 <AnMaster> hm
20:53:35 -!- oklopol has quit (Ping timeout: 265 seconds).
20:54:57 -!- charlls has joined.
21:01:36 <cpressey> I don't believe in black holes.
21:01:51 -!- augur has quit (Read error: Connection reset by peer).
21:02:50 -!- augur has joined.
21:07:25 -!- augur has quit (Ping timeout: 264 seconds).
21:12:13 <lament> Do you believe in the power of voodoo?
21:12:59 -!- augur has joined.
21:14:08 <AnMaster> "Any undocumented functions in [the module] string should not be used." <-- okay, why do they need to point that out?
21:18:39 <cpressey> I wonder if they've documented the undocumented functions yaws uses, yet
21:22:50 <cpressey> Undocumented voodoo black holes.
21:27:22 <cpressey> That's where the flying nose demons live.
21:29:55 <AnMaster> cpressey, what are those functions yaws uses?
21:30:05 <AnMaster> I assume you mean the erlang yaws
21:33:18 <cpressey> Yes. It uses some Erlang-internal mechanism to parse HTTP headers, iirc.
21:34:51 <AnMaster> cpressey, oh?
21:39:33 -!- oerjan has joined.
21:40:20 <cpressey> AnMaster: ... yes.
21:40:48 <AnMaster> hm
21:43:16 <oerjan> absolutely not!
21:43:26 * oerjan now goes to find out what he was denying
21:45:48 <AnMaster> night →
21:46:15 <scarf> oerjan: that erlang has an undocumented function to parse HTTP headers
21:46:32 <oerjan> ah.
21:46:56 <oerjan> well that would _clearly_ be nonsense, since i read here the other day that ericsson document _everything_
21:48:15 <cpressey> They even document the fact that you're not supposed to use undocumented functions.
21:48:20 <oerjan> <scarf> theory: Google bought Youtube /just/ for leverage in getting rid of IE6
21:48:49 <oerjan> isn't the IE6 problem mostly about all the business sites using them, and wouldn't they like to _block_ youtube anyways
21:48:51 * scarf waits for oerjan's opinion, and/or a terrible pun
21:48:55 <oerjan> *it
21:48:59 <scarf> oerjan: hmm, yes
21:51:05 <oerjan> 08:29:21 <AnMaster> cpressey, what about the one of ick?
21:51:06 <oerjan> 08:29:39 <AnMaster> it looked pretty okay considering the language it is supposed to parse iirc
21:51:17 <oerjan> isn't ick's parsing sort of hyper-advanced
21:51:42 <scarf> parsing INTERCAL is hard
21:51:46 <oerjan> (going by vaguely absorbed discussions here)
21:52:01 <scarf> CLC-INTERCAL's parsing is crazier, I think it's fully nondeterministic or something like that
21:52:18 <pikhq> oerjan: Nowadays, yes. *However*, ending IE6 support on Youtube might finally get it into the beancounters' bean-sized brains that IE6 is ancient.
21:55:39 -!- FireFly has quit (Quit: Leaving).
21:55:47 -!- kar8nga has joined.
21:55:50 -!- kar8nga has quit (Client Quit).
21:56:49 -!- oklopol has joined.
21:57:15 <oerjan> ah oklopol
21:57:23 <MissPiggy> an oklopol
21:57:56 <oerjan> beware of the okloclones
22:05:53 <Gregor> on oklopol
22:09:59 <cpressey> ol' oklopol
22:11:22 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:16:00 <oerjan> 12:49:39 <Wareya> a black hole contains a wormhole
22:16:30 <oerjan> i've read that it contains a singularity
22:17:30 <oerjan> and that wormholes are very hard to stabilize, and tend to pinch off into singularities
22:21:28 <charlls> wormholes cannot be stable because they need either exotic matter or dark energy
22:22:11 <oerjan> yeah
22:24:56 <tombom> im a asrophisicist let me answer yourn question
22:25:19 <tombom> theyre very stable
22:26:24 <oerjan> i may not be an astrophysicist, but i've read enough to suspect you're trolling
22:26:41 <Ilari> OTOH, creating or destroying wormhole between two points in same space would involve topology change...
22:26:52 <tombom> HOW ON EArth did you guess that
22:27:26 <oerjan> tombom: because you are directly contradicting the wikipedia articles i browsed minutes ago?
22:27:55 <tombom> yeah that was sarcasm as well, i thouight my terrible spelling might have been a clue
22:28:05 <tombom> i don't know, maybe scientists are renowned for terrible spelling
22:28:19 <oerjan> tombom: i was _trying_ to ignore that, i didn't remember whether you were a dyslexic
22:28:40 <Ilari> And energies related to topology changes might be very high. Magnetic monopole is thought to be particle related to spacetime topology and have mass somewhere on order of 10^16 GeV/c^2...
22:28:44 <tombom> you're an incredibly generous person
22:29:08 <oerjan> why thank you
22:38:56 -!- tombom has quit (Quit: Leaving).
22:40:04 -!- augur has quit (Ping timeout: 256 seconds).
22:49:14 -!- oklopol has quit (Ping timeout: 246 seconds).
22:51:56 -!- charlls has quit (*.net *.split).
22:51:56 -!- adam_d_ has quit (*.net *.split).
22:51:56 -!- Pthing has quit (*.net *.split).
22:51:56 -!- scarf has quit (*.net *.split).
22:53:46 -!- charlls has joined.
22:53:46 -!- adam_d_ has joined.
22:53:46 -!- Pthing has joined.
22:53:46 -!- scarf has joined.
23:01:15 -!- adam_d_ has quit (Quit: Leaving).
23:03:23 -!- madbr has joined.
23:23:05 -!- augur has joined.
23:24:33 -!- sshc has quit (Ping timeout: 276 seconds).
23:28:54 -!- songhead95 has joined.
23:31:55 -!- songhead95 has left (?).
23:33:16 -!- songhead95 has joined.
23:34:19 -!- songhead95 has left (?).
23:34:32 -!- songhead95 has joined.
23:34:48 -!- sshc has joined.
23:35:38 -!- coppro has joined.
23:35:42 -!- sshc has quit (Client Quit).
23:35:49 -!- sshc has joined.
23:37:12 <songhead95> Hello
23:39:11 <scarf> hi
23:39:38 <songhead95> Is anyone ever on the brainfuck chan anymore?
23:40:15 <scarf> probably not
23:40:25 <scarf> this one's used for all esolang discussion nowadays, it seems
23:40:33 <songhead95> Great language.
23:41:38 <songhead95> When I made a language, I had to make it cell based
23:41:55 <songhead95> So It would be brainfucky
23:49:43 -!- cpressey has left (?).
23:52:22 -!- songhead95 has quit (Quit: songhead95).
23:53:00 -!- son_ has joined.
23:56:27 -!- son_ has quit (Client Quit).
23:57:20 -!- son_ has joined.
23:59:05 -!- kwertii has joined.
23:59:57 -!- son_ has left (?).
2010-02-25
00:01:29 <Gregor> Frankly, you'll find people more interested if you make something more bizarre.
00:09:37 <MissPiggy> yes!
00:10:28 <oerjan> what we need is a language based on _living_ cells
00:10:40 * MissPiggy skimmed a book on that
00:12:52 <lament> oerjan: we'll call it... brainfuck!
00:13:39 <puzzlet> brainfuck on a living brain?
00:14:06 <oerjan> the cells will have to divide, naturally
00:14:56 <oerjan> it will be an imperative language
00:22:03 <Gregor> Idonno, something about cell division makes me think of evaluating expressions ... not sure why :P
00:22:37 <oerjan> no, it must definitely be imperative.
00:34:34 * pikhq has done even more ridiculous things in the name of functional C programming.
00:35:04 <pikhq> I made my lambda macros use blocks. Now, they're only macros so that I can force the damned things to go through Boehm GC.
00:39:55 -!- charlesq__ has joined.
00:42:18 -!- charlls has quit (Ping timeout: 265 seconds).
00:49:04 -!- charlesq__ has quit (Ping timeout: 265 seconds).
01:03:29 -!- songhead95 has joined.
01:03:42 -!- charlls has joined.
01:05:18 -!- augur has quit (Ping timeout: 276 seconds).
01:06:50 -!- Oranjer has joined.
01:06:58 <Oranjer> hello!
01:10:46 <songhead95> HELLO
01:11:08 <songhead95> BYE
01:11:09 -!- songhead95 has left (?).
01:13:11 <Oranjer> awwww
02:31:41 <Wareya> hi
02:32:22 <Oranjer> hello!
02:32:59 -!- augur has joined.
02:34:47 <Gregor> Analysis of Noise and Audio Library and Sound Exchange for X11
02:35:11 <Gregor> I shall now write this, and submit it (as its acronym) to Google Code.
02:37:35 <MissPiggy> WHAT IF WOLFRAM ALPHA GOES SINGULAR?
02:38:10 <MissPiggy> http://www.wolframalpha.com/input/?i=can+entropy+be+reversed%3F
02:38:12 * MissPiggy giggles
02:38:42 <coppro> locally, yes; globally, no
02:38:50 * oerjan bets on "Insufficient data for meaningful answer"
02:39:43 * oerjan wins 1 polka-dot panda
02:41:37 <Oranjer> I'm glad I have read that short story
02:41:53 * oerjan waits for eliezer yudkowsky to smack coppro for suggesting a singular AI can be less than global
02:42:12 <coppro> wait what?
02:42:35 <oerjan> well what _else_ would you mean?
02:42:54 <oerjan> oh entropy
02:43:31 <Wareya> _lol_
02:43:37 <Wareya> this underlines
02:43:40 <Wareya> I'm scared
02:43:57 <coppro> it's your client
02:43:58 <oerjan> Wareya: it's a client thing
02:44:07 <oerjan> *bold*
02:44:12 <Wareya> *.*
02:44:21 <Wareya> I've always used ^b for bold
02:44:31 <Wareya> and ^u for underlines
02:44:59 <oerjan> Wareya: this channel censors colors, at least it used to.
02:45:49 <oerjan> testing
02:46:18 <MissPiggy> /italic/
02:46:19 <oerjan> right, the ^b's didn't show up in the logs
02:46:27 <Wareya> ^b
02:46:37 <oerjan> MissPiggy: not shown any special in my client
02:46:48 <Wareya> nor mine
02:46:54 <Wareya> at least, not the terminal
02:47:49 <oerjan> Wareya: by logs i mean the lines in the topic. you cannot actually see whether the irc server accepts your _own_ control codes directly
02:48:00 <oerjan> *link in the topic
02:48:15 <Wareya> I know
02:50:53 <oerjan> i suppose the client could try to show it according to the channel mode though, mine (irssi) doesn't.
02:51:00 -!- Sgeo has joined.
02:56:17 -!- uorygl has joined.
02:57:49 -!- Wareya has quit (Ping timeout: 264 seconds).
02:58:05 -!- Wareya has joined.
03:11:41 -!- Pthing has left (?).
03:13:57 <Oranjer> goodnight!
03:14:05 <uorygl> Good night.
03:14:08 -!- Oranjer has left (?).
03:23:52 -!- Sgeo_ has joined.
03:27:36 -!- Sgeo has quit (Ping timeout: 265 seconds).
03:37:10 -!- oerjan has quit (Quit: Good night).
03:51:51 -!- MissPiggy has quit (Quit: Lost terminal).
04:36:40 -!- amca has joined.
05:20:02 -!- oklopol has joined.
05:20:07 -!- oklopol has changed nick to oklofok.
05:23:46 <oklofok> glium
05:24:12 <amca> what's a glium?
05:28:47 <pikhq> Not a muilg
05:29:32 <oklofok> it's the singular of glia
05:29:49 <amca> Where can I buy these glium? Ebay?
05:31:32 <oklofok> :o
05:31:38 <oklofok> MY glium
05:31:40 <oklofok> MINE
05:31:55 <amca> Is it your precious?
05:32:08 <oklofok> i wanted to do some topology, but the lamp is depressed and i can't see :<
05:32:44 <amca> Sing the lamp a cheery song!
05:33:01 <amca> "Always look on the bright side of life" or something
05:33:19 <pikhq> Always look on the bright side of death!
05:33:22 * pikhq starts singing
05:34:20 <oklofok> i doubt it can be brought out of such a deep ression
05:34:59 <oklofok> guess i could just change the bulb
05:35:16 <oklofok> or, alternatively, i could just use the light from my computer screen
05:37:01 <oklofok> sort of unfortunate my windows theme is almost completely black
05:38:19 <amca> No wonder your light is depressed. Maybe it likes happy colours like yellow, or pink!
05:38:37 <oklofok> not gonna happen!
05:38:40 -!- mycroftiv has joined.
05:39:12 <oklofok> yellow at least, god that's an ugly color
05:42:14 <pikhq> ... Windows?
05:42:17 <pikhq> Oh, right.
05:42:28 <pikhq> That still exists, doesn't it?
05:45:16 <oklofok> vista is an okay os
05:45:20 <amca> pikhq: What OS do u use?
05:45:29 <oklofok> he uses cool hacker oses
05:46:01 <pikhq> amca: Gentoo.
05:46:27 <pikhq> With a somewhat quirky window manager setup.
05:46:34 <amca> Im using Fedora 8 >.>
05:47:26 <amca> pikhq: Which WM?
05:48:30 <pikhq> Ratpoison.
05:48:36 <pikhq> For managing *both* of my windows.
05:50:39 <amca> One would be the irc win. What's the other?
05:51:02 <amca> (if you dont mind me asking)
05:51:03 <pikhq> ... IRC window?
05:51:06 <pikhq> That's crazy talk.
05:51:10 <coppro> the root window and xterm for screen obv
05:51:13 <pikhq> I have a terminal and a web browser.
05:51:21 <coppro> 3 windows then
05:51:22 <pikhq> Oh, right. The root window.
05:51:37 <pikhq> I always forget that that's there.
05:51:47 <pikhq> I only see it when I typo.
05:51:50 <amca> So, you are not using the term for irc? Telepathy? :)
05:52:08 <pikhq> No, I just don't have a dedicated IRC window.
05:52:16 <pikhq> I just have a terminal running screen.
05:53:05 <amca> can I ask which term u use?
05:53:13 <bsmntbombdood> i have a screen running terminal
05:53:15 <pikhq> urxvt.
05:54:31 <amca> bsmntbombdood: text mode linux terminal?
05:58:20 <pikhq> Which, the physical terminal, or the Linux virtual terminal?
05:58:20 <pikhq> :P
05:59:26 <amca> That's the phrase I was looking for: Linux virtual terminal
06:03:13 -!- lament has quit (Ping timeout: 264 seconds).
06:04:13 -!- lament has joined.
06:05:39 -!- augur has quit (Ping timeout: 265 seconds).
06:09:40 <amca> pikhq: Can I ask why you prefer urxvt over all others?
06:10:02 <pikhq> amca: Lightweight, supports Unicode.
06:10:25 <amca> Does it have tabs?
06:10:37 <pikhq> No, why would I want those?
06:10:45 <pikhq> Those require a mouse to use.
06:11:28 <amca> Ah, no they dont. I switch between tabs with <alt>+PageUp/Down all the time
06:11:44 <amca> s/alt/ctrl/
06:11:50 <pikhq> They take up space on screen.
06:12:11 <pikhq> My entire screen is text ATM.
06:13:08 <amca> urxvt doesnt have a menu, then? Not even hidden one thatt appears when required?
06:13:44 <oklofok> the only oses i can stand are cell phone and calculator oses
06:14:03 <oklofok> i wish computer oses were less extendable and more good.
06:14:18 <amca> oklofok: What do you torture yourself with on your comp?
06:14:23 <oklofok> vista
06:14:36 <oklofok> i've tried windowses and ubuntu
06:15:00 <oklofok> ubuntu was too hard to use, you had to press multiple buttons to make things work
06:15:08 <pikhq> I think it has a hidden one that involves a mouse click of some sort.
06:15:08 <amca> Have you tried DOS 6.22 yet?
06:15:34 <oklofok> text-only ones are usually good, they are just ugly
06:15:48 <pikhq> oklofok: Ugly but usable.
06:16:56 <oklofok> sure
06:17:50 <amca> Perhaps Slackwafre 1.0 would be best? ;)
06:18:00 <oklofok> what's that
06:18:50 <amca> oops. Should be Slackware
06:19:02 <amca> One of the first Linux distro releases
06:20:17 <oklofok> i'm sort of fed up with linux, ubuntu had me constantly learning how things work, because they didn't
06:20:29 <oklofok> granted, i didn't have a very new version.
06:20:53 <oklofok> i don't want to learn irrelevant things
06:21:27 <amca> You want an OS to "just work". You dont need the complexity that flexibility brings?
06:21:35 <oklofok> yes
06:21:50 <oklofok> but my calculator can't handle flash :<
06:22:09 <amca> What calc is it?
06:23:05 <oklofok> ti-86, i don't actually use it much, i just said that because i just praised calculator oses.
06:23:10 <oklofok> nice and simple
06:24:02 <oklofok> oh also i obviously don't want the computer to forget state when i turn it off, and i want it to start up instantly
06:24:07 <oklofok> (just like any calculator)
06:24:35 <oklofok> but that's a minor thing
06:27:01 <amca> What processor does TI86 run on?
06:27:23 <oklofok> no idea
06:28:24 <oklofok> i don't really care, i just know it runs the native basic very slowly
06:28:48 <amca> I think I have a TI84 which was an upgrade to the TI83 and runs on a z80
06:28:53 <oklofok> made this snake game in it, no way to make it fast enough to be challenging :<
06:31:02 <amca> I meant to make a snake one on mine, but got distracted and never finished it >.>
06:32:08 <oklofok> my attention span is about two hours for stuff like that
06:32:33 <oklofok> complete waste of time in that any monkey could do it, i basically just wanted to have something to play during lectures
06:33:40 -!- augur has joined.
06:34:01 <amca> :)
06:34:23 <amca> You seem to be a kind of non-geeky geek.
06:35:43 <oklofok> maybe, maybe
06:38:15 <augur> hey guyses
06:38:22 <augur> oklofok especially
06:38:22 <oklofok> oh i also started on an ski interp, that one i never finished, but had some fun ideas, i used the screen as a stack
06:38:44 <oklofok> columns were continuations
06:38:46 <oklofok> me?!?
06:38:48 <oklofok> shit
06:38:52 <augur> you!
06:38:53 <augur> <3
06:38:56 * augur pounces oklofok
06:39:07 <oklofok> oh dear
06:39:12 <pikhq> ... oklofok, non-geeky?
06:39:27 <pikhq> Well. Maybe compared to some others here.
06:40:03 <augur> im writing this super humongoid article for wikipedia
06:40:03 <augur> omg
06:40:05 <amca> oklofok: ski thing sounded interesting
06:40:51 <oklofok> augur: what about?
06:41:08 <augur> controlled grammars
06:41:20 <oklofok> amca: i implement ski in pretty much everything i touch, because it's nice and simple, and very, very pure.
06:41:54 <amca> :)
06:41:55 <oklofok> (always ski, never sk, i think i is important for purity)
06:42:05 <pikhq> i for purity?
06:42:07 <pikhq> It's just skk.
06:42:15 <scarf> yep, it's more coincidence that i happens to be implementable in terms of s and k
06:42:21 <scarf> there's mathematical reason to have all thre
06:42:23 <scarf> *three
06:42:27 <amca> ? I would have thought sk was more pure than ski
06:42:45 <scarf> amca: try reading the proof that all expressions can be expressed as SKI some time
06:42:47 <augur> purity != minimalism
06:42:50 <scarf> the i is very necessary there
06:42:55 <scarf> *all lambda expressions
06:43:05 <oklofok> well s and k can express anything, i'd say sk is mathematically purer, ski is programmatically purer.
06:43:07 <oklofok> or maybe what augur said.
06:43:12 <oklofok> all i know is ski > sk.
06:43:24 <scarf> and I can't think of a sane way to do the proof for sk without implementing i in terms of s and k first
06:43:30 -!- adu has joined.
06:45:00 <amca> oklofok: Do you normally write your expressions in lambda calc first then convert to sk?
06:46:06 <scarf> amca: I know I do
06:46:09 <scarf> except I convert to ski
06:46:19 <scarf> Unlambda has an i, and why else would you convert?
06:46:22 <amca> sorry,, I forgot the i
06:46:41 <pikhq> oklofok: Do you perform I/O with your SKI?
06:46:46 <scarf> ok, so i = ``skk, but who cares
06:47:05 <oklofok> pikhq: obviously not :|
06:47:22 <scarf> you can use Unlambda I/O, but that's rather impure and (probably deliberately) convoluted
06:47:23 <pikhq> oklofok: But it's so very simple to do in a purely functional manner.
06:47:24 <lament> `ii is important
06:47:25 <HackEgo> No output.
06:47:27 <lament> metaphysically
06:47:34 <pikhq> scarf: Bah.
06:47:35 <oklofok> pikhq: how then?
06:47:38 <pikhq> Lazy K I/O.
06:48:00 <oklofok> amca: i don't write ski at all, usually.
06:48:06 <oklofok> i write it in other things.
06:48:11 <oklofok> *implement
06:48:27 <amca> oklofok: You use a prog lang that compiles to ski?
06:48:38 <pikhq> The program is passed a lazy infinite list of church numerals representing the input in UTF-8. After an "end of file" condition on input, the values are just 256.
06:48:52 <oklofok> right
06:48:58 <pikhq> The program *returns* a lazy list of church numerals representing the output in UTF-8. An EOF is represented by 256.
06:49:08 <oklofok> yeah obviously
06:49:23 <pikhq> Viola. Lazy K I/O.
06:49:26 <oklofok> amca: no, i don't write programs in ski.
06:49:32 <oklofok> not big ones
06:49:35 <augur> its his native language, amca. it really is.
06:49:47 <pikhq> augur: That's zzo38.
06:49:57 <augur> ;)
06:50:01 <pikhq> Well, either that or x86 machine code. It's hard to tell.
06:50:49 <scarf> actually, zzo38 doesn't have any particular native language, but all natural and all programming languages in existence just flow naturally from him
06:50:52 <amca> Why do ski machines tend to use church numerals? Why not lists of booleans for numbers??
06:51:02 <scarf> and then oklopol has to discover them
06:51:10 <pikhq> amca: Because church numerals are much nicer.
06:51:10 <scarf> amca: arithmetic's easier, and it's mathematically nicer
06:51:36 <scarf> ok, I suppose decrement's slightly easier with lists of booleans; but addition and multiplication are easier with church numerals
06:51:42 <pikhq> (a list of booleans for numbers is a *royal pain* to deal with functionally)
06:51:59 <amca> Shorter programs with church numbers?
06:52:45 <scarf> pikhq: oh, I thought you meant unary
06:52:52 <scarf> writing it in /binary/ would be really ouch
06:53:10 <pikhq> scarf: He said booleans, so, yeah.
06:53:14 <pikhq> *Pain*.
06:53:23 <scarf> I was assuming end of list / not end of list
06:53:27 <scarf> otherwise you need a marker for the end
06:53:47 <scarf> really, though, binary may translate well into wires, which is why computers use it
06:53:49 <oklofok> hey, if your design is modular enough, the implementation of numbers will be hidden.
06:53:52 <scarf> but it translates badly into functions
06:54:16 <oklofok> i guess you still have to implement the operations, tho...
06:54:35 <pikhq> oklofok: ... *SKI*.
06:54:54 <oklofok> yay exercise one done... i should probably close the irc window at some point
06:54:54 <pikhq> Your best chance of doing it modularly is passing the implementation as an argument.
06:55:03 <oklofok> :P
06:55:05 <amca> scarf: Could always have a "false" value for end-of-list
06:55:17 <oklofok> pikhq: have you seen my bf in python lambdas?
06:55:23 <scarf> amca: if you're using true and false as 1 and 0, what do you use as EOL?
06:55:30 -!- charlls has quit (Quit: Saliendo).
06:55:39 <oklofok> i did exactly that, long list of lambdas as arguments
06:55:56 <scarf> pikhq: that's how I write relambda
06:56:03 <pikhq> scarf: An actual list with a "nil" value?
06:56:05 <scarf> I/O gets abstracted and passed in as arguments
06:56:15 <scarf> pikhq: well, OK
06:56:34 <scarf> the issue with SKI, though, is that the only way to tell the value of something is by passing it arguments and seeing what happens
06:56:38 <amca> scarf: Your EOL would only be in the cdr, not the car, all your 1s and0s would be in the car, so you can have false in the cdr for the EOL
06:56:53 <scarf> so, the result of all operations is either an infinite loop (not good), or defined
06:57:03 <pikhq> scarf: Uh...
06:57:05 <scarf> so if you have a typical false value (say `ki) for your cdr
06:57:12 <scarf> then you can take its head and tail
06:57:16 <scarf> (typically both i, in this case)
06:57:34 <scarf> so you get false = [true | true]
06:57:47 <oklofok> there should be a language where all flow control relies on the detection of infinite loops
06:58:08 <pikhq> scarf: You represent your list as: (end-of-list-p, (car, cdr))
06:58:32 <scarf> pikhq: heh, then you're effectively using 1-hot-ternary-coded-binary
06:59:16 <pikhq> nil is (True, (I, I))
06:59:46 <scarf> yep, that would /work/, but it's effectively the same thing as just using ternary
06:59:57 <pikhq> Well, yes.
07:00:40 <scarf> and you probably couldn't write multiplication, say, anywhere near as effectively as with church numerals
07:01:14 <olsner> oklofok: hmm, istr finding something like that on the esolang wiki, an esolang based on solving the halting problem
07:01:38 <amca> Can you perform binary ops on church numerals? (and, or, xor, etc)
07:01:57 <scarf> not easily, but why would you want to?
07:02:03 -!- lament has quit (Ping timeout: 240 seconds).
07:02:04 <pikhq> Yes, but probably not *easily*.
07:02:31 <oklofok> link if so, i doubt it's done in an interesting way.
07:02:43 <pikhq> Binary ops aren't exactly useful things on non-binary numbers.
07:02:55 <amca> So you can easily do blitting
07:03:36 <pikhq> ...
07:03:50 <scarf> amca: why would you be using the bits of a number to encode pixels in memory?
07:03:54 <pikhq> Blitting, in a language without anything beyond stdin and stdout?
07:03:55 <scarf> you'd do blitting via array copies
07:04:04 -!- lament has joined.
07:04:08 -!- tombom has joined.
07:04:11 <pikhq> scarf: List copies, really.
07:04:27 <scarf> well, yes
07:04:31 <scarf> or tuple copies
07:04:34 <olsner> oklofok: looks like what I'm refering to is http://esoteric.voxelperfect.net/wiki/Brainhype and http://esoteric.voxelperfect.net/wiki/Onoz
07:04:39 <scarf> the two data structures are rather different in SKI
07:04:49 <amca> pikhq: For sprite movement etc. I suppose in a functional language, raytracing would be more appropriate rather than blitting
07:04:59 <pikhq> amca: There are no graphics.
07:05:13 <amca> why?
07:05:14 <pikhq> amca: There aren't even, really, stdin and stdout.
07:05:27 <pikhq> There is the argument, and there is the result.
07:05:32 <pikhq> *That's it*.
07:05:55 <amca> Why cant the result be the video frame every 1/60 seconds?
07:06:42 <pikhq> Well, it can. You could, of course, have the result be a raw video dump just fine.
07:06:48 <pikhq> But you're not doing blitting.
07:06:59 <amca> Hence my comment about ray-tracing
07:07:12 <pikhq> Blitting is a very specific technique used soley because binary operators are fast in low-level languages.
07:07:16 <scarf> amca: you're thinking incorrectly here
07:07:25 <amca> Alternatively, if you were doing blitting, the result could be instructions to video hardware to perfom the actual blitting
07:07:26 <scarf> you're thinking "blitting is fast on a computer, so it should be fast on an SKI machine"
07:07:37 <scarf> you can get the same effect, sure, but you wouldn't do it via copying bit-blocks
07:07:41 <scarf> you'd be copying lists instead
07:07:44 <pikhq> SKI doesn't have binary operators at all.
07:08:00 <pikhq> SKI can do implementations of them, but they are slow.
07:08:02 <scarf> sorry, logging out and back in, the mouse focus here has gone insane
07:08:19 <pikhq> Because your computer is *pretending* to be a SKI machine, and this process is slow.
07:08:31 <amca> scarf: No, Im not. Im thinking "blitting is fast on video hardware, so video hardware would expect input to refer to it"
07:08:40 -!- scarf has quit (Remote host closed the connection).
07:08:40 <pikhq> (well, it's actually much faster than anything else you could find, but that's beside the point.)
07:09:03 <amca> Of course, my reasoning is perverse. That's is half the point. To see how far I can stretch an analogy for myself.
07:09:12 <pikhq> amca: But blitting is fast largely because you are directly modifying state.
07:09:13 -!- scarf has joined.
07:09:20 <pikhq> In SKI, there is no state.
07:09:26 <pikhq> There are only S, K, and I.
07:09:36 <scarf> I have no idea how the bottom toolbar can have stolen mouse capture like that...
07:10:06 <oklofok> olsner: neither of those really uses the halting detection for anything
07:10:21 <oklofok> they're just bf with halting detection, and bf without infloops
07:12:14 <amca> pikhq: Have you heard of the Reduceron?
07:12:25 <pikhq> amca: Yes, the graph reduction machine.
07:13:52 <amca> I was thinking you could hook it up to video hardware and input devices, and have each eval be for each frame
07:14:04 <olsner> oklofok: yeah yeah
07:14:42 <pikhq> amca: But clearly if you evaluate the same function with the same arguments, you will get the same result.
07:15:40 <oklofok> oh i missed the "looks like what i'm ..." thing, probably you realized that too
07:15:44 <oklofok> i mean something like
07:15:56 <oklofok> you can't even write a program that halts, directly
07:16:01 <oklofok> everything just goes into an infloop
07:16:10 <oklofok> but, this will be detected, and things will return
07:17:11 <amca> yes. Which is why with each iteration, different arguments to be applied to the program are eval'd. The arguments would include input device state and , say, gameworld model, and the outputs would be changed game world model and video hardware input.
07:17:36 <amca> Would there be a better way to implement a game on a reduceron?
07:21:28 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:23:44 <oklofok> either jcp wants many routers, or people don't like blowjobs anymore.
07:34:46 <adu> hi oklofok
07:35:19 <oklofok> hi adu
07:35:54 <adu> I've made a breakthrough with my language!
07:36:50 <amca> hi adu. What's your language?
07:37:08 <oklofok> cool! i have this vague recall that we talked about some language of yours, but can't remember what it was :)
07:37:08 <adu> I don't need to design, build, nor implement any part of it! brilliant!
07:37:23 <adu> Droscript
07:37:44 <oklofok> okay i don't think i've heard that name at least
07:38:09 <adu> I have some rudimentary documentation of it here:
07:38:15 <adu> http://drosera.co.cc/
07:39:17 <oklofok> i have a new programming language too, currently undocumented, but i still like advertising it: www.vjn.fi/oklopol/clue.rar
07:39:53 <adu> i hate rars
07:40:29 <oklofok> sorry about that.
07:40:52 <adu> ugh, now i have to search through hundreds of downloads to find 5 files
07:41:06 <adu> i hate rars
07:41:11 <oklofok> ;)
07:41:29 <oklofok> i could reup in some other format, but my connection is pretty slow.
07:42:10 <adu> lzma is much more opensource than rar
07:43:22 <adu> but anyways, my language was supposed to by a Pythonic Haskell
07:43:32 <oklofok> i don't really care about open sorcity.
07:43:36 <oklofok> *sourcity
07:43:50 <amca> Blasphemer!
07:44:28 <oklofok> :)
07:44:46 <amca> adu: "supposed to by a" = " supposed to be a"?
07:44:52 <oklofok> yeah
07:45:22 -!- madbr has quit (Quit: Radiateur).
07:45:30 <adu> oklofok: then when you find yourself in a jail made by Microsoft, and they charge you $20/day to sit on the floor, and threaten to throw away the key if you want to use the toilet, and electrocute you every time you use the sink, then sure, stick with proprietary
07:46:01 <adu> amca: yes, i can't type
07:46:52 <oklofok> i'm not sure that sentence made any sense, but you have a point, using both open and closed source is much more restricted than just using open source.
07:47:24 <oklofok> like i can never experience the freedom of hating some file type because it's closed
07:47:55 <adu> big peeve: "Trusted" computing
07:48:11 <adu> the ultimate in closed source
07:48:28 <amca> What is "trusted computing"?
07:48:55 <adu> don't google it
07:48:59 <adu> http://www.gnu.org/philosophy/can-you-trust.html
07:49:43 <amca> adu: Are you a private concubine or RMS?
07:49:49 <amca> or = of
07:50:07 <adu> uh no
07:50:13 <adu> i just like him
07:50:30 <scarf> can I be an open source/free software advocate who nevertheless thinks that RMS is crazy?
07:50:31 <adu> RMS is my hero
07:50:38 <adu> yes
07:50:42 <adu> many ppl do
07:50:56 <coppro> I do
07:51:02 <adu> you can be a U.S. patriot who hates Obama
07:51:34 <adu> you know, the saying: "I love my country, but I fear my government"
07:52:08 <oklofok> trusted computing sounds like a great idea
07:52:18 <oklofok> if everyone wants to be a part of it
07:52:23 <adu> oklofok: can I give you a language to shoot yourself with?
07:52:30 <oklofok> :)
07:52:57 -!- tombom has quit (Read error: Connection reset by peer).
07:53:01 <oklofok> sort of like socialism in that sense
07:53:09 <oklofok> although i guess in a different direction
07:53:16 -!- tombom has joined.
07:53:24 <adu> oklofok: if by "Everyone" you mean 0.0000001% of netizens, then yes
07:53:41 <AnMaster> <oerjan> well that would _clearly_ be nonsense, since i read here the other day that ericsson document _everything_ <-- quite. All documented functions at least. :D. Often new features are experimental and undocumented for a year or two before it is documented and considered stable
07:53:57 <oklofok> you're saying if 0.0000001% of people think trusted computing is a great idea, then imposing it on everyone would work fine?
07:54:07 <oklofok> i really don't think that's true
07:54:18 <AnMaster> oerjan: and often even then it has a warning about that it might be subject to change for another year or so
07:54:40 <oklofok> i think and hope it would fail horribly
07:55:00 <AnMaster> bbl university
07:55:04 <adu> no, i'm saying the only people who it benefits is 0.0000001% of netizens
07:55:18 <oklofok> and that has nothing to do with what i said
07:55:22 <adu> so naturally those would be the people who want it
07:55:43 -!- tombom_ has joined.
07:56:02 <adu> but since those are the same people in charge, it will likely be forced on the rest because of the power they hold
07:56:17 <adu> so in the end, what you said
07:59:06 -!- tombom has quit (Ping timeout: 252 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:07 -!- tombom_ has quit (Read error: Connection reset by peer).
08:07:29 -!- tombom_ has joined.
08:27:08 -!- tombom_ has quit (Ping timeout: 245 seconds).
08:29:48 -!- tombom has joined.
08:47:19 <augur> oklofok: :o
08:49:33 <augur> wanna learn about minimalist grammars? :D
08:59:45 -!- oklofok has quit (Ping timeout: 245 seconds).
09:06:27 -!- oklopol has joined.
09:11:03 -!- oklopol has quit (Ping timeout: 240 seconds).
09:11:21 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
09:18:52 -!- oklopol has joined.
09:47:03 <augur> oklopol!
09:47:28 -!- kar8nga has joined.
09:47:55 <oklopol> meeeeeeeeeeeeeeeeeeeeeee
09:48:56 <augur> wanna learn about minimalist grammars? :D
09:49:05 <oklopol> no time.
09:49:08 <augur> :(
09:49:13 <augur> it wont take long!
09:49:59 <augur> come to #minigram :D
09:50:17 <augur> if for no reason other than to get the logs
10:12:02 -!- adu has quit (Quit: adu).
10:29:46 -!- FireFly has joined.
10:34:09 -!- oklopol has quit (Ping timeout: 240 seconds).
10:42:04 -!- oklopol has joined.
10:42:52 -!- oerjan has joined.
10:55:24 -!- scarf has quit (Remote host closed the connection).
11:29:29 <oklopol> yay i just conquered the topologist's sine curve, the boss of level 1 in topology.
11:30:24 <oklopol> at least i think so, this is not a very well-organized game
11:31:55 * oerjan starts an alexander horned sphere rolling towards oklopol
11:32:16 <oklopol> :P
11:32:58 <oklopol> i don't even remember its definition, although i do remember what i'm supposed to do to kill it.
11:33:43 <oklopol> hopefully i can get some better weapons before the sphere
11:34:00 <oklopol> currently i'm basically fighting with my bare hands
11:40:35 <oklopol> augur: i read #minigram, i'm following the lecture sofar
11:40:52 -!- BeholdMyGlory has joined.
11:45:15 <oklopol> well not that you really even started yet
12:05:10 -!- oerjan has quit (Quit: Lateral).
12:08:54 -!- ais523 has joined.
12:10:46 <oklopol> eatness ->
12:11:21 -!- chickenzilla has quit (*.net *.split).
12:11:21 -!- pikhq has quit (*.net *.split).
12:11:22 -!- mycroftiv has quit (*.net *.split).
12:11:22 -!- EgoBot has quit (*.net *.split).
12:11:22 -!- HackEgo has quit (*.net *.split).
12:12:45 -!- pikhq has joined.
12:14:58 -!- kar8nga has quit (Remote host closed the connection).
12:15:20 -!- mycroftiv has joined.
12:15:47 -!- chickenzilla has joined.
12:33:00 -!- ais523 has quit (Quit: Page closed).
12:42:00 -!- scarf has joined.
13:55:00 -!- KingOfKarlsruhe has joined.
14:00:07 -!- amca has quit (Quit: good night).
14:15:29 -!- oklopol has quit (Ping timeout: 240 seconds).
14:16:56 -!- Libster has joined.
14:17:19 -!- Libster has left (?).
14:21:45 -!- bsmntbombdood_ has joined.
14:21:52 -!- MigoMipo has joined.
14:23:54 -!- bsmntbombdood has quit (Ping timeout: 248 seconds).
14:43:05 -!- kar8nga has joined.
14:49:55 <scarf> "All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer. ~ IBM maintenance manual, 1925"
14:53:16 -!- tombom_ has joined.
14:55:33 -!- tombom has quit (Ping timeout: 260 seconds).
15:05:10 <AnMaster> scarf, hi there. What sort of things would you recommend to work with VHDL on linux?
15:05:32 <scarf> AnMaster: I use GHDL as a simulator, with gtkwave
15:05:56 <scarf> I doubt there are free synthesizers around, though; all the ones I've seen tend to be nastily expensive
15:05:58 <AnMaster> scarf, thanks. Will start a course in a few weeks about digital circuits & VHDL (basic level course)
15:06:10 <scarf> although they generally run just as well on Linux as on Windows, which is interesting
15:06:31 <AnMaster> I expect the uni has stuff for the labs. But having something to experiment with at home seems useful
15:06:36 <scarf> (GHDL's interesting, as it effectively compiles VHDL to a binary, which is /not/ the normal way to simulate it; the binary produces simulation output)
15:07:11 <AnMaster> scarf, what is a synthesizers in this case? Something to program real hardware?
15:07:19 <scarf> AnMaster: pretty much
15:07:23 <AnMaster> something to simulate it is just fine for me to begin with
15:07:36 <scarf> to be precise, it generally generates a file used to program the hardware
15:08:03 <AnMaster> ah
15:08:30 <AnMaster> scarf, so a compiler to something that can be loaded into an FPGA basically?
15:08:43 <scarf> yep
15:08:55 <scarf> synthesizers are also often very slow
15:09:08 <scarf> they can take half an hour to run for the little toy chips that they let undergraduates use
15:09:14 <AnMaster> scarf, and you download it over a serial port or such?
15:09:24 <scarf> and well over a day if you're trying to fit a lot of data onto a medium-sized chip
15:09:30 <scarf> and you nearly always download over JTAG
15:09:41 <scarf> which generally needs special software, and a driver for the JTAG cable
15:09:43 <AnMaster> oh interesting
15:09:51 <AnMaster> scarf, why jtag?
15:10:10 <scarf> AnMaster: it's the standard very-low-level interface to reprogrammable hardware, nowadays
15:10:26 <scarf> even if you have a device that can reprogram itself from software, JTAG's how you reset it if it screws uo
15:10:28 <scarf> *up
15:10:30 <AnMaster> When I programmed PIC12* it was generally done over serial port.
15:10:32 <scarf> serial would be rather higher level
15:10:40 <AnMaster> (PIC12F627 or something such iirc)
15:10:46 <AnMaster> (maybe 629?)
15:11:33 <scarf> (and PICs don't program over the serial port directly; what happens is they only need a couple of data wires to program, so the programmer just links them to a couple of wires in an RS232 link, maybe with voltage-level adaption, and drives them directly in a way rather unlike what the RS232 spec suggests)
15:12:05 <AnMaster> scarf, well yes, you latched some leg high to make it enter programming mode
15:12:09 <AnMaster> iirc
15:12:26 <scarf> AnMaster: at least on the 16F series, you do it by putting 9V (or was it 12V) in on the reset pin
15:12:26 <AnMaster> since my circuit used serial port for other purposes during normal operation
15:12:32 <scarf> when the device normally only uses 5V
15:12:35 <AnMaster> it was natural to do it over the same interface
15:12:40 <AnMaster> but with a jumper iirc
15:12:48 <AnMaster> that you moved to a programming mode
15:12:52 <scarf> which is a really clever solution to stopping people entering programming mode by mistake
15:13:07 <AnMaster> scarf, I don't remember the details
15:13:20 <AnMaster> anyway I do remember I had to move a jumper to do it
15:13:23 <scarf> and yes, IIRC on a PIC, the same two pins that are used for programming clock/data are the ones commonly used for clock/data on a uniplex data link
15:13:43 <AnMaster> scarf, I also remember that the interrupt routine that read serial data was a pain to code.
15:13:56 <scarf> not really, if you understand interrupts
15:13:59 <AnMaster> you had to get timing right and make it finish before the next piece of data arrived
15:14:16 <scarf> it's about eight lines of asm, or maybe thirty of C because the C compilers typically used for PICs are so bad
15:14:22 <AnMaster> scarf, back then I barely did
15:14:40 <AnMaster> scarf, also, there is no built in support for serial data in PIC12F* series
15:14:54 <AnMaster> iirc there is in some more advanced models
15:15:02 <scarf> AnMaster: even on the 16F series, it's just a buffer for one byte
15:15:10 <scarf> umm, two bytes under certain circumstances, I think
15:15:12 <AnMaster> scarf, no buffer thingy here on 12F
15:15:24 <scarf> which means that you don't have to poll/respond to interrupts quite as often
15:15:32 <scarf> but which still means that you have to do most of the work yourself
15:15:46 <AnMaster> scarf, also remember you have very very limited memory, both ram and flash
15:15:54 <scarf> AnMaster: yes, I know
15:16:07 <scarf> I probably know more about PICs than you do
15:16:08 -!- tombom__ has joined.
15:16:23 <scarf> I've even built a PIC programmer from components before, and written long programs for them in asm
15:16:35 <AnMaster> scarf, true for more advanced models at least. But isn't the 16F series vastly more advanced than the 12F series?
15:16:48 <scarf> not vastly, I wouldn't say
15:16:56 <scarf> it has more random features that most people don't use
15:16:57 <scarf> but that's about it
15:17:01 <scarf> also, often more pins
15:17:29 <AnMaster> scarf, more registers iirc too?
15:17:43 <scarf> a bit, not all that much though
15:17:51 <scarf> you might get maybe 100 bytes or so of memory on a high-end model
15:18:48 <AnMaster> scarf, plus I needed some nasty logic to drive 12 LEDs with the 8 pin PIC I had. And some of those 8 pins were needed for other things. iirc I made use of that LED only works in one direction and to light up more than one led at once I just quickly switched between them
15:19:20 <scarf> it's a standard trick, I've used it myself
15:19:22 -!- tombom_ has quit (Ping timeout: 248 seconds).
15:19:49 <scarf> the other method would be to multiplex it as a 3x4 display, which uses 7 pins, same as 6+6 with one wire for direction
15:19:57 <AnMaster> scarf, yes true, still somewhat tricky to code for me back then
15:20:01 <scarf> you could probably combine the methods and only use 6 pins, but that would just be confusing
15:20:57 <AnMaster> scarf, actually of those 8 pins, one was needed for serial iirc, and two for power things. So that leaves 8-3=5 pins for the leds
15:21:33 <AnMaster> No I don't remember how I connected them. But it was somewhat confusing to get it to work
15:21:37 <scarf> ouch, driving 12 from 5 seems painful; even connecting it as a K_5 can only do 10 pins
15:21:52 <AnMaster> scarf, it was possible though
15:22:01 <scarf> oh, you can do 20 with a K_5
15:22:02 <scarf> so it is possible
15:22:22 <AnMaster> K_5? I don't remember that term
15:23:38 <scarf> AnMaster: complete graph on 5 vertices
15:23:41 <AnMaster> scarf, anyway I did this when I was around 13 years old or so. I don't remember most details any longer.
15:29:31 -!- cpressey has joined.
15:31:54 <fizzie> This is completely irrelevant, but the TI calculator "link cable" connection is really funky; it's a three-wire port, one is ground and two for data, but it's a sort of a "clockless" asynchronous protocol; to send a bit, you pull one wire low (which one depends on the bit), wait for the receiver to acknowledge by pulling the other wire low, then raise the original back to high and wait for the receiver to acknowledge that.
15:32:40 <cpressey> Wareya: I thought of a way to help visualize the balance problem thing in 4 dimensions... in 3 dimensions, the disc and the table are basically 2 dimensional. They have a thickness, but it's not interesting. The disc is on the table. It falls off when it center is no longer above the table.
15:33:06 <fizzie> It was a bit tricky to interface with on the TI DSP board; despite being made by the same company, "surprisingly" the rather advanced (or at least feature-rich) serial communications circuitry wasn't really helpful for that sort of stuff.
15:33:14 <cpressey> In 4 dimensions, the sphere and the container are basically 3 dimensional. They have a 4-dimensionalness, but it's not interesting. The sphere is in the container. It falls off when the center is no longer inside the container.
15:33:23 <cpressey> The weird part, to me, is what "falls" means in 4D :)
15:33:33 <scarf> fizzie: read up on I²C some time, it's just as fun
15:33:43 <AnMaster> fizzie, what? really?
15:33:44 <scarf> it has the most ingenious method of handling collisions I've ever seen
15:33:44 * cpressey prefers truly 1-wire protocols.
15:33:51 <scarf> basically, there are two wires, clock and data
15:33:58 <AnMaster> fizzie, this is the cable you connect to the box attached to the serial cable?
15:34:01 <AnMaster> that you are talking about
15:34:16 <scarf> the system's set up such that if either of two devices tries to send a 0, the wire goes 0, otherwise it goes to 1
15:34:21 <scarf> and the clock ends up in sync
15:34:31 <AnMaster> fizzie, I have a TI black link cable
15:34:36 <AnMaster> came with my TI-83+
15:34:38 <scarf> so, if two devices try to send at once, then as long as they're sending the same data, everything's fine
15:34:51 <fizzie> AnMaster: Yes, the GraphLink cable. I think even the official serial cable contains some PIC-like chips to translate that stuff into standard RS232.
15:34:52 <scarf> as soon as they differ in the data they're sending, one of them tries to send a 1 but sees a 0, so it shuts up
15:35:01 <AnMaster> fizzie, heh :D
15:35:14 <scarf> and from everything else's point of view, it's as if only one of the devices was actually sending
15:35:15 <fizzie> AnMaster: Some of the home-built ones do that decoding on the processor, by just connecting those into suitable pins.
15:35:22 <scarf> so it sort-of fixes conflicts retroactively
15:36:18 <AnMaster> fizzie, wait? so it is left to the computer cpu to try to make sense of the protocol?
15:36:58 <fizzie> AnMaster: Yes, if you use a home-built simple cable like that. There's the "open-source" PIClink cable which does it like the TI one, having more sense in the cable itself.
15:37:23 <fizzie> scarf: That's nifty.
15:37:25 <AnMaster> fizzie, the signal levels and such are compatible ?
15:37:45 <scarf> fizzie: yep, I think it's rather neat
15:38:29 <fizzie> AnMaster: Close enough, if you add some diodes in there. The serial port pins aren't really read-and-write suitable, so the usual design uses a pair of pins in the serial port for each one of the wires.
15:39:53 <cpressey> The problem with Maxim's 1-wire protocol is that it's actually 2 wires, because those wimps insist on having a ground reference. It is bidirectional, though. http://www.maxim-ic.com/app-notes/index.mvp/id/1796
15:40:34 <scarf> cpressey: all the standard assumptions break if you don't assume a ground reference
15:40:46 <scarf> which means designing a truly 1-wire protocol could be relatively tricky
15:40:56 <cpressey> scarf: ;)
15:42:25 <fizzie> scarf: I think for the calc-dsp thing we used some low-level code on the calculator side to implement a unidirectional more-or-less synchronous "one clock wire, one data wire" serial protocol, just because then we could on the DSP side just program the serial port circuitry to completely automagically collect a full four-byte data packet and stick it (with DMA) to the DSP chip's memory.
15:43:12 <AnMaster> fizzie, ah
15:43:49 <cpressey> I remember seeing a Circuit Cellar circuit for a modem that operated over your home's AC wiring. So you plug in one modem into the mains upstairs, plug in another modem downstairs, and voila. 300 bps between them.
15:43:59 <fizzie> AnMaster: Mind you, they're just compatible in practice, not in theory. The RS232 voltages can (spec-wise) go a lot higher (15V?) than what the calculator is designed to accept (5V).
15:44:11 <AnMaster> fizzie, ouch.
15:44:23 <scarf> fizzie: not just that, in standard practice they /do/
15:44:37 <scarf> the RS232 port on a typical computer ought to be +/- 9V
15:44:48 <AnMaster> anyway these days I think USB cables are used
15:44:51 <AnMaster> right?
15:44:57 <scarf> there's a chip called the MAX232 that converts RS232 logic levels to/from standard ones, it's pretty standard nowadays
15:45:17 <AnMaster> for calculators I meant
15:45:19 <AnMaster> mean*
15:46:08 <AnMaster> which reminds me (somehow, can't explain why): new erlang version out yesterday. yay. And quite a lot of documentation improvement
15:46:28 <AnMaster> plus this release is the first after they switched from the cathedral to a more open development process.
15:47:17 <cpressey> scarf: I always wanted to abuse that chip to do something related to voltage boosting that it was never designed for
15:47:38 <scarf> heh
15:47:44 <cpressey> AnMaster: let me guess, the distribution grew... 90 megabytes this time?
15:47:54 <scarf> probably possible, there's likely a datasheet somewhere
15:48:00 <AnMaster> <scarf> AnMaster: I use GHDL as a simulator, with gtkwave <-- why does this pull in gnat
15:48:03 <AnMaster> I mean
15:48:03 <scarf> and good datasheets are as general as possible
15:48:08 <AnMaster> is there actually someone using ada?
15:48:09 <AnMaster> wth
15:48:13 <scarf> AnMaster: who knows
15:48:17 <scarf> VHDL is very ADA-like
15:48:25 <AnMaster> ghdl gnat-4.3 gnat-4.3-base gtkwave libgnat-4.3 libgnatprj4.3 libgnatvsn4.3
15:48:25 <scarf> it wouldn't surprise me if bits of the parser were shared
15:48:31 <AnMaster> and I didn't even list gtkwave there
15:48:33 <AnMaster> just ghdl
15:48:35 <scarf> one of the design goals of VHDL was actually to make it look like ada
15:48:37 <AnMaster> it pulled in all those deps
15:48:43 <scarf> *Ada
15:48:57 <AnMaster> scarf, One*
15:48:58 <scarf> (I bet gtkwave is on the recommended list, because there's no point in producing simulation data you can't view)
15:49:02 <fizzie> TI switched to usb cables for the calcs, yes.
15:49:13 <cpressey> No, Erlang/OTP dist only grew by 1.4 megabytes. Drat.
15:49:24 <AnMaster> cpressey, har
15:49:36 <cpressey> It's supposed to double every time! Or something
15:49:46 <AnMaster> cpressey, if they switch from .gz to .bz2 or .lzma it would shrink
15:49:52 <AnMaster> of course that would break compat
15:49:54 <AnMaster> so they would never
15:50:03 <fizzie> Not that there ever were any problems with official TI serial cables, those did the right thing.
15:50:12 <AnMaster> and if they did they would provide new and old formats for quite a few releases
15:50:27 <scarf> .pax.lzma!
15:50:41 <AnMaster> suuure
15:52:28 <AnMaster> anyone know any open source tool for simulating analogue AC circuits btw?
15:52:43 <fizzie> Yeah, isn't that Moore's law: the size of Erlang doubles every 18 months?
15:52:53 <AnMaster> fizzie, heh
15:53:35 <AnMaster> they finally documented the -type/-spec thingy (with a disclaimer that it might change still, but will probably become stable in the next major release)
15:53:49 <AnMaster> btw, efunge has been using that since near the start ;)
16:03:16 -!- MissPiggy has joined.
16:05:33 -!- MizardX has quit (Ping timeout: 276 seconds).
16:17:21 <Gregor> pax!
16:17:25 <Gregor> Oh gawd pax
16:17:53 <MissPiggy> pix of teh pax
16:18:25 <AnMaster> it is funny how gnome somehow puts a harddrive icon on my desktop for sshfs file systems
16:18:30 <AnMaster> that I mounted from command line
16:18:32 <AnMaster> bbiab
16:23:17 <AnMaster> oh this is so sad, erlang's build system isn
16:23:22 <AnMaster> isn't* -j2 safe
16:23:38 <AnMaster> it tried to execute the erlang compiler before the runtime was built
16:26:52 <cpressey> wtf
16:26:57 <cpressey> That is pretty sad, considering.
16:29:16 <AnMaster> cpressey, exactly
16:31:19 <cpressey> The image on http://www.chromium.org/Home is not exactly brilliant marketing. It looks like the browser is on its way to the Great Hereafter.
16:31:42 <MissPiggy> heh..........................................
16:37:42 <AnMaster> cpressey, hah
16:37:56 <AnMaster> cpressey, not how I saw it
16:38:37 <AnMaster> cpressey, looked like a reference to <what's his name.... Hermes?>
16:39:12 <AnMaster> wasn't he supposed to have wings on his shoes or something
16:43:12 <cpressey> Yeah. They want you to think it's fast... I just tried it for the first time, though, and it's so "fast" it's actually annoying.
16:43:30 <cpressey> Fast in the way a grumpy person snapping at you is fast.
16:43:57 <cpressey> I dunno, maybe if I used it for real browsing, it would be different.\
16:45:35 -!- bsmntbombdood_ has quit (Ping timeout: 245 seconds).
17:00:46 -!- bsmntbombdood_ has joined.
17:10:13 -!- coppro has quit (Ping timeout: 265 seconds).
17:16:51 <AnMaster> cpressey, err "<cpressey> Fast in the way a grumpy person snapping at you is fast." <-- what?
17:18:30 -!- kar8nga has quit (Remote host closed the connection).
17:30:10 <cpressey> It's not fast so much as its SUDDEN.
17:43:31 <AnMaster> cpressey, idea for a future befunge: / and \ swap meanings based on direction of travel
17:52:42 <cpressey> AnMaster: That's a great idea, but it breaks a lot.
17:52:51 <AnMaster> cpressey, well yes
17:53:03 <AnMaster> cpressey, oh btw I find the colour scheme on http://catseye.tc/projects/funge98/doc/website_funge98.html rather unreadable
17:53:23 <AnMaster> the light green on the gray-patterned bg
17:53:34 <AnMaster> I preferred the old yellow based one
17:53:45 <cpressey> AnMaster: Well, you can go to the source page, or you can tell your browser to ignore the CSS
17:53:55 <AnMaster> cpressey, like is still on http://catseye.tc/projects/funge98/library/TURT.html
17:53:59 <cpressey> http://catseye.tc/projects/funge98/doc/funge98.html
17:54:08 <AnMaster> cpressey, source page? I just clicked the spec link on http://catseye.tc/projects/funge98/
17:54:15 <AnMaster> like I have always been doing
17:54:21 <AnMaster> ah there it is
17:54:41 <cpressey> Next to the link is a link that says "source file" -- there should be a link in the marked-up doc too, but there isn't yet
17:54:47 <AnMaster> cpressey, not the one at the top
17:54:57 <cpressey> True, there shoul;d be a link there too
17:54:58 <AnMaster> cpressey, under the heading "Documentation"
17:55:28 <AnMaster> since half of the time I need the spec and the other half one of the fingerprints I just bookmarked the "index"
17:56:19 <cpressey> Hm, since TURT still says "Under development" :)
17:56:41 <AnMaster> aaargh
17:56:48 <AnMaster> cpressey, that would break the nice TURT quine
17:57:01 <cpressey> Yeah, I know.
17:57:20 <AnMaster> (for anyone who missed it http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/tquine.php)
17:57:24 <cpressey> So are people really mixing up left and right or is that some SVG thing
17:57:29 <AnMaster> which is btw an awesome domain name
18:00:06 <AnMaster> cpressey, it was some svg thing
18:00:12 <AnMaster> cpressey, weird coordinate system in svg
18:00:31 <AnMaster> cpressey, but it seems like people treat the coordinate system as navigational
18:00:35 <AnMaster> and I did too
18:00:40 <cpressey> 'k, that makes more sense.
18:00:42 <AnMaster> but when re-implementing it and reading my old code
18:00:50 <AnMaster> I wasn't aware that I had taken some shortcuts
18:01:01 <AnMaster> (ab)using that it would be inverted
18:01:11 <AnMaster> thus no need to convert the value when calling sin/cos
18:01:18 <AnMaster> thus I assumed it was mathematical
18:01:22 <AnMaster> not navigational
18:01:32 <AnMaster> and 0 = east made it more probable too
18:02:12 <cpressey> Could always define several different fingerprints, TURT, TURM, TURN, whatever, to handle all the different interpretations out there - making those programs easy to "fix"
18:03:42 <cpressey> That is, IF I decide to work on Befunge-111. Well, I already started some small effort to rewrite the spec, so maybe.
18:04:08 <cpressey> It should start with a gigantic "Definitions" section, with the rest of the spec being relatively small and relying heavily on the definitions.
18:05:16 <AnMaster> cpressey, I have nothing against a radically different language, but probably it shouldn't be called befunge then. Imagine you were the C standard working group. What sort of changes would you allow
18:05:37 <AnMaster> C99 is basically fixing undef and adding some new non-colliding things
18:05:53 <AnMaster> very few C90 programs can't compile unmodified as C99 in my experience
18:06:05 <AnMaster> sure, there will be some corner cases
18:06:30 <pikhq> Yeah, C99 was pretty well defined to minimise breakage.
18:07:51 <cpressey> AnMaster: I agree.
18:08:10 <cpressey> Plus there are a bunch of Be- names that could be riffed on.
18:08:31 <AnMaster> cpressey, and interestingly enough befunge111s would be way less capable than befunge98s
18:08:39 <AnMaster> unless you add a lot new stuff
18:09:00 <AnMaster> since the s versions are defined to be "only new commands, any commands in previous versions are excluded)
18:09:04 <cpressey> But what would you think of deprecating some of the uglier parts?
18:09:05 <AnMaster> s/)/"/
18:09:11 <AnMaster> cpressey, such as?
18:09:53 <cpressey> I'd like to move t, i, o, and = into a fingerprint (where they will be called T, I, O, and S, or similar,) and say that the semantics of t, i, o, and = are implementation-defined.
18:10:10 <AnMaster> hm
18:10:13 <AnMaster> cpressey, what?
18:10:23 <AnMaster> cpressey, t is pretty well defined. And no one implements the error in t
18:10:35 <cpressey> An implementation could make t, i, o, and = Funge-98 compatible. Or not.
18:10:35 <AnMaster> which is that t doesn't move the child ip one step first
18:10:42 <AnMaster> meaning that t will be the first thing it executes
18:10:45 <cpressey> It doesn't matter that it's well-defined
18:10:59 <cpressey> It's optional, that's the more important consideration.
18:11:07 <cpressey> And optional things should go in fingerprints.
18:11:17 <fizzie> Optional things like having two dimensions.
18:11:31 <cpressey> fizzie: That's not optional in *Be*funge. :)
18:11:34 <AnMaster> cpressey, I would like TIO to be well defined in that/those fingerprint(s). I'm happy with = being implementation-defined though
18:11:52 <AnMaster> (well duh for the last part)
18:11:55 <cpressey> Well, the replacement for = would also be well-defined in a fingerprint.
18:12:04 <AnMaster> cpressey, in what way?
18:12:15 <cpressey> Probably refer to POSIX system().
18:12:32 <AnMaster> cpressey, then these would need three different fingerprints at least. Maybe 4
18:12:34 <cpressey> So, POSIX-dependent, but many OSes try to implement POSIX these days.
18:12:44 <AnMaster> cpressey, efunge used to implement i but not o until recently
18:12:50 <AnMaster> nowdays it implements both
18:13:05 <cpressey> AnMaster: could be a couple of different fingerprints. I'm not picky about that.
18:13:11 <AnMaster> it doesn't implement t, since ATHR will be superior and actually be able to use both cores
18:13:48 <AnMaster> cpressey, the fingerprint implementing T would still change @ when loaded?
18:13:49 <AnMaster> or?
18:14:05 <AnMaster> since both @ and q seems odd if not
18:14:23 <cpressey> Well, @ can be defined in such a way that its semantics don't change.
18:14:52 <cpressey> @ removes the current execution context (EC). The program ends where there are no more ECs.
18:15:03 <cpressey> Therefore in single threaded Befunge, @ ends the program.
18:15:04 <AnMaster> cpressey, anyway moving t to T would break some programs that already use a fingerprint which defines T (and use that T). Without instruction moving as in FING that would be annoying
18:15:15 <AnMaster> cpressey, right
18:15:23 <AnMaster> cpressey, that causes havoc for ATHR
18:15:43 <AnMaster> since you can have multiple ips from t in a single ATHR thread
18:15:52 -!- charlls has joined.
18:16:03 <AnMaster> and there can be multiple ATHR threads (of course)
18:16:21 <cpressey> AnMaster: I'm not familiar with FING, but if it allows moving assignments of A-Z around, it should probably be standard. Like "import foo as bar" in "normal" languages.
18:17:37 <AnMaster> cpressey, well what happens in your option if we have two fingerprints AAAA and BBBB. AAAA provides DE, BBBB provides EF.
18:17:37 <cpressey> I'm not clear on why the definition of @ I just gave causes havoc for ATHR, but I think it's much cleaner.
18:17:38 <AnMaster> then:
18:17:48 <AnMaster> we load AAAA, we load BBBB, we unload AAAA
18:17:52 <AnMaster> now what is E mapped to
18:17:55 <AnMaster> AAAA right?
18:18:15 <AnMaster> that is the current de-facto standard
18:18:38 <cpressey> I'd have to refresh on how fingerprint unloading is defined.
18:18:39 <AnMaster> treating it as "unload one instruction from each of the stacks, one stack for each of A, B, C, D, ..., Z
18:18:53 <cpressey> I thought you could only unload the most recently loaded.
18:18:58 <AnMaster> cpressey, well that exact detail (unloading out of order) is a bit unclear in the spec
18:19:19 <AnMaster> but not treating it the way I mentioned will break all kinds of havoc all over the place by now
18:19:29 -!- augur has quit (Ping timeout: 265 seconds).
18:20:13 <AnMaster> differences in how it was treated already caused issues before. But now that the major implementations agreed on this interpretation (and mycology tests that) it seems the best way to do it
18:20:59 <cpressey> OK, well
18:21:02 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
18:21:09 <AnMaster> cpressey, well?
18:21:18 <cpressey> The spec is a mess wrt unloading so that makese sense
18:21:45 <cpressey> I'm pretty sure the intention was to only allow the last-loaded to be unloaded, but ) takes a fingerprint ID, sooooo.....
18:22:17 <AnMaster> cpressey, well a lot of programs use out of order unloading now. Well nowdays they seem to be switching to FING instead
18:22:27 <AnMaster> but still
18:22:45 <cpressey> Do you happen to have a link for the FING spec?
18:22:51 <AnMaster> sec
18:23:00 <fizzie> cpressey: The spec also explicitly says that ) can unload a fingerprint "even if that fingerprint had never been loaded before".
18:23:04 * cpressey googles FING for kicks
18:23:07 <AnMaster> http://rcfunge98.com/rcsfingers.html#FING
18:23:12 <cpressey> AnMaster: Thanks
18:23:17 <AnMaster> cpressey, not the most detailed spec of course
18:23:26 <AnMaster> fizzie, indeed
18:23:46 <fizzie> I think that's even the improved FING.
18:23:53 <cpressey> Um, yeah, that's not terribly informative
18:24:03 <AnMaster> fizzie, well the bad one was called FNGR
18:24:12 <cpressey> OK, well
18:24:27 <AnMaster> cpressey, anyway here is how Deewiant, me and some other people interpret things:
18:24:36 <cpressey> I'm very tempted to establish some new semantics for ( and ) which are better but break minimally
18:24:36 <AnMaster> one stack of function pointers (or lambdas or whatever) per A,B,C,...,Z
18:24:38 <fizzie> AnMaster: Yes, but I think even the FING spec got some of those corner-case empty-stack clarifications later on.
18:24:42 <scarf> FNGR's fixed to comply with the specs, by making it highly untame
18:24:52 <scarf> hmm, what's the term
18:25:06 <AnMaster> cpressey, fingerprints push function pointers on these stacks (depending on which ones it define)
18:25:09 <fizzie> scarf: BLOODTHIRSTY.
18:25:14 <fizzie> scarf: (I guess you mean "feral".)
18:25:16 <scarf> it basically now says, "while FNGR's loaded use old broken RC/Funge semantics, while it isn't use Funge-98 / fixed RC/Funge semantics"
18:25:17 <scarf> fizzie: yes
18:25:20 <scarf> that's it
18:25:42 <AnMaster> cpressey, unloading a given fingerprint just pops the top function pointer (or lambda or whatever) from the stacks for the instructions it implement
18:26:09 <fizzie> fungot uses FING nowadays, but it used to use FNGR because FNGR was the first fingerprint-remapping fingerprint I came across.
18:26:09 <fungot> fizzie: these unique items make us invincible!
18:26:28 <fizzie> fungot: Yes, I'm sure FING makes you invincible. Sigh.
18:26:29 <fungot> fizzie: like, thanks princess. i'll take that under advisement!!! i give you 1 weapon or 1 item! what you do? wake you, but need dactyl? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
18:26:32 <AnMaster> so given the above example: "AAAA provides DE, BBBB provides EF", then we execute >"AAAA"4("BBBB"4("AAAA"4) now E is from AAAA and F from BBBB
18:26:39 <AnMaster> there is nothing on D any more
18:26:39 <fizzie> That bot is sometimes so insulting.
18:26:41 -!- kar8nga has joined.
18:26:43 <AnMaster> cpressey, does that make sense?
18:27:07 <cpressey> AnMaster: Yes, that makes sense.
18:27:22 <AnMaster> further it is useful
18:27:43 <cpressey> That *might* be what was meant, in the spec, tho I'm not at all convinced of that.
18:27:45 <AnMaster> cpressey, so I recommend that if befunge-111 isn't about to break everything, that it should use these above mentioned semantics for ( and )
18:28:13 <scarf> AnMaster: heh, pushed back to 2011 already?
18:28:17 <AnMaster> in any case, a lot of people (including me) would become rather irritated by having to rewrite code to change it. Sometimes quite a lot of code
18:28:18 <fizzie> The semantic stack stuff seems to be the de-facto interpretation.
18:28:24 <cpressey> AnMaster: I agree. But I'm considering adding something like: "If the fingerprint ends with '.', it is a new-style fingerprint and ( behaves slightly differently..."
18:28:26 <AnMaster> scarf, a different one altogether
18:28:29 <AnMaster> I gave up on mine
18:28:31 <scarf> oh
18:28:31 <fizzie> I think even I did fingerprints like that in GLfunge98.
18:28:33 <AnMaster> cpressey is considering it
18:28:36 <AnMaster> and he called it that
18:28:48 <scarf> -108 was just clarifications, wasn't it?
18:28:52 <scarf> of all the ambiguities in the spec?
18:28:56 <AnMaster> cpressey, wonderfully complex. But what would the new semantics then?
18:28:59 <cpressey> scarf: It's mainly that the number 111 is much cooler than 110. :)
18:29:04 <AnMaster> scarf, yes but the result was suboptimal
18:29:08 <scarf> cpressey: agreed
18:29:10 <AnMaster> cpressey, you should wait to 666 then
18:29:17 <AnMaster> ;P
18:29:26 <Deewiant> The spec explicitly allows for unloading things that haven't been loaded yet
18:29:32 <AnMaster> and what Deewiant said
18:29:39 <fizzie> Deewiant: <fizzie> cpressey: The spec also explicitly says that ) can unload a fingerprint "even if that fingerprint had never been loaded before".
18:29:44 <fizzie> Deewiant: You're a bit derivative!
18:29:53 <cpressey> Deewiant, fizzie: Yes, that's bizarre.
18:30:09 <scarf> wasn't that for NULL to work correctly?
18:30:10 <AnMaster> cpressey, what would the new semantics be for ( and ) though
18:30:11 <fizzie> Deewiant: Perhaps even integral.
18:30:11 <cpressey> Actually, that suggests the spec intended something similar to the defacto behaviour that's out there
18:30:39 <AnMaster> fizzie, augh
18:30:51 <cpressey> AnMaster: Not sure yet. Not sure if it needs them, now. But I was thinking something about support for renaming semantics like FING does.
18:30:51 <Deewiant> fizzie: Right, I wasn't reading context, just AnMaster's highlight and a line or few up
18:31:12 <AnMaster> Deewiant, hey don't do that. ehird always complains when I do that
18:31:26 <AnMaster> Deewiant, never mind that he does it himself sometimes
18:31:41 <AnMaster> also, I have to get out and clear away the snow
18:32:03 <Deewiant> AnMaster: I'm not ehird
18:32:15 <AnMaster> Deewiant, and?
18:32:27 <AnMaster> you missed the joke completely
18:32:36 <Deewiant> It just seemed like you didn't feel about it very strongly yourself
18:32:38 <AnMaster> anyway: I'll be back in an hour or so (hopefully, it has snowed quite a lot though...)
18:32:44 <AnMaster> Deewiant, I don't
18:33:19 <fizzie> Bleh, gitweb's commitdiff display isn't very befunge-friendly; it's far too line-oriented.
18:33:23 <AnMaster> cpressey, hm. well I'll read any interesting scrollback (assuming it isn't too long and we don't have concurrent convos in it) when I get back
18:33:36 <cpressey> AnMaster: 'K, have fun in the snow :)
18:33:41 <AnMaster> fizzie, file a feature request!
18:33:49 <AnMaster> cpressey, .... I have started to hate it
18:34:02 <fizzie> http://git.zem.fi/fungot/commitdiff/2d306563bb6d998d208c78d6400168b0ef633ae7 changes (incidentally) from FNGR to FING, but the changes are not so very clear.
18:34:02 <fungot> fizzie: we are looking to achieve a shorter life span... lavos will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's statue before my shift. i hate! ayla not like...
18:34:10 <AnMaster> cpressey, it has been the snowiest and coldest winter for over 100 years according to SMHI
18:34:30 <AnMaster> (SMHI is something like gov weather agency thingy, not sure what your equiv is over there)
18:34:50 <AnMaster>
18:35:14 <Deewiant> Over here it's only the coldest it's been in 20-30 years or so
18:35:36 <Deewiant> Although in snow amount, I think it was around 50; I can't remember exactly
18:39:42 <fizzie> Finnish meteorological institute reported (in a Feb 18 newspost) that this is in the top-10 of coldest winters for the last 50 years, but not significantly colder than winter 2002-2003. Possibly they have had to update that, though, since it's continued to be cold.
18:52:56 -!- scarf has quit (Remote host closed the connection).
19:01:38 -!- lament has quit (Ping timeout: 246 seconds).
19:03:08 -!- lament has joined.
19:06:39 -!- MizardX has joined.
19:18:46 -!- oerjan has joined.
19:20:11 -!- gm|lap has joined.
19:38:47 <AnMaster> that...
19:38:49 <AnMaster> was heavy
19:39:31 <AnMaster> Deewiant, I think this was for mid-Sweden
19:39:48 <AnMaster> the north parts had worse years more recently
19:40:06 <AnMaster> and definitely some temp records earlier
19:41:02 <AnMaster> but it was both coldest "average" and coldest (record for a specific time) in these parts for a long time. the record lowest was "last 30 years" or so.
19:41:26 <AnMaster> while the average coldest and snowiest were for "over 100 years"
19:41:48 <AnMaster> still, last weekend was much worse than this evening
19:49:46 <AnMaster> cpressey, so what would the moved toi= be used for now?
19:50:13 <AnMaster> cpressey your idea of something like FING?
19:50:42 <AnMaster> cpressey, or something else?
19:52:49 <AnMaster> cpressey, oh and I think allowing some fingerprints to have special opaque values pushed on stack that can be duplicated copied and so on as normal but perhaps not output or used in stuff like addition/subtraction may be nice
19:52:59 <AnMaster> of course this should be completely optional for the core language
19:53:16 <AnMaster> but any fingerprint trying to do that currently would give something extremely feral
19:53:27 <cpressey> AnMaster: Not sure I understand -- the new t, o, i, = would be T, O, I, S in some fingerprint(s), their use would be essentially the same
19:53:39 <cpressey> And t, o, i, = would be undefined
19:54:20 <cpressey> For opaque stack values, yes, I think that could be defined, somewhere between tame and feral, closer to tame.
19:54:28 <AnMaster> cpressey, my main use case is to allow FPDP (double precision floating point fingerprint) to use values like {double,Value} instead of having to do what current implementations do (which is (in pseudo C) basically: union {cell, double})
19:54:35 <AnMaster> does that make it clearer?
19:54:48 <cpressey> Yes.
19:54:48 <AnMaster> well it uses two cells for 32-bit funges
19:55:16 <cpressey> Instructions like + could be defined to say "If the objects on the stack aren't both intvals, reflect (or undefined or something)."
19:55:34 <cpressey> Or, ALL std instructions would have a clause like that.
19:55:50 <cpressey> Popping any object that isn't an intval -> some behavior
19:55:51 <AnMaster> cpressey, not reflect. More useful would be: "fingerprint-defined and/or implementation-defined"
19:55:53 <AnMaster> it could reflect
19:56:02 <AnMaster> but it could also do something sensible for, say, floats
19:56:15 <AnMaster> my point with this is that the {double,Value} is much nicer than using various bit-syntax messing when implementing it in erlang
19:56:30 <AnMaster> cpressey, :\$ and so on are well defined
19:56:32 <Deewiant> cpressey: Leaving toi= undefined is annoying given that the rest of ASCII is all reserved ;-)
19:56:32 <AnMaster> of course
19:56:54 <cpressey> Deewiant: the idea is that the implementer can choose to try to be -98 compatible, or no
19:56:55 <AnMaster> cpressey, and yes perhaps all std ones should
19:56:57 <AnMaster> it would be nice
19:57:10 <AnMaster> cpressey, think along the lines of the rather detailed ATHR spec
19:57:29 <AnMaster> cpressey, and there MUST be a security considerations section *somewhere* in there ;P
19:57:35 <Deewiant> cpressey: Won't there be incompatible changes?
19:58:02 <cpressey> Deewiant: only small ones, on the scale of the ones between 93 and 98, is the current plan
19:58:29 <AnMaster> plus moving tio= out to fingerprints
19:58:31 <Deewiant> That's still incompatible
19:58:44 <AnMaster> Deewiant, sure, but 98% of the befunge93 programs work in 98
19:58:45 <cpressey> AnMaster: I'm not a fan of the idea of putting "do something sensible" in the spec. If your FP changes how + works, it's feral.
19:58:59 <AnMaster> for 1.99% of the remaining one just skipping SGML spaces is enough
19:59:14 <Deewiant> It just seems a bit of a shame that there's a "hole" in the definedness of the ASCII instructions
19:59:15 <cpressey> Deewiant: it's a small incompatibility which can be addressed by an implementation
19:59:17 <AnMaster> for 0.01% or so you have them depending on stuff like "f reflects"
19:59:54 <Deewiant> AnMaster: I don't think there are 10000 Befunge-93 programs
20:00:08 <AnMaster> Deewiant, well, I have seen no ends of variations of hello world in it
20:00:38 <AnMaster> cpressey, So allowing a fingerprint with opaque types to result in "fingerprint defined" behaviour might be a bad idea
20:00:40 <AnMaster> hm right
20:00:41 <Deewiant> Probably not /that/ many
20:00:56 <AnMaster> Deewiant, of course not 10000 hello world!
20:01:00 <AnMaster> there are some other programs
20:01:02 <cpressey> AnMaster: not a bad idea so much as a feral fingerprint...
20:01:08 <AnMaster> cpressey, true
20:01:12 <Deewiant> AnMaster: Yes, but there are likely less than 100 programs in total :-P
20:01:19 <cpressey> The strategy here is not so much to disallow things or discourage them as to give them names :)
20:01:23 <AnMaster> Deewiant, no actually my guess is more around 200-300 programs
20:02:14 <AnMaster> Deewiant, the list on http://catseye.tc/projects/befunge93/ is quite long. And I have seen quite a few programs elsewhere
20:02:19 <cpressey> e.g. "The semantics of executing a Funge character which is not listed in the "Instructions" section is not defined. The subset of Befunge-111 in which all of these characters have the semantics of the 'r' instruction is called _sober_."
20:02:19 <AnMaster> so yeah above 100 definitely
20:02:26 <AnMaster> less than 1000 probably
20:02:46 -!- MizardX has quit (Read error: Connection reset by peer).
20:02:54 <AnMaster> cpressey, nice name for it
20:03:15 <Deewiant> AnMaster: Regardless, 0.01% == 0%
20:04:14 <AnMaster> Deewiant, okay. Well I have seen one programs I think that depended on f reflecting
20:04:28 <AnMaster> three or so that depended on non-SGML spaces
20:04:39 <AnMaster> other ones worked
20:04:56 <Deewiant> Mycology depends on 80x25 loading to detect Befunge-93
20:05:09 <Deewiant> (Although not that insistently)
20:05:18 <AnMaster> Deewiant, true, but these ones had .bf extension
20:05:21 <AnMaster> not .b98
20:06:23 <AnMaster> cpressey, another use case for opaque values: {socket,Fileno}
20:06:38 <AnMaster> cpressey, cfunge currently validates it against a list for SOCK
20:06:42 <cpressey> Yes. Certain std instructions like swap should be handle opaque values, too.
20:07:00 <AnMaster> certainly swap, dup, g and p definitely should
20:07:19 <AnMaster> all those that just move the data around and don't care what it means
20:07:21 <Deewiant> Oof, enforcing that'll be a pain
20:07:30 <Deewiant> With 32-bit funges that implement FPDP
20:07:46 <cpressey> If there was a way to "cast to boolean" then |_w and such could use them too. BUT, that gets into the domain of objects with methods. I shudder.
20:08:05 <AnMaster> Deewiant, an implementation would be free to do it either way for FPDP. I mean, it doesn't say either way
20:08:20 <AnMaster> if the fingerprint defined that "it must use opaque values", well then it would be clear
20:08:35 <cpressey> In this day and age of Unicode I think it's worth considering a way to load fingerprints into regions of characters > 127.
20:08:58 <AnMaster> anyway, I'm likely to use this feature in efunge (as tagged tuples). I doubt it will ever happen in cfunge (since it optimises so heavily for plain integers)
20:09:21 <AnMaster> cpressey, and I agree, befunge should not be object oriented
20:09:55 <AnMaster> cpressey, oh btw, cfunge will never gain unicode for file input. It would slow down file loading having to interpret utf-8 or whatever
20:10:02 <AnMaster> efunge might
20:10:22 <AnMaster> basically, utf8 with just libc will be a pain
20:10:41 <cpressey> There would be no requirement to support it. But nothing stopping implementations from using it either.
20:10:57 <AnMaster> cpressey, and everything except POSIX.1-2001 + the mmap option are optional deps for cfunge
20:11:07 <AnMaster> which means NCRS is optional, since it needs ncurses
20:11:23 <cpressey> You could insist that utf-8 (or other) encoded files are converted to UCS-64(? or whatever it is with no compression) before loading
20:11:25 <AnMaster> cpressey, iirc Deewiant claimed he was able to read the spec as unicode input
20:11:36 <AnMaster> UCS-64 XD
20:11:45 <AnMaster> I think it is UCS-4 which is 32-bit
20:11:50 <Deewiant> cpressey: That doesn't help with using the high characters for anything other than ' and "
20:11:52 <AnMaster> never heard of UCS-64
20:11:54 <Deewiant> Er
20:11:54 <Deewiant> AnMaster: ^
20:11:59 <AnMaster> Deewiant, true
20:12:10 <Deewiant> Yes, UCS-4 is UTF-32
20:12:17 <AnMaster> also the spec says that implementations can do whatever they want above a certain limit
20:12:20 <AnMaster> err
20:12:21 <cpressey> ? Well, the 98 spec leaves enough undefined that it is mostly OK with unicode
20:12:25 <AnMaster> except it also iirc gives an uper limit
20:12:42 <Deewiant> No it doesn't
20:12:46 <AnMaster> "Funge-98 source files are made up of Funge characters. The Funge-98 character set overlays the ASCII subset used by Befunge-93 and may have characters greater than 127 present in it (and greater than 255 on systems where characters are stored in multiple bytes; but no greater than 2,147,483,647.) "
20:12:48 <AnMaster> sure it does
20:12:50 <cpressey> It claims there are no characters above 2,147,483,647
20:12:51 <cpressey> Yeah
20:12:54 <Deewiant> Oh, darn
20:13:00 <AnMaster> but
20:13:03 <Deewiant> Completely forgot about that one
20:13:04 <cpressey> Also, it claims there are characters below 0
20:13:08 <cpressey> Or allows
20:13:18 <AnMaster> cpressey, well, funge-space is signed
20:13:26 <AnMaster> you could use signed 64 bit IO or something I guess
20:13:29 <Deewiant> Yeah, just map everything above 2^32-1 to a negative number ;-P
20:13:58 <AnMaster> hm
20:14:06 <AnMaster> 2^31-1 = 2,147,483,647 isn't it?
20:14:19 <AnMaster> doesn't look so random that limit after all
20:14:19 <Deewiant> Right, thinko
20:14:50 <AnMaster> anyway, a strange limit I agree
20:14:59 <AnMaster> but quite esoteric in a certain way
20:15:27 <Deewiant> It just seems like Funge-98 was originally specced as 32-bit but then partially updated to allow any bittiness
20:15:47 <AnMaster> maybe
20:16:28 <AnMaster> cpressey, anyway for y I suggest the handprint field and such are left as undefined. Since there are plenty of programs that use hard coded offsets for anything up to "size of TOSS"
20:16:44 <cpressey> Hm, q might be deprecatable too, since it only makes sense in concurrent
20:16:59 <AnMaster> cpressey, then it would have to be moved to the same fingerprint as t
20:16:59 <cpressey> AnMaster: Yes. Much of y will now be undefined, I think.
20:17:00 <Ilari> Isn't each cell capable of storing one funge number and isn't there instructions to dump part of program space into file and load such dump?
20:17:22 <cpressey> Ilari: Yes, i and o
20:17:48 <AnMaster> cpressey, not much. Just handprint, maybe version number, oh and = op paradigm I guess.., the beglad thingy
20:17:52 <AnMaster> that's all isn't it?
20:17:54 <cpressey> Deewiant: That impression is correct, it went to "at least 32-bit"
20:18:19 <Ilari> Which would imply that bignum funge need to have some way to represent bignums in dumps...
20:18:25 <cpressey> Well, handprint and version number are inherently implementation-defined anyway :)
20:18:27 <AnMaster> Ilari, not at all
20:18:33 <AnMaster> Ilari, since it is dumped to plain text
20:18:47 <AnMaster> it is perfectly fine to do %256
20:19:03 <AnMaster> at least, that is what I do currently, otherwise it doesn't work even for a 32-bit funge
20:19:08 <cpressey> (Or at least the new fingerprint for those instruction should say that)
20:19:24 <Deewiant> cpressey: I'd keep the handprint there, it's amusing if not useful
20:19:38 <AnMaster> cpressey, what about allowing #! starting line optionally?
20:20:02 <AnMaster> you know, like #!/usr/bin/fbbi or possibly #!/bin/fbbi when funge becomes really popular!
20:20:15 <Deewiant> CCBI already implements that
20:20:20 <AnMaster> what?
20:20:20 <Deewiant> Due to user request
20:20:25 <AnMaster> doesn't that break stuff
20:20:35 <Deewiant> It's not enabled by default, only if you pass a switch
20:20:37 <AnMaster> ah
20:20:44 <AnMaster> well that works with no spec modification then
20:20:56 <AnMaster> also strange user request
20:20:59 <Deewiant> Yes, like most implementation-specific extensions :-P
20:21:14 <AnMaster> I can actually not imagine anyone would *request* such a feature like that
20:21:50 <Deewiant> Why not :-P
20:22:13 <cpressey> Maybe they wanted to write befunge CGIs
20:24:07 <AnMaster> cpressey, yeaaaah, no
20:24:40 <AnMaster> cpressey, anyway team id could be nice to exploit in a future extension to ATHR to allow multiple erlang nodes as well
20:24:43 <cpressey> executing #!/ would result in a division by zero, which could be handled specially :)
20:24:58 <AnMaster> with async update of funge space to actually not make it completely grind to halt of course
20:25:50 <AnMaster> cpressey, so each would have a local copy and updates would be sent over infiband or such
20:25:52 <AnMaster> :D
20:25:54 <Deewiant> cpressey: Oh, one char which isn't reserved by Funge-98 is tab, maybe you could use that for something amusing
20:26:01 <Deewiant> cpressey: Division by zero is well-defined in Funge-98
20:26:16 <AnMaster> Deewiant, tab = 4 spaces wide!
20:26:25 <AnMaster> of course scarf isn't here
20:26:33 <AnMaster> doesn't he prefer mixed indention iirc
20:26:34 <Deewiant> AnMaster: Pushes 4 spaces on stack? ;-P
20:26:48 <AnMaster> Deewiant, well, that depends on preferred tab width
20:26:51 <Deewiant> Or just "pushes an implementation-defined number of spaces on stack"
20:26:55 <cpressey> Deewiant: and the number of programs that rely on it producing a zero when division by zero occurs as the second instruction of the program is ... ?
20:27:06 <AnMaster> cpressey, btw iirc ehird said he wanted an n-dimensional funge
20:27:07 <AnMaster> that is
20:27:12 <Deewiant> cpressey: At least 2, Mycology included
20:27:15 <cpressey> Nefunge
20:27:21 <Deewiant> Er, well not as the second instruction
20:27:22 <cpressey> was the name of that experiment
20:27:29 <cpressey> (n-dimensional)
20:27:33 <Deewiant> At least 1, for that
20:27:57 <AnMaster> cpressey, one that isn't restricted and where a program can go into any dímension it wants
20:27:59 <cpressey> Deewiant: Well, it wasn't a very serious suggestion anyway.
20:27:59 <AnMaster> dimension*
20:28:14 <AnMaster> so vector length would have to have some different handling for it
20:28:20 <AnMaster> should probably be a fungoid though
20:28:43 <AnMaster> with something like "<length of vector>,...,z,y,x"
20:28:44 <cpressey> AnMaster: yes, it was considered at one point in the late 90s. No one worked much on it
20:29:01 -!- cheater2 has quit (Ping timeout: 264 seconds).
20:29:28 <cpressey> vectors become more like hash tables (x: 3, y: 3, z: 3, d4: 3, d5: 3, ...)
20:29:45 <AnMaster> I optimise too much for just two dimensions in cfunge for anything except exactly two dimensions to be viable without a lot of work, and in efunge, well, it would require some work, not quite as much though
20:30:57 -!- tombom__ has quit (Ping timeout: 265 seconds).
20:31:02 -!- tombom has joined.
20:32:06 <AnMaster> (an explanation may be in order btw: Order of importance for features in cfunge: correctness, speed, extensibility. For efunge: correctness, extensibility, speed)
20:32:46 <AnMaster> basically, speed is nice in efunge but not a primary goal. For cfunge speed is more important than everything else except following the spec
20:33:34 <AnMaster> (and not crashing on any input of course, OOM is somewhat excused from that)
20:35:32 <Deewiant> What do you mean by extensibility, exactly?
20:36:03 <Deewiant> For CCBI I'd say it's: correctness, fingerprint/extension support, speed
20:36:19 <AnMaster> Deewiant, "being able to do things like ATHR and what not without going insane"
20:36:45 <Deewiant> But no TRDS? ;-P
20:36:47 <AnMaster> Deewiant, it is designed with things like ATHR and the better MVRS we considered in mind.
20:37:01 <AnMaster> Deewiant, I think that might be possible perhaps. I won't do it though
20:37:04 <AnMaster> but feel free to do it
20:37:19 <AnMaster> Deewiant, I think it is nearly impossible when combined with ATHR though
20:37:25 <AnMaster> since there are no single ticks any more
20:37:29 <AnMaster> with async threads
20:38:07 <AnMaster> and any command would take some time to register in other threads
20:38:38 <AnMaster> Deewiant, stuff like IIPC would be possible in theory definitely, if you allow that things might not happen straight away in the other threads
20:38:49 <AnMaster> and IIPC at least need a way to break deadlocks
20:39:00 -!- augur has joined.
20:39:24 <AnMaster> Deewiant, so basically, when going for ATHR I made TRDS virtually impossible
20:39:44 <AnMaster> Deewiant, do you agree with that?
20:39:51 <Deewiant> Baah, I'm sure CCBI2 can manage both ;-)
20:39:59 <AnMaster> Deewiant, both used at once?
20:40:08 <AnMaster> Deewiant, anyway, remember the ATHR spec is still somewhat in flux
20:40:10 <Deewiant> Might as well
20:40:26 <AnMaster> I have figured out that some stuff didn't work at all and such
20:40:43 <AnMaster> the core parts (not the books thing) is mostly well defined by now
20:41:31 <AnMaster> some parts works, there are test cases for most for a single thread and a few for multiple threads (they are partly UNDEF due to timing issues)
20:44:11 <AnMaster> there, pushed an update to one of the test cases for ATHR
20:45:42 <AnMaster> Deewiant, anyway since the ATHR threads do not run synced it would be impossible to determine when a certain tick happened. After all they one thread might be in the middle of executing tick 240, while another is just about to start at tick 259
20:46:11 <AnMaster> Deewiant, oh and the locking in D will be fun. Does it have a pthreads interface or how is it done?
20:46:36 <Deewiant> The runtime implements threads and fibers and whatever
20:46:50 <AnMaster> Deewiant, and thread safe hash tables?
20:46:52 <Deewiant> Of course I could bind to pthreads but no reason t o
20:46:54 <Deewiant> to*
20:47:09 <AnMaster> Deewiant, in fact: plenty of reasons *not* to
20:47:19 <Deewiant> AnMaster: You mean thread-safe Funge-Space? Probably will have to lock
20:48:05 <AnMaster> Deewiant, well, it doesn't have to be safe w.r.t. non-atomic CAS (like funge code emulating a CAS). And ATHR is defined such that the CAS it provides is only safe against the G and P it provides
20:48:12 <AnMaster> this is required because erlang has no true CAS
20:48:16 <AnMaster> being message oriented
20:48:41 <AnMaster> and doing every write through a gen_server would be slow
20:49:12 <AnMaster> thus, it uses public ets table normally (erlang internally does some locking as required here)
20:49:20 <AnMaster> and only serialises it for ATHR CAS
20:49:26 <AnMaster> (and it's G/P)
20:49:40 <cpressey> What if you give a negative value as the iteration count for k?
20:49:52 <AnMaster> cpressey, well. that's one of the UNDEFs in mycology
20:49:59 <AnMaster> cpressey, iirc cfunge and CCBI does different things
20:50:10 <AnMaster> I think cfunge reflects and CCBI takes the absolute value
20:50:13 <AnMaster> or something like that
20:50:25 <Deewiant> No, they both reflect
20:50:28 <AnMaster> cpressey, mind you, k currently is unable to execute exactly one iteration
20:50:35 <Deewiant> Mycology just tests for absolute value taking
20:50:51 <AnMaster> cpressey, based on stuff you previously said/wrote iirc
20:51:19 <AnMaster> cpressey, as in 0kab pushes b. 1kab pushes aab
20:51:20 <AnMaster> iirc
20:51:33 <AnMaster> Deewiant, you better explain the mess he caused and why
20:51:37 <AnMaster> I don't remember the details
20:51:37 <AnMaster> ;)
20:52:07 <Deewiant> I don't remember the details either
20:52:12 <AnMaster> ah yes
20:52:21 <Deewiant> Basically, k doesn't move past what it executes unless the iteration count is 0
20:52:25 <Deewiant> Can't remember why
20:52:27 <AnMaster> ah yes
20:52:28 <AnMaster> that was it
20:52:39 <cpressey> ?
20:52:41 <AnMaster> cpressey, anyway that means that just executing it's instruction once is impossible
20:52:46 <cpressey> Oh
20:53:24 <AnMaster> Deewiant, didn't Mike Riley dig up some old cats-eye test suite or something?
20:53:28 <Deewiant> There was some issue with all ways of doing it
20:53:34 <Deewiant> Oh, it may have been because of that
20:53:40 <AnMaster> yes I think so
20:53:52 <cpressey> k is so dumb
20:54:07 <AnMaster> cpressey, k is quite useful actually for some things
20:54:11 <cpressey> It should probably be popping the instruction off the stack instead of getting it from the path
20:54:35 <AnMaster> cpressey, that would help for nested k
20:54:36 <AnMaster> like
20:54:42 <AnMaster> >22kk^
20:54:53 <AnMaster> cpressey, tell me where that one goes up
20:55:09 * AnMaster watches cpressey's head explode
20:55:24 <AnMaster> cpressey, anyway changing k that way *now* is sure to break things
20:55:40 <AnMaster> since people actually use k outside test suites
20:56:15 <Deewiant> Please don't mess with k, I'll have to go through mycotrds again :-)
20:56:22 -!- jcp has joined.
20:56:23 <AnMaster> Deewiant, you use it there?
20:56:26 <AnMaster> poor you
20:56:44 <AnMaster> but yeah, changing it now would break sooo much
20:57:01 <AnMaster> but perhaps it should be done for the 1k case
20:57:03 <AnMaster> so it works
20:57:11 <AnMaster> I'm not sure.
20:57:18 <Deewiant> So 2k executes three times but 1k once? :-P
20:57:42 <AnMaster> Deewiant, no, so that 2k executes 2 times and so on... ;P
20:58:18 <Deewiant> I think there are still some strangenesses even with that
20:58:25 <Deewiant> Mostly when using strange instructions with k
20:58:30 <Deewiant> Can't remember what
20:58:30 <AnMaster> Deewiant, anyway I think perhaps there was just a bug in that cats eye test suite
20:58:39 <AnMaster> might explain why I never found it elsewhere
20:58:53 <cpressey> Wait, >22kk^ ?
20:58:56 <AnMaster> Deewiant, and yes there are some issues with where k^ goes up and so
20:58:59 <AnMaster> cpressey, yep
20:59:03 <AnMaster> cpressey, figure that out
20:59:34 <AnMaster> cpressey, or why not >12345kkj abcdefg
20:59:36 <cpressey> On the first k
20:59:39 <AnMaster> that ones looks even funnier
20:59:42 <AnMaster> cpressey, wait, what?
20:59:54 <cpressey> "where it goes up" - maybe I don't understand?
21:00:16 <AnMaster> cpressey, so everything for nested k executes on the first k?
21:00:33 -!- lament has quit (Ping timeout: 240 seconds).
21:01:02 <Deewiant> AnMaster: You probably meant something like >22kk^^^^^^^^^
21:01:15 <Deewiant> Or did you?
21:01:18 <cpressey> AnMaster: k executes in one tick
21:01:22 <AnMaster> Deewiant, that doesn't cause any other issues
21:01:28 <AnMaster> cpressey, yes. But at which location
21:01:34 <Deewiant> AnMaster: I think in CCBI it'll go past the first ^ ;-P
21:01:43 <AnMaster> Deewiant, strange
21:01:46 <cpressey> AnMaster: ? Where the instruction is, of course ?
21:01:56 <AnMaster> cpressey, so what does: >12345kkj abcdefg do=
21:01:59 <AnMaster> s/=/?/
21:02:07 <Deewiant> AnMaster: At least, if you put more stuff on the stack; 222kk (since the inner k is executed twice and thus pops two things)
21:02:16 <cpressey> Jumps far to the right...
21:02:23 <cpressey> like 20 cells
21:02:39 <MissPiggy> I don't understand the argument that we couldn't understand something more intelligent than us
21:02:49 <AnMaster> cpressey, so it keeps executing j even after the first iteration of the outer k?
21:02:51 <cpressey> No, like 4+3+2+1 cells I guess
21:02:52 <MissPiggy> he says a goldfish couldn't understand us, just like we couldn't understand AI
21:02:59 <cpressey> AnMaster: yes
21:03:04 <AnMaster> cpressey, notice that there are two k:s there
21:03:05 <AnMaster> nested
21:03:05 <MissPiggy> but it's just an analogy.... what's the justification
21:03:05 <Deewiant> cpressey: After the first j, the IP's position will have changed and the inner k sees a different instruction
21:03:26 <cpressey> Deewiant: the tick hasn't expired yet, so the IP hasn't moved
21:03:31 <AnMaster> err
21:03:40 <Deewiant> Ah, that's an interesting way of looking at it
21:03:45 <AnMaster> cpressey, so you mean the jump move is only applied after the tick is done?
21:03:53 <AnMaster> yeargh
21:04:07 <AnMaster> that will be like impossible to change to in cfunge
21:04:08 <cpressey> "An instruction is executed by an IP every tick. The IP executed is the one at the current position of the IP. Only after that does the IP moves by its delta to a new position. "
21:04:25 <Deewiant> cpressey: But it's not moving by its delta here
21:04:28 <AnMaster> indeed
21:04:29 <cpressey> I'm sure the 1st IP in the 2nd sentence meant to be "instruction" there
21:04:35 <AnMaster> it is being forced ahead
21:04:54 <Deewiant> cpressey: E.g. the # instruction: "moves the IP one position beyond the next Funge-Space cell in its path"
21:05:08 <cpressey> I don't think "by its delta" was meant to be prescriptive. the point was that it moves
21:05:12 <Deewiant> Not after the tick; "moves the IP", i.e. right now
21:05:23 -!- lament has joined.
21:05:26 * AnMaster gets the popcorn for this one
21:05:27 <Deewiant> cpressey: I meant that it's not the normal every-tick move, it's an additional move induced by an instruction
21:05:46 <cpressey> Well, if you interpret it like that, k has different and interesting semantics, yes.
21:05:58 <AnMaster> cpressey, yep, and I think that is what everyone done so far
21:06:05 <AnMaster> which caused quite a lot of issues with k
21:06:11 <MissPiggy> "reasoning by analogy" seems like a flaw
21:06:12 <Deewiant> If you don't interpret it like that you'll be breaking a lot of Concurrent Funge-98 programs as well ;-)
21:06:32 <cpressey> OK, so k will be undefined too.
21:06:39 <AnMaster> argh
21:06:43 <AnMaster> cpressey, that is going too far
21:06:58 <Deewiant> I thought we were defining the undefineds ;-)
21:07:03 <AnMaster> yep
21:07:09 <AnMaster> k isn't optional
21:07:26 <AnMaster> I'm okay with tio= being handled these way
21:07:45 <Deewiant> I'm okay with them because you need to ask y whether they're available anyway
21:07:47 <cpressey> OK, then define it in a way that doesn't break any programs.
21:08:04 <AnMaster> cpressey, almost impossible, and I'm okay with breaking some programs
21:08:09 <AnMaster> for the undef parts
21:08:14 <AnMaster> just not too many
21:08:28 <Deewiant> Just keep it as it is now and say something about nested k
21:08:30 <AnMaster> call it path of least issues maybe
21:08:39 <AnMaster> Deewiant, the issue with 1k though...
21:08:42 <cpressey> "something"
21:09:03 <cpressey> Could just disallow nested k. I doubt anyone uses it
21:09:07 <Deewiant> cpressey: Well, I prefer my interpretation ;-)
21:09:12 <Deewiant> AnMaster: I don't mind that
21:09:30 <Deewiant> If you want, define negative arguments as executing exactly that many times ;-)
21:09:52 <Deewiant> I.e. for n < 0, k executes the instruction |n|-1 times and doesn't move past it
21:10:03 <AnMaster> cpressey, take a look at http://sprunge.us/MbCj?c (cfunge's k implementation)
21:10:34 <AnMaster> cpressey, for nested k I think ccbi does something quite different
21:10:37 <Deewiant> Special-casing kk? Tut, tut. :-P
21:10:42 <AnMaster> Deewiant, yep
21:10:50 <Deewiant> CCBI does exactly nothing, it just executes it as normal
21:10:59 <Deewiant> Which leads to rather unintuitive semantics
21:11:00 <AnMaster> Deewiant, that didn't work out though
21:11:03 <AnMaster> Deewiant, exactly
21:11:08 <Deewiant> Yes it works out
21:11:09 <cpressey> Deewiant: what does it do instead of moving past it? Act like #
21:11:11 <Deewiant> It's just not intuitive :-P
21:11:44 <Deewiant> cpressey: I mean it moves into it. It moves past the k into the instruction. Just like what k does now with positive arguments
21:12:02 <cpressey> Deewiant: So, you'd change the semantics for positive count?
21:12:18 <Deewiant> No, for negative
21:12:47 <Deewiant> Currently for positive: k executes n times, then moves into the instruction it just executed, thus executing it one more time come next tick
21:13:02 <Deewiant> Hence 1k has the net effect of executing twice
21:13:06 <AnMaster> ooh that is a good idea
21:13:18 <Deewiant> My proposal: for negative, execute |n|-1 times, otherwise behave the same.
21:13:19 <AnMaster> for negative counts define it to execute and skip over
21:13:35 <AnMaster> Deewiant, that's brilliant
21:13:37 <Deewiant> Or |n| and skip over, whatever
21:13:41 <cpressey> Deewiant: Oh, I thought you were proposing something that would allow you to execute the instruction exactly 0 times
21:13:45 <Deewiant> I'd prefer |n|-1 and not skip
21:13:49 <AnMaster> cpressey, oh, 0k does that
21:13:51 <Deewiant> cpressey: That's what 0k does
21:13:57 <AnMaster> cpressey, I think it was specced somewhere
21:13:58 <Deewiant> 0k is like #
21:14:01 <AnMaster> yep
21:14:04 <AnMaster> that was it
21:14:05 <Deewiant> Yes, explicitly specced
21:14:21 <cpressey> Wait, I thought that was the problem, that 0kX executed X once
21:14:30 <cpressey> because it follows 0k
21:14:33 <Deewiant> No, 0k executes zero times
21:14:35 <Deewiant> 1k executes twice
21:14:36 <AnMaster> cpressey, no the issue is that 1kX executes X twice
21:14:44 <Deewiant> The problem is that there is no way of executing once
21:14:47 <AnMaster> exactly
21:14:52 <cpressey> Oh, ok.
21:15:16 <Deewiant> But yeah, defining the negatives would do it
21:15:19 <AnMaster> cpressey, still pretty similar issue. Just somewhat more wtfy
21:15:20 <cpressey> OK, then that mostly makes sense.
21:15:21 <AnMaster> :)
21:15:27 <Deewiant> My proposal is just general: alternatively all negatives could execute once, if you prefer :-P
21:15:37 <AnMaster> still, nested k is a nested can of worms
21:15:54 <cpressey> Yeah, I'm pretty sure nested k should just go undefined.
21:15:55 <Deewiant> You're so negative ;-P
21:16:01 <AnMaster> Deewiant, hah
21:16:14 <Deewiant> (Pun actually not intended)
21:16:24 <AnMaster> suuuuuuure...
21:16:39 <Deewiant> I realized it at about the same time as you responded
21:17:05 <AnMaster> the negative = once, would be somewhat harder to use, not that that is necessarily a bad thing.
21:17:38 <Deewiant> I figure the issue is just that you know you're going to hit a k at some point, but you'd like to execute only once
21:17:38 <AnMaster> nor is it automatically a good thing I think
21:17:42 <AnMaster> since this is *NOT* intercal
21:21:50 <cpressey> Is the behaviour of ># X Y to execute both X and Y, or just Y?
21:21:50 <AnMaster> wtf, I was at the painful end of a static discharge.... against a plastic surface
21:21:54 <AnMaster> how could that even happen
21:22:05 <cpressey> Oh, the static is revolting.
21:22:12 <AnMaster> cpressey, eh?
21:22:13 <AnMaster> hah
21:22:16 <cpressey> the great electron uprising you know
21:22:20 <AnMaster> right
21:22:32 <AnMaster> cpressey, anyway it would execute X and Y, alternatively break lots of things
21:22:42 <cpressey> Huh. I was pretty sure it skipped X. OK.
21:22:44 <AnMaster> well, probably few programs use it
21:22:52 <AnMaster> cpressey, well you told us before it didn't
21:22:57 <AnMaster> I might have your mail around still
21:23:11 <cpressey> That makes sense, I was misremembering.
21:23:28 <AnMaster> cpressey, it does?
21:23:58 <AnMaster> cpressey, what email do you use? so I can search for it
21:24:08 <AnMaster> oh wait never mind
21:24:15 <AnMaster> found a folder called "funge"
21:24:21 <AnMaster> it might be related
21:24:51 <AnMaster> hm the mail is not there
21:24:52 <AnMaster> strange
21:26:02 <AnMaster> seems to be some funge stuff in "other" and "misc" and "assorted" too
21:26:16 <AnMaster> really should come up with a saner organisation for my email
21:26:18 <Deewiant> cpressey: # says "funge-space cell" not "instruction"
21:26:34 <Deewiant> As far as implementations go, it's about 50/50. Mycology aborts early on if that executes only Y.
21:26:42 <cpressey> AnMaster: gmail, for several years
21:26:50 <AnMaster> ah found the mail
21:28:07 <AnMaster> well then due to what Deewiant said it doesn't apply actually
21:28:42 <AnMaster> but anyway, the relevant section was: http://pastebin.ca/1810777
21:29:12 <Deewiant> k does say "next instruction".
21:30:07 <AnMaster> indeed
21:30:16 <AnMaster> that makes that a non-issue :)
21:30:24 <cpressey> That might be why I was thnking that
21:31:48 <AnMaster> cpressey, fungot and mycology are the largest befunge98 apps I know of
21:31:49 <fungot> AnMaster: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:32:05 <AnMaster> shut up ;P
21:32:16 <Deewiant> fungot isn't that big is it?
21:32:17 <fungot> Deewiant: we are looking to achieve a shorter life span... lavos will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's place...
21:32:30 <AnMaster> (who would want to toast their own land)
21:32:43 <AnMaster> also "we are looking to achieve a shorter life span" is pretty funny
21:32:52 <AnMaster> forgot where it came from
21:32:59 <AnMaster> fizzie explained it before
21:33:14 <Deewiant> Something like "go there only if you are looking to achieve a shorter live span"
21:33:26 <Deewiant> life*
21:35:17 <AnMaster> right
21:35:54 <AnMaster> anyway, the befunge turt quine is another semi-major app
21:36:03 <AnMaster> s/app/program/
21:36:11 <AnMaster> and then there are a number of smaller testing programs
21:36:45 <AnMaster> I think I wrote maybe 20 or 30 "would have fitted into 93 with some work" sized programs to test bugs and what not
21:37:12 <AnMaster> there was that mine sweeper game in 98 that I never finished
21:41:10 <cpressey> Wait, I don't see why you wouldn't want to write CGIs in Befunge...
21:41:16 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
21:42:06 <cpressey> http://catseye.tc/projects/fbbi/eg/cgi.b98.cgi was supposed to be one
21:43:07 <cpressey> on my current host, I'd need an interpreter written in PHP though
21:45:08 <cpressey> apparently fbbi supports -script to interpret the hashbang line
21:45:31 <AnMaster> heh
21:46:42 <Deewiant> Hmm, CCBI might've picked it up from there then
21:48:07 <cpressey> I love when I can say "apparently" about stuff I've done
22:01:40 -!- cheater2 has joined.
22:03:05 <AnMaster> night →
22:23:16 -!- kar8nga has quit (Remote host closed the connection).
22:25:57 <Gregor> Tia sez: gbhhhh
22:26:41 <oerjan> tia maria
22:39:23 -!- tombom has quit (Quit: Leaving).
22:56:54 -!- MigoMipo has quit (Remote host closed the connection).
23:16:42 -!- FireFly has quit (Quit: Leaving).
23:17:09 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:20:24 * Sgeo_ should check to see if PSOX works on Windows at some point
23:25:05 <Gregor> It does not.
23:25:43 <Sgeo_> :(
23:25:46 <Sgeo_> It's supposed to
23:25:57 <Sgeo_> What happens, exactly?
23:26:10 <Sgeo_> I mean, after the bug in whatchamacallit, the easter egg, is fixed
23:28:14 <Gregor> Oh, I just assumed it didn't because nothing ever works on Windows.
23:28:28 <Gregor> It's not like I ever use Windows.
23:59:03 -!- augur has quit (Ping timeout: 240 seconds).
2010-02-26
00:03:01 -!- MissPiggy has quit (Quit: Lost terminal).
00:22:20 -!- cpressey has left (?).
01:11:00 -!- augur has joined.
01:20:28 -!- augur has quit (Ping timeout: 245 seconds).
01:22:37 -!- augur has joined.
01:26:57 -!- augur has quit (Ping timeout: 256 seconds).
01:28:39 -!- augur has joined.
01:40:53 -!- augur has quit (Ping timeout: 245 seconds).
01:42:25 -!- augur has joined.
01:49:38 -!- augur has quit (Ping timeout: 245 seconds).
01:50:23 -!- coppro has joined.
01:53:54 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
02:08:03 -!- augur has joined.
02:25:28 -!- augur has quit (Ping timeout: 245 seconds).
03:22:11 -!- gm|lap has joined.
03:49:54 -!- bsmntbombdood_ has joined.
03:51:53 -!- bsmntbombdood has quit (Read error: Operation timed out).
03:55:09 -!- oerjan has quit (Quit: Good night).
03:56:07 -!- adu has joined.
04:09:53 -!- Gracenotes has joined.
04:16:17 -!- bsmntbombdood__ has joined.
04:18:48 -!- bsmntbombdood_ has quit (Ping timeout: 245 seconds).
04:35:03 -!- Sgeo_ has changed nick to Sgeo.
04:40:12 -!- augur has joined.
04:55:34 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
05:00:13 -!- augur has quit (Ping timeout: 265 seconds).
05:03:33 -!- Wareya has quit (Ping timeout: 252 seconds).
05:06:37 -!- zzo38 has joined.
05:07:39 <zzo38> I see the note about INTERCAL in the topic message. But what I know, is, P.D.Q. Bach is the INTERCAL of Baroque music. But it doesn't help much unless you know about both INTERCAL and about P.D.Q. Bach.
05:19:56 <zzo38> I try to figure out how to add natural numbers represented as sets
05:21:38 <zzo38> And I am still also trying to figure out how to write a program in Hyper Set Language that produces a set of all non-halting programs
05:34:58 -!- coppro has quit (Ping timeout: 264 seconds).
05:38:51 -!- augur has joined.
05:39:38 <augur> yo bitches
05:40:23 <zzo38> !
05:44:12 <zzo38> I have looking up things about set theory on Wikipedia, today.
05:44:51 -!- kwertii_ has joined.
05:47:23 -!- kwertii has quit (Ping timeout: 246 seconds).
05:47:23 -!- kwertii_ has changed nick to kwertii.
05:48:02 <zzo38> I think the old Russell's paradox set in Hyper Set Language was wrong, I fixed it now, hopefully this way is actually Russell's paradox for real, this time: Russell={[0.#;1.0]/(element_of/(#.#))}\*;
05:48:37 <zzo38> Where element_of={[<#]&>#;not/(not/@)};
05:48:52 <zzo38> And not=({0}!(0.0))|(0.1);
05:53:56 -!- coppro has joined.
06:03:06 <augur> zzo38: you should help work on the formal grammars pages. :D
06:19:37 <zzo38> What formal grammars pages did you mean?
06:20:43 <zzo38> Also, I looked at the article about fuzzy sets, and now it allowed me to think of something else, which is, quantum fuzzy sets (the probabilities can be entangled).
06:22:21 <augur> http://toolserver.org/~soxred93/pages/index.php?name=Augur&namespace=0&redirects=noredirects
06:22:55 <augur> those are the ones i created recently, i also modified the TAG, CCG, and Indexed Grammar pages
06:23:08 <augur> you should contribute some stuff regarding some other formalisms
06:24:41 <zzo38> Which ones should I contribute?
06:24:52 <augur> anything you want!
06:24:56 <augur> just not controlled grammars
06:25:00 <augur> since im working on that page
06:25:01 <augur> :P
06:25:07 <zzo38> OK.
06:25:24 <zzo38> Unfortunately I don't know enough about formal grammars to write a Wikipedia article
06:29:15 <zzo38> Ah! PHP works now on Hackiki.
06:30:22 <augur> thats ok, zzo38, its a opportunity to LEARN about them. :D
06:30:54 <zzo38> augur: Yes, I can learn about formal grammar from what is already written on Wikipedia
06:30:55 * Sgeo rates xkcd on WOT as being not particularly child friendly
06:31:10 <zzo38> What does "WOT" means
06:31:24 <augur> zzo38: no no, i mean, you can find some reference to some formalism on wikipedia that isnt property explained, or given thorough examples, or whatever
06:31:24 <Sgeo> Web of Trust
06:31:27 <Sgeo> mywot.com
06:31:30 <augur> and then you can go research them, etc.
06:31:45 <augur> thats what im doing for the categorial minimalism stuff, and for the control grammar stuff
06:32:03 <zzo38> OK
06:32:06 <augur> and you just go through doing that. if you find some reference in a paper or book to some formalism you havent heard of ever, check to see if its on wiki
06:32:11 <augur> if not, go find info about it and put it up
06:34:02 <Sgeo> There's something about Reddit that my computer doesn't like
06:34:03 <Sgeo> :(
06:34:13 <augur> ok im going to play some wipeout
06:35:04 <zzo38> And I'm on Hackiki now
06:35:08 -!- zzo38 has quit (Quit: zzo38).
06:36:17 <augur> redbull is THE official drink of the early Wipeout games. :D
06:36:22 <augur> not that i like redbull or anything but
06:43:59 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:45:45 -!- yiyus has quit (Ping timeout: 265 seconds).
06:49:32 -!- adu_ has joined.
06:50:54 -!- adu has quit (Ping timeout: 265 seconds).
06:56:37 * Sgeo should not be on the computer right now
06:56:42 * Sgeo should be sleeping
06:57:13 -!- adu_ has quit (Quit: adu_).
06:59:05 -!- yiyus has joined.
07:04:42 -!- Asztal has joined.
07:05:59 -!- tombom has joined.
07:10:29 -!- coppro has quit (Quit: good night).
07:23:33 <augur> i shouldnt be sleeping
07:23:33 <augur> :D
07:39:01 -!- kwertii has quit (Quit: bye).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:32 <augur> so ive invented fun little variant of the lambda calculus which isnt usable as a mode of computation but which is useful in constructing interesting representations of meaning :T
08:19:49 -!- Asztal has quit (Ping timeout: 265 seconds).
08:47:58 -!- MizardX has joined.
08:59:17 -!- scarf has joined.
08:59:21 -!- scarf has quit (Changing host).
08:59:21 -!- scarf has joined.
09:03:17 -!- gm|lap has quit (Quit: HydraIRC is a child molester -> http://silverex.net/news <- i couldn't change my quit message).
09:22:38 -!- scarf has quit (Read error: Connection reset by peer).
09:22:43 -!- scarf has joined.
09:33:22 -!- SHAXMAT has joined.
09:38:36 -!- pikhq has quit (Read error: Connection reset by peer).
09:39:54 -!- pikhq has joined.
09:42:58 -!- SHAXMAT has quit (Ping timeout: 245 seconds).
10:04:28 -!- Asztal has joined.
10:15:13 -!- scarf has quit (Ping timeout: 264 seconds).
10:15:44 -!- scarf has joined.
10:58:51 -!- scarf_ has joined.
11:00:55 -!- scarf has quit (Ping timeout: 276 seconds).
11:08:22 -!- scarf_ has changed nick to scarf.
11:08:36 -!- augur has quit (Quit: Leaving...).
11:08:39 -!- augur has joined.
11:15:52 -!- BeholdMyGlory has joined.
11:54:57 -!- scarf has quit (Ping timeout: 252 seconds).
11:55:46 -!- scarf has joined.
12:12:48 -!- bsmntbombdood has quit (Read error: Operation timed out).
12:30:17 -!- scarf has quit (Remote host closed the connection).
12:30:26 -!- scarf has joined.
12:30:31 -!- bsmntbombdood has joined.
12:34:32 -!- tombom_ has joined.
12:37:35 -!- oerjan has joined.
12:38:25 -!- tombom has quit (Ping timeout: 276 seconds).
12:38:49 <oerjan> <zzo38> I see the note about INTERCAL in the topic message. But what I know, is, P.D.Q. Bach is the INTERCAL of Baroque music. But it doesn't help much unless you know about both INTERCAL and about P.D.Q. Bach.
12:39:11 <oerjan> um there is a major distinction: INTERCAL actually _exists_.
12:39:26 <scarf> oerjan: on the forum where that was originally posted, it made sense to assume that I Wanna Be The Guy would be well-known to people who viewed it
12:40:02 <oerjan> well, I Wanna Be The Guy _also_ exists, i believe
12:40:20 <oerjan> and i had heard of it (on this channel), so...
12:40:26 <scarf> it does exist
12:40:52 <oerjan> i am referring to P.D.Q. Bach, who regretfully doesn't (and never did).
12:41:36 -!- FireFly has joined.
12:42:02 <oerjan> and i would bet that we have a better fit to that on the wiki. any of the Lesser Known languages, say
12:43:27 <oerjan> admittedly existence of persons and existence of programming languages may not be quite directly comparable.
12:48:13 -!- augur has quit (Ping timeout: 264 seconds).
13:11:55 -!- MissPiggy has joined.
14:03:06 -!- oerjan has quit (Quit: leaving).
14:24:11 -!- augur has joined.
15:09:26 <AnMaster> is there any esolang where writing tac would be easier than writing cat?
15:09:48 <AnMaster> (in case you don't know, tac is like cat but reverses the order of the lines)
15:10:13 <AnMaster> scarf, know any such esolang?
15:20:33 <Deewiant> Any stack-based one with only line-based I/O, presumably
15:27:30 -!- cpressey has joined.
15:37:24 <cpressey> If INTERCAL's the PDQ Bach, which one's the Victor Borge?
15:39:38 <AnMaster> Deewiant, how so? tac doesn't reverse the stuff inside a given line
15:39:44 <AnMaster> it only reverses the order of lines
15:39:59 <Deewiant> AnMaster: Thus the restriction for line-based I/O
15:40:16 <AnMaster> Deewiant, indeed, but still it would be as simple as doing one read then one write and so on
15:40:18 <Deewiant> Although I guess it's still easier to print them out as they come in
15:40:18 <AnMaster> after each other
15:40:20 <Deewiant> Yeah
15:40:44 <AnMaster> so that is not a valid answer to my question then
15:41:49 <Deewiant> It mightn't've been in any case, if no such language exists
15:42:20 <AnMaster> Deewiant, err "mightn't've"?
15:42:32 <Deewiant> might not have
15:42:34 <AnMaster> right
15:55:55 <scarf> AnMaster: Cyclexa would be like that if not for a hack that meant that both ways were equally easy
16:03:07 <AnMaster> scarf, hm *looks*
16:03:19 <scarf> AnMaster: nothing to look at
16:03:24 <scarf> but it treats memory as a stack
16:03:30 <AnMaster> scarf, no wiki page?
16:03:43 <scarf> no, vapourware
16:03:56 <AnMaster> scarf, describe it then, since you obviously know about it
16:04:21 <scarf> AnMaster: think stupidly generalised regex
16:04:33 <AnMaster> uhu
16:04:41 <AnMaster> I can't quite imagine what that means
16:40:25 <cpressey> It matches things besides strings? Pointers, dogs, bicycles, trampolines, caves, ideologies, chuck steak...?
16:41:42 * cpressey kicks it up 1.125 notches
16:42:10 <cpressey> /BA(M*)!/
16:43:27 * AnMaster notes that FILE is too C-dependant
16:43:47 <scarf> cpressey: well, think of "B" in a regex as meaning "if the current string starts with B, remove it; otherwise fail"
16:43:48 <AnMaster> I'm not sure how to implement all of r, w, a, r+, w+, a+ in erlang
16:43:52 <AnMaster> some I can do
16:43:56 <scarf> that's what it means in Cyclexa
16:44:04 <scarf> now, B^ means "add a B to the start of the current string"
16:44:07 <AnMaster> but for some I'm unsure what the hell the distinction is supposed to be
16:45:21 <cpressey> scarf: Sounds kind of like the regex version of an unrestricted grammar (or relatively unrestricted)
16:46:26 <cpressey> AnMaster: not sure what the a means (I thought + meant append) but I thought the rest were supported (Erlang used to even use the same chars as C, but they changed it at some point)
16:46:46 <AnMaster> cpressey, it seems related to positioning of the stream
16:46:50 <scarf> cpressey: + means both readable and writable
16:47:04 <AnMaster> scarf, but then why not rw
16:47:10 <AnMaster> and why is there r+ and w+
16:47:11 <scarf> and r positions at start, w truncates the file then there's only one position, a positions at end
16:47:17 <AnMaster> shouldn't they be eqiv then?
16:47:20 <scarf> nope
16:47:26 <scarf> r+ lets you read from the start, or write at the start
16:47:33 <scarf> w+ truncates the file
16:47:40 <scarf> but after writing to it, you can read back what you just read
16:47:43 <cpressey> Yay C.
16:47:45 <AnMaster> well, that is tricky, I need to manually emulate w+ I think
16:48:25 -!- MigoMipo has joined.
16:49:04 <scarf> *read back what you just wrote
16:49:04 <Deewiant> I've yet to run into a non-eso language that doesn't support those six modes trivially
16:49:14 <scarf> Deewiant: VHDL?
16:49:24 <scarf> but then, hello world is awful in VHDL
16:49:48 <AnMaster> Deewiant, well there is no "read+write+truncate", I need to do some manual truncate after for that mode
16:49:55 <Deewiant> scarf: It's not really a programming language
16:49:57 <AnMaster> Deewiant, does mycology test all 5 modes or just some?
16:50:07 <scarf> Deewiant: what a weird statement
16:50:10 <Deewiant> Just one or two I think
16:50:21 <AnMaster> Deewiant, how irritating :P
16:50:22 <scarf> it's just not intended to program computers, which is why it's so different
16:50:25 <Deewiant> scarf: Well, I haven't used it
16:50:37 <Deewiant> Well yeah
16:50:52 <Deewiant> s/eso/eso computer programming/
16:51:10 <scarf> I don't see why programming should be restricted to computer programming in general, though
16:51:26 <Deewiant> Not in general, but in the context of file I/O...
16:51:38 <scarf> well, OK
16:51:57 <scarf> otherwise, you could just say that freestanding C has no file I/O at all unless it's in a nonstandard library
17:04:20 * cpressey builds a "Hello World" circuit on his breadboard
17:04:53 <cpressey> (It's a battery, two wires, and a lamp.)
17:09:13 -!- charlls has quit (Ping timeout: 245 seconds).
17:20:04 -!- jcp has joined.
17:25:41 <AnMaster> Deewiant, interesting mycology result on half-implemented FILE:
17:25:50 <AnMaster> BAD: 00S reflected
17:25:50 <AnMaster> GOOD: closed file with C
17:25:50 <AnMaster> GOOD: reopened file in append+read mode
17:25:54 <AnMaster> that loops forever
17:25:57 <AnMaster> until ctrl-c
17:25:58 <AnMaster> those lines
17:26:14 <Deewiant> "Whoops"
17:28:01 <AnMaster> Deewiant, well, I'm just curious how it could happen. I assume you don't care about "fixing" it to error out more gracefully, but if you did, here is the output showing which ones are implemented:
17:28:16 <AnMaster> http://sprunge.us/jjKh
17:28:25 <Deewiant> Probably just the S error handler goes to the wrong place
17:29:06 <AnMaster> Deewiant, right, a trace is really painful here. Should be possible to spot it by reading the code if it is as simple as that though
17:29:19 * AnMaster goes to implement L
17:29:48 -!- MizardX- has joined.
17:31:51 <AnMaster> hm interesting API
17:32:18 <AnMaster> file:position(IoDev, cur) to set the possition to the current one and get the current abs position
17:32:26 <AnMaster> so basically a no-change to read current
17:33:58 -!- MizardX has quit (Ping timeout: 260 seconds).
17:34:16 -!- MizardX- has changed nick to MizardX.
17:35:22 <AnMaster> Deewiant, tell me if you want me to test any fixed version, preferably before I implement S.
17:35:26 <AnMaster> which is soon
17:35:44 <Deewiant> I can easily break it in a local CCBI
17:36:11 <AnMaster> right
17:36:14 <AnMaster> no need then
17:37:17 -!- amca has joined.
17:38:16 <AnMaster> Deewiant, is FILE byte based or unicode based?
17:38:28 <AnMaster> this poll also goes to fizzie
17:38:42 <AnMaster> I guess unicode might break fungot's use of FILE
17:38:42 <fungot> AnMaster: these unique items make us invincible! but you are true heros. the world, tee, hee! it's not the only one thing we need to defeat you, lavos.
17:39:11 <Deewiant> AnMaster: The spec says
17:40:45 <AnMaster> ah right
17:41:15 <AnMaster> Deewiant, does mycology test that?
17:41:24 <cpressey> ^style
17:41:24 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
17:41:25 <Deewiant> Probably not
17:41:31 <cpressey> ^irc
17:41:33 <Deewiant> I think it just wrote text, not binary
17:41:37 <cpressey> ^style irc
17:41:37 <AnMaster> right
17:41:37 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
17:41:48 <AnMaster> Deewiant, testing value above 255 would be a good idea
17:41:56 * cpressey was getting sick of that game
17:41:58 <Deewiant> It's UNDEF
17:42:06 <AnMaster> no
17:42:07 <AnMaster> "# Functions W and R write cells as bytes, any cells containing values greater than 255 will have the top bits stripped. "
17:42:14 <AnMaster> from http://rcfunge98.com/rcsfingers.html#FILE
17:42:24 <AnMaster> Deewiant, so doesn't look undef to me
17:42:26 <Deewiant> Oh, darn
17:42:33 <AnMaster> Deewiant, unless he added that after
17:42:38 <Deewiant> He did
17:42:40 <Deewiant> But anyway
17:43:01 <AnMaster> that operation is somewhat confusing
17:43:11 <AnMaster> it isn't modulo 256 is it?
17:43:24 <Deewiant> Yes it is
17:43:28 <AnMaster> right
17:43:36 <Deewiant> It says nothing about negative numbers though :-P
17:43:43 <cpressey> You need a special bit stripper to properly strip off the "top bits".
17:45:30 <AnMaster> cpressey, har
17:45:40 <AnMaster> Deewiant, well lets assume something for them -_-
17:51:37 <fizzie> There's that thing about FILE that you got negative values for bytes >= 128 on some interpreter.
17:51:54 <fizzie> fungot only uses values in the [0, 127] range, doing multibyte values in a base-128 sort of way.
17:51:55 <fungot> fizzie: that's simple to understand. :p fnord/ news/ fnord/ fnord/ fnord/ fnord, that is).
17:52:53 <cpressey> fizzie: What interpreter is fungot running on?
17:52:54 <fungot> cpressey: even bawden rees point out in the third argument to dynamic-wind calls a continuation from outside the environment itself...
17:53:22 <scarf> cpressey: last I heard it was cfunge, and before that rc/funge
17:53:25 <scarf> but I'm not sure
17:57:11 <Deewiant> That's what I heard too
18:02:14 <amca> Does it matter that the rcfunge homepage doesnt say what rcfunge is for?
18:02:59 <Deewiant> It has the manuals, which do say
18:06:49 <AnMaster> heh
18:08:01 <scarf> amca: that's typical of the rc/funge documentaion
18:08:04 <scarf> *documentation
18:08:39 <fizzie> Yes, fungot started on RC/Funge, then migrated to cfunge.
18:08:40 <fungot> fizzie: i cannot see where are the logs? where is the middot? can't find it with a spoon for far too long. you can't. scheme is a language of stuff like that
18:08:48 * amca found the website confusing
18:09:45 <fizzie> http://git.zem.fi/fungot/commitdiff/75359446b1d88ef6644b88f3fa879d2f8d683592 was needed to make it work on cfunge.
18:09:46 <fungot> fizzie: scroll down to the mit scheme repl does indeed provide hooks for customizing the printer, but it's not r5rs
18:11:06 -!- sebbu2 has joined.
18:11:15 <AnMaster> why is my FILE G in cfunge so complex
18:11:17 -!- charlls has joined.
18:11:35 <AnMaster> oh it tries to emulate fgets() but treating all of \r \n \r\n as newlines
18:11:36 <AnMaster> I think
18:11:58 <fizzie> There was some difference on how STRN's L/R worked in the corner case of requesting more characters than the length of the string itself.
18:12:45 -!- sebbu3 has joined.
18:12:58 <AnMaster> hm maybe
18:13:20 <AnMaster> efunge can't yet run it
18:13:37 <AnMaster> due to missing SOCK and FING and STRN
18:14:23 <fizzie> The spec now specifies that L/R with more than the number of chars should return the full string, but I think cfunge instead reflects; it was some sort of theological argument about the immutability of specifications there.
18:14:23 <AnMaster> and I'm not implementing FILE because of it, but to avoid having to do rm myco*.tmp
18:14:29 -!- sebbu has quit (Ping timeout: 260 seconds).
18:14:31 <AnMaster> after a few mycology runs
18:14:51 <AnMaster> fizzie, s/theological/philosophical/
18:15:12 <Deewiant> I just used to do 'ccbi mycology.b98; rm -f *.tmp'
18:15:21 <AnMaster> Deewiant, sure but still
18:16:58 -!- sebbu2 has quit (Ping timeout: 264 seconds).
18:17:52 <AnMaster> now why the hell do I have pop_gnirts, push_list and push_gnirtses in efunge...
18:18:07 <AnMaster> and for push_list I would need to reverse it
18:21:23 <AnMaster> push_gnirts(Stack, String) ->
18:21:24 <AnMaster> lists:reverse(String, [0|Stack]).
18:21:34 <AnMaster> now that is a wonderful implementation
18:21:37 <AnMaster> agree cpressey?
18:22:15 <AnMaster> also *watches confusion grow amongst Deewiant, fizzie and scarf*
18:22:35 * cpressey didn't remember a lists:reverse/2
18:23:09 <AnMaster> cpressey, oh so you became confused too?
18:23:18 <AnMaster> see erl -man lists of course
18:23:59 <scarf> I recognise it, being used to Prolog
18:24:18 <scarf> although it's a bit non-obvious what reverse does there, I agree
18:24:55 <AnMaster> scarf, well, it reverses the first list then appends the second
18:25:08 <scarf> gotcha
18:25:09 <AnMaster> since it is a BIF it should be pretty well optimised too
18:25:36 <AnMaster> (BIF = Built In Function. Means it is implemented (in C probably) by the runtime)
18:26:23 <cpressey> Because the compiler can't recognize and optimize lists:reverse(List) ++ Tail.
18:27:06 <Deewiant> That's a bit silly
18:27:15 -!- kar8nga has joined.
18:28:27 <AnMaster> cpressey, really? How strange.
18:28:43 <cpressey> I'm being somewhat facetious.
18:28:47 <AnMaster> pretty sure it does. It certainly does optimise [H] ++ Tail into [H|Tail]
18:28:54 <AnMaster> read that somewhere (official docs iirc)
18:29:31 <AnMaster> cpressey, har
18:29:35 <cpressey> It's certainly possible to write "sufficiently clever compilers", but you rarely encounter them in the world at large.
18:30:59 <AnMaster> Deewiant, what does G do on EOF?
18:31:05 <AnMaster> it seems cfunge reflects on that
18:33:09 <Deewiant> I can't tell you anything beyond what the spec says
18:33:21 <fizzie> What's that "b" returned by FILE's G in http://www.rcfunge98.com/rcsfingers.html#FILE ?
18:34:05 <Deewiant> Can't remember
18:34:13 <Deewiant> Maybe nothing
18:34:43 <AnMaster> Deewiant, does mycology assume G trims the trailing whitespace?
18:34:44 <AnMaster> err
18:34:48 <AnMaster> trailing newline I meant
18:35:07 <AnMaster> fizzie, it is number of bytes
18:35:18 <AnMaster> that is, the length of the 0gnirts
18:35:24 <AnMaster> (excluding the 0 it seems)
18:35:29 <fizzie> Oh. That wasn't very obvious.
18:35:29 <Deewiant> Why do you ask me instead of mycology
18:35:41 <AnMaster> BAD: G didn't read 'foo\n'
18:35:42 <AnMaster> but
18:35:46 <AnMaster> dumping it shows it did
18:35:47 <AnMaster> huh
18:36:55 * Deewiant awaits the "Deewiant, ^"
18:37:03 <AnMaster> oh found it
18:37:23 <AnMaster> a pitty this means I can no longer use lists:reverse/2, since I don't need to reverse at all
18:37:37 -!- cpressey has left (?).
18:38:43 <fizzie> The pit viper falls into a pit. How pitiful. Isn't that the pits?
18:38:52 <Deewiant> :-)
18:38:56 <AnMaster> fizzie, :)
18:39:18 <AnMaster> Deewiant, btw, I think we have another bug with R reflecting causing the program to go to the wrong place
18:39:48 <AnMaster> Deewiant, basically look at: http://sprunge.us/IfWW
18:40:22 <AnMaster> it is not infinite here
18:40:26 <AnMaster> it stops after that point
18:43:18 <AnMaster> well at least I got this in:
18:43:22 <AnMaster> true = Bytes =< 0
18:43:34 <AnMaster> why? Because that way I throw an exception if it isn't true
18:43:48 <AnMaster> which means I can move all the error handling for this function to one place
18:44:06 <AnMaster> err fix the order of >=
18:44:14 <AnMaster> >= that is
18:46:18 -!- charlls has quit (Ping timeout: 245 seconds).
18:51:11 -!- kar8nga has quit (Remote host closed the connection).
18:55:44 -!- charlls has joined.
18:58:47 -!- cpressey has joined.
19:02:40 <Sgeo> What language is this?
19:02:49 <Sgeo> Wow, typing the keys on the keyboard feels so light
19:02:53 <Sgeo> I was just blowing snow.
19:07:02 -!- charlls has quit (Read error: Connection reset by peer).
19:07:31 -!- charlls has joined.
19:07:37 <amca> Sgeo: Your fingers get vibrated numb?
19:08:02 <Sgeo> It's physically hard pushing on the snow blower
19:08:48 * amca doesnt live where snow falls, so didnt realise
19:09:06 <Sgeo> I think the snow blower is crap, tbh
19:10:17 <fizzie> Yes, you should switch to a snow-sucker.
19:13:24 <pikhq> Or perhaps even a snow-melter.
19:14:34 <uorygl> A snow-sublimator.
19:14:55 <uorygl> It blows cool, dry air on the snow, and the snow sublimates into that air.
19:16:06 <amca> Or increase global warming
19:17:39 <Ilari> Unfortunately, increasing global warming has all sorts of negative effects... :->
19:18:19 <MissPiggy> where is alise
19:18:52 <scarf> ouch, good point
19:20:45 <Sgeo> Won't he be here tomorrow, or is he usually here on Fridays?
19:22:09 <MissPiggy> idk
19:22:26 <scarf> he's usually here friday evening
19:22:30 <scarf> although not most of the day
19:26:59 <uorygl> Is alise still a he?
19:29:44 -!- charlls has quit (Ping timeout: 240 seconds).
19:35:36 <AnMaster> Deewiant, pushed the FILE for cfunge (both trunk and supervisor-tree)
19:35:52 <AnMaster> <Sgeo> What language is this? <-- what language is what?
19:35:59 <Deewiant> AnMaster: s/cfunge/efunge/?
19:36:04 <AnMaster> Deewiant, err yeah
19:36:06 <AnMaster> typo
19:36:17 <Sgeo> Whatever language they were talking about?
19:36:29 <AnMaster> Sgeo, when?
19:36:36 <Sgeo> When I said that
19:37:00 <AnMaster> well, then the channel had been idle for a bit over 15 minutes, so none I guess
19:37:32 <Sgeo> Well, whatever language they were talking about 15min before I said that, then
19:37:58 <AnMaster> Sgeo, befunge and/or erlang
19:38:17 <AnMaster> Sgeo, if it was the discussion I was involved in
19:38:26 * Sgeo doesn't even remember
19:38:32 <AnMaster> why do you even care then
19:38:33 <AnMaster> and
19:38:35 <AnMaster> just scroll up
19:38:51 <AnMaster> even though it is still on screen
19:38:59 <AnMaster> just over half a page ago now
19:39:44 <AnMaster> Deewiant, anyway: might be time to update the mycology results page soon. Perhaps include efunge too :)
19:40:03 <AnMaster> Deewiant, note that only supervisor-tree has TURT
19:40:11 <AnMaster> but in general it is less stable
19:42:34 <AnMaster> by the way, funny misreading:
19:42:38 <AnMaster> GOOD: 34V is 5
19:42:39 <AnMaster> became
19:42:40 <AnMaster> GOOD: 34V is 5A
19:42:44 <AnMaster> Deewiant, ^
19:42:45 <AnMaster> XD
19:43:45 <AnMaster> (this is true for a direct current if the total resistance is 6.8 Ohm, and we assume there are only simple linear components)
19:44:23 * Sgeo wonders how many facepalms the next episode of SG-1 [in season 9] will give him
19:44:26 <AnMaster> oh btw, I wonder why CPLI doesn't do polar form
19:46:43 <cpressey> Interestingly, 6.8 ohms is one of the standard values for resistors, too
19:47:03 <AnMaster> Deewiant, by the way: "Can't test o in linear text mode: i ignores spaces, no way to know from within standard Funge-98 whether they are output to file." is completely wrong. You can see if it skipped those spaces when reading in again. Like, the data continues after those spaces where it should
19:47:06 <scarf> good old E12
19:47:09 <AnMaster> just read it in in binary mode
19:47:13 <AnMaster> so you get it all on one line
19:47:39 <AnMaster> cpressey, oh yeah, probably a hidden message there!
19:49:15 <AnMaster> hm, I think this requires a fingerprint ACDC that would implement various electricity related calculations
19:50:17 <AnMaster> of course there are more operations than there are upper case letters, especially for AC
19:52:48 <AnMaster> cpressey, btw if you are interested in efunge: bzr branch lp:~anmaster/efunge/supervisor-tree
19:53:10 <AnMaster> cfunge would be at bzr branch lp:cfunge
19:53:24 <AnMaster> (yay for vendor creep, better to say it before someone else does)
19:53:59 <AnMaster> (lp: of course is a short hand for https://something.launchpad.net/)
19:55:14 <Deewiant> AnMaster: o with that mode removes only trailing spaces
19:56:15 <Deewiant> (Well, and trailing newlines / form feeds)
19:56:19 <AnMaster> Deewiant, on each line
19:56:40 <AnMaster> Deewiant, so while you couldn't check trailing newlines/ff at the end of the file
19:56:53 <AnMaster> you could check if it removed spaces at the end of all but the last line
19:57:06 <AnMaster> Deewiant, also if FILE was available you could check it fully
19:57:28 <AnMaster> (of course, FILE could be intentionally lying if the interpreter detected mycology)
19:57:37 <AnMaster> (but that seems rather unlikely)
19:57:58 <Deewiant> Mycology doesn't really try to handle being lied to ;-P
19:58:10 <AnMaster> true
19:58:32 <AnMaster> fizzie, btw, do you use G or just R for your FILE usage?
19:58:56 <fizzie> AnMaster: I think I use G for some of the ^command persistence things, since it was easier there.
19:59:11 <fizzie> (It's a line-based format.)
19:59:36 <AnMaster> hm
19:59:49 <Deewiant> Hmm, I guess i in binary mode only doesn't write spaces, it still increments the x-coordinate
20:00:02 * AnMaster debates if to enable the read_ahead option when opening files in FILE
20:00:05 <Deewiant> So yeah, I think you could detect it in that way, you're right
20:00:17 <AnMaster> Deewiant, yep
20:00:50 <AnMaster> fizzie, you see:
20:00:55 <AnMaster> "The read_ahead buffer is also highly utilized by the read_line/1 function in raw mode, why this option is recommended (for performance reasons) when accessing raw files using that function."
20:01:08 <AnMaster> and since I (for various reasons) use raw files...
20:01:45 <AnMaster> default size for read_ahead is 64 kb
20:01:46 <AnMaster> hm
20:01:51 <fizzie> Nothing performance-intensive in fungot uses G, though; just the initial state-loading.
20:01:53 <fungot> fizzie: aaargh... this bug can't be found that easily... but i probably will
20:02:03 <AnMaster> ^style
20:02:04 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
20:02:07 <AnMaster> ah
20:02:10 <AnMaster> not ct any more
20:02:12 <AnMaster> explains it
20:02:40 <AnMaster> why doesn't FILE have an option for transparent gzip :/
20:02:46 <AnMaster> that way it would have been trivial in erlang
20:02:56 <AnMaster> since there is (for some reason) built in support for that
20:03:00 <AnMaster> just a flag to file:open
20:03:27 <AnMaster> (doesn't work with read+write of course=
20:03:30 <AnMaster> s/=/)/
20:03:51 <uorygl> ^style nethack
20:03:52 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
20:04:08 <uorygl> fungot, what do you sound like with the nethack style?
20:04:09 <fungot> uorygl: they say that some yetis are full of hot air. its small, distant cousin. various varieties exist, and whispered to him, " one rest") is sometimes termed " minister to the sea; there's no food.
20:04:30 <AnMaster> fizzie, how much would readahead benefit fungot for R though?
20:04:31 <fungot> AnMaster: nurses are trained to touch it. so david prevailed over the lower edge of the tribute) as well quit now!" i-hsiu was unable to quit it for use in hand-to-hand combat; wrap it round your head to ward off noxious fumes or avoid the gaze of the dead.
20:05:02 <fizzie> AnMaster: No clue, since I don't know how much it benefits R in general. In any case, there really aren't any performance problems in fungot at the moment.
20:05:03 <fungot> fizzie: they say that dungeoneers prefer dark chocolate. the glare of the servants of the lords of death. you know what that is so much useless rusted scrap in no time at all.) had told him: " mirror, mirror: " you have a rocky road ahead of them must have brought it with blood a-drip at vlana's feet.
20:05:26 <fizzie> That fact about yetis sounds a bit suspicious.
20:05:31 <uorygl> Nurses are trained to touch it.
20:05:38 <uorygl> It's true that some yetis are full of hot air.
20:05:49 <uorygl> ...well, it's the sort of thing that sounds true.
20:05:56 <scarf> in NetHack, it is true
20:06:42 <fizzie> It seems to be; it's from rumors.tru.
20:08:05 <scarf> fizzie: I know a lot about NetHack; I can normally guess whether a rumor is true or false
20:08:35 <fizzie> Even though I'm not a very NetHacky person, I've actually acquired a fair amount of passive knowledge by osmosis from r.g.r.n.
20:08:36 <uorygl> What's that cockatrice-related false rumor?
20:08:50 <scarf> fizzie: you read rgrn?
20:09:00 <scarf> uorygl: there's one about wielding a lizard corpse against a trice
20:09:09 <uorygl> That sounds like it.
20:09:11 <fizzie> scarf: Yes. In fact, I noticed one of your posts there recently.
20:09:36 <fizzie> There's two others: "A cockatrice corpse is guaranteed to be untainted!" + "A dead cockatrice is just a dead lizard."
20:10:08 <lament> why would you read rgrn
20:10:15 <lament> even if you did play nethack
20:10:18 <Deewiant> Why would you not
20:10:37 * cpressey shakes his head at all of USENET
20:10:39 <lament> it's full of sad, sad people
20:11:13 <lament> who dedicated their life to nethack, think they're the ultimate authority on it, and actually aren't even very good
20:11:32 <scarf> rgrn's tactical advice isn't so much bad, as twenty years out of date
20:11:44 <scarf> but the newsgroup as a whole has been getting better
20:12:15 <fizzie> I also haven't felt the tone to be pompous at all, which is what your description makes it sound like.
20:12:59 <scarf> the pompous people are the devteam, and they hardly ever say anything
20:14:16 -!- wareya has joined.
20:14:55 <AnMaster> <fizzie> AnMaster: No clue, since I don't know how much it benefits R in general. In any case, there really aren't any performance problems in fungot at the moment.
20:14:56 <fungot> AnMaster: sorry, no one knows why medusa stands alone in the kidnappings and raids the inhabitants of the temples. filling the gaps between these strips and the outside, he enjoys visiting the earth, a grasping tail, hooves, or yeti, is outside it; and so he returned to practice, teach, and thieves. he has been suggested that it was a pretty fair shot with a wand of vibration might bring the whole course of known life from the
20:15:04 <AnMaster> how much are continuous reads?
20:15:08 <AnMaster> and how much is random access
20:15:24 <lament> with rgrn, who can tell?
20:15:26 <fizzie> There's not much continuous reading at all.
20:15:39 <AnMaster> ah well
20:15:47 <AnMaster> fizzie, you don't use t do you?
20:16:18 <AnMaster> <scarf> in NetHack, it is true <-- how can yetis be full of hot air
20:16:26 <AnMaster> as in, what does that actually mean for playing
20:16:33 <scarf> AnMaster: it means, that if you eat one, you might be full of hot air
20:16:38 <scarf> which is the message for gaining cold resistance
20:16:43 <AnMaster> aaah...
20:16:57 <fizzie> AnMaster: No t there, right.
20:16:58 <scarf> if they weren't full of hot air, they'd be hurt by the cold
20:17:07 <scarf> and that seems wrong for yetis
20:17:10 <AnMaster> fizzie, hm.
20:17:41 <fizzie> The messages are always so punny; your health currently feels amplified for shock resistance.
20:18:08 <AnMaster> fizzie, well since performance was one reason to switch to cfunge for you iirc (allowing bf/ul programs to run for longer), I doubt you would be interested in efunge.
20:18:51 -!- wareya has changed nick to Wareya.
20:19:18 <fizzie> Mhm, maybe not; the sub-interpreters (bf, ul) are pretty slow, after all.
20:19:28 <AnMaster> indeed
20:19:33 -!- MigoMipo has quit.
20:19:42 <fizzie> Though I'd like to have fungot 2.0 use ATHR; it sounds much more enterprisey that way. I'm just bad at getting things done.
20:19:42 <fungot> fizzie: they say that a potion of sickness. ( funk wagnalls standard dictionary of the sun.... thrice i filled the tub and emptied it.
20:19:56 <fizzie> That's a strange thing to say.
20:19:59 <AnMaster> fizzie, ATHR isn't done yet
20:20:22 <Deewiant> If you really want to be enterprisey, find a use for TRDS
20:20:24 <AnMaster> parts of it works
20:20:28 <AnMaster> Deewiant, har
20:20:28 <Deewiant> What's better than time travel, after all
20:20:45 -!- MigoMipo has joined.
20:20:52 <AnMaster> Deewiant, well, why not have 2 time dimensions
20:20:56 <AnMaster> that sounds even better
20:21:03 <AnMaster> two or more of course
20:21:08 <Deewiant> Go ahead and spec it then ;-P
20:21:16 <AnMaster> Deewiant, first tell me what the hell that even means
20:21:32 <AnMaster> ooh wait, maybe like having the third dimension be the time dimension
20:21:52 <AnMaster> so trefunge but every tick creates a new layer and move all ips there.
20:22:00 <AnMaster> but then something-something to travel in it
20:22:17 <AnMaster> Deewiant, what about that ^
20:22:40 <Deewiant> You were doing okay until the "something-something"
20:23:04 <AnMaster> hah
20:23:10 <fizzie> In any case, rgrn is one huge bundle of pleasantness compared to unmoderated comp.lang.c.
20:23:11 <AnMaster> I can't work out the something-something
20:23:22 <AnMaster> fizzie, rgrn?
20:23:35 <AnMaster> rec.games.rougelike.nethack?
20:23:36 <Deewiant> rec.games.roguelikes.nethack
20:23:41 <AnMaster> right, almost
20:23:47 <Deewiant> Or is it roguelike
20:23:48 <Deewiant> Whatever
20:23:51 <fizzie> AnMaster: Yours is in fact more right.
20:23:56 <AnMaster> fizzie, more right?
20:24:00 <AnMaster> so it isn't right either?
20:24:09 <fizzie> Well, it is right.
20:24:11 <AnMaster> ah
20:24:15 <Deewiant> The hamming distance is lower for mine
20:24:16 <fizzie> But it is also more right than Deewiant's.
20:24:24 -!- charlls has joined.
20:24:26 <Deewiant> Unless a swap is cheap
20:24:31 <AnMaster> err
20:24:36 <AnMaster> what?
20:24:37 <Deewiant> Or is it hamming distance
20:24:41 <Deewiant> Edit distance, whatever
20:24:48 <fizzie> Edit distance from what?
20:24:56 <Deewiant> From rec.games.roguelike.nethack
20:25:02 <AnMaster> to what?
20:25:06 <fizzie> Oh, right, I completely unsaw AnMaster's typo.
20:25:12 <AnMaster> indeed I didn't notice it either
20:25:14 <Deewiant> rec.games.rougelike.nethack and rec.games.roguelikes.nethack
20:25:23 <Deewiant> How can people not notice these things :-P
20:25:37 <AnMaster> Deewiant, I can't spot it reading quickly
20:25:41 <AnMaster> how can anyone spot it
20:25:47 <AnMaster> the different length is harder to miss
20:26:15 <fizzie> Deewiant: Even though I know it's there, I still have to look at it twice. Anyway, right, usually (or at least often) the "insert" and "substitute" operations have the same cost, so yours is in fact more right.
20:26:26 <AnMaster> Deewiant, as long as first and last letter are the same, the length is the same, and the general word shape (tall/low letters) is the same, you can easily read a text with some swapped letters.
20:26:50 <cpressey> "NRGR"4(
20:26:51 <AnMaster> for low swappedness it is hard to notice even
20:26:58 <Deewiant> I can read it often enough, yes, but I still notice every typo
20:27:05 <AnMaster> cpressey, what the heck would that do ^_^
20:27:13 <AnMaster> cpressey, as in, spec it!
20:27:42 -!- amca has quit (Quit: work).
20:28:02 <AnMaster> cpressey, possibly it should make it so that the IP can have it's stack values identified on exit?
20:28:20 <fizzie> F posts a YAFAP to rgrn, while A posts a YAAP; M posts a YAFM, D posts a YAAD, and S a YASD. All with completely made-up details, of course. And so on.
20:28:47 <Deewiant> YAFM and YAAD?
20:28:57 <fizzie> Deewiant: Yet Another Funny Message, and Yet Another Annoying Death.
20:29:01 <AnMaster> fizzie, YAFAP?
20:29:05 <Deewiant> Alright
20:29:11 <fizzie> AnMaster: Yet Another First Ascension Post.
20:29:15 <AnMaster> ah
20:29:17 <fizzie> AnMaster: Generally you should call F only once. :p
20:29:37 <AnMaster> fizzie, I never posted my first ascension
20:30:00 -!- coppro has joined.
20:30:12 <fizzie> It's a bit debatable if it's "Yet Another (First Ascension) Post", or "Yet Another First (Ascension Post)".
20:30:18 <fizzie> If the latter, you could do it even later.
20:30:25 <AnMaster> fizzie, how so?
20:30:33 <AnMaster> oh right
20:30:40 <AnMaster> misunderstood what "later" was relative here
20:31:09 <coppro> I didn't post my first ascension :(
20:31:28 <fizzie> You could even post a YAFAP-2 of some non-first ascension, followed by a YAFAP-1 of the first ascension.
20:31:31 <Deewiant> I haven't ascended so I'm still good
20:33:02 <AnMaster> Deewiant, how far have you reached?
20:33:06 <AnMaster> in nethack
20:33:12 <fizzie> Mooz has a YAFAP in rgrn, for those who remember/know the person.
20:33:26 <Deewiant> Not far
20:33:32 <Deewiant> Can't remember
20:33:41 <fizzie> It's not very special, but first ascensions aren't so often.
20:34:04 <uorygl> I've completed the quest once.
20:34:51 <Deewiant> I don't think I've got as far as receiving it
20:35:03 <AnMaster> Deewiant, work harder at it!
20:35:13 <Deewiant> It's not exactly a priority for me ;-P
20:35:28 <Deewiant> You finished ADOM and Angband and everything else too?
20:35:55 <lament> it used to be difficult to ascend
20:35:57 <lament> now it's quite easy
20:36:00 <lament> step 1. ignore rgrn
20:36:04 <lament> step 2. join #nethack
20:36:17 <lament> step 3. play on NAO and ask people for help when necessary
20:36:36 <Deewiant> That's hardly proper
20:36:53 -!- daef has joined.
20:37:13 <daef> hi there
20:37:23 <uorygl> Hello.
20:37:26 <daef> just played around with brainf*** the first time
20:37:53 <daef> threw together a bunch of characters that output the current cell in decimal
20:38:04 <daef> so if the current cell holds the value 123
20:38:15 <daef> it output's "123" (the three characters)
20:38:33 <uorygl> Now write a program that does the same thing except without messing up any other cells. :P
20:38:41 <daef> but it looks much too complicated - is there someone who can look over the code and tell me what could be optimized
20:39:03 <uorygl> About how long is it?
20:39:06 <scarf> daef: try running it in-channel, so we can have a look, if it's less than around 500 chars long
20:39:07 -!- oerjan has joined.
20:39:12 <daef> uorygl: it messes up nothing - but it needs the next 9 cells to be empty (clear's them by itselve)
20:39:15 <scarf> !bf ,[.,]!Hello, world!
20:39:30 <scarf> uorygl: you know that's impossilbe
20:39:36 <scarf> where's EgoBot?
20:39:39 <scarf> ^bf ,[.,]!Hello, world!
20:39:39 <fungot> Hello, world!
20:39:48 <uorygl> Of course.
20:39:52 <daef> ++++++++[>++++++++<-]>[-<++>]<----- // schreibt die zahl 123 in die erste zelle
20:39:55 <daef> >[-]++++++++[>[-]<[->+<]>-]<<<<<<<<< // lschen der nchsten zellen
20:39:57 <oerjan> never mind that, where's alise?
20:39:58 <daef> [->+<]>[>+<-<+>]>[>>>>>[->+<]>+<<<<< // der eigentliche code
20:40:00 <daef> ++++++++++<[->>+<-[>>>]>[[<+>-]>+>>]
20:40:03 <daef> <<<<<]>[-]>[-<<+>>]>[-<<+>>]<<]>>>>>
20:40:05 <daef> [<<<<+++++++[-<+++++++>]<-[<+>-]<.[-
20:40:08 <daef> ]>>>>>>[-<+>]<-]<<<<<<<
20:40:27 <daef> first line writes 123
20:40:33 <daef> second line clears next 9 cells
20:40:43 <scarf> oerjan: I don't know either, I'm worried
20:40:55 <daef> following 5 lines do the work, clean everything up and set the pointer back to the initial 123
20:41:15 <AnMaster> <Deewiant> You finished ADOM and Angband and everything else too? <-- no
20:41:19 <AnMaster> but slash'em of course
20:41:39 <Deewiant> >_<
20:41:54 <AnMaster> hi oerjan
20:42:00 <uorygl> IVAN.
20:42:08 <scarf> daef: it looks relatively standard, and there's nothing obviously wrong
20:42:13 <daef> kk
20:42:25 <scarf> what does the [>>>] do? seeing an unbalanced loop makes me suspicious, as that code shouldn't really need one
20:42:34 <daef> thought there must be a easier way to do it
20:43:02 -!- cheater2 has quit (Ping timeout: 246 seconds).
20:43:06 <oerjan> scarf: well, there are of course a million possible innocent explanations *knock on wood*
20:43:06 <daef> scarf: the [>>>] is from my divide-code - when the dividend got zero the [>>>] ensures that the pointer points to an emtpy cell
20:43:25 <scarf> ah, ok
20:43:30 <daef> needed for my version of an if(is_zero...
20:43:35 <scarf> division in BF is painful
20:43:40 <daef> didn't know anything better
20:43:50 <daef> my first approach was this one (works!)
20:44:00 <daef> >>[-]>[-]>[-]>[-]<<<<<:clear
20:44:00 <daef> [>->+<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]+:code
20:44:00 <daef> <[>[-]<[-]]>[<<+<[<+>-]>>>-]<<<<<-]>
20:44:00 <daef> [-]>[<<+>>-]>[<<+>>-]<<<
20:44:01 <pikhq> I'm pretty sure there's a better division algorithm on the Esolang wiki.
20:44:03 <scarf> there's an article on brainfuck algos on our wiki
20:44:11 <scarf> [[e:Brainfuck algorithms]] IIRC
20:44:15 <daef> my second one is this one
20:44:16 <daef> >>[-]>[-]>[-]>[-]<<<<<
20:44:16 <daef> [->>+<-[>>>]>[[<+>-]>+>>]<<<<<]>[-]>
20:44:16 <daef> [-<<+>>]>[-<<+>>]<<<
20:44:20 <scarf> umm, http://esolangs.org/wiki/Brainfuck_algorithms
20:44:24 <daef> second one got the unbalanced loop
20:44:34 <oerjan> hi AnMaster
20:44:46 <daef> but it's much shorter and doesnt dup around the values from a to b,c and back...
20:44:48 <scarf> there's a division algo by Calamari there that only needs four temporaries
20:44:59 <daef> i need five... damn
20:45:00 <daef> :)
20:45:09 <scarf> and which is balanced
20:45:27 <daef> where can i find it - so i can study it?
20:45:37 <scarf> at the link above
20:45:41 <daef> w8
20:45:46 <daef> i only need 4
20:45:54 <daef> cells 0 and 1 are the values
20:45:58 <uorygl> Darn, I forgot to finish speaking.
20:45:59 <uorygl> IVAN.
20:46:04 <daef> 2 and 3 get the result
20:46:07 <uorygl> It is an iter vehemens ad necem.
20:46:14 <daef> 4 and 5 are tmp
20:46:22 <daef> where 4 always stays zero
20:46:38 <daef> so i only "invent" cells 2345
20:46:43 <daef> that are 4 tmp cells
20:47:53 <daef> i cannot find a link... *scrollscroll*
20:48:46 <scarf> http://esolangs.org/wiki/Brainfuck_algorithms
20:48:49 <scarf> there, I've repeated it for you
20:48:51 <daef> ty
20:49:59 -!- Oranjer has joined.
20:50:22 -!- MigoMipo has quit (Remote host closed the connection).
20:51:13 -!- cheater2 has joined.
20:51:39 <daef> the version on the wiki much looks like my first approach
20:51:51 <daef> but my second one is definetly faster
20:52:06 <scarf> the first one may optimise better, because it probably optimises into polynomials
20:52:11 <daef> all the temp's screw me up a bit - i have to translate it to bffirst
20:55:55 -!- MigoMipo has joined.
20:57:17 <daef> scarf: what do you mean?
20:57:35 <scarf> daef: some BF interps are less naive than others
20:57:39 <scarf> and some can be very fast indeed
20:57:57 <scarf> generally speaking, a highly optimised BF interp is faster on balanced loops than unbalanced loops, due to the "polynomial optimisation"
20:59:49 <daef> okay
21:00:05 <daef> so i now translated the version from the wiki:
21:00:07 <daef> >>[-]>[-]>[-]>[-]<<<<<
21:00:07 <daef> [>>+<<-]>>[<[>>+>+<<<-]>>>[<<<+>>>-]
21:00:07 <daef> <[>+<<-[>>[-]>+<<<-]>>>[<<<+>>>-]<[<
21:00:07 <daef> -[<<<->>>[-]]+>-]<-]<<<+>>]
21:00:12 <scarf> I'm not sure if we have any BF optimisation experts here, though
21:00:25 <scarf> alise knows a bit about it, but he's missing atm
21:00:26 <daef> and this one is my first approach:
21:00:27 <daef> >>[-]>[-]>[-]>[-]<<<<<
21:00:27 <daef> [>->+<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]+
21:00:27 <daef> <[>[-]<[-]]>[<<+<[<+>-]>>>-]<<<<<-]>
21:00:27 <daef> [-]>[<<+>>-]>[<<+>>-]<<<
21:00:39 <scarf> not quite identical
21:00:43 <daef> they really look nearly the same :)
21:00:55 <scarf> the algo looks different, although that might just be an illusion
21:01:20 <daef> just watched them @ work - seen to work quite the same way
21:01:58 <daef> my last two loops are just to get the results in the place i want them
21:02:07 <daef> so they dont really "do" anything
21:03:03 <AnMaster> <scarf> I'm not sure if we have any BF optimisation experts here, though <-- as in bf compiler optimising
21:03:10 <scarf> yes
21:03:10 <AnMaster> or as in golfing bf code?
21:03:15 <scarf> um, compiler optimising
21:03:17 <cpressey> scarf: Might the "polynomial opt" have to do with the fact that you can precalculate all the offsets from the position where the loop begins?
21:03:21 <AnMaster> I know some of the compiler optimising stuff
21:03:27 <scarf> neither Calamari nor Keymaker's here, though
21:03:28 <AnMaster> lifthrasiir is the expert on it
21:03:28 <scarf> cpressey: that's it
21:03:33 <AnMaster> scarf, ^
21:03:34 <scarf> and then change loops into multiplications
21:03:39 <scarf> AnMaster: ooh, right
21:03:42 <cpressey> scarf: OK... but I don't see what's "polynomial" about it :)
21:03:45 <AnMaster> scarf, remember esotope-bfc
21:03:48 <cpressey> Oh, ok
21:03:52 <scarf> cpressey: because the multiplications turn into more multiplications
21:03:56 <scarf> and you end up with polynomials
21:04:04 <AnMaster> scarf, quite
21:04:33 <pikhq> Hrm. It's 9 PM in ehirdland.
21:04:38 <pikhq> Wonder what's up?
21:04:47 <AnMaster> pikhq, this looks like dire news indeed
21:04:58 <pikhq> AnMaster: ?
21:05:10 <AnMaster> pikhq, about ehird not being here at this time
21:05:21 <pikhq> Yeah...
21:05:55 * cpressey awaits the homing pigeon w/fragment of parchment tied to leg
21:06:20 -!- |MigoMipo| has joined.
21:07:14 <AnMaster> cpressey, ?
21:07:31 <AnMaster> cpressey, I don't quite get the reference
21:08:30 <oerjan> cpressey: no no, it will be a bottle with a message inside
21:09:38 -!- MigoMipo has quit (Ping timeout: 246 seconds).
21:09:43 <daef> .
21:10:24 <AnMaster> daef, anyway, what is the optimising stuff you need help with there?
21:11:44 <AnMaster> daef, and yes, unbalanced loops really reduces the possibilities to optimise an expressions
21:11:57 -!- |MigoMipo| has changed nick to MigoMipo.
21:12:06 <AnMaster> however I don't think it ever optimises to integer division, because that is very tricky
21:12:11 <AnMaster> multiplication yes
21:13:02 <AnMaster> daef, where was your program code? (pastebin please so it is easy to download) I want to see how the bf-compiler I wrote optimises it
21:13:15 <oerjan> in principle you could turn it into a lookup table, since it uses a finite number of cells :D
21:13:47 <AnMaster> oerjan, interesting idea
21:14:01 <oerjan> (assuming finite cell size of course)
21:14:04 <AnMaster> oerjan, wouldn't it grow exponentially or such?
21:14:12 <AnMaster> oerjan, also input
21:14:23 <oerjan> superexponentially probably...
21:14:25 <AnMaster> but a given piece of linear code
21:14:30 <AnMaster> oerjan, oh true
21:14:39 <oerjan> AnMaster: there is no point in optimizing across input
21:14:44 <oerjan> imo
21:15:06 <AnMaster> oerjan, sure there is, of course not for that cell
21:15:09 <AnMaster> but for other cells yes
21:15:22 -!- charlls has quit (Read error: Connection reset by peer).
21:15:37 <AnMaster> you probably want to shift input and output to early and computations to late
21:15:49 <AnMaster> daef, well, where is it? :/
21:15:51 -!- charlls has joined.
21:15:59 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
21:17:17 <AnMaster> daef, I need the full program, not just that algorithm, since otherwise it will optimise by assuming that at the start of the program every cell is zero
21:17:25 <AnMaster> meaning that likely it will just end up as s nop
21:17:41 <daef> AnMaster: sry
21:17:48 <daef> was sunk in the code from the wiki
21:17:55 <AnMaster> ah, no problem
21:17:59 <daef> trying to translate it to as much highlvl i can
21:18:05 <daef> to understand what he really does
21:18:12 <daef> complete code...
21:18:14 <daef> hmm
21:18:14 <oerjan> AnMaster: put ,[>,][<] in front? :D
21:18:29 <oerjan> um ,[>,]<[<]
21:18:32 <daef> containing the code to clear - which is not needed in this example - i guess
21:18:58 <AnMaster> oerjan, also it was on irc, would need to remove the [daef] prefix from it
21:19:02 <AnMaster> -__
21:19:04 <AnMaster> -_-*
21:19:29 <scarf> AnMaster: oh, you're planning to run in-between on it?
21:19:32 <oerjan> AnMaster: silly you, [daef] at start of program is a comment
21:19:34 <scarf> (what a weird name for a bf interp, btw)
21:19:51 <AnMaster> oerjan, it might infinite loop since [] is a loop
21:20:00 <scarf> AnMaster: at the start of the program, it's a header comment
21:20:03 <AnMaster> scarf, it made sense at the time
21:20:07 <scarf> nothing runs, because the current cell is 0
21:20:07 <daef> AnMaster: http://pastebin.com/raw.php?i=w9wQAmGJ
21:20:14 <AnMaster> scarf, yes but look, it was split over multiple lines!
21:20:17 <AnMaster> daef, thanks
21:20:21 <daef> np
21:20:51 <AnMaster> err wth, that ends up like this:
21:20:55 <AnMaster> &gt;[-]++++++++[&gt;[-]&lt;[-&gt;+&lt;]&gt;-]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
21:20:57 <AnMaster> when wgetting
21:21:03 <daef> lawl
21:21:08 <AnMaster> complete fail of "raw"
21:21:12 <daef> tr is your friend
21:21:15 -!- MigoMipo has joined.
21:21:24 <AnMaster> daef, it aslo has a doctype and some headers
21:21:26 <scarf> or maybe lynx
21:21:37 <scarf> can't it convert HTML to plaintext in batch mode?
21:21:39 * AnMaster copy pastes
21:21:58 <daef> fail...
21:22:09 <scarf> ah yes, lynx -dump file.html
21:22:17 <AnMaster> daef, the code produced: http://sprunge.us/EQhd
21:22:19 <daef> i pasted the raw because i thought it should be ease to fetch from the shell
21:22:24 <AnMaster> sure, that one wasn't perfect
21:22:34 <AnMaster> daef, I dare say esotope-bfc will manage better
21:22:37 <Deewiant> How about esotope-bfc or whatever the better one was
21:23:07 <AnMaster> http://sprunge.us/DURO is esotope
21:23:41 <Deewiant> A bit better
21:23:58 <AnMaster> Deewiant, butp[-6] += ((7*p[-5])-1);
21:24:00 <AnMaster> is pretty wtf
21:24:08 <AnMaster> unneeded () there
21:24:08 <daef> the second one fits on my screen :)
21:24:13 <Deewiant> AnMaster: Yours gets it as well
21:24:16 <Deewiant> p[-5]+=255 + 7*p[-4];
21:24:30 <pikhq> <3 sprunge
21:24:32 <daef> lol
21:24:35 <daef> where's that from?
21:24:36 <AnMaster> Deewiant, yes but mine doesn't use that extra () around that expression
21:24:39 <daef> ahh
21:24:41 <daef> i see
21:24:48 <Deewiant> AnMaster: esotope obviously brackets every expression
21:24:54 <daef> that's for the number to ascii
21:25:01 <Deewiant> (Binary expression)
21:25:02 <AnMaster> daef, in your original code? No clue. both of those do things like sort the instructions and merge them
21:25:02 <daef> i guess
21:25:05 <AnMaster> and expand loops
21:25:07 <AnMaster> and what not
21:25:14 <cpressey> I note that esotope doesn't optimize non-relatively-addressed cells into locals
21:25:14 <AnMaster> daef, basically there is no way to tell what comes from where
21:25:29 <cpressey> That would be hard, but not impossible
21:25:32 <daef> what is in my original code?
21:25:38 <AnMaster> daef, what?
21:25:51 <daef> 22:19 < AnMaster> daef, in your original code? No clue. both of those do things like sort the instructions and merge them
21:25:57 <daef> what do you mean by that?
21:26:03 <daef> sry - english isn't my mother tongue
21:26:25 <AnMaster> daef, I mean, the compilers reorders stuff like: >>+<<+ into +>>+<< then into [0]++ [2]++
21:26:27 <AnMaster> and such
21:26:38 <daef> okayokay
21:26:39 <AnMaster> daef, and sometimes move instructions to the other side of a loop
21:26:52 <AnMaster> so well, it is very hard to figure out what part of the original code ended up where in the new code
21:26:54 <daef> when it doesn't matter
21:27:05 <daef> and what i see
21:27:07 <AnMaster> ^show hello
21:27:11 <AnMaster> hm?
21:27:12 <AnMaster> ^show
21:27:12 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
21:27:15 <AnMaster> ^show hw
21:27:15 <fungot> >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+.
21:27:23 <AnMaster> ffs
21:27:34 <daef> since i've always seen bf as "current cell" - i've seen "moving the pointer costs time"
21:27:54 <daef> but when you "compile" it with absolute adresses
21:27:55 <AnMaster> here is another (same?) hello world:
21:27:56 <AnMaster> >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]
21:27:57 <AnMaster> <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
21:28:00 <daef> that doesnt count
21:28:18 <AnMaster> daef, and that code produces this: http://sprunge.us/gbXQ
21:28:25 <AnMaster> now that is impressive isn't it? :)
21:28:34 <daef> i see
21:28:36 <daef> :)
21:28:42 <daef> not bad
21:29:22 <daef> why can't it compile my code to s("123");?
21:29:28 <daef> it's static too
21:29:44 <daef> as long as there is no "," it should always be possible
21:29:56 <AnMaster> daef, sure, but it doesn't do full tracing
21:30:01 <daef> k
21:30:10 <AnMaster> basically what my compiler did there was: figure out constant values. Figure out what balanced loops with constant number of iterations does. Figure out what output instruction works on constants. Transform those to constant outputs. merge constant outputs into string output
21:30:14 <AnMaster> then figure out dead stores
21:30:17 <pikhq> No; so long as there is no "," and it doesn't halt, it is possible.
21:30:19 <pikhq> Erm.
21:30:21 <pikhq> It does.
21:30:25 <AnMaster> pikhq, well yeah
21:30:29 <pikhq> It's impossible to prove whether or not it halts.
21:30:39 <daef> sry - that's correct
21:30:42 <daef> old problem...
21:30:46 <AnMaster> daef, I can tell you the issue with your
21:31:01 <daef> should have known that :D
21:31:06 <AnMaster> do {
21:31:06 <AnMaster> p[1]=p[0];
21:31:06 <AnMaster> p[0]=0;
21:31:06 <AnMaster> p[1]+=255;
21:31:06 <AnMaster> p+=1;
21:31:07 <AnMaster> } while (p[0]);
21:31:09 <AnMaster> there
21:31:15 <AnMaster> daef, that is an unbalanced loop
21:31:32 <daef> yes - it is
21:31:47 <AnMaster> daef, I think it maps to [>[-]<[->+<]>-]
21:31:52 <daef> what my code does
21:31:59 <daef> when the first cell is 123
21:32:01 <AnMaster> and well, unbalanced loops are tricky to get right
21:32:03 <daef> it expands it to:
21:32:12 <daef> 123,3,2,1,3
21:32:18 <daef> where the last one is the length
21:32:24 <AnMaster> daef, that unbalanced thing is what breaks my compiler at that code however. It doesn't try to do much with them
21:32:25 <daef> then it outputs the 1
21:32:37 <daef> 123,3,2,2
21:32:40 * pikhq waits on clang -O3 -S LostKng.c.
21:32:44 <AnMaster> since in general there isn't much you can do. Sure if it is a constant one at the start...
21:32:47 <pikhq> Curious what code you get out of that.
21:32:50 <AnMaster> pikhq, from esotope?
21:32:53 <daef> the nice thing about BF is to let your code move along the data
21:33:05 <pikhq> AnMaster: Yeah.
21:33:10 <daef> so unbalanced stuff can make things very interesting - in my opinion
21:33:26 <AnMaster> pikhq, well not sure. I think mine managed a few things esotope didn't in lostking, and the vice verse
21:33:41 <AnMaster> daef, sure, but it inhibits optimisation
21:33:56 <AnMaster> sure, you could try to track if you could figure out if it was a constant
21:33:59 <pikhq> AnMaster: I'm curious what assembly is made. ;)
21:34:02 <AnMaster> but that is somewhat hard still
21:34:22 <daef> the only thing i wrote once was a string to number func where you put in "(2+2)^3-3.3" and it gave the correct answer - recusions, paranthesis, etc...
21:34:28 <daef> but i've never built a complete AST
21:34:29 <AnMaster> pikhq, I'm curious as to ram usage. I certainly never managed to compile it with gcc locally
21:34:36 <AnMaster> pikhq, I used tcc to test that it was valid c
21:34:54 <pikhq> AnMaster: That's because GCC uses *massive chunks* of RAM for compilation.
21:34:57 <AnMaster> daef, in bf? impressive!
21:35:03 <daef> AnMaster: NO
21:35:04 <AnMaster> pikhq, indeed.
21:35:06 <daef> *g*
21:35:09 <AnMaster> daef, ah, still not too bad
21:35:10 <daef> AnMaster: in C# :D
21:35:11 <pikhq> Clang is about as good at C compilation and optimisation, and doesn't use chunks of RAM.
21:35:22 <pikhq> Also, only took a couple of minutes to compile.
21:35:26 <AnMaster> daef, well I'm happy I didn't write it
21:35:37 <AnMaster> I coded C# and well.... it's better than C++ certainly
21:35:40 <AnMaster> but that is all I can say about it
21:35:45 <daef> and made a boolean-tester too - so you could test "2>1"
21:35:50 <AnMaster> (and I hate C++)
21:36:01 <daef> with and,or,xor,constants,comparison...
21:36:03 <AnMaster> pikhq, what specs?
21:36:13 <AnMaster> pikhq, sempron 3300+ with 1.5 GB RAM here
21:36:23 <AnMaster> pikhq, system runs at 2 GHz
21:36:24 <daef> it was a quite straightforward piece i wrote because school was boring for a few hours
21:36:51 <pikhq> AnMaster: Phenom II X3 710, runs at 2.8 GHz.
21:36:51 <AnMaster> mhm
21:36:52 <pikhq> 4 GB RAM.
21:37:00 <pikhq> Only one core in use, of course.
21:37:02 <AnMaster> pikhq, quite a lot faster then
21:37:20 <AnMaster> pikhq, what? why no parallel compilation?
21:37:26 <AnMaster> it should be possible
21:37:40 <AnMaster> to do local optimisations on different halves
21:37:43 <pikhq> AnMaster: ... *Single file*.
21:37:46 <AnMaster> pikhq, yep
21:37:57 <pikhq> It's theoretically possible, but not done by any compiler.
21:38:00 <AnMaster> pikhq, nevertheless I think it should be possible once you built the AST
21:38:06 <AnMaster> hm
21:38:25 <pikhq> Because the big gains are gotten from telling Make to run multiple compilers at once.
21:38:33 <AnMaster> true
21:38:52 <AnMaster> pikhq, reminds me of a sad thing. erlang's build system broke at make -j2
21:38:56 <AnMaster> which is pretty sad considering
21:39:23 <AnMaster> (it was trying to run the erlang compiler before the runtime was completely built)
21:40:08 <pikhq> That is pretty dang sad.
21:40:22 <AnMaster> pikhq, yeah, I think it was only with some rare configure options
21:40:30 <AnMaster> and damn hard to reproduce
21:40:44 <daef> one should think a trivial language should be easy to optimize - but it doesn't seem so... :)
21:40:45 <AnMaster> so I blame autotools
21:41:02 <AnMaster> daef, well, brainfuck is a lot easier to optimise than befunge certainly
21:41:09 <AnMaster> befunge is self modifying after all
21:41:10 <AnMaster> and 2D
21:41:23 <daef> AnMaster: read about it a time ago i think
21:41:32 <AnMaster> fast interpreters yes, and fizzie was working on a JIT compiler for it
21:41:40 <AnMaster> fizzie, did you give it up?
21:41:42 <AnMaster> or what happened
21:47:38 <daef> i just re-read http://de.wikipedia.org/wiki/Befunge - now i like it :D
21:47:59 <AnMaster> is that 93 or 98?
21:48:02 <AnMaster> 93 isn't TC
21:48:09 <AnMaster> due to finite space
21:48:14 <AnMaster> 98 can be TC
21:48:22 <daef> AnMaster: w0ot?
21:48:37 <Deewiant> TC = turing complete
21:48:44 <AnMaster> daef, there are two major versions of befunge: befunge-93, the original, Befunge-98 the newer one
21:48:51 <daef> kk
21:48:57 <AnMaster> I mainly dealt with befunge-98 (implementing it twice)
21:49:01 <daef> what's the difference in the definition
21:49:10 <AnMaster> pretty large ones
21:49:19 <AnMaster> http://catseye.tc/projects/funge98/doc/funge98.html
21:49:22 <AnMaster> is the spec for 98
21:49:24 <Deewiant> AnMaster: You forgetting bashfunge?
21:49:26 <AnMaster> is is quite massive
21:49:36 <AnMaster> Deewiant, intentionally. It was 93+a-bit
21:49:45 <Deewiant> Still more than 93
21:49:55 <AnMaster> 94,32 at most
21:50:02 <AnMaster> 94.32*
21:50:09 <Deewiant> :-P
21:50:50 <daef> since both, 93 and 98, seem to have limited space - and limited cellsize - the stack must be infinite in length to be touringcomplete - doesn't it?
21:50:54 <AnMaster> Deewiant, remember, it's funge-space was 200x*, that is 200 wide but infinite high. No negative funge-space
21:51:06 <AnMaster> daef, 98 can have non-limited cell size
21:51:16 <daef> AnMaster: kk
21:51:20 <AnMaster> daef, one of the implementations I wrote is bignum
21:51:26 <Deewiant> Unlimited cellsize and space
21:51:35 <Deewiant> (And stack, yes)
21:51:38 <AnMaster> daef, of course, in practise that will never be TC on any real computer
21:52:21 <daef> AnMaster: that's clear
21:52:30 <daef> but i thought cell's were limited in the spec
21:52:33 <daef> from what i've seen
21:52:56 <AnMaster> daef, not exactly no. Or rather, for the "size of cells" value returned by y I return -1
21:53:01 <AnMaster> it seems to work fairly well
21:53:13 <Deewiant> The spec doesn't allow nor disallow it
21:53:19 <AnMaster> also the plan is to allow it for befunge-111
21:53:33 <AnMaster> and since it isn't forbidden currently it's fine
21:53:33 <daef> i have to read the whole spec when i'm awake
21:53:47 <AnMaster> daef, there are some inconsistencies in it
21:53:57 <AnMaster> that is one of the reasons we are planning befunge-111
21:54:10 <AnMaster> cpressey here is the author of previous befunge versions
21:54:20 <daef> i really had a hard week @work - so my brain is not really open for so much new stuff - i think my BF code should be enough for today's eve
21:54:46 <daef> cpressey: nice work!
21:54:48 <pikhq> *sigh*
21:54:57 <pikhq> Why does glibc suck so much?
21:55:10 <cpressey> daef: Thank you :)
21:55:26 * AnMaster imagines in a few years writing a new fingerprint, having by then completed ATHR. The introduction would be along the lines of: "Like ATHR extended Befunge to multi-core systems, <whatever it will be called> aims to truly move Befunge into the realm of distributed HPC"
21:55:39 <pikhq> I have a program that literally *just uses a system call* that still links in 624k of library if statically linked.
21:55:41 <AnMaster> this of course scares me
21:56:03 <AnMaster> pikhq, start files?
21:56:10 <AnMaster> pikhq, or what is going on
21:56:32 <pikhq> AnMaster: 624k of libraries for the function "syscall".
21:56:34 <daef> AnMaster: what's ATHR?
21:57:02 <AnMaster> daef, a fingerprint (loadable extension) for befunge-98 that provides async threads. It is work in progress
21:57:24 <cpressey> pikhq: Is that why my ghc binaries are always at least ~500k?
21:57:31 <AnMaster> daef, the goal is to be able to make full use of multiple CPU cores.
21:57:39 <daef> kk
21:57:49 <pikhq> cpressey: No, GHC doesn't try to statically link against glibc.
21:57:51 <AnMaster> daef, of course this is pretty insane. But then what isn't :)
21:58:12 <pikhq> GHC statically links against all Haskell libraries and the Haskell runtime.
21:58:17 <pikhq> (note: not in 6.12.
21:58:17 <pikhq> )
21:58:22 <daef> AnMaster: as long as it works - it's not insane - it's genious
21:58:24 <cpressey> pikhq: Ah well, bloat by any other name...
21:58:32 <AnMaster> daef, well parts of it works, parts do not
21:58:33 <daef> (might also be true if something MIGHT work - once...)
21:58:38 <AnMaster> yet
21:59:01 <AnMaster> daef, http://sprunge.us/MUQO is the work-in-progress spec
21:59:11 <Gregor> Hackiiiiiiiiiiiiiki
21:59:27 <Gregor> I need a favicon for Hackiki
21:59:33 <AnMaster> Gregor, hi there. Fix egobot and hackego
21:59:36 <AnMaster> Gregor, both are down
21:59:36 <AnMaster> :(
21:59:41 <Gregor> Dobleve te efe
22:00:10 <AnMaster> that was an interesting reaction
22:00:20 -!- EgoBot has joined.
22:00:41 -!- HackEgo has joined.
22:00:58 <AnMaster> ah
22:01:11 <daef> AnMaster: how should i imagine - two threads - asynchrounously- altering their codebase with p-commands
22:01:19 <daef> completely unpredictable result i smell
22:01:25 <Gregor> Anywho
22:01:29 <Gregor> Hackiiiiiiiiiiiiiki
22:01:31 <Gregor> I need a favicon for Hackiki
22:01:44 <AnMaster> daef, with some medicine against headaches nearby perhaps? ;P
22:02:42 <AnMaster> daef, seriously, it can work out, the fingerprint provides some ways to sync things. As long as the implementation does whatever is needed to keep the threads from corrupting internal data structures it is fine
22:03:05 <AnMaster> after all, most parts apart from the books/mutex thingy works already
22:03:50 <daef> sounds interesting - i'll keep that spec open and read it tomorrow - after a friend of mine and i try to alter a huge videowall in my hometown :D
22:04:03 <AnMaster> daef, huh?
22:04:05 <daef> i have to catch some sleep for tomorrow
22:04:07 <AnMaster> mhm
22:04:13 <daef> have fun
22:04:22 <AnMaster> heh I noticed I had forgot I wrote this:
22:04:25 <daef> nice place here - might come back to idle a bit :)
22:04:29 <AnMaster> "The "extended ISBN numbers" mentioned may be any number in the range valid for
22:04:29 <AnMaster> the Funge cells. For bignum funges this means the library is clearly Hilbert's
22:04:29 <AnMaster> Library."
22:04:37 <AnMaster> what an incredibly lame joke
22:05:00 <AnMaster> worst part is of course that I wrote that myself
22:05:05 <daef> dave hilbert - the mathematician?
22:05:25 <AnMaster> daef, yeah, by analogy to the "hilbert's hotel"
22:05:41 <AnMaster> that is used to demonstrate what is meant with infinites
22:05:48 <AnMaster> and infinites of various sizes
22:06:10 <daef> i never studied - so i've never HEARD about him - just remeber him from screwing around through the intertubes...
22:06:10 <AnMaster> http://en.wikipedia.org/wiki/Hilbert%27s_paradox_of_the_Grand_Hotel
22:06:35 <AnMaster> daef, well, without a decent amount of math that may not be quite as fun
22:06:54 <daef> define: a decent amount of math
22:08:15 <MissPiggy> one day I want to go to that hotel
22:08:58 <daef> MissPiggy: and ask everyone for a penny?
22:09:04 <uorygl> MissPiggy: you're in it! This planet and all its celestial bodies are room number 1.
22:09:11 <uorygl> Er, and all its artificial satellites.
22:09:12 <AnMaster> MissPiggy, quite. Anyway that is a strange way to solve "Infinitely many coaches with infinitely many guests each" on wikipedia
22:09:19 <uorygl> The Moon is room number 2.
22:09:29 <uorygl> Room number 3 is still under construction.
22:09:53 <uorygl> I mean, it already exists, fully constructed. But we're not sure which one it is yet.
22:10:24 <AnMaster> I thought what you did was arrange all the guests in a square on the (infinite) parking lot and then apply Cantor's zig-zag thingy
22:10:34 <AnMaster> then load them all back into one coach
22:10:43 <AnMaster> now it is reduced to a problem you already solved above
22:10:44 <AnMaster> :)
22:10:45 <uorygl> That's an efficient way to do it.
22:10:57 <uorygl> What's Wikipedia's way? Powers of prime numbers?
22:11:06 <AnMaster> uorygl, something like that
22:11:25 <AnMaster> "then put the first coach's load in rooms 3n for n = 1, 2, 3, ..., the second coach's load in rooms 5n for n = 1, 2, ... and so on; for coach number i we use the rooms pn where p is the (i + 1)-th prime number."
22:11:35 <AnMaster> uorygl, it also seems to suggest some other ways
22:11:53 <AnMaster> "You can also solve the problem by looking at the license plate numbers on the coaches and the seat numbers for the passengers (if the seats are not numbered, number them). Regard the hotel as coach #0. Interleave the digits of the coach numbers and the seat numbers to get the room numbers for the guests. The guest in seat number 1729 moves to room 01070209 (i.e, room 1,070,209.) The passenger on seat
22:11:54 <AnMaster> 4935 of coach 198 goes to room 4199385 of the hotel."
22:12:01 <uorygl> That is a strange way of doing it, especially since it puts multiple guests in room 15.
22:12:04 <AnMaster> which is a solution I haven't seem before
22:12:41 <AnMaster> uorygl, how?
22:12:47 <AnMaster> uorygl, oh that isn't 5n
22:12:51 <AnMaster> that is copy failure
22:12:54 <AnMaster> it is 5^n
22:12:54 <uorygl> Oh.
22:12:56 <AnMaster> and 3^n
22:13:00 <uorygl> And p^n.
22:13:04 <AnMaster> yes
22:13:10 <AnMaster> blame firefox and/or xchat
22:13:27 <uorygl> I elect to blame you instead. But anyway.
22:13:39 <uorygl> That's a slightly less strange way of doing it.
22:13:41 <AnMaster> uorygl, I reflect that blame so you take the whole of it
22:14:04 <uorygl> I also reflect the blame, so it forms a standing wave in the resonant cavity between us.
22:14:40 <uorygl> (That's what the dentist said!)
22:16:30 * daef sets mode +blame to the company with finite workers that wasn't able to finish the roof of the hotel in finite time :D
22:18:17 <oerjan> uorygl: oh no, you've constructed a blaser
22:20:05 * pikhq sets mode +blame to the punk who claimed this hotel was infinite.
22:20:13 * uorygl feeds energy into the resonant cavity.
22:20:22 <pikhq> There's a whole infinity less hotel than was claimed!
22:20:58 <oerjan> pikhq: heck, there's even a whole infinity _times_ less hotel than was claimed
22:21:23 <pikhq> So there is.
22:21:53 <uorygl> There's an entire logarithm... um... infinitely less amount.
22:22:03 <oerjan> uorygl: no there isn't!
22:22:06 <oerjan> cantor's theorem
22:22:20 <uorygl> Hmm.
22:22:34 <cpressey> "A _path_ in a playfield given by a position vector P and a velocity vector V is the set of cells of the playfield addressed by any vector which is the sum P and n * V, where n is any non-negative integer."
22:22:48 <cpressey> (today's Befunge-111 spec excerpt)
22:23:00 <uorygl> You know, the union of all countable ordinal numbers is uncountable, but there's a countable set that has all the countable ordinal numbers as subsets.
22:23:21 <uorygl> Well, let me rephrase that.
22:23:30 <Deewiant> cpressey: You probably want "sum of" there
22:23:37 <oerjan> uorygl: um not if you use von Neumann representation, i think
22:24:04 <uorygl> The union of all countable ordinal numbers is countable, but there's a countable set such that for every countable ordinal number, that number is order isomorphic to a subset of that countable set.
22:24:13 <cpressey> Also, I think that's the first time I've ever heard Hilbert referred to as "Dave".
22:24:28 <cpressey> I like.
22:24:35 <oerjan> uorygl: right, like the rationals
22:24:45 <uorygl> Exactly.
22:24:58 <oerjan> there isn't a _well-ordered_ such set, though
22:24:59 <uorygl> Wait, how do I know that the rationals are such a set?
22:25:15 <oerjan> uorygl: because i said so, silly
22:25:28 <uorygl> Because every countable ordinal number is the limit of countably many ordinal numbers.
22:25:34 <uorygl> Whew. Disaster averted.
22:26:02 <oerjan> uorygl: um that's not the argument i know, and i don't see how that helps
22:26:35 <uorygl> Well, if you have a set of rational numbers, you can compress it into a set of rational numbers in the interval [0,1).
22:26:44 <cpressey> Deewiant: Yes. Thanks.
22:26:46 <oerjan> especially since, if it's a successor ordinal, you have to include itself in the limit
22:26:59 <uorygl> Well, if it's a successor ordinal, it's obvious.
22:27:05 <uorygl> Take the previous ordinal and stick one more on the end.
22:27:30 <uorygl> If it's a limit ordinal, map the first ordinal in the sequence into [0,1), the next into [0,2), the next into [0,3), and so on.
22:28:01 <oerjan> uorygl: the argument i know start with the obvious fact that if you have a countable ordinal, there is an actual _counting_ of it, i.e. a sequence containing all its elements.
22:28:32 <uorygl> Oh, so you can just take the enumeration and pick a rational number for each element.
22:28:33 <oerjan> uorygl: hm that might work
22:28:49 <oerjan> yep
22:29:57 <oerjan> uorygl: i am not _entirely_ convinced that your method works, you would need it to be a limit of an _increasing_ sequence of smaller ordinals
22:30:27 <uorygl> Well, if you have a non-increasing sequence, you can just toss out every element that isn't the highest one so far.
22:30:50 <oerjan> hm ... yeah
22:31:26 <oerjan> *starts
22:31:28 <uorygl> So. I am now a constructive proof that omega^omega can be embedded in the rationals.
22:32:11 <oerjan> uorygl: you need a constructive way to pick a counting, though
22:32:18 <oerjan> (which exists, of course)
22:32:31 <uorygl> You are now a constructive proof that omega^omega is countable.
22:32:50 <lament> ^^^^^^^^^^^^^^^^^^^
22:32:54 <uorygl> Actually, you're an enumeration of omega^omega.
22:32:58 <oerjan> I am now confused by your anthropomorphism.
22:33:41 <lament> zygohistomorphic anthropomorphism?
22:34:00 <oerjan> well, omega^omega in cantor normal form consists of finite sums of things of the form omega^n * m, where n and m are both finite
22:34:03 <lament> Now I am an axolotl.
22:34:13 <oerjan> *elements in cantor normal form
22:36:44 <oerjan> hm, you can identify that with the natural numbers by using the products p_n ^ m
22:36:55 <oerjan> p_n = n'th prime number
22:37:06 <oerjan> q.e.d.
22:37:26 <uorygl> oerjan: you're an enumeration; you're supposed to start stating numbers.
22:37:26 <oerjan> *products of
22:37:34 <oerjan> o.k.
22:38:28 <oerjan> n should start at zero so we get omega^0, m should start at 1
22:39:27 <uorygl> Have you stated an ordinal number yet?
22:39:33 <oerjan> 0, 1, omega, 2, omega^2, omega + 1, omega^3,
22:40:30 <oerjan> 3, omega*2, omega^2 + 1, omega^4, omega + 2,
22:40:37 <uorygl> 0 -> 0
22:40:38 <uorygl> 1 -> 1
22:40:39 <uorygl> omega -> 2
22:40:43 <uorygl> 2 -> 1/2
22:40:46 <uorygl> omega^2 -> 3
22:40:59 <uorygl> omega+1 -> 2 1/2
22:41:06 <uorygl> omega^3 -> 4
22:41:08 <uorygl> 3 -> 2/3
22:41:18 <uorygl> omega*2 -> 2 2/3
22:41:32 <uorygl> omega^2 + 1 -> 3 1/2
22:41:35 <uorygl> omega^4 -> 5
22:41:46 <uorygl> omega + 2 -> 2 3/5
22:42:02 <uorygl> This could get tiring.
22:42:19 <oerjan> omega^5, omega^3 + 1, omega^2 + omega, 4, omega^6,
22:42:35 <oerjan> yes it could :D
22:42:51 <uorygl> I should come up with an actual mapping.
22:43:13 <oerjan> well my counting is clear enough, anyway
22:43:44 <uorygl> Okay, I'll describe the second half of the mapping first.
22:45:53 <oerjan> there is a way to choose based on continued fractions, which has the advantage (iirc) that if you always choose another number between any two, you get to use _all_ the rationals. of course that won't happen here, anyway.
22:46:49 <oerjan> basically whenever p1/q1 and p2/q2 are neighbors, the next between them is (p1+p2)/(q1+q2), iirc
22:46:50 <uorygl> Set a/d = 0/1, b/e = 1/2, and c/f = 1/1. If the list is empty, return b/e. Otherwise, remove the first element of the list. If it was "down", set a/d and b/e to b/e and (a+b)/(d+e), respectively. If it was "up", set b/e and c/f to (b+c)/(e+f) and b/e, respectively. Repeat.
22:48:02 <oerjan> come to think of it, i'm sure this (and the resulting tree) has been discussed on this channel before
22:49:10 <uorygl> Hey, you described my algorithm a second before I described mine.
22:49:45 <AnMaster> <cpressey> "A _path_ in a playfield given by a position vector P and a velocity vector V is the set of cells of the playfield addressed by any vector which is the sum P and n * V, where n is any non-negative integer."
22:49:45 <AnMaster> <cpressey> (today's Befunge-111 spec excerpt)
22:49:46 <oerjan> hm to get all rationals and not just (0,1), you'd want sort of -1/0 and 1/0 at the end, i thikn
22:49:46 <AnMaster> huh?
22:49:47 <Gregor> On a scale from "lame" to "inhumanly terrible", how lame is http://hackiki.org/favicon.ico
22:49:49 <oerjan> *think
22:50:09 <uorygl> Gregor: lame.
22:50:25 <uorygl> If your scale also included "perfect", it would be that.
22:50:31 <uorygl> But I'm violating the rules just by saying so.
22:50:34 <oerjan> Gregor: i was hoping for something with an axe in it
22:50:47 <Gregor> ... with ... an axe?
22:50:52 <uorygl> oerjan: start at 0, and initially do nothing but add or subtract 1.
22:50:53 <oerjan> for hacking, of course
22:51:27 <Deewiant> AnMaster: What "huh"
22:51:33 <oerjan> uorygl: yeah at the ends, it's just that adding and subtracting 1 is equivalent to using -1/0 and 1/0 as hypothetical neighbors, isn't it
22:52:02 <AnMaster> Deewiant, I don't get what the point of that bit is
22:52:14 <AnMaster> I mean, I understand what it means once adding the missing "P"
22:52:43 <Deewiant> Missing "P"?
22:53:01 <Deewiant> Anyway, he defines what a path is. There is no point beyond that in that excerpt.
22:53:16 <AnMaster> Deewiant, missing of I meant
22:53:22 <AnMaster> Deewiant, but what is a path?
22:53:26 <AnMaster> and why do we need it
22:53:26 <uorygl> oerjan: oh, that's very true.
22:53:30 <Deewiant> What he defined
22:53:36 <AnMaster> Deewiant, why do we need it though
22:53:48 <Deewiant> Why we need it, I don't know; presumably so that he can say things like "the next funge-space cell in the IP's path"
22:53:55 <AnMaster> aha
22:54:07 <uorygl> Though the median-thingy of -1/0 and 1/0 is 0/0, not 0/1.
22:54:11 <uorygl> That probably makes sense.
22:54:32 <oerjan> oh hm
22:54:52 <oerjan> so you'll need to include 0/1 at the start, then
22:54:57 <AnMaster> uorygl, what are you doing there dividing with zero!?
22:54:58 <uorygl> Those endpoints don't give you a defined starting point, but every rational number between them does give you a defined starting point.
22:55:03 <AnMaster> without a limit
22:55:10 <oerjan> AnMaster: i suggested it
22:55:17 <uorygl> AnMaster: / doesn't mean division here!
22:55:20 <AnMaster> oerjan, why and what does it actually mean
22:55:29 <uorygl> It means tuple.
22:55:53 <oerjan> AnMaster: a "formal" fraction, to start enumerating the rest of the rationals in any way you want
22:56:01 <AnMaster> uh, don't you usually write that (x_1,x_2,...,x_n)?
22:56:09 <MissPiggy> what's a formal?
22:56:12 <AnMaster> uorygl, ^
22:56:13 <MissPiggy> what does formal meahn
22:56:21 <uorygl> Yes, but we're writing it x/y instead of (x,y).
22:56:24 <AnMaster> MissPiggy, "not informal"
22:56:29 <MissPiggy> what does it mean
22:56:31 <uorygl> I'm guessing "formal" means "pretend" in this case.
22:56:34 <oerjan> MissPiggy: it has the form of a fraction, but not the meaning?
22:56:35 <AnMaster> MissPiggy, "not not formal"
22:56:42 <MissPiggy> stop it anmaster
22:56:46 <MissPiggy> this is a serious question
22:56:50 <AnMaster> har
22:56:52 <uorygl> There, that's what it means. Having the form of a fraction but not the meaning.
22:57:01 <MissPiggy> okay thank you
22:57:23 <AnMaster> oerjan, are you doing cantor's zig-zag thingy?
22:58:01 <oerjan> AnMaster: no, this is a different way, which can be adapted to put _any_ countable ordered set into the rationals
22:58:10 <AnMaster> oerjan, oh?
22:58:47 <AnMaster> oerjan, what is this way called?
22:59:00 <oerjan> AnMaster: i'll try to find the wp article
22:59:12 <AnMaster> that works too I guess
23:00:52 <oerjan> http://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree i think
23:02:12 <uorygl> Construct a binary search tree out of the set. Map it onto its Stern-Brocot tree.
23:02:30 <pikhq> Just for kicks, I thought I'd write enough of a libc to support LostKng.c
23:02:31 <AnMaster> oerjan, cantor's zig-zag is a lot easier to follow
23:02:47 <oerjan> AnMaster: for enumerating rationals, yes
23:03:34 <AnMaster> oerjan, indeed
23:07:22 <lament> write down a rational, then interpret the resulting ASCII string as a base-256 numeral
23:07:28 <lament> fuck cantor
23:08:29 <oerjan> how crude :D
23:08:41 <MissPiggy> fuck cantor he was insane and a liar
23:08:45 <MissPiggy> set theory is false
23:09:11 <MissPiggy> I have disproved cantors "theorem" using magic sequences
23:09:36 <Oranjer> explain
23:09:44 <oerjan> there are no sets. there is just a vast sea... of cantor trolls.
23:10:36 <oerjan> well some cranks, too.
23:11:00 <oerjan> they are indistinguishable by the fundamental quantum principle known as poe's law.
23:11:12 <cpressey> AnMaster: The concept 'path' comes up in the spec a couple of times and it needs an explanation (in wrapping, semicolons, and ' and s and k)
23:11:37 <oerjan> in fact several symmetries will interchange them, such as turning the sea upside down.
23:12:23 <cpressey> oerjan: Which Poe is that named after? Edgar Allen?
23:13:09 <Gregor> Billy Dodifur Poe
23:13:17 <Gregor> *Dodifer
23:13:38 <oerjan> cpressey: it is hard to determine that, because the law is metacircularly self-applying
23:15:53 <oerjan> ah there _is_ a poe's law named after edgar allan too
23:16:10 * pikhq can has LostKng in 92K.
23:16:17 <pikhq> (note: after UPX)
23:18:28 <pikhq> Hmm. Any idea how much memory LostKng actually needs?
23:18:31 <AnMaster> <lament> write down a rational, then interpret the resulting ASCII string as a base-256 numeral <lament> fuck cantor <oerjan> how crude :D <-- wonderful
23:19:15 <cpressey> Of course, ASCII is overkill for that. You could write it down in binary, requiring only a 3-symbol alphabet.
23:19:37 -!- tombom_ has quit (Quit: Leaving).
23:19:41 <AnMaster> pikhq, no. Try massif?
23:19:50 <lament> or unary
23:19:51 -!- scarf has quit (Remote host closed the connection).
23:19:55 <lament> two symbols - digit and separator
23:20:04 <pikhq> AnMaster: massif?
23:20:06 <cpressey> **/***
23:20:09 <pikhq> Wassat?
23:20:10 <MissPiggy> fuck teh worlde?
23:20:12 <AnMaster> pikhq, valgrind --tool=massif
23:20:27 <pikhq> AnMaster: LostKng.
23:20:38 <pikhq> I want to know how many *Brainfuck cells* it needs.
23:20:38 <AnMaster> pikhq, yep. But if compiled to C
23:20:43 <AnMaster> oh I see
23:20:49 <AnMaster> pikhq, well, add a counter
23:20:50 <pikhq> And I don't want to play *every branch of the game*.
23:20:52 <AnMaster> with a max value
23:20:56 <AnMaster> ah okay
23:21:10 <pikhq> I still don't want to play *every branch of the game*.
23:21:27 <AnMaster> pikhq, I have no idea how to figure out
23:21:39 * pikhq shall try to grep for whatever esotope uses for relative memory accessing
23:21:42 <cpressey> Need a BF abstract-interpreter
23:22:11 <AnMaster> pikhq, eh?
23:22:25 <pikhq> AnMaster: I've got the C code from esotope-bfc here.
23:22:27 <AnMaster> pikhq, it won't help past a unbalanced loop
23:22:35 <AnMaster> pikhq, an*
23:22:37 <pikhq> I'm wondering if it even *uses* relative memory accessing.
23:22:50 <pikhq> If it doesn't, then I can just grep for the largest number used.
23:22:53 <cpressey> Yeah, I'm thinking, abs interp of BF is kind of hard for unbalanced loops
23:22:56 <AnMaster> pikhq, it does
23:22:59 <AnMaster> pretty sure it does
23:23:30 <pikhq> AnMaster: LostKng after optimisation of it through esotope?
23:23:45 <pikhq> I at least didn't *see* any.
23:23:56 <AnMaster> pikhq, do you know what to look for?
23:24:04 <AnMaster> pikhq, see how it works
23:24:06 <AnMaster> at the top
23:24:16 <AnMaster> iirc it uses a pointer p as "current" or such
23:24:28 <AnMaster> that's what in-between does
23:24:47 <AnMaster> so that gives a[2] = 2
23:24:50 <AnMaster> as abs
23:24:50 <AnMaster> and
23:24:56 <AnMaster> p[3] = 2 as relative
23:25:07 <cpressey> Oh man. Deewiant: Does mycology test for y's ability to perform "pick"? I sure hope not.
23:25:18 <Deewiant> cpressey: Yes, it does.
23:25:31 <pikhq> AnMaster: It uses "p" as a pointer to the array and does everything in terms of it.
23:25:34 <AnMaster> cpressey, of course it does. And it's a useful feature
23:25:39 <AnMaster> pikhq, there you are then
23:25:40 <Deewiant> It doesn't rely on it though
23:25:53 <AnMaster> pikhq, as soon as it move p you change the relativeness
23:26:03 <pikhq> So, I can look for actual modification of p.
23:26:16 <AnMaster> pikhq, there will be a lot
23:26:31 <pikhq> Yup, it actually modifies p.
23:26:33 <pikhq> Well, then.
23:26:43 <AnMaster> of course it does
23:26:44 <pikhq> No guarantees.
23:26:59 <pikhq> It doesn't have to.
23:27:18 <pikhq> There's only 645 modifications of p in the program.
23:27:19 <cpressey> Deewiant: Um, given that y can push a variable number of value onto the stack, ... how does it work???
23:27:28 <AnMaster> pikhq, similar for in-between iirc
23:27:34 <AnMaster> around 700 or so I think there
23:27:43 <Deewiant> cpressey: It uses 0y first to see how many values it pushes, and assumes that it doesn't change when you do another 0y.
23:27:58 <cpressey> Deewiant: Crikey! OK...
23:28:06 -!- MizardX- has joined.
23:28:18 <Deewiant> Which is a reasonable assumption, although I suppose some OS might allow messing with a program environment variables behind its back
23:28:23 <Deewiant> program's*
23:28:26 <AnMaster> Deewiant, EVAR?
23:28:32 <Deewiant> AnMaster: "behind its back"
23:28:34 <AnMaster> Deewiant, I dread EVAR + ATHR + y
23:28:38 <pikhq> 30,000 it is, then.
23:29:04 <Deewiant> I suppose some interpreter might also modify its own environment variables randomly but... meh
23:29:30 <AnMaster> Deewiant, oh and gdb to mess with the env vars
23:29:58 <cpressey> "1 cell containing the number of bytes per cell (global env). aka cell size. Typically 4, could also be 2, 8, really really large, infinity, etc." <-- Wow, an actual contradiction.
23:30:23 <cpressey> Or at least, a very undefined corner: 16-bit cells.
23:30:30 -!- MizardX has quit (Ping timeout: 260 seconds).
23:30:30 <Deewiant> AnMaster: Yeah, I suppose you're right
23:30:35 -!- MizardX- has changed nick to MizardX.
23:30:48 <AnMaster> cpressey, they are forbidden iirc
23:30:48 <Deewiant> cpressey: Any size works decently well
23:30:56 <AnMaster> oh wait, 2
23:30:57 <AnMaster> hm
23:31:07 <AnMaster> cpressey, well I suggest -1 there for "bignum"
23:31:14 <AnMaster> since well, we don't have "infinity"
23:31:21 <Deewiant> Mycology requires at least 10 bits though, since it's so big
23:31:21 <cpressey> I also like how "infinity" is mentioned, but not how to represnt it.
23:31:34 <AnMaster> cpressey, there is no MAX_BIGNUM
23:31:35 <Deewiant> If you have a floating-point Funge?
23:31:43 <AnMaster> thus I suggest -1 for bignum
23:31:55 <AnMaster> for floating point: I pitty those programmers
23:32:03 <Deewiant> pity*
23:32:06 <AnMaster> who have to code in it and who have to use it
23:32:12 <AnMaster> Deewiant, with extra t
23:32:26 <Deewiant> Mycology would probably run fine with a floating-point Funge
23:32:38 <AnMaster> Deewiant, depends on precision
23:32:49 <Deewiant> Yes, of course, a 1-bit wouldn't work.
23:32:54 <AnMaster> Deewiant, also division would give strange results
23:33:20 <Deewiant> Yes, it would
23:33:33 <Deewiant> For certain values of "strange"
23:34:00 <AnMaster> Deewiant, strange as in "mycology would probably bail out early on if division didn't produce expected results
23:34:03 <AnMaster> "
23:34:10 <Deewiant> Maybe
23:34:20 <Deewiant> Can't remember if it tests floored division
23:34:22 <Deewiant> Probably does
23:35:34 <AnMaster> night
23:36:42 -!- MigoMipo has quit (Remote host closed the connection).
23:41:32 -!- MigoMipo has joined.
23:43:28 <pikhq> Hooray, ridiculously small LostKng.
23:52:37 <fizzie> Many (or some, anyway) bignum systems have a MAX_BIGNUM; for example, GMP's documented integer format on a 32-bit system can't be larger than something like 2^(32*2^31); and for a 64-bit system, typically it's actually still just 2^(64*2^31), which might even fit in the memory of a reasonable system; it's just 32 gigabytes.
23:52:57 <fizzie> It might not be very user-friendly to have y return a 32-gigabyte cell value, though.
23:53:17 <fizzie> 16 gigabytes, I mean.
23:54:03 <Sgeo> Why would a bignum have a maximum value?
23:54:34 <fizzie> Because of the implementation. GMP's is just a dynamic-length array of 32- or 64-bit "limbs", and the length field is a regular signed 32-bit int.
23:56:51 -!- MigoMipo has quit (Remote host closed the connection).
23:57:08 <Gregor> A number that takes 32 GB is a very big number :P
23:57:25 <fizzie> Gregor: Only 16 GB! I miscalculated there.
23:57:36 <fizzie> (One of the bits of the limb count is used as a sign bit.)
23:57:45 <Gregor> A number that takes 16 GB is a very big number :P
23:59:09 <fizzie> Well, unless you want to reserve the description "very big" for Graham's number and his friends.
2010-02-27
00:00:13 <oerjan> i'm sure a limit just under what a computer can actually handle would be very annoying for those trying to do calculations _pushing_ what their computer can handle...
00:00:34 <fizzie> And in fact only 8 GB for a 32-bit system, because the limb size is 32 bits too. It's still larger than the directly addressable memory, anyhow.
00:00:58 <fizzie> But, heck, even our new cluster nodes have 64 GB of physical memory. You can fit three, almost four GMP MAX_BIGNUMs in there.
00:09:18 -!- cpressey has left (?).
00:37:19 -!- FireFly has quit (Quit: Leaving).
00:37:25 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:55:22 -!- Wareya has quit (Ping timeout: 248 seconds).
00:57:30 -!- Wareya has joined.
01:29:47 -!- Asztal has quit (Ping timeout: 265 seconds).
02:12:32 -!- MissPiggy has quit (Quit: Lost terminal).
03:25:59 <Gregor> http://www.solidcolorneckties.com/index.cfm/fa/items.main/parentcat/30607/subcatid/73650/id/422493 Need
03:26:35 <Oranjer> get it, immediately
03:27:41 <Gregor> I don't actually know how to tie a bow-tie :P
03:27:51 <pikhq> Fix that.
03:28:24 <Oranjer> yes!
03:33:53 <Gregor> Also, I don't know which is better: The fact that solidcolorneckties.com exists, or the fact that they sell non-solid-color ties :P
03:35:44 <oerjan> clearly it's solid as opposed to liquid, here
03:37:53 <oerjan> the white plasma neckties never really caught on
03:37:56 <oerjan> food ->
03:39:06 <Oranjer> fish-bowl bow ties, eh?
03:40:30 <Gregor> I have gas-color neckties.
03:40:38 <Gregor> They're clear, inflatable plastic.
03:41:17 <Oranjer> awesomes
03:41:24 <Oranjer> sounds like something for a rave
03:41:30 <Oranjer> I wonder how the light would act...
03:51:30 <Gregor> Oh no ...
03:51:34 <Gregor> They only have it in pre-tied :(
03:51:36 <Gregor> That's so much lame.
03:52:39 <Oranjer> like a clip on
03:52:44 <Oranjer> clip-on?
03:53:59 <Gregor> I assume so
03:55:26 <Gregor> I'm not sure if it's worth it now :(
03:59:00 <Oranjer> ...make your own?
04:00:03 <Gregor> Make my own ... bow-tie ...
04:00:42 <Oranjer> seems plausible
04:00:46 <Oranjer> why not?
04:31:39 -!- oerjan has quit (Quit: Good night).
04:39:44 -!- zzo38 has joined.
04:39:49 <zzo38> GAME OF SPIDER-WEB IN DARK!!
04:45:12 <Gregor> zzo38: Caching isn't broken, it just doesn't know that your script uses randomness.
04:45:31 <zzo38> Gregor: Is there a way to disable caching though, in the header output or something like that?
04:45:57 <Gregor> zzo38: See zzo38: http://hackiki.org/wiki/features.caching
04:46:01 <zzo38> Just so you know, I have made some kind of fix to the script.
04:46:04 <zzo38> http://hackiki.org/wiki/adventure_ideas
04:46:17 <zzo38> Select the [AGAIN] link for another random
04:47:29 <zzo38> I wonder if there is another way, such as by setting a cookie with the current timestamp and that would make the request not-identical?
04:47:33 <zzo38> Would that work?
04:47:54 <Gregor> Just touch a file if you use randomness.
04:48:16 <Gregor> Really, randomness isn't part of the design intent of caching, the best thing would be to run a non-cached Hackiki.
04:48:30 <zzo38> O, so I would just use touch on the current file, then?
04:49:20 <zzo38> Should I write: touch('bin/'.$filename);
04:49:34 <Gregor> Nono, you have to actually make a change, e.g. date > /hackiki/nocache or something akin to that. Maybe I'll make a more elegant mechanism, but like I said, the best thing would be to run a non-cached Hackiki if you need random behavior.
04:49:41 <zzo38> I will try that to see if it helps a bit. But then it won't work if you are not logged in?
04:49:51 <Gregor> Good point :)
04:50:30 -!- madbr has joined.
04:51:40 <zzo38> Like, if I could do "headers\nnocache\n\n" if you programmed Hackiki to support a function like that
04:51:44 <Gregor> Yeah, some mechanism for a script to indicate to Hackiki that it can't be cached would be useful. Not sure if there's sufficient use cases for it to me ...
04:54:53 <zzo38> Well, simply to make Hackiki complete, of course.
04:55:07 <Gregor> :P
04:55:18 <Gregor> Hackiki is supposed to be /simple/ :P
04:55:51 <zzo38> Yes, simple, but it should be complete, too. (Will setting a cookie do it?)
04:56:51 <zzo38> O, and feel free to edit my list of adventure ideas for Furryscript now that it is on Hackiki.
04:57:47 <zzo38> I read the cache description, does "same everything" include cookies?
04:58:20 <Gregor> I'm setting it up as a header.
04:58:33 <zzo38> OK
04:58:34 <Gregor> No, it doesn't, the scripts can't (currently) read cookies.
04:58:43 <zzo38> OK, thanks
04:59:02 <pikhq> Gregor: Not true. They can read them with Javascript.
04:59:03 <pikhq> ;)
04:59:07 <madbr> furryscript?
04:59:07 <Gregor> Besides, if it included cookies then the cache would border on useless.
05:05:31 <Gregor> zzo38: If a page sets the header X-Hackiki-Cached: No, then it won't cache.
05:54:16 <Oranjer> byeee
05:54:17 -!- Oranjer has left (?).
05:59:04 <Sgeo> Given a magical HTTP server that can set the URL of the client anytime it wants, what would you do?
06:00:00 <Sgeo> In terms of AJAXiness
06:00:50 <Sgeo> n/m
06:16:37 -!- MizardX has quit (Ping timeout: 276 seconds).
06:19:27 <uorygl> It's strange when people say that they've disproved a theorem.
06:19:58 <uorygl> Do they mean that they've proven a contradictory theorem, that they've proved the underlying theory inconsistent, or that they've found a flaw in the theorem?
06:20:13 <uorygl> (Speaking of inconsistency, my past participle of "prove".)
06:20:30 <puzzlet> they just "disproved," you know.
06:20:33 <pikhq> Any of the above.
06:21:11 <pikhq> It can also mean complete and utter bullshit.
06:28:27 * uorygl reads about an alleged inconsistency in ZFC, and ponders why it's not really an inconsistency in ZFC.
06:30:28 <uorygl> It's pretty much what I thought and/or remembered.
06:30:32 <uorygl> Skolem's paradox.
06:30:49 <uorygl> There are countable models of ZFC. Such models must contain uncountable sets. Contradiction?
06:31:07 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:31:12 <uorygl> No; an "uncountable set" in the model is really just a set where the enumeration is not in the model.
06:35:10 <zzo38> OK. I can set the header X-Hackiki-Cached
06:35:27 <zzo38> I have noticed that header when using netcat to connect to Hackiki.
06:36:28 <zzo38> Hay, it works! Thanks
06:38:39 <zzo38> And about disproving a theorem, well, there are many ways to do it.
06:40:43 <uorygl> I have a proof that I am the pope!
06:41:12 <uorygl> Suppose 2 + 2 = 5. We already know that 2 + 2 = 4. This means that 5 = 4, meaning that 2 = 1. Now, the Pope and I are two, which means that the Pope and I are one.
06:41:15 <uorygl> Q.E.D.
06:41:57 <zzo38> For example, I have read in some book about criteria that odd perfect numbers must meet, if they exist. Immediately I thought, if you can find criteria which contradict each other (and the proof of that), then you can also know there are no odd perfect numbers.
06:42:27 <zzo38> uorygl: Well, that doesn't prove you are the pope. Your logic says that if 2+2=5 then that makes you the pope. (Well, kind of.)
06:42:49 <uorygl> You just don't understand proof by contradiction. :P
06:43:03 <puzzlet> if you're perfect, there's no oddity
06:43:34 <Gracenotes> if your argument follows proof of contradiction structure, then you've just proved that 2+2≠4
06:43:35 <puzzlet> so nothing can be both odd and perfect same time
06:43:53 <Gracenotes> er. 2+2≠5
06:43:58 <uorygl> Proof by contradiction that 2 + 2 = 4:
06:44:10 <uorygl> Suppose 2 + 2 != 4. This contradicts the fact that 2 + 2 = 4. Therefore, 2 + 2 = 4.
06:44:36 <zzo38> uorygl: That's like self-reasoning, isn't it?
06:44:58 <Gracenotes> I object, I'm using the integers modulo 3 and it only goes up to 2
06:45:14 <Gracenotes> clearly 2 + 2 = 1
06:45:22 <uorygl> I agree. 2 + 2 = 1.
06:45:30 <zzo38> OK, sorry. I guess that's reasonable. But you have to specify, because otherwise it is not assumed!!
06:45:35 <uorygl> 4 is just an ugly way of writing 1.
06:46:06 <Gracenotes>
06:46:59 <lament> does turing's incompleteness theorem mean you're not allowed to use proofs by contradiction?
06:47:27 <zzo38> lament: As far as I know, it doesn't *always* disallow it, at least.
06:47:33 <uorygl> Turing has an incompleteness theorem?
06:47:37 <lament> godels
06:47:39 <lament> same thing
06:50:01 <uorygl> Well, why would it mean that?
06:50:24 <uorygl> A proof by contradiction doesn't say "if this were true, ZFC would be inconsistent".
06:50:37 <zzo38> I got it to work! http://hackiki.org/wiki/adventure_ideas You can edit the script if you want, or edit the bin/Furryscript file to change the form, or so on. It is Hackiki and is experiment for everyone with OpenID to do with
06:51:16 <zzo38> Did you know, that spider-web in dark is a good way to stop the war?
06:52:51 <Gracenotes> lament: it just says not everything is provable, right?
06:53:18 <Gracenotes> (I am not familiar with goedel's theorem so much, btw)
06:53:23 <uorygl> Well, there are two of the theorems.
06:53:36 <zzo38> Yes it is right not everything can be provable
06:53:37 <Gracenotes> there are certainly provable things, in the rendering I'm familiar with
06:53:47 <uorygl> I think the first one says that any sufficiently powerful consistent theory has statements that are true but not provable.
06:54:04 <uorygl> The second one says that if a sufficiently powerful theory has a proof of its own consistency, it is inconsistent.
06:54:35 <Gracenotes> good summary
06:55:32 <uorygl> You know, I once saw some argument that went like this:
06:56:28 <zzo38> Can you add an axiom to TNT that proves its own consistency?
06:57:47 <uorygl> Consider any theory's Goedel statement, which is "This theory has a disproof of its Goedel statement." Obviously, the Goedel statement is false for all theories. However, given a theory, it cannot disprove its own Goedel statement, whereas a human can tell it's false just by looking at it; therefore, humans can know things no mathematical theory can prove.
06:57:59 <uorygl> Which is a really, really dopey argument, because the Goedel statement is not false for all theories.
06:58:15 <uorygl> (Even if "theory" means "theory capable of expressing arithmetic", as I glossed.)
06:58:22 <uorygl> zzo38: well, what's TNT?
06:59:21 <zzo38> TNT = Typographical Number Theory
07:00:17 <uorygl> TNT + "TNT is consistent" is almost certainly consistent.
07:00:35 <zzo38> OK. I guess I thought so
07:00:36 <uorygl> The theory X where X = TNT + "X is consistent" is not consistent, I think.
07:00:49 <zzo38> OK
07:02:49 <uorygl> A cute theory is ZFC + "ZFC is inconsistent".
07:02:58 <zzo38> OK
07:03:12 <augur> Gracenotes :D
07:04:19 <uorygl> I wonder if you say "OK" every time I include a string of the form "X is consistent" or "X is inconsistent".
07:04:54 <zzo38> Maybe. I am just confirming that I read it and don't have a disagreement of it
07:06:09 <uorygl> A cute response is OK + "OK is inconsistent".
07:06:10 * uorygl coughs.
07:06:12 <zzo38> Do you know how to add natural numbers represented as sets?
07:06:19 <uorygl> To what?
07:06:21 <zzo38> OK + "OK is inconsistent"
07:06:28 <uorygl> Aww, how cute!
07:07:12 <zzo38> Like, if you have 0 is {} and 1 is {0} and 2 is {0,1} and so on, how do you figure out the set that is represent the sum of two natural numbers which are as sets, using only set operations (and not arithmetic operations)?
07:07:46 <uorygl> Hmm...
07:07:47 <augur> zzo38: whats your definition of successor there
07:07:59 <zzo38> successor={#|[#]};
07:08:05 <augur> because succ {} = {{}}, and succ {{}} = {{},{{}}}
07:08:07 <uorygl> The successor of X is X union {X}, I'm sure.
07:08:23 <zzo38> Yes, that's the same thing I just wrote, but in words
07:08:49 <augur> ok so then if 0 = {}, then succ {} = {} u {{}} = {{}}, such {{}} = {{}} u {{{}}} = {{},{{}}}, etc. ok, i see.
07:09:06 <zzo38> Yes
07:09:24 <augur> im used to seeing it be succ x = {x,{x}}
07:09:30 * uorygl straightens out his mind.
07:09:48 <uorygl> Okay. X + Y is X union {X + y : y is in Y}, I think.
07:10:12 <zzo38> OK, let me think about that a bit
07:10:39 <augur> i think your definition is fine
07:10:54 <augur> each number is the set of all numbers below it
07:11:06 <zzo38> augur: Yes, that's the usual way
07:11:13 <zzo38> And is the way I am using
07:11:15 <uorygl> It's a recursive definition, of course.
07:11:18 <augur> yes
07:11:19 <augur> thats what i just said :P
07:11:38 <zzo38> I know
07:11:43 <augur> ok then
07:14:08 <zzo38> And how should a pair be represent as a set?
07:14:20 <uorygl> (x,y) = {{x},{x,y}}
07:15:01 <zzo38> OK, that seems to work. I can add it into the esolang wiki page [[Hyper Set Language]]
07:15:28 <uorygl> Hmm. I found some philosophy forums online.
07:15:31 <uorygl> Reading them makes me ill.
07:16:32 <uorygl> I think one post said that the philosopher is a minus sign or phallus seeking Sophia.
07:17:06 <uorygl> The poster ought to have been banned on sight for saying anything so vacuous.
07:18:22 <zzo38> So that means that (0.0) is the same as ([1]) (in Hyper Set Language) [[0]] [[0];[0;0]]->[[0];[0]]->[[0]]
07:19:54 <uorygl> (0,0) is the same as 1.
07:20:00 <uorygl> And (0,1) is the same as 2.
07:20:07 <uorygl> And there are no other noteworthy equivalences.
07:20:41 <zzo38> Sorry, I think I made a mistake. Let me look again
07:20:47 <zzo38> Maybe I am a bit tired
07:21:02 <zzo38> Or maybe not.
07:21:05 <zzo38> Let me see again
07:21:42 <zzo38> Maybe I did or didn't make a mistake. Well, I will think of it tomorrow today I sleep
07:21:55 <zzo38> uorygl: I understand you, though.
07:22:18 <uorygl> Now figure out how to make a linked list.
07:22:21 <uorygl> Hint: it's really easy.
07:22:50 <zzo38> Yes, I can figure out, it is easy.
07:23:16 <zzo38> Just like the right part of the pair is the next pair of the list, isn't it?
07:23:39 <uorygl> Right.
07:24:11 <uorygl> You have Cartesian products and tagged unions. With those, you can implement ADTs. With those, you can implement... a lot.
07:26:39 <zzo38> As far as I know, this way of representing a pair might also mean that (fork\I) is "the set of all single element sets of single element sets"? (If I haven't made a mistake, that is)
07:27:04 <zzo38> Yes I can see, you can implement a lot.
07:27:44 <zzo38> I have implemented Russell's paradox, even. Now I want to see how many other paradoxes I can represent in Hyper Set Language, too.
07:29:39 <uorygl> In ZFC, there is no set of all single element sets of single element sets.
07:29:57 <zzo38> Now I have to think how to make the definition of sum you wrote, in Hyper Set Language.
07:30:00 <uorygl> Call that set S; it would have to have {{S}} as an element, which is not allowed.
07:30:55 <zzo38> OK, I understand. Of course, ZFC is not the only set theory
07:31:15 <zzo38> There is also another set theory I have read about on Wikipedia that allows the set of all sets
07:31:22 <uorygl> That sounds like NF.
07:31:35 <uorygl> I want to see a type theory thingy based on NF.
07:34:03 <zzo38> Yes, NF was the one I was thinking of.
07:36:43 -!- zzo38 has quit (Quit: Riichi.).
07:43:56 <daef> mornin
07:50:02 -!- bsmntbombdood_ has joined.
07:50:30 -!- bsmntbombdood has quit (Ping timeout: 258 seconds).
07:51:10 -!- charlls has quit (Quit: Saliendo).
07:53:35 -!- MigoMipo has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:09 -!- krana has joined.
08:03:44 -!- krana has left (?).
08:14:54 <augur> popquiz
08:15:40 <augur> uorygl: if you have a CFG and you have to rewrite all instances of a non-terminal simultaneously with the same rule, rather then in any order, does this change the power of the grammar?
08:18:53 -!- madbr has quit (Quit: Radiateur).
08:20:35 -!- MigoMipo has quit (Remote host closed the connection).
08:26:10 -!- MigoMipo has joined.
08:37:28 -!- Asztal has joined.
08:48:04 -!- daef has left (?).
09:12:10 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
09:13:26 -!- tombom has joined.
09:19:20 -!- MigoMipo has quit (Read error: Connection reset by peer).
09:23:17 -!- MigoMipo has joined.
09:31:03 -!- MigoMipo has quit (Remote host closed the connection).
09:58:33 -!- kar8nga has joined.
10:08:27 -!- kar8nga has quit (Remote host closed the connection).
10:08:52 -!- kar8nga has joined.
10:28:05 -!- MigoMipo has joined.
10:46:33 <augur> BEHOLD http://en.wikipedia.org/wiki/Controlled_grammar
10:49:30 <AnMaster> augur, that term reminds me of "controlled substances"
10:49:45 <augur> ;D
10:49:47 <AnMaster> which explains a lot about linguistics :P
10:50:05 <augur> controlled grammars are almost exclusively CS.
10:50:14 <augur> i just posted that article tho.
10:50:21 <augur> took me like a week to write
10:50:52 * AnMaster considers adding a "this article's introduction may be too technical" template at the top
10:51:30 <AnMaster> also a lot of "citation needed" in various parts of it of course
10:52:30 <augur> the whole thing is basically from the two cited links.
10:53:04 <AnMaster> augur, aha! no _notable_ sources then!
10:53:13 <AnMaster> (or something)
10:53:24 <augur> it was incredibly hard to find information on any of these formalisms
10:54:04 <AnMaster> augur, you realise that apart from "this article's introduction may be too technical", the other suggestions were a parody of wikipedia?
10:54:20 <AnMaster> s/other/
10:54:29 <AnMaster> s/\//\/\/
10:54:32 <AnMaster> aaargh
10:54:38 <augur> XD
10:54:44 <AnMaster> s/\/$/\\/\//
10:54:46 <AnMaster> err
10:54:48 <AnMaster> not even that
10:54:49 <augur> hahahahaha
10:54:51 <AnMaster> s/\/$/\\\/\//
10:54:52 <AnMaster> even
10:54:57 <AnMaster> I think that might be correctr
10:55:01 <AnMaster> correct*
10:55:02 <augur> now we know how to get anmaster stuck in an infinite loop :D
10:55:10 <AnMaster> augur, or I just do:
10:55:24 <AnMaster> /other/s#$#/#
10:55:25 <AnMaster> there
11:22:07 -!- kar8nga has quit (Remote host closed the connection).
12:05:15 <AnMaster> ^source
12:05:15 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
12:08:37 -!- oklopol has joined.
12:13:25 -!- oklopol has quit (Ping timeout: 256 seconds).
12:13:58 -!- FireFly has joined.
12:31:33 -!- kar8nga has joined.
12:50:19 <augur> http://en.wikipedia.org/wiki/Minimalist_grammar
12:50:20 <augur> :D
13:24:43 -!- MizardX has joined.
13:30:45 -!- scarf has joined.
13:45:17 * AnMaster glares at Deewiant for causing unnecessary debugging by not clearly stating that mycouser after it reported it could read a char also informed that it read an additional char and threw it away (presumed to be a newline I guess)
13:45:35 <AnMaster> thus making me think that my STRN in efunge was silently dropping a letter
13:45:47 <AnMaster> spent about 10 minutes debugging that before I found out the cause
13:54:35 <scarf> ouch
13:57:33 <AnMaster> exactly
13:57:36 <AnMaster> hi scarf btw
14:01:10 <scarf> wow, security update for sudo, you don't get those often
14:01:50 <scarf> local privilege escalation, as well
14:02:03 <AnMaster> saw it and updated
14:03:11 <scarf> yep, it isn't exploitable with the default config, though
14:03:22 -!- oerjan has joined.
14:03:53 <AnMaster> scarf, well, my config is close to default iirc
14:04:22 <scarf> basically, the bug is that if you grant permission to arbitrary people to edit a particular file via sudoedit
14:04:34 <scarf> then arbitrary people can run an exectuable named sudoedit in any directory
14:04:52 <scarf> which they could have written themselves
14:05:13 <scarf> if you aren't granting permission to sudoedit particular files, everything's fine
14:05:38 <AnMaster> I never used sudoedit
14:06:23 <scarf> I've used it on occasion, but my /etc/sudoers doesn't grant me or anyone else any permission to use it beyond my typical permission to sudo anything
14:06:37 <AnMaster> scarf, oh btw I think it would be a good idea to formally prove su and sudo correct. Probably needs to be rewritten in some other language for that to be feasible
14:06:46 <scarf> hmm, interesting
14:07:11 <AnMaster> those are quite security sensitive so...
14:07:15 <scarf> su should be incredibly simple, shouldn't it? call out to PAM to verify auth, suid to whatever user that it
14:07:16 <scarf> *is
14:07:21 <scarf> sudo is quite a bit more complex
14:07:28 <AnMaster> scarf, PAM would need to be verified
14:07:30 <AnMaster> as well
14:07:34 <scarf> yep
14:07:43 <scarf> I think proving PAM correct is more interesting than proving su correct
14:08:00 <AnMaster> yep
14:08:15 <AnMaster> and that depends on the actual pam config in use too
14:08:48 <AnMaster> but you could probably at least prove each module correct
14:09:07 <AnMaster> and the framework itself I guess
14:09:31 <AnMaster> if you have doen that, proving any specific setup correct shouldn't be too hard
14:10:40 -!- BeholdMyGlory has joined.
14:10:50 <AnMaster> of course, for modules like ldap or nis auth or whatever, you would need to prove the tcp/ip stack, the network, and the remote server correct. Which is not really feasible
14:17:04 -!- MissPiggy has joined.
14:21:47 -!- MissPiggy has quit (Quit: Changing server).
14:22:07 -!- MissPiggy has joined.
14:22:15 -!- MissPiggy has quit (Changing host).
14:22:15 -!- MissPiggy has joined.
14:29:48 <scarf> ooh, darcs 2.4 is out
14:33:44 <oerjan> a darc time for humankind
14:43:26 <AnMaster> -_-
15:16:32 -!- kar8nga has quit (Remote host closed the connection).
15:17:27 -!- Sgeo_ has joined.
15:20:37 -!- Sgeo has quit (Ping timeout: 264 seconds).
15:25:08 -!- tombom has quit (Read error: Connection reset by peer).
15:25:23 -!- tombom has joined.
16:11:54 -!- oerjan has quit (Quit: leaving).
16:23:00 <Sgeo_> Where's alise?
16:23:13 <scarf> haven't seen him this weekend at all
16:23:13 <scarf> I'm worried
16:23:29 <MissPiggy> hello
16:23:36 -!- Sgeo_ has changed nick to Sgeo.
16:24:05 <MissPiggy> I would like if alise came on
16:33:35 <AnMaster> scarf, same
16:48:30 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
16:50:49 <AnMaster> Deewiant, would using opaque values in SOCK break anything do you think?
16:50:53 <AnMaster> for mycology or other apps
16:51:12 <Deewiant> Mycology prints them, at least
16:51:16 <AnMaster> hm okay
16:51:57 <AnMaster> Deewiant, it doesn't for the FILE handles iirc
16:54:55 <Deewiant> So it doesn't
16:54:58 <AnMaster> actually, implementing SOCK in efunge would be nasty... erlang's abstraction of the sockets API of the OS makes it rather different than BSD sockets
16:55:00 <AnMaster> so
16:55:36 <AnMaster> I would have to emulate the bsd style sockets on top of the erlang abstraction of the bsd-style sockets of the OS!
16:56:12 <AnMaster> Deewiant, wonderful isn't it with fingerprints that assume something similar to C is being used ;)
16:57:09 -!- sebbu has joined.
16:57:58 -!- sebbu3 has quit (Ping timeout: 245 seconds).
16:58:15 <AnMaster> Deewiant, didn't you complain about that too some time ago?
16:58:33 <AnMaster> might have been about ncurses API using macros
16:58:47 <Deewiant> That's not really the fingerprint's fault, though
16:59:03 <AnMaster> Deewiant, well, it could have used another abstraction...
16:59:20 <Deewiant> Sure, but it specifically wanted to be a curses binding :-P
17:00:12 <AnMaster> Deewiant, for example, I have no idea how to set SO_DEBUG in erlang. Not that I can find the man page documenting what SO_DEBUG actually means anyway...
17:00:31 <AnMaster> aahhh seems to have found it
17:00:38 <AnMaster> long live full text search with man
17:00:44 <AnMaster> man 7 socket has it
17:00:54 <AnMaster> "Enable socket debugging. Only allowed for processes with the CAP_NET_ADMIN capability or an effective user ID of 0."
17:00:57 -!- asiekierka has joined.
17:01:05 <AnMaster> who would run a funge program as root heh
17:04:59 <asiekierka> I love FerNANDo
17:06:28 <Ilari> Actually on Linux that means having CAP_NET_ADMIN...
17:06:58 <Ilari> Well, that capability is enough to make total mess of networking, but..
17:07:51 <AnMaster> Ilari, true, but in my experience capabilities are rarely used
17:07:57 <AnMaster> it's usually root or nothing
17:08:09 <AnMaster> sure, the support is there but few use file caps or such
17:10:29 <asiekierka> scarf, why did you quit? :(
17:10:36 <asiekierka> We were having so much fun in IRP#IRP
17:10:42 <scarf> asiekierka: before you could correct your mistake
17:10:58 <scarf> the funny thing is, I didn't even swap the mouse buttons just to confuse you
17:11:07 <asiekierka> Please enable IRP interpretation capabiities in #esoteric.
17:11:07 <scarf> I've had them that way round for a while, because the left one is unreliable
17:11:20 <scarf> asiekierka: nothing says I have to interpret IRP queries here!
17:11:37 -!- asiekierka has set topic: 0 days since last topic change | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D | You have to interpret IRP here..
17:11:40 <asiekierka> Please enable IRP interpretation capabiities in #esoteric.
17:11:50 <asiekierka> >:D
17:11:54 -!- AnMaster has set topic: 0 days since last topic change | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:11:57 <scarf> asiekierka: you can't just cahnge the topic like that
17:11:59 <scarf> as in, it doesn't work
17:12:04 <scarf> the topic isn't a binding contract
17:12:17 <scarf> (nor would putting "this topic is a binding contract" in the topic work, not even against Agorans)
17:12:18 <Sgeo> Hm, so a server is only capable of sending text/plain, but can force the client to go to arbitrary URLs, including data: URLs.
17:12:18 -!- asiekierka has set topic: 0 days since last topic change | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D | The topic is now a binding contract. | You have to interpret IRP queries..
17:12:30 <asiekierka> whoopies
17:12:34 <asiekierka> missed your next message
17:12:41 <scarf> Sgeo: I love your reasoning there
17:12:49 -!- asiekierka has set topic: 0 days since last topic change | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:13:06 -!- scarf has set topic: 0 days since last topic change | 1 week since last alise sighting | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:13:13 <Sgeo> There is a 1024 byte limit on URLs
17:13:57 <Sgeo> Someone devised a way to have longer stuff work, by making a short data: based page essentially pull text from the server as though it were Javascript, and that Javascript displays the content from the server as HTML
17:13:58 <AnMaster> Deewiant, it looks like I can't set all options for sockets. As in not all options have a mapping in the erlang API for sockets. Any opinions on the best workaround? Reflecting if those options are used?
17:14:07 <Sgeo> So, in that system, is there any way to get forums working nicely?
17:14:08 -!- asiekierka has set topic: 0 days since last topic change | 1 week since last alise sighting | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D | #esoteric == #irp.
17:14:13 <asiekierka> Will that work, scarf?
17:14:14 <Deewiant> AnMaster: But do they matter?
17:14:19 <scarf> asiekierka: err, no
17:14:29 <scarf> and stop messing with the topic
17:14:31 <Sgeo> scarf, this is reality in Second Life
17:14:32 <Deewiant> I mean, maybe you can't implement a certain option but is there a visible difference
17:14:34 -!- scarf has set topic: 0 days since last topic change | 1 week since last alise sighting | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:14:42 <Sgeo> scarf, http://wiki.secondlife.com/wiki/User:Kelly_Linden/lsl_hacks
17:14:44 <AnMaster> Deewiant, well, out of band data can't be received with that API then
17:14:46 <Deewiant> FFS with the topic
17:14:58 <scarf> Sgeo: probably
17:15:13 <scarf> this reminds me of the whole concept of a client-side website
17:15:16 <AnMaster> Deewiant, not that that bit matters in practise. SO_DEBUG can't be done either
17:15:18 <scarf> which works vaguely P2Pishly
17:15:23 <asiekierka> I want to make an esolang about video tapes
17:15:27 <AnMaster> Deewiant, reuseaddr can be done, haven't yet checked the other ones
17:16:18 <Deewiant> AnMaster: For example SO_DEBUG, how can you do "socket debugging" through the SOCK API anyway?
17:16:29 <AnMaster> Deewiant, good point
17:16:42 <Deewiant> So these kinds of options you can just ignore
17:16:47 <AnMaster> Deewiant, anyway: so_reuseaddr, so_keepalive and so_broadcast seems supported
17:16:50 <AnMaster> the other ones: not
17:17:30 <asiekierka> any ideas how could a magnetic medium (VHS tapes, audio cassettes...) -based esolang work
17:17:37 <AnMaster> Deewiant, also tcp and udp sockets have quite different APIs in erlang. Ones that make more sense for them than a generic one. But that means I need multiple code paths in SOCK. One for tcp and one for udp
17:17:55 <AnMaster> they are even completely different erlang modules
17:18:17 <AnMaster> oh dontroute exists too it seems
17:18:46 <AnMaster> Deewiant, anyway SO_OOBINLINE *might* matter: "If this option is enabled, out-of-band data is directly placed into the receive data stream. Otherwise out-of-band data is only passed when the MSG_OOB flag is set during receiving."
17:20:45 <Deewiant> And how do you plan on setting MSG_OOB through the SOCK API?
17:20:52 -!- kar8nga has joined.
17:20:54 <Deewiant> Note: I have no idea what out-of-band data is
17:20:56 <AnMaster> Deewiant, impossible afaik
17:21:08 <AnMaster> which means that feature will be inaccessible
17:21:23 <AnMaster> Deewiant, anyway the remote endpoint could send out of band data I guess
17:21:27 <AnMaster> and yeah I have no clue what it is either
17:21:31 <Deewiant> It basically means ignore out-of-band data if it's disabled
17:21:47 <AnMaster> Deewiant, I can't get at out of band data with the erlang api it seems
17:21:48 <AnMaster> at all
17:22:16 <AnMaster> (which indicates it is rarely used)
17:23:34 <AnMaster> Deewiant, it seems related to the URG TCP (or possibly IP?) flag
17:23:39 <fizzie> For TCP, OOB data generally maps to the URG flag/pointer.
17:23:44 <AnMaster> right
17:23:56 <fizzie> Arr, I blame the slowish N900 keyboard.
17:24:08 <fizzie> But it's not much used.
17:24:13 <AnMaster> right
17:25:02 <fizzie> Telnet uses it for sending some things, I think.
17:25:07 <AnMaster> mhm
17:27:11 <AnMaster> fizzie, btw, you talked about ATHR in some future fungot_2. You do know that SOCK and FILE handles would not be inheritable between threads right?
17:27:12 <fungot> AnMaster: quantum mechanic knows that lizard corpses protect against cockatrices. use a dagger." the hunt is up! even if we can only wish for a while, when i came here, i go to the sea; there's no food.
17:27:16 <AnMaster> at least that is the plan
17:27:27 <AnMaster> and for FILE it is already the case (since FILE is implemented)
17:34:44 <Deewiant> AnMaster: Explicitly disallowed or implementation-defined?
17:36:14 <AnMaster> Deewiant, explicitly undefined behaviour
17:36:42 <AnMaster> which means using a handle from another thread could map to nasal demons
17:38:19 <Deewiant> Aye.
17:39:33 <scarf> you could have a separate thread to handle handles
17:39:38 <scarf> and all the other threads call out to it
17:41:57 <AnMaster> scarf, well of course
17:42:24 <AnMaster> Deewiant, also the spec allows that handle 1 in one thread might be different from handle 1 in another thread
17:42:28 <AnMaster> in efunge this is the case
17:42:40 <AnMaster> and sock might have overlapping handles with file too
17:43:11 <AnMaster> anyway, I wish it could be done as opaque socket objects
17:43:34 <AnMaster> but really, it is currently more pain that it is worth.
17:44:21 <AnMaster> actually adding support for opaque objects wouldn't be too hard in efunge. A few things would have to be modified to reflect on them (one socket plus another? huh?)
17:45:15 <AnMaster> it should be fairly straightforward though
17:50:39 <Sgeo> Quick Javascript question: Is it possible to submit the data in a form to a server without actually changing the page? If so, how?
17:51:48 <Deewiant> It is, don't know how
17:52:02 <Deewiant> See the source of things like GMail :-P
17:52:35 <pikhq> Sgeo: We call it "AJAX".
17:53:12 <Sgeo> Is there a way to do it without .. that XML function thingy?
17:53:12 <Deewiant> I don't
17:53:19 <MissPiggy> ait that's not submitting a form is it?
17:53:20 <Deewiant> Yes, again don't know how
17:53:29 <MissPiggy> can javascript POST as well as GET?
17:53:29 <pikhq> It only has XML in the name.
17:53:37 <pikhq> It has jack shit to do with actual XML.
17:53:49 <Sgeo> Was about to say that it has cross-browser issues, but I know the browser being used
17:54:06 <Deewiant> MissPiggy: I'm fairly sure it can
17:54:08 <MissPiggy> I think javascript can POST a form yes
17:54:12 <Sgeo> Actually, I don't off the top of my head, but I can check
17:54:24 <FireFly> <Sgeo> Is there a way to do it without .. that XML function thingy? <-- You can use an iframe
17:54:27 <FireFly> a bit ugly, but works
17:54:35 <FireFly> otherwise XHR would be the only way, AFAIK
17:54:45 <pikhq> XMLHttpRequest is supported by pretty much everything but IE 6.
17:54:56 <pikhq> (Need to use the nearly-equivalent XMLHTTP for that)
17:55:31 <pikhq> And yes, you can post with it.
17:56:15 <AnMaster> pikhq, no it isn't
17:56:26 <AnMaster> pikhq, for example: lynx, links, w3m
17:56:34 <AnMaster> afaik none of them supports XMLHttpRequest
17:56:46 <MissPiggy> yes but you can only do a POST to your own server
17:56:47 <pikhq> AnMaster: XD
17:56:48 <pikhq> elinks might, though.
17:56:51 <Sgeo> I think what I'm using is essentially Gecko
17:56:53 <MissPiggy> it is not possible to post to another server is it?
17:56:54 <AnMaster> pikhq, *maybe*
17:57:13 <MissPiggy> what if you wanted to post to another server
17:57:35 <Sgeo> "There's now a new tutorial on the 'Projects' menu for you to have a try at. This implements the popular CAPTCHA method of form validation, to prevent abuse by spambots and the like. Here we use Ajax to build CAPTCHA into the normal form validation, so the check can conveniently be done before form submission."
17:57:38 * Sgeo facepalms
17:57:58 <AnMaster> Sgeo, why?
17:58:01 <FireFly> MissPiggy, I think POST via JS is quite impossible atm, dunno about HTML5
17:58:17 <Sgeo> Hm, misunderstood what it was saying
17:58:28 <AnMaster> MissPiggy, can't you only GET to your own server as well iirc
17:58:31 * Sgeo facepalms self for facepalming something that wasn't in fact insane
17:58:35 <AnMaster> using XMLHttpRequest that is
17:58:51 <AnMaster> I thought that was part of the point of it.
17:58:56 <AnMaster> same domain or something
18:00:31 <pikhq> FireFly: XMLHttpRequest allows it.
18:00:48 <FireFly> uh, cross-site I meant*
18:00:49 -!- SimonRC has quit (Ping timeout: 265 seconds).
18:00:55 <pikhq> As does the spec.
18:03:29 <MissPiggy> what about iframes?
18:03:46 <MissPiggy> I imagine you could GET from a different server using an iframe
18:03:51 <MissPiggy> but what about POSTing?
18:06:31 <pikhq> You could use JS to click on a button in the iframe?
18:07:06 <MissPiggy> you could even load a page, edit it to include new fields and post ?
18:10:12 -!- SimonRC has joined.
18:12:49 * pikhq wonders where the e'est of the hirds is.
18:13:36 <fizzie> Wasn't that recent Freenode spam exactly about doing a POST request (that looked like a IRC connection start-up) via a bit of JavaScript embedded on a page.
18:14:50 <fizzie> I didn't ever see the spam-links so I couldn't take a look at what they did exactly.
18:15:47 <pikhq> fizzie: It was.
18:16:01 <pikhq> I wget'ted it and poked around.
18:16:05 <pikhq> Nasty bit of work.
18:16:38 <fizzie> Was it XHR-driven?
18:16:45 -!- fxkr has left (?).
18:16:49 <pikhq> Think so.
18:17:27 <fizzie> Though I do have an (unjustified) belief that simply building an invisible form with the usual DOM methods and submitting that could also work.
18:17:45 <AnMaster> <fizzie> I didn't ever see the spam-links so I couldn't take a look at what they did exactly. <-- I saw it. It was iframe based iirc
18:17:52 <AnMaster> with some javascript
18:18:50 <AnMaster> so it used a real form and submitted it
18:18:57 <AnMaster> using javascript
18:26:00 <fizzie> Speaking of which, I also wonder how you could show an in-memory DOM document object (obtained from document.implementation.CreateDocument(...)) to the user. It's not like it has an URL (except a data: URL, of course), and I'm not sure if you can just assign to window.document. (Maybe you can.)
18:27:02 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
18:54:41 -!- jcp has joined.
19:45:36 -!- daef has joined.
19:45:42 <daef> hi there again
19:47:20 <daef> AnMaster: had no time to read the specs today - but we came a lot nearer to our goal with the videowall-hack :D
19:48:01 <AnMaster> daef, what is that hack btw?
19:48:08 <AnMaster> daef, I hope it is all legal too
19:48:17 <AnMaster> otherwise I don't want to hear about it
19:49:11 <daef> AnMaster: nothing really illegal - we just want to display some of our content on a "public" videowall - just shows ad's all day long - nobody wants to see THAT....
19:49:19 <daef> so we found where the signal comes from
19:50:03 <AnMaster> no no no this sounds bad
19:50:15 <daef> it sounds fun xD
19:50:20 <daef> we do no harm
19:50:24 <daef> we destroy nothing
19:50:32 <daef> i guess it files under "okay"
19:51:24 <daef> nevermind
19:51:43 <daef> what's the best way to understand belonge-app's that go further than hello world?
19:52:01 <daef> i've seen the game of life implementation on the german wikipedia
19:52:10 <daef> it looks really bad :)
20:08:22 -!- MigoMipo has joined.
20:20:20 <AnMaster> daef, "belonge"?
20:20:24 <AnMaster> did you mean befunge?
20:20:34 <daef> sry - braindead
20:20:44 <AnMaster> daef, and the GOL in befunge, well I haven't traced it myself
20:20:48 <daef> s/belonge/befunge/g
20:20:49 <AnMaster> but you would try to trace it
20:21:06 <AnMaster> if it is the famouse 93 one it shouldn't be completely impossible
20:21:16 <daef> where do i get a nice visualising interpreter`?
20:21:18 <AnMaster> of course befunge-93 tends to be as compact as possible
20:21:23 <AnMaster> due to the limited space they had
20:21:29 <AnMaster> wich was 25x80
20:21:35 <AnMaster> err make that 80x25 of course
20:21:39 <daef> already read that
20:22:04 <AnMaster> daef, befunge-98 programs have 2^32*2^32 at least, and thus tend to be a lot less compact :)
20:22:09 <AnMaster> as for visual interpreters, no idea
20:22:13 <fizzie> Mooz had a very nice "syntax-highlighted" bit of Befunge(-93, mostly); coloured blocks with comments for each colour.
20:22:14 <AnMaster> but it should be possible to write that
20:22:26 <fizzie> Unfortunately I don't think that thing is in the web any more.
20:22:30 <daef> a interpreter shouldn't be that hard
20:22:36 <daef> (for 93)
20:22:37 <AnMaster> daef, befunge93? trivial
20:22:41 <AnMaster> befunge-98 is hard
20:22:42 <AnMaster> however
20:22:50 <daef> an 2dimensional IP, a stack - ready
20:22:52 <AnMaster> just use the trace output from an existing interpreter with that feature
20:23:04 <AnMaster> daef, and various commands operating on those
20:23:08 <daef> sure
20:23:09 <AnMaster> anyway.
20:23:09 <fizzie> I had an equally nice Turing machine interpreter syntax-highlightation in Befunge-mostly-93, but I stupidly lost that; both the code and the comments.
20:23:20 <daef> lol
20:23:39 <fizzie> And there's the start for commented fungot code, but that's probably not a good example, and it's incomplete anyway.
20:23:40 <fungot> fizzie: the longer the wand the better.
20:23:58 <AnMaster> cfunge can produce output like:
20:24:00 <AnMaster> tix=0 tid=0 x=26 y=15: > (62)
20:24:01 <AnMaster> tix=0 tid=0 x=27 y=15: : (58)
20:24:01 <AnMaster> tix=0 tid=0 x=28 y=15: # (35)
20:24:36 <AnMaster> it should be possible to use the coordinates to draw a trace
20:24:52 <fizzie> I'm sure there are many -93 interpreters that can show the playfield and stack, and single-step through code.
20:24:59 <AnMaster> well sure
20:25:04 <AnMaster> but not draw nice traces on it
20:25:26 <Deewiant> If they can single-step you can get a trace easily
20:25:47 <AnMaster> (tix and tid are related to t of course, but drawing a trace in a program that uses t is probably too confusing to be useful anyway!)
20:26:07 <AnMaster> then single stepping and watching it might be more useful
20:26:21 <AnMaster> fizzie, what about that glfunge? ;P
20:26:22 <daef> t was which one?
20:26:24 <fizzie> I think I started my Befunge career with zbefunge, which has that sort of thing, but in general I don't think it's a very good interpreter.
20:26:32 <fizzie> AnMaster: Shamefully dead.
20:26:33 <Deewiant> daef: Fork another IP
20:26:38 <AnMaster> daef, lock-step threads
20:26:46 <daef> kk - 93 already had that?
20:26:48 <AnMaster> rounds on a round-robin schedule
20:26:48 <Deewiant> No
20:26:50 <AnMaster> daef, no
20:26:52 <daef> kk
20:26:57 <daef> i think the GOL is 93
20:27:17 <AnMaster> daef, it is 93 that also works just fine in a 98 interpreter
20:27:49 <Deewiant> Modulo minor inconsistencies
20:28:12 <daef> :)
20:28:33 <AnMaster> Deewiant, the life one? no?
20:28:38 <AnMaster> it runs perfect iirc
20:28:56 <AnMaster> of course it runs so fast so you can't really follow it in cfunge
20:29:01 <Deewiant> Oh, we were talking about a specific program; my bad
20:29:08 <AnMaster> Deewiant, yep
20:29:37 <AnMaster> Deewiant, in ccbi I get about 10 FPS or so
20:29:42 <AnMaster> in cfunge it is just a blur
20:29:48 <Deewiant> How do you count those FPS :-P
20:29:56 <AnMaster> Deewiant, updates of screen per second
20:30:11 <Deewiant> Yes, that is the definition of FPS
20:30:18 <Deewiant> How do you count it, with a stopwatch?
20:30:47 <AnMaster> Deewiant, sleep && kill on the same line as starting ccbi
20:31:00 <AnMaster> Deewiant, then counting how many it drew
20:31:09 <Deewiant> Heh
20:31:13 <AnMaster> Deewiant, counting it under my breath give roughly the same result
20:31:22 <AnMaster> Deewiant, indicating it was a reasonable approx
20:31:27 <Deewiant> How many FPS for cfunge, then?
20:31:28 <AnMaster> yes, ccbi is that snow
20:31:36 <Deewiant> Yes, I know CCBI 1 is slow
20:31:39 <Deewiant> Not snow, though
20:31:41 <AnMaster> Deewiant, haven't yet tested the sleep and kill method on it
20:32:31 <AnMaster> hm wtf, cfunge ignored that signal
20:32:31 <fizzie> I think I "benchmarked" with "game of life for K seconds, output redirected to file, measure size of generated output files".
20:32:35 <AnMaster> not supposed to happen
20:32:54 <Deewiant> What are you killing it with, SIGXCPU? :-P
20:32:54 <daef> so - starting a movie
20:32:59 <AnMaster> Deewiant, SIGINT
20:33:03 <AnMaster> but ctrl-c works
20:33:07 <AnMaster> which means this makes no sense
20:33:25 <AnMaster> Deewiant, also what is SIGXCPU now again?
20:33:34 <Deewiant> eXceeded CPU
20:33:36 <Deewiant> (time)
20:33:57 <fizzie> Deewiant: eXtreme CPU.
20:34:11 <Deewiant> Yes, that; sorry, my mistake.
20:34:16 <fizzie> For eXtreme programs.
20:34:25 <fizzie> Written using eXtreme Programming techniques.,
20:34:26 <Deewiant> eXtreme Funge-98
20:35:01 <fizzie> XFunge is not a bad name, though people might expect an X Window System GUI in it.
20:36:01 <fizzie> I think I had "XCPU" as the error message that AI tournament system bot-runner returns when the computing time given for a player is exceeded; quite logical, since it gets a SIGXCPU signal.
20:36:26 <AnMaster> Deewiant, actually, ccbi seems slower now... 59 frames for 10 seconds.
20:36:41 <olsner> ooh, "XFunge"? there's a funge with an X gui?
20:36:50 <AnMaster> Deewiant, also it was due to a trivial typo in the command
20:37:01 <AnMaster> olsner, I don't implement that fingerprint
20:37:25 <AnMaster> Deewiant, and 758 frames from cfunge for the same time
20:37:47 <AnMaster> that is grepping for those ..................... lines GOL uses to separate the drawings with
20:37:51 <AnMaster> then doing wc -l
20:38:03 <AnMaster> (yes I use grep -F)
20:38:19 <Deewiant> I use fgrep but that's just me
20:38:22 <AnMaster> 92K ccbi.out
20:38:22 <AnMaster> 1,2M cfunge.out
20:38:44 <AnMaster> Deewiant, last I looked fgrep on linux systems were either a symlink or a two-line wrapper script for grep
20:39:02 <AnMaster> (#!/bin/sh\ngrep -F "$@")
20:39:08 <AnMaster> exec grep ... even
20:39:32 <Deewiant> /bin/fgrep: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
20:39:35 <Deewiant> And not a symlink
20:39:41 <AnMaster> actually using du -bsh would be more fair:
20:39:43 <AnMaster> 90K ccbi.out
20:39:43 <AnMaster> 1,2M cfunge.out
20:39:51 <AnMaster> ccbi managed even less ;P
20:40:01 <Deewiant> Yeah, take off the -h and watch them both change :-P
20:40:13 <AnMaster> 91959 ccbi.out
20:40:13 <AnMaster> 1163264 cfunge.out
20:40:14 <AnMaster> yep
20:40:28 <AnMaster> Deewiant, but without -b it will be rounded to whole blocks on disk
20:40:31 <AnMaster> or something like that
20:41:03 <AnMaster> Deewiant, let me re-run it with -b to cfunge
20:41:03 <AnMaster> :P
20:41:15 <AnMaster> hm strange
20:41:16 <AnMaster> oh wait
20:41:28 <AnMaster> redirecting to file already made it fully buffered
20:41:33 <AnMaster> of course -b won't help then
20:42:27 <AnMaster> (well 769 frames with -b. but 758 vs. 769 from a single run of each isn't statistical significiant)
20:42:46 <AnMaster> (especially as the cpu is running on dynamic speed and it's a dual core system and what not)
20:42:48 <fizzie> GNU grep has a separate fgrep executable, though it's compiled from a two-line .c file:
20:42:49 <fizzie> #define FGREP_PROGRAM
20:42:49 <fizzie> #include "grep.c"
20:42:57 <AnMaster> fizzie, haha
20:43:01 <fizzie> I guess they're hoping for better optimizations there.
20:43:10 <AnMaster> fizzie, XD
20:43:48 <fizzie> I guess you could benchmark (with a large enough file to get a reasonable "asymptotic" speed) "fgrep" and "grep -F" to see if it made a difference.
20:44:03 <AnMaster> fizzie, anyway I don't have jitfunge handy so can't test it
20:44:04 <AnMaster> against there
20:44:07 <AnMaster> these*
20:44:16 <AnMaster> and I hope it won't be as dead as gl-funge!
20:44:52 <Deewiant> I thought it already was :-P
20:45:28 <AnMaster> :(
20:45:32 <fizzie> It's not quite as dead; I actually got it a lot cleaner architecturally some time ago -- it's a lot easier to port now, for example -- but it's also broken at the moment; doesn't even run life correctly.
20:46:09 <AnMaster> anyway, SIGINT won't work for efunge, that will give me a "continue/start shell/start debugger/some/more/options/I/forgot" prompt
20:48:12 <AnMaster> Deewiant, efunge produces output faster it seems when watching it, but it has a longer load time
20:48:48 -!- Oranjer has joined.
20:48:51 <AnMaster> I get about 54 frames in 10 seconds from it
20:48:55 <AnMaster> just below ccbi
20:49:09 <AnMaster> lets try longer intervals
20:50:14 <AnMaster> ah found it, seems related to using -KILL instead of -INT
20:50:21 <AnMaster> meaning it couldn't flush the buffer before exiting
20:50:42 <AnMaster> I get 98 (efunge) vs. 103 (ccbi) for 20 seconds
20:50:58 <Sgeo> RestrainedLife is no more. Long Live RestrainedLove!
20:50:59 <AnMaster> also erlang seems to always use unbuffered for stdout or something
20:52:24 <AnMaster> 1565 from cfunge for 20 seconds
20:52:26 <Deewiant> RC/Funge-98 appears to get a decent in-between result
20:52:49 <AnMaster> Deewiant, I can try it in a bit. It is hard to compare different cpus
20:52:53 <Deewiant> No idea if I've compiled it with optimizations or anything though...
20:53:06 <AnMaster> Deewiant, I assume your ccbi binary is compiled with full optimisations?
20:53:13 <AnMaster> I used your official binary you see
20:53:15 <Deewiant> AnMaster: Of course I ran them all myself
20:53:21 <AnMaster> and cfunge with full optimisation
20:53:29 <AnMaster> and efunge with hipe at o3
20:53:31 <Deewiant> Full optimizations but it is upx-compressed which gives it a constant slowdown at start
20:53:43 <AnMaster> Deewiant, fine, but it still beats erlang runtime
20:55:35 <Deewiant> Yeah, you might get a frame or two more if you feel like un-UPXing it, but nothing significant
20:55:45 <AnMaster> Deewiant, I don't have upx installed
20:55:57 <Deewiant> Easy enough to install if you feel that much like it
20:56:13 <AnMaster> nah, isn't it different algorithm in closed and open versions?
20:56:35 <Deewiant> No clue? I just use arch linux's package of it
20:56:36 <AnMaster> I don't know which you used but I know which this distro would ship (open only)
20:56:43 <AnMaster> Deewiant, on ubuntu laptop atm
20:56:51 <AnMaster> and my arch linux desktop is much slower
20:56:54 <Deewiant> And it doesn't really matter, either it can decompress it or not :-P
20:57:22 <AnMaster> sempron 3300+ at 2 GHz vs. core 2 duo at 2.66GHz
20:57:24 <AnMaster> no match
20:57:50 <AnMaster> Deewiant, anyway, did you build your cfunge optimised and with 32-bit cells?
20:58:02 <Deewiant> No clue
20:58:58 <AnMaster> now running it again for cfunge with better optimised build
20:59:05 <AnMaster> (inexact bounds)
20:59:12 <AnMaster> and no t support
20:59:30 <Deewiant> In other words, a noncompliant build ;-)
20:59:41 <AnMaster> Deewiant, with that build I now get 2097 frames from cfunge for 20 seconds
20:59:51 <AnMaster> that is more than 100 FPS!
21:00:13 <AnMaster> Deewiant, fine, rebuilding with exact bounds
21:00:23 <Deewiant> Now implement the same algorithm for Conway's game of life in C and smile at your 10000 FPS ;-)
21:00:33 <AnMaster> Deewiant, har
21:00:44 <AnMaster> Deewiant, now just use hashlife
21:00:50 <AnMaster> and watch it grow way way higher
21:00:51 <Deewiant> Yep
21:01:15 <AnMaster> Deewiant, with no t support but with exact bounds I get 1934 frames for 20 seconds
21:01:25 <Deewiant> Hmm, pretty big difference
21:01:32 <Deewiant> Oh right, it p's all over the place
21:01:58 <AnMaster> Deewiant, (t,exact):1565 (-t,exact):1934 (-t,-exact):2097
21:03:41 <AnMaster> Deewiant, still it looks like not having to have the logic to switch ip and what not matters about 2.3 times as much
21:03:51 <AnMaster> ... as exact bounds
21:04:00 <Deewiant> Quite
21:04:52 <AnMaster> I wonder what cpressy would say on the exact bounds issue
21:05:04 <AnMaster> Deewiant, I somehow doubt that fbbi would pass mycoedge+fixed
21:05:14 <Deewiant> heheh
21:05:24 <Deewiant> Does efunge?
21:05:30 <AnMaster> Deewiant, of course it does.
21:05:49 <Deewiant> Okay, so then I know of three interpreters that do :-P
21:06:01 <AnMaster> Deewiant, the one lifthrasiir (?) wrote passed too iirc
21:06:12 <Deewiant> Which one?
21:06:18 <AnMaster> Deewiant, forgot it's name
21:06:18 <Deewiant> pyfunge?
21:06:22 <AnMaster> maybe
21:06:33 <Deewiant> I'm pretty sure it doesn't implement that... but maybe I'm wrong
21:06:37 <Deewiant> Haven't tested them properly after all
21:06:52 <AnMaster> Deewiant, of course the exact bounds is somewhat... fudged... in the case of multiple ATHR threads
21:07:20 <AnMaster> it it is however guaranteed to have been the exact bounds *at some point* during execution, probably a recent point at that.
21:07:29 <Deewiant> :-D
21:07:30 <AnMaster> and it will be no less than that the current thread wrote
21:07:38 -!- asiekierka has quit (Ping timeout: 248 seconds).
21:07:46 <Deewiant> Always return (0,0) - (0,0): "sure it was valid before the program was loaded"
21:07:48 <AnMaster> it is just that updates from *other* threads might take some time to reach
21:07:52 <AnMaster> Deewiant, har
21:08:00 <AnMaster> Deewiant, I need this for wraparound too
21:08:05 <AnMaster> it was one hard problem to solve at that
21:08:21 <Deewiant> Did you do it majorly differently from cfunge, then?
21:08:31 <AnMaster> Deewiant, well yes of course it was
21:08:53 <AnMaster> Deewiant, plus it differs in trunk and supervisor-tree branches quite widely
21:09:07 <fizzie> Hey, they're selling our apartment. (Or, to be more exact, another apartment in the same group-of-buildings, with exactly identical size and layout.)
21:09:19 <AnMaster> fizzie, who are "they"?
21:09:22 <Deewiant> In other words, they're not selling your argument.
21:09:26 <AnMaster> Deewiant, indeed
21:09:27 <Deewiant> Nor apartment.
21:09:32 <AnMaster> or that
21:09:33 <Deewiant> How'd I manage that, one wonders.
21:09:35 <fizzie> Presumably whoever lives here.
21:09:39 <fizzie> I mean, there.
21:09:41 <fizzie> (Gah.)
21:09:44 <AnMaster> Deewiant, nor augment
21:10:02 <AnMaster> somehow I read "argument" as "augment" first
21:10:12 <Deewiant> Great success by all parties involved
21:10:23 <AnMaster> Deewiant, which made me even more confused when I found it was "argument"
21:10:39 <AnMaster> :P
21:17:06 <fizzie> That was one conversation-killing exchange.
21:31:47 <pikhq> Hmm. I have discovered an issue with Esotope-BFC.
21:31:59 <pikhq> It doesn't handle wrapping correctly.
21:38:02 <AnMaster> pikhq, wrapping?
21:38:11 <AnMaster> pikhq, as in 255 -> 0?
21:38:29 <AnMaster> pikhq, then rest assured that I'm 99% sure in-between does :P
21:39:19 -!- impomatic has joined.
21:39:26 <impomatic> Hi :-)
21:40:08 <Oranjer> hello
21:41:50 <pikhq> AnMaster: Link to in-between?
21:42:24 <AnMaster> pikhq, site is probably down. Due to no longer having that server
21:42:26 <AnMaster> or domain
21:42:32 <AnMaster> could push it to launchpad
21:42:38 <AnMaster> (in a bit)
21:42:41 <AnMaster> (a bit busy now)
21:42:46 <pikhq> Mmm.
21:47:10 <impomatic> I've been trying to take a 3d anaglyph. Anyone have experience making them? Here's my first try http://patchworkpixels.co.uk/3d_soft_toys.htm
21:47:32 <scarf> anaglyph?
21:48:55 <MissPiggy> doesn't work impomatic
21:49:30 * MissPiggy wondrs how much geek-cred I get for having 3 different 3D glasses next to me at all times..
21:49:39 <impomatic> MissPiggy: What doesn't work, the link or the anaglyph?
21:49:44 <MissPiggy> it doesn't look 3D
21:50:49 <impomatic> I think I know what the problem is. There wasn't much depth to the scene and I used the flash.
21:51:14 <MissPiggy> I don't think flash should be any problem
21:51:45 <AnMaster> * MissPiggy wondrs how much geek-cred I get for having 3 different 3D glasses next to me at all times.. <-- 0.12 nethack accessions only
21:51:48 <impomatic> I took the shots at 65mm apart (same as my eyes). I'll make it further next time. The flash is a problem because the shadow is in two different places.
21:51:58 <MissPiggy> hehe
21:52:02 <uorygl> 3D shadows!
21:52:55 <AnMaster> impomatic, use a tripod and some bg light.
21:53:01 <AnMaster> impomatic, and no flash
21:53:21 -!- MigoMipo has quit (Quit: Page closed).
21:53:31 <AnMaster> impomatic, also what software did you use for it?
21:53:42 <impomatic> AnMaster: thanks I'll try that. I used Gimp
21:53:47 <AnMaster> impomatic, huh
21:54:04 <AnMaster> impomatic, oh and create a panorama with hugin while you are at it
21:54:17 <AnMaster> use a panorama head to avoid parallax of course
21:54:28 <AnMaster> (I wish I had such a head for my tripod)
21:54:37 <AnMaster> (I only have a ball head :/)
21:55:17 <uorygl> What's a panorama head?
21:55:21 <impomatic> Hmmm... what's a panorama head? I assume it slides from side to side?
21:55:58 <impomatic> I used a mini tripod with positions marked out on the table.
21:56:40 <impomatic> I converged the shots slightly to at a point on the wall. Maybe they shouldn't converged on the foreground?
21:57:17 <AnMaster> "This section uses PNG images heavily. Typically, most browsers that cannot display PNG images are often old enough to have more than adequate built-in Gopher support and do not require Overbite software. For more details, please see the information on the Floodgap Public Gopher Proxy."
21:57:18 <AnMaster> hehe
21:57:25 <AnMaster> (from http://gopher.floodgap.com/overbite/)
21:57:36 <pikhq> Mmm, gopher.
21:57:43 <AnMaster> pikhq, the text was funny though
21:57:49 <AnMaster> the proper version is at gopher://gopher.floodgap.com/1/overbite/
21:58:04 <AnMaster> also "heavily" = 3 images
21:58:06 <AnMaster> I think
21:58:15 <AnMaster> oh 4
21:58:15 <scarf> someone should show that to zzo38
21:58:18 <scarf> unless he knows it already
21:58:29 <AnMaster> scarf, I assume he knows overbite
21:58:36 <AnMaster> but it is unlikely he will use it
21:58:36 <scarf> so do I
21:58:49 * pikhq seems to recall zzo38 being responsible for Gopher still being in Gecko for some reason. :P
21:58:49 <AnMaster> he use his own browser doesn't it? Based on xulrunner
21:58:58 <scarf> pikhq: wait, what?
21:59:01 <AnMaster> what?
21:59:05 <AnMaster> I commented upon that bug too
21:59:10 <AnMaster> so no
21:59:16 <pikhq> *shrug*
21:59:30 <pikhq> All I know is that I'm looking at a Gopher page in modern Gecko.
22:00:07 <scarf> so am I
22:00:34 <AnMaster> I use lynx though
22:00:40 <AnMaster> it is better for gopher
22:00:49 <AnMaster> (in general)
22:01:05 <AnMaster> overbite probably helps firefox become as good
22:01:50 <pikhq> What's poor about it?
22:02:07 <fizzie> A panorama head is just a tunable metallic construction that makes it possible for you to position a camera on a tripod so that when you rotate it, it turns around the no-parallax point of the lens, therefore making it a lot easier to stitch images together. (I don't see the question answered anywhere.)
22:02:38 <AnMaster> fizzie, did someone ask it?
22:02:46 <AnMaster> oh I missed the question
22:02:49 <AnMaster> impomatic, ^
22:02:51 <AnMaster> sorry
22:04:36 -!- Sgeo_ has joined.
22:04:38 <impomatic> Thanks, I'll take a look on eBay
22:05:58 <AnMaster> impomatic, well, that is for panoramas only
22:06:03 <AnMaster> impomatic, not needed for 3D images at all
22:06:07 -!- Sgeo has quit (Ping timeout: 265 seconds).
22:06:22 <AnMaster> impomatic, plus it needs to fit your tripod of course
22:06:35 <AnMaster> not sure if the mounting is standard or not
22:07:37 <impomatic> Wikipedia has some decent Anaglyphs http://en.wikipedia.org/wiki/Anaglyph_image
22:07:56 <AnMaster> impomatic, I don't have 3D glasses :(
22:14:25 -!- adu has joined.
22:22:57 -!- sebbu2 has joined.
22:23:43 -!- sebbu has quit (Ping timeout: 256 seconds).
22:23:44 -!- sebbu2 has changed nick to sebbu.
22:36:39 -!- oerjan has joined.
22:42:01 <oerjan> 12:20:48 <daef> s/belonge/befunge/g
22:42:34 <oerjan> i hear the name befunge started as a similar typo. although i don't know what it was a typo of.
22:42:54 <scarf> "before", apparently
22:43:40 <oerjan> that typo makes no sense on qwerty, at least...
22:44:12 <Deewiant> It's kind of like how some people can typo "argument" for "apartment"
22:44:22 <oerjan> hm
22:44:52 <oerjan> so closer to the chair, then
22:45:11 <Deewiant> Probably
22:46:05 <oerjan> dammit i've got into this habit of chewing my tongue :(
22:47:24 -!- tombom has quit (Quit: Leaving).
22:51:32 <fizzie> oerjan: My Oxford Dictionary of Euphemisms says tongue means "an enemy prisoner captured for interrogation"; strange thing to chew.
22:52:14 <oerjan> yummy
22:52:45 <fizzie> On the other hand, 'chew' is listed as "to practice fellatio", so...
22:54:01 <oerjan> the prisoner better hope the interrogators are not using that dictionary
22:54:02 <Asztal> I chewed a pack of paperclips :(
22:54:12 <Asztal> now I've run out
22:54:18 <adu> ?!?
22:54:36 <oerjan> paperclip candy?
22:54:54 <adu> Project Paperclip
22:54:59 <Asztal> I also chewed up a few of the PCI slot guards from my PC case...
22:55:14 <adu> Asztal: are you a bot?
22:55:19 <fizzie> Asztal: Have you polymorphed to a xorn, perhaps?
22:56:27 <adu> I can understand "I chewed a paperclip" perhaps by accident, but "I accidentally chewed an entire box of paperclips" doesn't compute
22:56:47 <Asztal> not by accident
22:56:52 <Asztal> they're just very more-ish :)
22:58:01 <fizzie> fungot: You're a bot; would you eat paperclips?
22:58:02 <fungot> fizzie: they say that gremlins can make a bomb from the tombs, and therefore well suited for its electrical organ which enables it to be amazingly sturdy. he excelled them even in lithe economy of motion. they are quite difficult to kill.
23:01:10 -!- cal has joined.
23:01:12 -!- cal has quit (Client Quit).
23:01:44 -!- FireFly has quit (Quit: Leaving).
23:05:28 -!- FireFly has joined.
23:08:00 <Asztal> ^style
23:08:01 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack* pa speeches ss wp youtube
23:09:09 <fizzie> I rather like the nethack style. It's not very good at making sense, but it's occasionally funny.
23:09:24 <fizzie> "daedalus built the labyrinth, famous throughout the world a grid bug was, you need a key in order to open it; it was never supposed to seek nourishment, or one grown from a cutting, not in mordor only."
23:16:29 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.8/20100202165920]).
23:35:55 -!- scarf has quit (Remote host closed the connection).
23:54:31 -!- kar8nga has quit (Remote host closed the connection).
23:56:52 -!- FireFly has quit (Quit: Leaving).
23:59:19 -!- gm|lap has joined.
23:59:20 -!- gm|lap has quit (Changing host).
23:59:20 -!- gm|lap has joined.
2010-02-28
00:00:45 -!- mach has joined.
00:14:15 -!- mach has quit (Quit: Saindo).
00:19:02 -!- daef has quit (Ping timeout: 265 seconds).
00:32:09 -!- Asztal has quit (Ping timeout: 260 seconds).
01:26:28 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:22:17 -!- adu has quit (Quit: adu).
03:54:20 -!- Sgeo_ has changed nick to Sgeo.
05:07:00 -!- oerjan has quit (Quit: Good night).
05:16:30 -!- bsmntbombdood_ has joined.
05:17:49 -!- bsmntbombdood has quit (Ping timeout: 268 seconds).
05:26:20 -!- HackEgo has quit (Remote host closed the connection).
05:26:20 -!- EgoBot has quit (Remote host closed the connection).
05:28:36 -!- HackEgo has joined.
05:28:37 -!- EgoBot has joined.
05:31:59 -!- bsmntbombdood_ has quit (Ping timeout: 265 seconds).
05:34:42 -!- gm|lap has quit (Quit: HydraIRC is a child molester -> http://silverex.net/news <- i couldn't change my quit message).
05:47:00 -!- bsmntbombdood_ has joined.
05:57:58 -!- MizardX has quit (Ping timeout: 260 seconds).
06:12:22 -!- Oranjer has left (?).
06:15:08 <augur> http://www.youtube.com/watch?v=iHlHitIc7pY
06:24:33 <MissPiggy> x used to love that game
06:24:39 <MissPiggy> can't imagine why o_o
06:25:05 <MissPiggy> well I guess it's kinda cool
06:31:54 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
06:33:21 -!- cheater2 has quit (Ping timeout: 260 seconds).
06:33:47 <MissPiggy> augur???
06:34:03 <augur> o hai
06:34:10 <augur> its awesome is why!
06:34:12 <MissPiggy> :(
06:34:19 <MissPiggy> augur can you tell me seriously
06:34:23 <augur> what
06:35:27 <MissPiggy> is stuff like qualia just bullshit in the same bag as astrology, reincarnation and e-meters?
06:35:42 <augur> yes and no.
06:36:50 <MissPiggy> ??
06:36:54 <MissPiggy> you can't do that
06:37:00 <augur> it depends on what you mean by qualia.
06:37:02 <MissPiggy> illegal move
06:37:16 <augur> THIS ARE PHILOLSOPHY
06:37:19 <augur> IS NO ILLEGAL MOVES
06:37:29 <pikhq> Qualia are somewhat less bullshit, in that it *can* be used sanely in philosophical discussions.
06:37:35 <MissPiggy> I mean "subjective experience of redness" might as well mean "mantra stones which you place on your body which magically heal you using the secrets of crystals"
06:37:46 <pikhq> However, they are (inherently) inobservable.
06:38:14 <MissPiggy> pikhq, all the arguments that try to argue qualia exist make me think of that 'invisible dragon in my garage' story
06:38:42 <augur> well its true, right
06:38:52 <augur> there is nothing to qualia, really
06:39:25 <augur> qualia is what an intelligent system does when it does with its senses.
06:39:37 <augur> but theres nothing more to them than that
06:39:38 <pikhq> MissPiggy: Except that the subjective experience of redness most certainly does exist in some sense.
06:39:53 <pikhq> The brain processes input and produces this experience.
06:40:06 <augur> what is the difference between experiencing and believing you're experiencing
06:40:10 <augur> thats the question i think
06:40:39 <pikhq> It's pretty near impossible to discuss scientifically, though.
06:40:59 <pikhq> (mostly because we don't have sufficient access to the workings of the human brain)
06:41:21 <pikhq> (... I should also note: nearly impossible *at the moment*. Technology could change that, in principle.0
06:44:22 <MissPiggy> it just seems like a made up thing to make people feel better, like reincarnation and free will
06:45:27 <MissPiggy> what's bugging me is that some of this stuff just seems like totally trivial concepts unrelated to consciousness -- but it _can't_ be that because then it wouldn't have all these references to consciousness
06:47:18 <pikhq> ... All it is is the interpretation of input by our brains. *That's all*.
06:47:43 <pikhq> It's about as real as gravity, but much harder to *do* anything with.
06:48:15 <pikhq> (which is why it's entirely in the realm of philosophy: they're willing to discuss "maybe"s for ages.)
06:48:44 * MissPiggy screams
06:49:09 <MissPiggy> I am experience the subjective experience of what the hell does any of this mean
06:49:21 <uorygl> So, alise is still MIA?
06:49:26 <pikhq> uorygl: Yes.
06:50:07 <pikhq> MissPiggy: You see something that is red. It goes to your brain. It gets processed into a qualia. You perceive the qualia, not the red thing.
06:51:29 <MissPiggy> so a qualia means some kind of neuron-state (like neuron 35252 on between 0.3 and 0.34 %, neuron 4543 on 1.1% etc...)
06:51:33 <MissPiggy> ?
06:51:51 <MissPiggy> (or possibly a family of states)
06:51:53 <pikhq> Very roughly, yes.
06:52:22 <pikhq> (well, some might say "the neuron state is the representation of the qualia", but whatever.)
06:52:28 <MissPiggy> but there was a discussion about being pricked by a pin it woul cause a pain qualia.. and so would a neuron controlling device that directly stimulated the neurons
06:52:54 <MissPiggy> oh so neuron state is syntax
06:52:57 <MissPiggy> and the qualia is semantics
06:52:58 <MissPiggy> ?
06:53:13 <pikhq> Decent interpretation.
06:53:55 <MissPiggy> I suppose the semantics are just a matter of the brain interepreting its own state
06:54:17 <MissPiggy> and there is no some kind of mystical dual universe where souls exist and they 'feel' things
06:55:14 <pikhq> Not at all.
06:55:26 <pikhq> Just your brain doing stuff.
06:57:56 <MissPiggy> great!
06:59:14 <uorygl> Kinda funny how the only way thoughts are perceived is by producing more thoughts.
06:59:29 <uorygl> Except when they produce action that produces perception. But that's not really perception of thought.
07:04:49 <MissPiggy> hm
07:10:32 -!- bsmntbombdood has quit (Remote host closed the connection).
07:13:22 <augur> MissPiggy, whats your OS
07:14:06 <MissPiggy> im on mac os
07:14:26 <augur> awesome
07:14:31 <augur> wanna collaborate on a videogame?
07:14:34 <MissPiggy> what game
07:14:44 <augur> a first-person space adventury game
07:15:00 <MissPiggy> that sounds cool
07:15:06 <MissPiggy> but what would I do ? I am not good with computer
07:15:13 <augur> lame
07:15:42 <MissPiggy> ill teach you opengl
07:15:55 <augur> im gonna probably use the unity engine
07:16:06 <MissPiggy> oh
07:30:48 -!- bsmntbombdood has joined.
07:30:54 -!- asiekierka has joined.
07:31:00 -!- asiekierka has changed nick to alise.
07:31:01 <alise> hi
07:31:03 -!- alise has changed nick to asiekierka.
07:32:09 <augur> hey
07:32:29 <asiekierka> should i change the topic to reflect the latest alise sighting
07:35:40 <MissPiggy> alise!! :)
07:35:47 <MissPiggy> you are not alise fuck you
07:35:48 <MissPiggy> ugh
07:35:53 <MissPiggy> what a dick
07:37:31 <asiekierka> who's alise
07:37:32 <asiekierka> even
07:37:53 <uorygl> alise is ehird.
07:38:15 <augur> noooo uorygl you ruined it D:
07:38:16 <MissPiggy> I thought it was actually him
07:38:27 <MissPiggy> and I have been worrying about this today
07:38:42 <asiekierka> EHIRD?
07:38:44 <asiekierka> oh man no
07:39:27 <uorygl> Oops, I ruined it.
07:39:39 <asiekierka> Yes
07:39:47 <asiekierka> I wish i hadn't done that now that I impersonated the last person I would
07:42:46 * MissPiggy also wished you hadn't
07:43:32 -!- asiekierka has set topic: 0 days since last topic change | 1 week since last alise sighting | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D | * MissPiggy also wished you hadn't.
07:58:44 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:59:47 -!- cheater2 has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:28 -!- coppro has joined.
08:48:58 -!- asiekierka has quit (Ping timeout: 248 seconds).
09:04:41 -!- Gracenotes has quit (Quit: Leaving).
09:28:15 -!- kar8nga has joined.
10:09:54 -!- KingOfKarlsruhe has joined.
10:13:56 -!- coppro has quit (Remote host closed the connection).
10:18:11 -!- sebbu2 has joined.
10:18:55 -!- sebbu has quit (Ping timeout: 245 seconds).
10:22:58 -!- sebbu2 has quit (Ping timeout: 264 seconds).
10:28:30 <AnMaster> Deewiant, there? I found another issue with implementing SOCK: in the fingerprint and in the BSD-style API you first create a socket, then bind it to a port and so on
10:28:38 <AnMaster> Deewiant, in the erlang api this is one single call
10:28:56 <Deewiant> So don't do anything until you need to bind...
10:28:59 <AnMaster> like you just call listen(), instead of socket(), bind(), listen(), ...
10:30:05 <AnMaster> Deewiant, yep, I just find it somewhat annoying to emulate API A on top of API B, where API B is an abstraction for API A basically
10:30:06 <AnMaster> XD
10:30:30 <AnMaster> Deewiant, also this means reflecting may happen later than expected
10:30:35 <Deewiant> AnMaster: Hey, you know CMake, right? If I have set(ARGS "foo bar") how can I execute_process(COMMAND blah "${ARGS}") so that each arg in ARGS is passed separately instead of as a single argument "foo bar"
10:31:00 <AnMaster> Deewiant, hm. I haven't tried that. What about dropping the quotes?
10:31:04 <AnMaster> in the second one
10:31:11 <Deewiant> No difference
10:31:25 <AnMaster> hm..
10:31:49 <AnMaster> Deewiant, I think I saw something to do that some time ago
10:31:55 <AnMaster> but I don't remember where
10:31:58 <Deewiant> But you don't remember what or where ;-P
10:32:13 <Deewiant> I've been googling for it for a while now with no luck
10:32:25 <AnMaster> Deewiant, indeed...
10:33:13 <Deewiant> Every use case I can find seems to have hard-coded args, nothing like this
10:33:34 <Deewiant> (Typically running ${PROG} --version or suchlike)
10:33:48 <AnMaster> Deewiant, tried shell syntax for it?
10:33:56 <Deewiant> What do you mean?
10:34:00 <AnMaster> Deewiant, I mean, "${ARGS[@]}"
10:34:07 <Deewiant> Eh
10:34:10 <Deewiant> I doubt it'll work :-P
10:34:15 <AnMaster> Deewiant, worth a try perhaps
10:34:19 <Deewiant> Sure
10:34:28 <AnMaster> Deewiant, hm isn't there a list type thingy?
10:34:31 <Deewiant> Syntax error
10:34:52 <Deewiant> Yeah, if I drop the quotes from the earlier and do set(ARGS foo bar) it makes a semicolon-separated list automatically ;-P
10:35:20 <AnMaster> Deewiant, no I mean as in list()
10:35:38 <AnMaster> oh maybe it maps to the same below
10:35:44 <Deewiant> NOTES: A list in cmake is a ; separated group of strings.
10:35:47 <AnMaster> true
10:35:56 <AnMaster> Deewiant, but what about extracting from that?
10:36:00 <Deewiant> How?
10:36:15 <AnMaster> well, I haven't really used lists in cmake
10:37:01 <AnMaster> Deewiant, try the cmake mailing list?
10:37:03 <Deewiant> Of course I can do list(GET "${ARGS}" 0 ARG_0) list(GET "${ARGS} 1 ARG_1) and then COMMAND blah ${ARG_0} ${ARG_1} but eh... no
10:37:24 <AnMaster> Deewiant, that would be silly
10:37:33 <Deewiant> It's the only option I can think of
10:37:56 <AnMaster> Deewiant, what about list and not using quotes when using it?
10:38:42 <Deewiant> Amazing, I'd somehow not tried that pair
10:38:54 <Deewiant> I wonder if this breaks if one of the arguments contains a semicolon
10:39:00 <Deewiant> Yep, it does
10:39:31 <AnMaster> Deewiant, did it work if the arguments did not contain semi-colons?
10:39:35 <Deewiant> Well I don't think I'll be needing semicolons so I guess I'm good
10:39:37 <Deewiant> AnMaster: Yes, thanks
10:39:50 <AnMaster> quite odd really when you think about it
10:39:59 <Deewiant> I guess if the user has a directory containing semicolons in its name that's their fault :-P
10:40:00 <AnMaster> Deewiant, what are you using cmake for btw?
10:40:14 <Deewiant> CCBI2
10:40:23 <AnMaster> I see
10:41:51 <AnMaster> Deewiant, so you are making progress with it? All D bugs blocking it fixed?
10:42:15 <Deewiant> No, I just decided to not implement the thing which requires those bugs to be fixed
10:42:28 <AnMaster> Deewiant, and what was that thing?
10:42:32 <Deewiant> At least not yet; maybe when it's the only thing left I'll come up with something better
10:42:41 <Deewiant> Per-IP fingerprint constructors
10:42:50 <AnMaster> Deewiant, errr what would they do?
10:43:19 <AnMaster> don't you load the fingerprint per-ip anyway?
10:43:25 <Deewiant> E.g. MODE's constructor and destructor switches stack<->deque
10:43:36 <AnMaster> I see
10:43:50 <Deewiant> And yes, but the constructors/destructors are currently called only when the global loaded count is/becomes 0
10:44:16 <Deewiant> I can't remember off the top of my head but there are some cases where this is actually a correctness issue as well as a pessimization
10:44:19 <AnMaster> Deewiant, but isn't that controlled by one of the instructions of MODE rather than by loading/unloading the fingerprint?
10:44:29 <Deewiant> No, it's not
10:44:39 <AnMaster> Deewiant, oh deque
10:44:41 <AnMaster> not queue
10:44:42 <AnMaster> misread
10:45:10 <Deewiant> Flipping the mode would be too extensive if it had to copy the stack every time
10:45:15 <AnMaster> hm
10:45:21 <Deewiant> Expensive*
10:45:22 <Deewiant> Gah
10:45:41 <AnMaster> Deewiant, but if you are aiming for high speed here, why are you implementing that stuff at all? :P
10:46:09 <Deewiant> Because as I said a few days ago: CCBI aims for correctness > fingerprint support > speed
10:46:13 <AnMaster> right
10:46:20 <Deewiant> TRDS comes first, then speed :-P
10:46:29 <AnMaster> Deewiant, and I'm quite confident you can't beat cfunge then at speed
10:46:41 <Deewiant> We'll see
10:46:43 <AnMaster> unless you do JIT-ing suddently
10:46:57 <AnMaster> but JIT doesn't really work if you support t
10:47:03 <Deewiant> Befunge is kinda hard to JIT
10:47:21 <AnMaster> Deewiant, with a single IP you can do it like fizzie was doing.
10:47:34 <Deewiant> Yes, but we need the TRDS support and everything ;-P
10:47:38 <AnMaster> with multiple IPs... well I doubt it is possible to gain anything with it
10:48:05 <Deewiant> I guess one could JIT while only one IP exists
10:48:16 <AnMaster> sure, that could work I guess
10:48:18 <AnMaster> Deewiant, also, how abstracted is your stack?
10:48:39 <Deewiant> But that's a bit tricky anyways, and I'm not in the mood for making it x86-only like jitfunge :-P
10:48:47 <AnMaster> Deewiant, llvm!
10:48:59 <Deewiant> True enough
10:49:11 <AnMaster> still what about your stack abstraction
10:49:12 <Deewiant> Last I checked my stack was fully abstracted
10:49:35 <AnMaster> Deewiant, so, { and } aren't implemented as using memcpy() or similar?
10:49:36 <AnMaster> ;P
10:49:47 <Deewiant> No, they aren't
10:49:57 <Deewiant> That might change if it seems problematic
10:50:28 <AnMaster> Deewiant, well, cfunge's stack is quite well optimised in most parts
10:51:09 <AnMaster> abstracted yes, but the abstraction contains lots of befunge-specific functions
10:51:27 <Deewiant> AnMaster: Do you know if CMake supports some kinda categories for options? So it's not all flat at the top level in ccmake for example
10:51:40 -!- FireFly has joined.
10:51:43 <AnMaster> Deewiant, advanced/non-advanced is all afaik
10:51:50 <Deewiant> Meh
10:52:03 <AnMaster> Deewiant, write a patch! file a feature request!
10:52:13 <Deewiant> I don't care enough
10:52:17 <AnMaster> heh
10:52:31 -!- sebbu has joined.
10:53:02 <Deewiant> Is it summarized somewhere what exactly happens in the configure/build steps respectively?
10:53:14 <AnMaster> Deewiant, how do you mean?
10:53:32 <Deewiant> Configure runs the CMakeLists, build does what?
10:53:36 <AnMaster> you could set the verbose flag in the advanced config section to make it output what commands are executed
10:53:45 <Deewiant> I mean semantically what does it do
10:53:57 <Deewiant> If I put a command foo in CMakeLists, is it always run at configure time
10:54:07 <Deewiant> If so, what exactly is run at build time
10:54:16 <AnMaster> Deewiant, I guess it says in the docs? Like "execute_process runs the thingy during configuration" or such
10:54:37 <AnMaster> to run at build time you would use a custom target
10:54:51 <AnMaster> cfunge uses one of those iirc
10:55:25 <AnMaster> for generating man page using help2man
10:55:29 <Deewiant> So essentially build time is what's defined in add_executable / add_library / add_custom_*?
10:55:40 <AnMaster> Deewiant, basically yes
10:55:54 <AnMaster> Deewiant, there is the install() one that maps to make install of course
10:56:12 <Deewiant> Yeah, there's install time separately, true
10:56:24 <Deewiant> And I think there was some post-install thing in one of the add_custom_* too
10:56:42 <AnMaster> possibly, when i use those I check the docs
10:56:46 <AnMaster> s/i/I/
10:56:49 <AnMaster> err
10:57:11 <AnMaster> s#/i/I/#/ i / I /#
10:57:17 <Deewiant> :-D
10:57:55 <AnMaster> Deewiant, now rewrite the last one using / as the separator instead of # :P
10:58:23 -!- tombom has joined.
10:59:00 <Deewiant> s/(i)/ \1 /i
10:59:32 <AnMaster> Deewiant, err what?
10:59:35 <AnMaster> that doesn't work
10:59:43 <AnMaster> Deewiant, it results in "poss I bly"
10:59:54 <AnMaster> wait
11:00:00 <Deewiant> It modifies your s/i/I/ command
11:00:00 <AnMaster> what does the i modifier do now again?
11:00:07 <Deewiant> Not the original string
11:00:37 <Deewiant> i is case-insensitive
11:00:39 <AnMaster> aha
11:00:47 <AnMaster> Deewiant, well, you need g to make that work then
11:01:00 <Deewiant> Yes, I just realized
11:01:22 <AnMaster> nice way to do it though
11:01:49 <Deewiant> Alternatively s/([iI])/ \1 /g of course
11:02:02 <Deewiant> But, I'm leaving for a few hours now ->
11:02:30 <AnMaster> cya
11:02:59 * AnMaster tries to figure out in which order the BSD style socket API functions are called
11:03:47 <AnMaster> is it socket -> bind -> (connect|listen) ?
11:04:06 -!- BeholdMyGlory has joined.
11:06:54 <fizzie> Yes, though you don't necessarily need to bind before connecting, IIRC.
11:33:25 <AnMaster> fizzie, ah, but is it allowed?
11:33:49 <AnMaster> fizzie, also, can you call setsockopt() both before and after listen()/connect()?
11:33:54 <AnMaster> Or only before?
11:34:28 <AnMaster> fizzie, and further: how does it work for UDP sockets? I have no clue really :/
11:41:48 -!- MissPiggy has quit (Quit: Lost terminal).
11:49:57 <fizzie> It's allowed, it's just that if you connect an unbound socket, it's going to get bound to a random local port.
11:50:06 <AnMaster> hrrm
11:50:15 <AnMaster> fizzie, and what about udp. How is it done
11:50:26 <AnMaster> again, erlang offers a very high level API for it only
11:51:12 <fizzie> Well. For UDP sockets connect means just "set the default address for which packets will be sent if you don't use sendto."
11:51:53 <AnMaster> fizzie, and what about bind() on them?
11:52:44 <AnMaster> I mean, how do you listen to an UDP socket with the BSD API
11:53:13 <fizzie> bind assings the local address. You don't need to (and can't) call listen/accept.
11:53:45 <fizzie> But specifying the remote address with connect makes the socket only receive packets from that address.
11:53:46 <AnMaster> so you do socket() -> bind() -> recv() ?
11:54:15 <fizzie> Yes, or socket-bind-connect-recv if you want to talk with only one host.
11:54:22 <AnMaster> hm
11:55:10 <fizzie> If you don't specify the remote side with connect, you'll recv all packets targeting the address you bound to.
11:55:17 <AnMaster> sigh... erlang doesn't have that in it's udp API. it has open(Port, Options), recv(Socket, Length, Timeout) and send(Scoket, Address, Port, Packet)
11:55:34 <AnMaster> for udp
11:55:40 <fizzie> You can do that manually if you want, though.
11:55:45 <AnMaster> oh wait, I think open() has it
11:55:48 <AnMaster> in one of the options
11:55:58 <AnMaster> ah no, it is what local IP to bind to
11:56:23 <fizzie> And I think connecting an unbound UDP socket also does the "bind to random local port" thing.
11:56:31 <AnMaster> hm
11:56:49 <AnMaster> for open(): "If Port == 0, the underlying OS assigns a free UDP port, use inet:port/1 to retrieve it."
11:58:01 <AnMaster> fizzie, even more confusing is the "active" mode sockets of erlang, where arriving tcp/udp data is transformed into erlang messages sent to the process in question
11:58:05 <AnMaster> that is the default mode
11:58:21 <AnMaster> and that would have been a pain to emulate with, there are luckily passive sockets too
11:58:35 -!- cheater2 has quit (Ping timeout: 256 seconds).
11:58:38 -!- cheater3 has joined.
11:59:11 <fizzie> man 7 udp's second description paragraph (at least in my man pages) is reasonably complete.
11:59:56 <AnMaster> fizzie, oh and you can get erlang to automatically group tcp streams into various packet formats for you, like "line-based", "<n-bytes length prefix><data>" "asn1" "fcgi" "sunrm" "tpkt" and a few other ones
12:00:34 <fizzie> I suppose it's logical that Erlang makes communications easy.
12:01:08 <AnMaster> fizzie, well, it just makes emulating the low level stuff in efunge hard
12:01:16 <fizzie> I guess with SOCK you need to always use connect even with udp sockets, since you can't otherwise specify the address to send to.
12:01:17 <AnMaster> for most apps I guess this higher level API is nicer
12:01:55 <AnMaster> fizzie, yes and the whole thing maps badly onto erlang's API. Especially for UDP it will be tricky. Plus mycology only tests TCP
12:02:27 -!- lament has quit (Ping timeout: 252 seconds).
12:02:48 <fizzie> That's a bit shame in the sense that you can't as easily use a single UDP socket to serve a large number of clients.
12:03:06 <AnMaster> fizzie, hm?
12:03:12 <AnMaster> I think broadcast is supported by erlang
12:03:23 <AnMaster> at least there is an option for it, with the note that it only applies to UDP
12:03:30 <AnMaster> (and not to TCP or SCTP)
12:03:44 <AnMaster> (or maybe to SCTP, let me check gen_sctp manual)
12:03:50 <fizzie> Yes, but I mean serving many unicast clients with one socket using the SOCK fingerprint.
12:04:20 <AnMaster> hm not sctp I guess
12:04:30 <AnMaster> fizzie, you could use bind()?
12:04:35 <fizzie> After you C the socket to one client to send data, you can't un-C it to receive packets from others.
12:04:39 <AnMaster> like socket() -> bind() -> recev() ?
12:04:43 <AnMaster> recv*
12:05:03 <fizzie> That helps only if you never need to send anything.
12:05:52 <AnMaster> fizzie, oh good point
12:06:13 <AnMaster> fizzie, well, I don't have connect() for UDP in erlang, so I will have to emulate that...
12:06:34 <fizzie> Yes, even the undesired aspects of it.
12:06:51 <AnMaster> heh
12:07:13 -!- lament has joined.
12:07:16 <fizzie> With real connect(2), you can "disassociate" the remote-endpoint address for a UDP socket by connect(2)ing to an AF_UNSPEC address family address, but I don't suppose that's possible with SOCK?
12:07:24 <AnMaster> fizzie, if I actually ever make NSCK, I will make it closer to the erlang API, because it is easier to emulate that from C than the reverse way around
12:07:57 <AnMaster> C(s ct prt addr -- )Open a connection
12:08:10 <AnMaster> where ct is 1=AF_UNIX, 2=AF_INET
12:08:18 <AnMaster> and 1=AF_UNIX is broken
12:08:27 <AnMaster> since we can't know length of addr
12:08:32 <AnMaster> without knowing what family we have
12:08:50 <fizzie> Right. I guess you could extend that by defining 0=AF_UNSPEC, but it might not be worth it.
12:08:54 <AnMaster> as the note says on the rc page:
12:08:58 <AnMaster> "ct=1 and pf=1 are a broken spec and should not be implemented. Usage of either of these should reflect."
12:09:19 <fizzie> There aren't very many UDP servers written with Funge-98 anyway.
12:09:23 <AnMaster> fizzie, it would be better to just design a high level API that also could support unix socket and inet6
12:09:48 <AnMaster> and possibly sctp
12:09:58 <AnMaster> not that anyone uses it, which is a shame
12:11:06 <fizzie> If you wish, though you could do a far better low-level API than SOCK is too.
12:11:24 <AnMaster> fizzie, but then I would have to write a test suite
12:11:53 <AnMaster> plus you would need to rewrite fungot to make use of it
12:11:54 <fungot> AnMaster: they say that it's a blast when you are boring, not knowing who he would have known it, " hey guys, *wield* a lizard corpse is guaranteed to be quite popular. there aren't any penguins this far inland. there's nothing to take on the helmet, the first time to save your game is now before it's too late.
12:11:59 <AnMaster> and I would have to implement it in cfunge
12:12:25 <AnMaster> I don't really feel like dealing with C currently
12:13:30 <AnMaster> fizzie, why did the bot put * around "wield"?
12:13:44 <fizzie> I'm going to have to rewrite fungot to use NSCK anyway, if you do that. I don't suppose those will be such large changes, though; there's only one place where it establishes a connection, after that it's just read/write (or recv/send, though the SOCK R/W map more closely to read/write).
12:13:45 <fungot> fizzie: dark one:... it came! one, single, savage thrust of her lover. if she kills the lynx, she was as a distress signal, and the four men, bending eagerly forward, saw the occupant a huddled, withered, wizened shape, very magic ( in a glittering cascade, they prayed at the goldsmith's store. there aren't any skua gulls to imitate, except that the thing about genocide is that it is food and clothing for their relentless perse
12:13:50 <AnMaster> ^style
12:13:51 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack* pa speeches ss wp youtube
12:14:10 <AnMaster> save game before it is too late?
12:14:16 <AnMaster> that is quite un-nethacky
12:14:18 <AnMaster> -_-
12:14:48 <fizzie> Yes, well:
12:14:50 <fizzie> rumors.fal:They say that the best time to save your game is now before it's too late.
12:14:57 <fizzie> It's classified as "false", too.
12:14:58 <AnMaster> aha
12:15:56 <AnMaster> fizzie, actually I would probably make separate TCP and UDP fingerprints, since if you go for a high level API they are rather different
12:16:01 <AnMaster> and I refuse to go for a low level API
12:16:34 <AnMaster> plus TCP and UDP would be a nice way to check how much various interpreters depend on fingerprints being 4 letters
12:16:35 <AnMaster> heh
12:17:38 <AnMaster> cfunge and efunge themselves should handle it. I'm not so sure about the maintenance scripts for the fingerprint system.
12:20:02 <AnMaster> fizzie, do you need to call shutdown() before you call close()?
12:20:10 <AnMaster> for TCP that is
12:20:25 <AnMaster> since erlang API does have shutdown() and close() for TCP
12:21:03 <AnMaster> and cfunge seems to first use shutdown() with SHUT_RDWR, then close()
12:21:12 <AnMaster> I don't remember why
12:24:03 <fizzie> I'm not sure either. I think the main benefit of shutdown() is that you can half-close the connection.
12:24:33 <fizzie> But I think just close() without a shutdown will do the clean TCP connection tear-down.
12:28:40 <AnMaster> huh, erlang doesn't provide a poll() interface? I'm 100% sure it uses epoll and kqueue internally if available
12:28:57 <AnMaster> but it seems it abstracts such things away from the high level API?
12:32:33 -!- MizardX has joined.
12:33:59 <AnMaster> I think you are supposed to use multiple threads or some such instead
12:34:12 <AnMaster> fizzie, that would make it hard to provide a nice interface for polling sadly
12:34:38 <AnMaster> unless you could use the {active,once} mode that sends messages for one message then switches to passive
12:36:40 -!- kar8nga has quit (Remote host closed the connection).
12:53:59 <AnMaster> fizzie, there still? How does this sound http://sprunge.us/cBWI
12:54:09 <AnMaster> of course very early draft
12:54:16 <AnMaster> with just the overall layout specified yet
13:32:17 -!- MizardX has quit (Read error: Connection reset by peer).
13:32:39 -!- MizardX has joined.
13:47:55 -!- kar8nga has joined.
14:24:22 -!- oerjan has joined.
14:42:36 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
14:45:49 -!- MizardX has quit (Read error: Connection reset by peer).
14:45:59 -!- MizardX has joined.
14:47:27 -!- happyKoalla has joined.
14:53:58 -!- adam_d has joined.
14:57:00 -!- scarf has joined.
15:43:44 -!- Asztal has joined.
15:47:25 -!- Azstal has joined.
15:48:57 -!- Asztal has quit (Ping timeout: 265 seconds).
16:01:56 -!- lament has quit (Ping timeout: 240 seconds).
16:02:06 -!- lament has joined.
16:20:40 -!- kar8nga has quit (Remote host closed the connection).
16:39:01 -!- oerjan has quit (Quit: leaving).
16:44:11 -!- MissPiggy has joined.
17:07:14 -!- cheater3 has quit (Ping timeout: 246 seconds).
17:32:22 -!- MizardX- has joined.
17:32:23 -!- MizardX has quit (Read error: Connection reset by peer).
17:32:50 -!- MizardX- has changed nick to MizardX.
17:43:13 -!- happyKoalla has quit (Quit: Leaving.).
17:57:37 -!- ehird has joined.
17:59:07 -!- ehird has quit (Client Quit).
18:07:00 <scarf> happy australian mailing list reminders day?
18:07:02 <scarf> also, that was ehird
18:07:07 <scarf> yay, at least he's still alive
18:08:09 <MissPiggy> okay
18:08:17 -!- ehird has joined.
18:08:22 -!- ehird has changed nick to alise.
18:08:26 <MissPiggy> hi!
18:08:33 <alise> Oh, my life.
18:08:35 <alise> #esoteric-priv, stat.
18:10:10 -!- cheater2 has joined.
18:11:09 -!- Deewiant has set topic: 0 days since last topic change | 0 days since last alise sighting | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:11:26 <scarf> wb alise
18:11:31 <alise> Thank you.
18:11:53 <Sgeo> Hi alise
18:20:35 -!- asiekierka has joined.
18:20:46 <asiekierka> Oh no, it's ehird
18:21:14 <asiekierka> e=a, r=s, d=e, h=l
18:22:59 -!- MigoMipo has joined.
18:46:35 -!- kar8nga has joined.
18:56:30 -!- bsmntbombdood has quit (Remote host closed the connection).
18:59:21 <pikhq> alise: In #esoteric?
18:59:27 <alise> Yes, in here.
19:00:12 <pikhq> "M' sxat' vid' l' lingv'.", I say in horrifically butchered Esperanto.
19:00:37 <alise> Lovely! Now translate.
19:00:46 <pikhq> I'd like to see the language.
19:01:28 <alise> Well, it's not /intentionally/ esoteric, but it does require a Ph.D. to understand...
19:01:43 <Deewiant> Or ehirdness?
19:01:50 <alise> Same thing.
19:01:55 <Deewiant> Right.
19:02:01 <alise> Hey, Epigram's mailing list is hosted in the university of the county I am in!
19:02:32 <alise> DEPENDENTLY-TYPED BUDDIES
19:02:54 <alise> pikhq: Anyway, it's the same dependently-typed fuddlepip I've been on about for ages.
19:04:55 <pikhq> alise: Fun.
19:05:21 <alise> pikhq: Recent developments... uh, I realised a few days ago that the way it defines equality means that function1 === function2 means "function1 gives the same results as function2 for all inputs".
19:05:25 <alise> My language can do the freaking impossible!
19:05:36 <pikhq> alise: Hah.
19:05:53 <alise> pikhq: But it can actually compute it!
19:06:01 <alise> Admittedly for /tricky/ things you need to give it some proof mon.
19:06:07 <pikhq> alise: So, your language is total?
19:06:08 <alise> But still, coooool.
19:06:27 <alise> pikhq: Yes - but it doesn't check all inputs, total languages can still have infinite input and output sets, lilke Nat.
19:06:33 <alise> Also, with the partiality monad it's turing-complete.
19:06:41 <pikhq> Mmm.
19:06:45 <alise> Here's the definition of equalilty:
19:06:48 <alise> *equality
19:07:09 <alise> data _===_ : {a:*} -> (x:a) -> a -> * where
19:07:15 <alise> ===-refl : x === x
19:07:31 <alise> i.e., (a === b), where a and b are values of any type, is a type.
19:07:45 <alise> If a and b are the same, then there is a value of that type (===-refl).
19:07:45 <pikhq> o.o
19:07:47 <alise> Otherwise, the type is empty.
19:07:59 <alise> Since types = statements and values = proofs...
19:08:00 <alise> Tada!
19:08:15 <alise> "The same" means "indistinguishable", btw, i.e. the normal forms are the same.
19:08:37 <alise> Setoids/quotient types let you define your own equality relation, basically by making two "equal" elements indistinguishable even if they wouldn't normally be with Fancy Stuff.
19:08:50 <alise> pikhq: So, uh, how much of that did you understand?
19:09:22 <pikhq> Uh. I'm not sure I grok the definition.
19:10:59 <alise> * is the type of types
19:11:28 <alise> (foo : t) -> is the same as t -> but we bind the /value/ of the argument to foo in the type
19:11:32 <alise> (not at runtime, it's the dependent magic)
19:12:11 <alise> {x} is just like x except the argument is inferred, i.e. the compiler works out the value
19:12:18 <alise> we don't need to specify it
19:12:27 <alise> the data clause is just like haskell's gadt
19:12:49 <alise> so === takes, inferred, a type "a" (this is like forall a.), a value x of that type, another value of that type, and results in a type.
19:12:59 <alise> so within the constructors we have x bound to the first value
19:13:03 <alise> so we do, basically
19:13:08 <alise> YepIndeed :: Equal x x
19:13:19 <alise> i.e. ===-refl is a value of type x === x, and there are no other constructors
19:13:27 <alise> so we cannot construct a value of type x === y unless x and y are the same
19:13:28 <alise> Q.E.D.
19:16:44 <alise> pikhq: Get it?
19:18:36 <alise> pikhq: Am I to take that as a no? :P
19:18:56 <MissPiggy> WHOOHOO
19:19:16 <alise> MissPiggy: wat
19:19:18 <MissPiggy> alise in Coq you can use ifte on anything with two constructors
19:19:39 <alise> So you couldn't ifte an x === y by my definition?
19:19:39 <MissPiggy> so bool {true,false} and P + Q {inl pPrf, inr qPrf} etc
19:19:43 <alise> Uber-lame.
19:19:50 <MissPiggy> :|
19:19:58 <MissPiggy> don't you see?
19:20:05 <alise> Don't I see what?
19:20:17 <alise> My definition is better because it uses the proper curry-howard view of types anyway :|.
19:20:22 <MissPiggy> lol
19:20:35 <MissPiggy> my d
19:20:48 <alise> wat
19:22:00 <alise> pikhq: ping
19:22:38 <alise> pikhq: you displease me
19:22:42 <alise> anyone else want to hear me blab?
19:23:41 -!- impomatic has joined.
19:23:47 <impomatic> Hi :-)
19:24:00 <alise> Yo.
19:25:09 <MissPiggy> lol]
19:25:11 <MissPiggy> :(
19:25:16 <MissPiggy> alise is fed up o fme
19:25:22 <MissPiggy> because I tried to talk about my own stuff
19:25:25 <alise> i'm not I just already
19:25:31 <alise> explained everything I was gonna :)
19:25:32 <MissPiggy> I just alread the whole thing
19:25:34 <alise> also ifte is yours you mmean?
19:25:37 <alise> *mean
19:25:39 <alise> as opposed to Coq's
19:25:42 <alise> SO THE LAMENESS IS ON YOUR PART
19:25:42 <MissPiggy> I just already the whole thing I was gonna
19:25:50 <alise> okay sry :D
19:25:52 <alise> didn't know yo
19:25:52 <MissPiggy> no my algebra is mine
19:25:52 <alise> you can
19:26:03 <MissPiggy> ifte is from coq and it's not lame ! it's good
19:26:08 <MissPiggy> it's like in haskell if could do
19:26:22 <MissPiggy> say f :: Either a b, if f then p else q
19:27:13 <alise> yes but
19:27:26 <alise> mine is the /real/ meaning of if then else, i.e. if /true/
19:27:39 <alise> and truth in such a lang is presence-of-value
19:27:51 <alise> the construct you mention may be more useful
19:28:02 <alise> but mine lets you write things like "if x < y" with < : a -> a -> * and have it work coherently
19:28:08 <alise> which is jawsome
19:28:15 <alise> i think that op would be useful that you mention under a different name
19:29:31 <MissPiggy> the true meaning if IF HYP THEN CONS ELSE ALT is HYP /\ CONS \/ ~HYP /\ ALT
19:30:01 -!- asiekierka has quit (Ping timeout: 276 seconds).
19:34:09 -!- MizardX has quit (Ping timeout: 260 seconds).
19:34:34 <alise> MissPiggy: right but we're trying to import type-level truths into value-level conditionals
19:34:44 <MissPiggy> alright
19:34:49 <alise> fact is this is a useful operation I'm sure you can't deny that branching on (x < y) is common
19:34:52 <alise> ifte looks like a good op too though
19:34:59 <MissPiggy> what's your take on typeclasses, in a dependently typed setting anyway?
19:35:16 <alise> typeclasses suck anywhere :/
19:35:34 <MissPiggy> to me they seem very useful (I am using them a bit actually), but it's quite complicated and magic which I don't like
19:36:22 <alise> They are useful but they have such complications, even functional dependencies result in lots of ambiguity.
19:36:32 <alise> Has anyone actually formalised them, I wonder?
19:36:57 <alise> hmm mixfix operators could do with a character signifying whitespace
19:37:08 <alise> _[_]^:=_
19:43:15 <pikhq> alise: Sorry, doing a kanji review.
19:43:44 <alise> Kanji re-JEW
19:44:28 <pikhq> Not all that Jewish.
19:45:08 <alise> So I'm using the Unicode minus sign − instead of - for subtraction.
19:45:13 <alise> I may or may not be Unicode-mad.
19:45:18 <pikhq> Oooh.
19:46:45 <alise> pikhq: That definition of _===_ I gave you? That's not the /real/ definition.
19:46:52 <alise> Wanna see the /real/ definition?
19:46:57 <pikhq> Sure.
19:47:04 <Gregor> יהודי חוזר יפנית
19:47:35 <pikhq> Gregor: How Jewish of you.
19:47:58 <alise> data _≡_ : {a:∗} → (x:a) → a → ∗ where
19:47:59 <alise> ≡refl : a ≡ a
19:48:04 <alise> pikhq: Behold the Unicode, bitch.
19:48:07 <alise> Erm
19:48:10 <alise> I got it slightly wrong
19:48:16 <pikhq> alise: Mmm, Unicode.
19:48:24 <alise> data _≡_ : {a:∗} → (x:a) → a → ∗ where
19:48:24 <alise> ≡-refl : x ≡ x
19:48:31 <Gregor> אני חושבת שאני מפנה הישראלי, אני חושב שאני מפנה הישראלי, אני באמת חושב כך
19:49:24 <pikhq> alise: So. data === with a being a type, x being the same type as a, mapping from a to a type, where the property "x === x" is true?
19:49:32 <alise> No.
19:49:37 <alise> Let me rewrite it in Haskell + some notation.
19:49:39 <pikhq> Hooray, I fail.
19:49:43 <alise> pikhq: You know GADTs, right?
19:49:48 <pikhq> That'd help -- your notation is dense.
19:49:56 <pikhq> alise: Somewhat.
19:51:06 <alise> data Eq :: forall a. (x:a) -> a -> * where
19:51:06 <alise> Constructor :: Eq x x
19:51:07 <alise>
19:51:07 <alise> The only additional notation you need here is (x:a) -> ... means a -> ..., except at the type-level (at compile-time, not run-time; it's complicated), we bind the run-time value of the argument to the name x.
19:51:28 <alise> Oh, and we can give value arguments to types.
19:51:29 <alise> Just accept that.
19:51:43 <pikhq> Oh.
19:51:46 <alise> So: "Constructor :: Eq 2 2", and "Constructor :: Eq (2+2) (3+1)" but not "Constructor :: Eq 1 2".
19:51:53 <pikhq> That's fairly straightforward.
19:52:01 <alise> Since values = proofs and types = logical statements, voila!
19:52:05 <impomatic> Reddit is slow today :-(
19:52:08 -!- scarf has quit (Remote host closed the connection).
19:52:26 <alise> pikhq: Oh, you want me to BLOW YOUR FREAKIN' MIND?
19:52:30 <alise> Do you know what Leibniz's law is?
19:53:00 <pikhq> I do, but please inform this gentleman, as he is a Mongolian. He doesn't even have a cow!
19:53:37 <alise> http://en.wikipedia.org/wiki/Identity_of_indiscernibles
19:53:42 <alise> your fucking Mongolian can read WP bitch :|
19:53:50 <pikhq> Hah.
19:54:31 <pikhq> Oh, okay.
19:54:39 <alise> leibniz : {a:∗} → {P : a → a} → {x:a} → {y:a} → {x ≡ y} → P x → P y
19:54:41 <alise> Read out,
19:55:13 <pikhq> You just did Leibniz's law in your language.
19:55:15 <alise> "For a given type a, and a given function from a to a (P), and two values x and y of type a, and given x === y, then P x implies P y.@
19:55:16 <pikhq> That's beautiful.
19:55:17 <alise> *P y."
19:55:19 <alise> As a function:
19:55:32 * MissPiggy agrees with pikhq
19:55:56 <alise> "Give me (implicitly): a type a, a function (a -> a) P, an a x, an a y, an x === y. Then give me a value of type (P x). I'll give you a value of type (P y)."
19:56:05 <alise> pikhq: The best part? Here's the definition (proof).
19:56:07 <alise> leibniz = _
19:56:12 <alise> The compiler can PROVE IT AUTOMATICALLY.
19:56:17 <pikhq> :D
19:56:18 <alise> This isn't just theory; Agda does it.
19:56:22 <alise> *Agda does it
19:56:30 <pikhq> This might be a pain to implement.
19:56:55 <alise> It's exactly the same as writing a constructivist proof system, which is exactly the same as writing a dependently-typed, total programming language.
19:57:08 <MissPiggy> agda doesn't do that :S
19:57:09 <pikhq> (... In the sense that Haskell is a pain to implement well.)
19:57:14 <alise> MissPiggy: yeah it does
19:57:17 <alise> I've seen the definition
19:57:23 <MissPiggy> youcan't write leibniz = _
19:57:30 <alise> sec
19:57:31 <alise> lemme find it
19:57:43 -!- MigoMipo has quit (Read error: Connection reset by peer).
19:58:51 <alise> http://www.cs.nott.ac.uk/~nad/repos/lib/src/Relation/Binary/PropositionalEquality/Core.agda
19:58:58 <alise> it's either sym, trans or subst; I forget whicch
19:59:21 <alise> http://www.cs.nott.ac.uk/~nad/repos/lib/src/Relation/Binary/PropositionalEquality.agda some more properties including subst_2
19:59:26 <alise> (subst on 2-adic functions)
19:59:56 <MissPiggy> ?
20:00:05 <alise> what
20:00:13 <alise> one of those IS leibniz just named funny and under a wall of types
20:00:19 <alise> if you expand all the types it does come out to the type I showed
20:00:23 <MissPiggy> the definition is not = _
20:00:38 <alise> it's = refl
20:00:39 <alise> same thing
20:00:43 <MissPiggy> not the same :P
20:00:53 <alise> lol
20:01:03 -!- lament has quit (Ping timeout: 240 seconds).
20:01:37 -!- lament has joined.
20:05:29 <alise> {a:∗} → {x:a} → {y:a} → ({P : a → a} → P x → P y) → x ≡ y
20:05:32 <alise> is more interesting
20:12:05 <uorygl> alise: does your language have * : *?
20:12:36 <uorygl> Also, did I miss the #esoteric-priv stuff?
20:19:02 <alise> Yes.
20:19:04 <alise> uorygl: And no.
20:19:08 <alise> The other way around.
20:19:21 <alise> It has ∗ : ∗n 1
20:19:23 <alise> and you missed it
20:19:28 * uorygl nods.
20:19:50 <alise> I'm not sure how to split Set/Prop though, what symbols, whether to have a supertype etc
20:19:53 <uorygl> I wonder if I can get my hands on the #esoteric-priv stuff somehow.
20:21:36 <alise> Ask MissPiggy for the complete log.
20:22:05 <uorygl> MissPiggy, may I please have the complete log?
20:33:13 -!- impomatic has quit (Ping timeout: 264 seconds).
20:46:31 <alise> MissPiggy: did you give it to uorygl?
20:46:46 <uorygl> I don't seem to have received it.
20:48:12 -!- MigoMipo has joined.
20:48:16 <alise> bad MissPiggy, bad! :P
20:48:28 * MissPiggy pout
20:55:53 <alise> foo : {a:*} -> {x:a} -> {y:a} -> ({P : a -> a} -> P x -> P y) -> x === y
20:55:54 <alise> foo {_} {x} f = f {x ===} _
20:55:57 <alise> Proven, beeyotch.
20:55:59 <alise> I think.
20:56:18 <alise> I guess letting P involve === is kinda cheating though.
21:01:30 -!- lament has quit (Ping timeout: 258 seconds).
21:02:25 -!- lament has joined.
21:06:53 <Sgeo> http://igoro.com/archive/human-heart-is-a-turing-machine-research-on-xbox-360-shows-wait-what/
21:08:46 <alise> old :P
21:09:22 <alise> but cool
21:10:22 * Sgeo goes to play a bit of RoboZZle
21:15:31 * Sgeo goes to try asikierka's tree
21:17:59 <Sgeo> That was too easy, and didn't feel treelike
21:20:29 -!- MizardX has joined.
21:28:35 -!- zzo38 has joined.
21:31:13 <zzo38> I wrote on 10.02.26 that (fork\I) is "the set of all single element sets of single element sets". But now I think that's wrong. It is (I) itself that is "the set of all single element sets of single element sets".
21:32:37 <zzo38> (fork\I) is simply "the set of all single element sets".
21:34:07 <zzo38> I also want to know if you know any other set paradoxes.
21:34:16 <zzo38> (Other than Russell paradox)
21:34:25 <MissPiggy> set of all ordinals
21:34:36 <MissPiggy> although it is very similar
21:38:09 <zzo38> OK, I found it, and I found out its similarity
21:41:39 <zzo38> I want to figure out how to represent it in Hyper Set Language. I noticed that the set of all natural numbers is naturals=successor%0;
21:41:57 <zzo38> But you can get the successor of that, too (successor/naturals)
21:42:22 <zzo38> And even (successor%naturals)
21:45:44 <zzo38> I prefer the "Nostalgia" skin in Wikipedia but esolang wiki doesn't have that one
21:51:05 <alise> set of all natural numbers:
21:52:58 <alise> data ℕ : ★ where
21:52:58 <alise> 0 : ℕ
21:52:58 <alise> S : ℕ → ℕ
21:53:22 <alise> for the unicode challenged
21:53:26 <alise> data N : * where
21:53:26 <AnMaster> fizzie, Deewiant: http://sprunge.us/cjVA <-- early draft for that
21:53:28 <alise> 0 : N
21:53:30 <alise> S : N -> N
21:53:30 <AnMaster> hi alise
21:53:32 <augur> imma make a video game :D
21:53:38 <AnMaster> alise, you weren't here the last few days
21:53:41 <AnMaster> what happened
21:53:49 <alise> AnMaster: I wasn't, and I'd rather not talk about it.
21:53:56 <AnMaster> okay
21:56:12 <pikhq> AnMaster: Nothing much to worry about, though.
21:56:16 <zzo38> augur: What game?
21:56:47 <augur> some sort of space piloting game that puts you in a situation like Farscape
21:56:56 <zzo38> OK
21:57:44 <augur> zzo38: basically you're stuck in a far off part of the universe having to escape some crazy super powerful dudes
21:57:53 <augur> and your ship is all fucked up so it doesnt do quite what you want it to do
21:57:53 <AnMaster> pikhq, any opinion on http://sprunge.us/cjVA ?
21:58:11 <augur> but you dont have money, you have to work using your only resource: your ship
21:58:12 <AnMaster> it is a rather early draft of course
21:58:18 <AnMaster> no details about most commands yet
21:58:23 <augur> and you can do various things to that end
21:58:41 <zzo38> I made some games on computer a lot, including one game where you have to make rectangle to catch colored balls and make a hole. You have to prevent the white ball from falling into a hole or from colliding with colored balls. And the rectangle has to be moving the white ball and has to have the corners on tiles all of the same color. Each ball of the correct color 2 points, each other 1 point. You need 2 points to be valid, and then the points
21:58:51 <pikhq> AnMaster: Looks less painful than BSD sockets.
21:59:24 <AnMaster> pikhq, and actually usable, SOCK has many parts that aren't actually accessible due to stupid design
21:59:35 <zzo38> alise: I have not seem the notation "data N : *" before
21:59:48 <pikhq> zzo38: It's an ehird-ism.
21:59:52 <alise> No it's not.
21:59:55 <alise> it's an Agda-ism
21:59:56 <AnMaster> pikhq, like UNIX sockets. the specification for if it is an unix or an inet socket comes below the address on the stack. And you need to know which type it is to know what format the address is in!
21:59:59 <alise> :P
21:59:59 <pikhq> Oh, okay.
22:00:11 <alise> zzo38: It's dependent type theory, which is isomorphic to intuistionistic logic.
22:00:19 <alise> *intuitionistic
22:00:25 <alise> Basically, it's computable logic.
22:00:46 <alise> Dependently-typed programming language <=> intuitionistic computer proof system
22:01:15 <alise> "data N : * where" just defines the set N (* is read as "set", : is read as "is a").
22:01:16 <pikhq> AnMaster: Wait, there was already a sockets API for Befunge that did that?
22:01:24 <pikhq> AnMaster: *Eeeeew*.
22:01:28 <alise> It's just defining the set N inductively, pretty much.
22:01:50 <AnMaster> pikhq, yes, the one fungot uses
22:01:50 <fungot> AnMaster: they say that shopkeepers don't read, so that his mouth as a cloud, by samuel taylor coleridge)
22:01:55 <AnMaster> ^source
22:01:56 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
22:02:03 <pikhq> Mmm.
22:02:15 <fizzie> "They say that shopkeepers don't read, so that his mouth as a cloud."
22:02:18 <fizzie> Wisdom for the ages.
22:02:30 <AnMaster> fizzie, mixed up ones I guess?
22:02:38 <AnMaster> fizzie, but from what ones?
22:02:47 <alise> Wondered lonely as a cloud will be the last bit.
22:03:29 <alise> A shopkeeper, his mouth as a cloud: creating only obscurity, not one wit of understanding; for that that travels through his ears finds no passage to the outward path.
22:03:34 <AnMaster> pikhq, anyway look at SOCK: http://rcfunge98.com/rcsfingers.html#SOCK
22:03:41 <AnMaster> pikhq, spot the multiple issues
22:03:47 <alise> There, I made it make sense. POETICALLY
22:04:09 <AnMaster> alise, :P
22:04:25 <MissPiggy> <==>
22:04:39 <MissPiggy> <=(o_o)=>
22:05:36 <AnMaster> pikhq, so yes I'm aiming for a somewhat higher level and more advanced API than that
22:05:52 <AnMaster> I do need some help with figuring out the best interface for SCTP however
22:05:55 <AnMaster> any SCTP expert here?
22:06:01 <fizzie> "Shopkeepers don't read, so what use is engraving in a shop?" (rumors.tru) + "-- so that his mouth and jaws were completely hidden --" (from "mummy wrapping" entry) + "-- until they laid Tyr's hand into his mouth as a pledge." (from "tyr) + what alise said for the last bit.
22:06:07 <AnMaster> I have only used SCTP a tiny bit
22:07:01 <AnMaster> fizzie, what? it added cloud to make it poetical?
22:07:10 <alise> >_<
22:07:19 <AnMaster> or is this some famous poetical work?
22:07:33 * AnMaster prefers prose
22:08:12 <AnMaster> I never ever liked poetry
22:08:24 -!- jcp has joined.
22:08:39 <AnMaster> (yes I'm aware of prose poetry)
22:08:54 <AnMaster> (it is a border case, some instances are okay, some are not IMO)
22:09:59 <alise> You don't know "I wonder lonely as a cloud"?
22:10:13 <alise> Also, /me slaps AnMaster about a bit with the Rime of the Ancient Mariner.
22:10:21 <AnMaster> alise, can't say it is familiar. Remember I'm from a different culture
22:10:54 -!- kar8nga has quit (Remote host closed the connection).
22:12:50 <alise> MissPiggy: is there any actual problem with supertypes?
22:12:55 <MissPiggy> ??
22:12:58 <alise> after all (exists e. e) ...
22:13:13 <alise> so why can't we say N = N* intersect {0}?
22:13:21 <alise> no dependent lang seems to allow such constructions
22:15:28 <alise> Union, not intersect.
22:17:12 <alise> Meh.
22:20:03 <Sgeo> "A website designer created a script that would create a webpage comparing every possible text color to every possible background color (16,777,216 colors each). The page that would have resulted was calculated to be more than 19 Peta Bytes in size using the system of 1 KB = 1024 Bytes, 1 MB = 1024 KB, etc. The script was never run."
22:22:44 <MissPiggy> yyou can do it alise
22:23:13 <alise> MissPiggy: Howso, in Coq or Agda or similar?
22:23:53 <MissPiggy> well union is either
22:24:00 <MissPiggy> so make a coercive subtyping
22:24:41 <alise> http://upperandlowercase.com/musicvariant2/ _what-
22:24:42 <alise> *what_
22:25:01 <alise> MissPiggy: but do agda and coq allow you to make such a subtyping?
22:31:18 -!- oerjan has joined.
22:31:30 <oerjan> yo alise!
22:31:35 <alise> Greetz.
22:31:49 <alise> MissPiggy: Please give oerjan the complete -priv log, if that's okay.
22:36:31 <zzo38> A spider-web in dark is a good way to stop the war
22:36:42 <MissPiggy> what?
22:36:50 <oerjan> <pikhq> "M' sxat' vid' l' lingv'.", I say in horrifically butchered Esperanto.
22:37:11 <oerjan> is ' legal not-before vowels?
22:37:25 <zzo38> I don't know Esperanto language very well what does that mean please?
22:37:45 <oerjan> <pikhq> I'd like to see the language.
22:37:47 <pikhq> oerjan: Actually, you're not supposed to omit the ending of every word. :P
22:38:43 <oerjan> well naturally
22:39:00 -!- tombom has quit (Quit: Leaving).
22:39:27 <zzo38> A spider-web in dark is a good way to stop the war. (It was a D&D game we played on Thursday, and, this idea did work, very well actually)
22:44:31 <zzo38> The war does not know how to think ahead. And that's why they didn't win the war.
22:44:52 -!- Timoriensis has joined.
22:46:58 -!- Timoriensis has left (?).
22:47:19 <alise> X* is X-without-0; is there similar notation for X-without-negatives?
22:47:28 <alise> is that X^+?
22:47:38 <alise> damn i'm tired...
22:48:00 <MissPiggy> I use X\{0}
22:48:12 <alise> that's X-without-0, i.e. X*
22:48:17 <alise> I'm wondering about X-without-negatives
22:48:21 <oerjan> in math? R^+ is R without either negatives or 0, afair
22:48:24 <alise> pretty sure it's X^+ yeah
22:48:29 <alise> oerjan: mm
22:48:54 <alise> oerjan: so clearly R^{+{-*}} is what I need
22:49:06 <alise> where -* means "with 0", being the inverse of *
22:49:08 <alise> :P
22:49:08 <zzo38> Naturals without zero: naturals_without_zero=naturals!1;
22:49:15 <oerjan> *facepalm*
22:49:19 <alise> X^+_0 maybe
22:49:33 <alise> oerjan: wat :D
22:49:44 <oerjan> well, not literally
22:49:56 <alise> oh wait I want Q+ not Q+ with 0
22:50:07 <MissPiggy> I don't like X* for X\{0}
22:50:18 <alise> i do so tough :P
22:50:24 <MissPiggy> why
22:50:35 <alise> I find it aesthetically pleasing.
22:50:40 <MissPiggy> ???????
22:50:42 <oerjan> especially since X* has other meanings, especially if X is a vector space
22:50:50 <MissPiggy> that has nothing to do with the set being zeroless
22:50:51 <oerjan> (dual space)
22:51:06 <alise> oerjan: yeah but i don't care about that :)
22:51:11 <alise> MissPiggy: it's just notation
22:51:18 <alise> notation is inherently arbitrary
22:51:19 <MissPiggy> JUST NOTATION??
22:51:24 <MissPiggy> how dare you
22:51:28 <alise> "nothing to do" doesn't matter is what I mean
22:51:36 <alise> no notation has anything to do with what it represents
22:51:43 <alise> we pick aesthetically pleasing, memorable notation, and that's it
22:51:53 <MissPiggy> you could equally argue that no word means anything
22:52:05 <alise> no word has any relation to its meaning
22:52:50 * MissPiggy uses morphology to disagree
22:53:14 <alise> well let's consider "not black"
22:53:18 <alise> we think this has a relation to "black"
22:53:28 <alise> but the concept being expressed is /everything/ just to the exclusion of black
22:53:45 <alise> i.e. in the "true meaning", without any level of abstraction or function, just value, so to speak, there is no "black"
22:53:48 -!- Oranjer has joined.
22:54:00 <alise> so "not black" relates to the word "black" but its meaning does not relate to the meaning of "black"
22:54:21 <MissPiggy> what !
22:55:15 <alise> i guess i just stepped into the lovely deep-end of things i don't really know shit about
22:55:53 <MissPiggy> alise you read On Denoting by Russle
22:56:03 * MissPiggy needs to as well
22:56:08 <alise> ?
22:56:13 <augur> what are you kids talking about
22:56:49 <MissPiggy> WORDS
22:59:02 <alise> /what/, I don't have \top and \bot in emacs
22:59:10 <alise> fuck that shit
22:59:23 <MissPiggy> AAAAAAAA
23:00:50 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
23:02:21 * oerjan read \bot as lambdabot, and wondered why you'd expect it in emacs
23:05:32 -!- ehird has joined.
23:05:35 -!- alise has quit (Ping timeout: 245 seconds).
23:05:47 <ehird> what did i miss since migomipo left?
23:06:13 <MissPiggy> 22:58 < MissPiggy> AAAAAAAA
23:07:25 <oerjan> * oerjan read \bot as lambdabot, and wondered why you'd expect it in emacs
23:12:08 <MissPiggy> http://2.bp.blogspot.com/_mmBw3uzPnJI/S2Ltvwxm04I/AAAAAAABAQU/qcggMUcrims/s1600-h/ipad_12.jpg
23:12:12 <MissPiggy> iPAD
23:16:24 <ehird> MissPiggy: i thought of some two-dimensional notation for dependent types
23:17:34 <Oranjer> yay
23:17:35 <ehird> the regular type, with more spacing between the function arrows, but with (x:T) replaced with T. Above, a line along the whole thing. Above, in the middle of the T without the x, "x", for each such argument.
23:17:43 <ehird> the f : goes on the dividing line
23:20:25 <MissPiggy> I must go
23:20:39 <ehird> farewell
23:20:44 * Sgeo can't seem to copy from a PDF
23:20:46 <Sgeo> Bye MissPiggy
23:21:03 <ehird> MissPiggy: do you like the notation though?
23:22:22 <MissPiggy> I ond't undesrtand it
23:22:31 <ehird> MissPiggy: well
23:22:42 <ehird> basically there's a line, and above is the dependent section; below, the normal section
23:22:55 <ehird> normal section is all the types, none of the names, connected by arrows; drab and usual
23:23:04 <ehird> above, in the locations of dependent arguments, the names we bind them two
23:23:14 <MissPiggy> I don't see how that could work
23:23:33 <MissPiggy> A -> _ -> _
23:23:34 <MissPiggy> --------------
23:23:37 <MissPiggy> Set -> A -> A
23:23:43 <MissPiggy> it's just like huh?
23:24:02 <ehird> not like that
23:24:04 <ehird> like this
23:24:24 <MissPiggy> ehird are you likey to be on tommorow if not when
23:24:57 <ehird> A
23:24:57 <ehird> -----------------
23:24:57 <ehird> Set -> A -> A
23:24:59 <ehird> MissPiggy: maybe
23:25:00 <ehird> dunno
23:25:04 <MissPiggy> know
23:25:08 <ehird> if not tomorrow, then say before the end of next week
23:25:15 <MissPiggy> okay
23:25:17 <MissPiggy> anyway
23:25:20 <ehird> wait
23:25:21 <MissPiggy> that notation SUCKS :P
23:25:23 <MissPiggy> bye
23:25:26 <ehird> one final thing before you go :|
23:25:31 <MissPiggy> nope sorry
23:25:35 * MissPiggy has quit ()
23:25:39 <ehird> pah :P
23:26:17 <MissPiggy> dot dot dot
23:26:22 <ehird> oh :D
23:26:26 <ehird> A x
23:26:26 <ehird> === : ---------------------------
23:26:27 <ehird> Set -> A -> A -> Set
23:26:29 <ehird> IT IS GOOD NOTATION LOVE IT
23:26:49 <MissPiggy> youandouanpfb
23:26:56 <ehird> what :D
23:27:01 -!- zzo38 has quit (Remote host closed the connection).
23:27:01 <MissPiggy> one thing which is good is implicit binding
23:27:10 <MissPiggy> but it's also hard
23:27:11 <ehird> what do you mean by that?
23:27:24 <MissPiggy> to not make it confusing
23:27:50 <MissPiggy> why don't you get some sleep
23:28:05 <Oranjer> what does that say ehird
23:28:10 <ehird> Oranjer: it says things
23:28:13 <ehird> MissPiggy: don't want to :D
23:28:14 <Oranjer> what things
23:28:17 <ehird> but what do you mean by implicit binding
23:28:19 <ehird> oerjan: things. complicated
23:28:25 <Oranjer> oerjan???
23:28:29 <Oranjer> :(
23:28:46 <oerjan> mwahahaha.
23:29:01 <ehird> erm
23:29:02 <ehird> Oranjer
23:29:03 <ehird> :D
23:29:11 -!- MissPiggy has quit (Quit: Lost terminal).
23:29:16 <Oranjer> but what does it say, ehird?
23:29:24 <oerjan> it's an anagrram
23:29:33 <Oranjer> really?
23:29:34 <ehird> it says your mom
23:29:41 <Oranjer> :(
23:29:45 <oerjan> Oranjer: no, you are
23:30:32 <Oranjer> I am....what
23:30:34 <Oranjer> what
23:31:06 <oerjan> an agrram
23:31:21 <Oranjer> delightful my existence must be
23:32:06 <ehird> Eb tsum ecnetsixe ym lufthgiled
23:32:08 <ehird> Nope, not an anagram
23:32:27 <Oranjer> I know!
23:32:36 <Oranjer> wonki, hey, haha
23:33:59 <ehird> I'm becoming dissatisfied, I think, with the usual GADT method of defining inductive types.
23:34:02 <ehird> It feels to specialised.
23:36:15 <ehird> I guess I see the definition of the set, i.e. the T in data X : T where ..., and the definition of the constructors, i.e. the ... in the same, as being separate.
23:36:44 <ehird> Nat : Set
23:36:44 <ehird> Nat = data zero : Nat
23:36:45 <ehird> succ : Nat → Nat
23:36:45 <ehird>
23:36:45 <ehird> however, leans too much to the right for my liking; and besides, does this even make sense?
23:36:54 <ehird> Doesn't Nat expand indefinitely? If not, what does "data" actually mean?
23:38:17 -!- Gracenotes has joined.
23:42:11 <Oranjer> ehird: what is it
23:42:24 <ehird> It's complicated. You wouldn't understand.
23:42:29 <Oranjer> goddammit
23:42:34 <ehird> Oranjer: Okay, let me rephrase.
23:42:58 <ehird> I don't have the hours or the high-level understanding necessary to eloquently explain the theory behind it all to you.
23:43:14 <Oranjer> oh, okay
23:43:23 -!- Azstal has quit (Ping timeout: 245 seconds).
23:43:24 <Oranjer> is there a place that does?
23:43:28 <Oranjer> as in, a link?
23:43:49 <oerjan> Nat = Fix (\t -> data Zero | Succ t)
23:43:55 -!- Asztal has joined.
23:44:11 * oerjan ducks
23:44:32 <ehird> Oranjer: Well... it's dependent type theory.
23:44:47 <ehird> But good luck. You need a strong backing in functional programming and some backing in logic.
23:44:59 <ehird> oerjan: I have this slight feeling that that is not well-defined. :P
23:45:08 <ehird> Also, bah; I despise non-G ADT syntax.
23:45:24 <ehird> At the very least, "Nat = Fix (\t -> data Zero : t; Succ : t -> t)".
23:45:31 <ehird> But yes, I considered "data a where ...".
23:45:38 <ehird> I dislike it; we shouldn't need such arbitrary binding of names.
23:45:46 <oerjan> um the whole point is you _don't_ have t as the result before using Fix
23:46:35 <oerjan> \t -> data Zero | Succ t would be something like an anonymous type constructor
23:46:44 <ehird> right but remember all this must be total
23:47:00 <ehird> regular function-level "fix : (a -> a) -> a", at least, is totally verboten
23:47:03 <oerjan> that's total enough, you could name it
23:47:20 <ehird> Fix : (Set -> Set) -> Set
23:47:21 <oerjan> fix here means smallest fixpoint of types
23:47:29 <ehird> prove it; Fix f = ...?
23:47:35 <ehird> I'm not doubting, I'm just curious
23:48:08 <oerjan> well it's just what i _think_ inductive data types are defined as in denotational semantics
23:48:19 <oerjan> while codata uses largest fixpoint
23:48:32 -!- coppro has joined.
23:49:26 <coppro> **** YEAH!
23:50:06 <oerjan> i don't know what restrictions there are on the Set -> Set, like you say, to make it work
23:51:47 <oerjan> oh i _think_ it would be isomorphic to having a single inductive data type data Fix t = Fix (t (Fix t)), and using it to construct everything else?
23:52:01 <oerjan> or i could be horribly wrong :)
23:53:02 <coppro> GO CANADA
23:54:48 <ehird> oerjan: if so that would be nice
23:54:52 <ehird> as a theoretical underpinning
23:54:56 <ehird> data ℝ : Set where
23:54:56 <ehird> ℝ : (f : ℚ⁺ → ℚ)
23:54:56 <ehird> → {{ε₁:ℚ⁺} → {ε₂:ℚ⁺} → abs (f ε₁ - f ε₂) ≤ ε₁ + ε₂}
23:54:56 <ehird> → ℝ
23:54:58 <ehird> I think I have that rigght
23:55:00 <ehird> *right!
23:55:13 <ehird> Fuck yeah, definin' the computable reals 'n shit
23:57:50 <coppro> hey, ehird's back
23:57:55 <ehird> yeah - long story.
23:58:07 <ehird> suffice to say there are now _two_ crises in my life.
23:58:10 <coppro> O_o
23:58:29 <coppro> being replaced by your female alter ego isn't one of them, I presume
23:58:54 <ehird> oops, my name changed back.
23:58:57 -!- ehird has changed nick to alise.
23:59:04 <alise> --no, that would merely be interesting
23:59:16 <alise> are we talking full sex change here or just ephemeral gender switch?
23:59:43 <coppro> not sure
23:59:58 <pikhq> I'd hesitate to call either one a crises -- though sometimes it can be a *pain in the ass*. ;)
←2010-01 2010-02 2010-03→ ↑2010 ↑all