2010-02-01: 00:00:34 * MissPiggy wants to revamp education with computers as an integral part.. 00:01:03 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 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 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 for all intents and purposes, understand = memorize 00:02:47 well at least for this intent and purpose 00:03:17 * MissPiggy wants to write a sci-fi about it :P 00:03:27 err about what? 00:03:33 i should really continue reading... 00:03:35 computers 00:03:51 hmm, this doesn't even seem to work :/ 00:04:26 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 singular cubes = cube 00:04:49 pretty easy stuff if you ask me 00:04:57 wait, it *did* work! 00:05:09 it's actually the image of a cube 00:05:29 f(C) where f is a continuous function 00:05:43 that's not exactly the wacky part 00:06:22 oh lol 00:06:28 sorry, idiot here 00:06:31 :P 00:07:04 forgot math terms usually also mean something in english 00:08:03 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 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 I just use the quadratic formula; takes roughly as long 00:09:29 I don't care about the actual quadraitic, tat's just one example 00:09:46 i remember being in a class in middle school or so when the were trying to teach people to factor quadratics 00:10:16 they taught some kind of odd, non-deterministic method involving drawing shapes on paper 00:10:31 our exams rarely contain any computations that take more than half a minute even without a calculator... except for integrals 00:10:32 sounds cool 00:10:37 do you remember it? 00:10:40 wouldn't like me use the quadratic formula ^_^ 00:11:23 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 you could draw the shape of the curve and look at the picture to see where zeroes are 00:12:23 i suppose this was something cleverer 00:12:29 olsner what are you talking about? 00:12:32 I missed earlier 00:12:59 yeah what the FUCK are you talking about 00:16:00 a program that reads stdin as a bijective base-256 number 00:16:11 bijective? 00:16:12 then converts the number to base-pi, and back again 00:17:00 it doesn't make sense to have real bases 00:17:09 hah! sure it does 00:17:13 why not? 00:17:46 olsner, I thought input was base pi, and output was base e? 00:17:54 Or something like that 00:18:02 Sgeo: yeah, I just built it with output as base-pi to test that it's really working 00:18:23 I don't really know yet how to convert directly from base-pi to base-e 00:18:48 the burger is missing but I have the buns, so to speak 00:19:44 so how do you have a real base? 00:20:30 basically, this: http://en.wikipedia.org/wiki/Non-integer_representation 00:20:55 it's just pi^k instead of 10^k 00:21:17 bsmntbombdood: im fax 00:21:44 that there has a greedy algorithm to generate the representation of any number in any base > 1 00:21:52 i suppose it works if your digits are reals too 00:22:02 "The numbers di are non-negative integers less than β." 00:22:11 this is really the only thing i wasn't sure about 00:22:23 yeah, so base-pi has 0,1,2,3 00:22:39 bsmntbombdood: lol, yeah, that would be a pretty compact representation at least 00:22:55 like e = (e/pi)*pi 00:23:05 e in base pi 00:24:49 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 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 This is... Incredibly slow. 00:42:45 ./a.out `cat rot13.lazy` < ~/lazyk/lazier.scm 7.26s user 0.03s system 99% cpu 7.340 total 00:43:10 For comparison, the shipped interpreter: 00:43:10 ./a.out eg/rot13.lazy < lazier.scm 0.70s user 0.02s system 80% cpu 0.891 total 00:46:19 pikhq, I believe olsner is looking for slowness? 00:51:25 http://www.maa.org/devlin/LockhartsLament.pdf 00:51:35 readit 00:52:42 olsner: "add up to zero"? do you mean the representation of a natural number in base pi is infinite? 00:54:52 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 bsmntbombdood: sounds like the current state of mathematics 00:56:48 teaching of it, that is 00:56:51 oklofok: ...that's the point 00:57:05 mathematics in particular? 00:57:12 i haven't read all of it yet 00:58:45 i figured it might be about pretty much anything 00:59:04 but yeah maybe it could be just about math 01:00:20 okay i got on page two 01:00:21 ;) 01:08:35 Is LogMeIn safe? 01:26:08 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 use a different method for evaluating performance, perhaps? 01:26:52 if exams are interfering with learning, there's obviously a problem 01:28:39 like, this is kindof saying "they're not teaching creativity" and what I'm thinking is, "well, nobody teaches creativity" 01:28:41 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 poor garbage collection? 01:34:26 Garbage collectors can't collect things you still have references to. 01:34:31 Even if you're not using them again. 01:34:57 In this case, I was holding on to references before dethunking something. 01:35:08 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 And a dethunk can take, well, any amount of time. 01:35:38 -!- SimonRC has joined. 01:36:05 i wonder if there are any garbage collectors that actually can infer that information 01:36:22 ML's apparently can. 01:36:29 As a side effect of its type system. 01:37:29 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 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 hmm, it seems I have a lot to learn about precision 01:43:21 worked fine for certain sizes of inputs that happened to make the program choose good numbers of bits to work with 01:43:37 but failed to properly pi-encode "hello world" 02:12:33 hmmm 02:12:36 working on a bignum system? 02:13:04 how do you compute, exactly, the representation of a pi-encoded number? 02:14:08 bsmntbombdood: Inaccurately. 02:15:50 bsmntbombdood: take the biggest power of pi that fits under it, and you get the first digit, then induction 02:16:12 well biggest power + biggest possible digit you can multiply it with 02:16:18 of course 02:16:45 but i don't know how to do that exactly 02:16:52 then figure out at which digit to stop? 02:17:02 and it's enough to use as digits the natural numbers under the number being used as base. 02:17:20 any exponentiation/subtraction you are doing involves representations of pi, not pi 02:17:48 uh 02:18:03 so? we're still working with the actual number 02:19:09 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 so you get 2x.xxxxxxxx 02:19:36 x's continuing forever 02:19:47 (no idea what they are) 02:20:18 nothing about this involves "representations", although you'll need some to know what powers fit under what. 02:21:05 you can't exactly subtract 2*pi^2 02:21:12 you can't? 02:21:18 21-2*pi^2 is a real number 02:21:54 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 is 21-2*pi^2 equal to 3, 1.78, 1.2808, 1.268238, 1.2619555, 1.26082454, etc 02:23:03 are you saying you can't represent 21-2*pi^2 in base 10 using a finite number of digits? 02:23:12 using base pi sounds weird 02:23:19 because that's completely true 02:23:32 you also can't represent it in a finite amount of bananas if bananas map in no way to real number. 02:23:33 s 02:24:05 you end up having to use an approximation of pi for all your calculations, is what i'm saying 02:24:16 who said anything about calculations? 02:24:45 bsmntbombdood: you could store the operations, then evaluate just the number of digits you need 02:24:56 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 for a general real number that is obviously impossible 02:25:50 i understand that it exists, i am talking about an algorithm 02:25:59 oh 02:26:12 that's trickier 02:27:43 but yeah, approximate to some amount of digits. not exactly that interesting. 02:28:51 well, pi can be done with, what, some polynomial series? 02:31:11 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 (not actually an algorithm, but at least there's no error) 02:34:06 (i mean it might hang) 02:35:36 madbr: can't pi be done with pretty much anything 02:36:26 you know better than be probably 02:37:00 i don't know anything about pi 02:37:27 i don't even know why it isn't algebraic 02:38:14 i hear it's like totally nontrivial 02:38:40 ...lol my gf will wake up soon, i should really start reading soon :P 02:39:19 (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 Hey 06:47:53 ho 06:47:59 I get a lot of Cannot send to channel for some reason on the other channels for some reason 06:48:02 What gives! 06:49:04 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 they just changed ircd program, in case you haven't noticed, so some setup has changed 06:50:44 Weird 06:51:03 +R turned into some other quieting option, although i didn't have the impression it should change what happened in practice... 06:51:48 Yeah, but the channel I just tried talking doesn't have +R on 06:51:52 Or so it seems 06:51:58 +R doesn't exist any longer 06:52:05 And I can talk here just fine 06:52:08 it's +q something 06:52:29 well we've never silenced people here that i can remember... 06:52:32 It's just +cnt on ##physics 06:52:59 i'm not sure +q shows up by default, i think it's like a ban list 06:53:41 07:52 0 - ##physics: ban $~a [by 06:53:42 JabberWalkie!~superdude@CPE0013d44814fd-CM001bd70964c4.cpe.net.cable.rogers.com, 121722 secs ago] 06:53:49 i think that might be the one 06:54:02 (found with /mode #physics +q) 06:54:09 *##physics 06:54:21 Well, let's try now 06:57:26 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 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 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 Deewiant, what should 0j@ do? should it remain on j forever or should it reach the @ at some point? 15:05:30 If 1j is like # then 0j is like z. 15:06:36 Deewiant, hm does mycology test 0j? 15:06:43 Beats me. 15:10:06 Deewiant, so 0jv should take the down path then 15:10:21 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 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 hi AnMaster 15:47:10 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 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 Well, if you don't care about it being even vaguely reentrant, you could just use a global. :P 17:13:32 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 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 Yeah, if one can only do fixed-count iteration, then one can only write algorithms that are in P. 19:20:16 every algorithm in P? 19:21:24 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 oop 19:23:50 Actually, if one has number-based fixed iteration, one could do at least up to EXPTIME-complete. 19:25:43 I thought it was NEXPTIME 19:26:18 At least up to... 19:26:51 So might be some even bigger class... 19:27:17 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 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 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 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 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 cpressey, you could have interpreters for sub-tc languages you know will always halt 20:26:55 iirc ais/scarf designed one reversible always-halting language 20:27:03 forgot the name of it 20:27:14 ais/scarf? Is that his name now? 20:27:35 uorygl, he used scarf sometimes recently 20:28:04 Neat. Now I know who scarf is. 20:28:15 hah 20:28:27 hm 614 new mails 20:28:31 most are probably spam 20:28:52 actually no, it looks like there has been some huge debate on flightgear-devel list 20:30:02 AnMaster: well, if that' 20:30:44 cpressey, ? 20:30:51 if that's an interpreter, then so is a program that solves the travelling salesman problem, is all I meant. 20:30:59 cpressey, heh 20:31:03 Where the language there is weighted undirected graphs :) 20:31:26 Very, very sub-TC, you might say... 20:32:30 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 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 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 cpressey, why are you using libtool? 20:43:45 you can do shared libraries without libtool just fine 20:43:53 cpressey, also how do you mean hash consing? 20:45:11 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 as for why libtool... because i am stupidly trying to build some tools i need (subversion, right now) from source 20:46:13 cpressey, like venti? 20:46:25 (plan9 thing iirc) 20:46:33 (yeah part of plan9 even) 20:47:13 cpressey, they tend to just work after ./configure --prefix=$HOME/local/subversion && make && make install 20:48:18 Oh yes, it's very nice when they just work :) Darn thing keeps telling me it can't find expat, though. 20:48:35 cpressey, so install expat 20:48:44 sudo pacman -S expat 20:48:53 or sudo apt-get install expat-dev or whatever 20:49:36 AnMaster: Building shared libraries without libtool is a pain to do portably. 20:49:38 ah seems to be libexpat1-dev on ubuntu 20:49:48 ... Building anything *with* libtool is a pain, so I guess it evens out. 20:49:59 pikhq, does it work on *bsd and linux easily without libtool? 20:50:23 I don't really care about HP-UX, VMS and other obscure systems 20:50:30 oh AIX too 20:50:30 AnMaster: It *works*, but people seem to suck at it. 20:50:41 pikhq, isn't it just gcc -shared ? 20:50:45 (next person to build a shared library without -fPIC gets a kick to the balls) 20:50:56 pikhq, well yes of course you use -fpic 20:50:58 AnMaster: Add -fPIC for fucks sake. 20:51:02 also -fpic NOT -fPIC 20:51:15 the lower case version is better on some platforms iirc 20:51:47 Yes, like DOS. 20:51:47 And DOS. 20:51:49 Also DOS. 20:52:01 and sparc 20:52:45 pikhq, what? -fpic vs. -fPIC? 20:52:46 no 20:52:57 No, wait... 20:53:06 it makes a difference only on SPARC, m68k and RS/6000 says man gcc 20:53:15 According to the man page, it only makes difference on m68k, PowerPC, and SPARC. 20:53:29 haha 20:53:43 pikhq, mine lists SPARC, m68k and RS/6000 under -fpic but m68, PowerPC and SPARC under -fPIC 20:53:45 -fpic makes a smaller offset table. 20:53:48 whatever that is supposed to mean 20:53:56 If it's too small, it'll not compile. 20:54:01 -fPIC will always work. 20:54:04 pikhq, it is faster though 20:54:09 iirc 20:54:20 AnMaster: If your shared library is small enough. 20:54:22 pikhq, and if you need such a large GOT you have too many functions 20:54:35 divide it in more 20:54:50 a library should follow the unix philosophy too 20:54:56 (do one thing, do it well) 20:54:59 Anyways. 20:55:10 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 Many build systems build shared libraries *without* using position-independent code. 20:55:30 olsner, right 20:55:36 Because the x86 dynamic linker will manually relocate the library if it's not PIC. 20:55:37 pikhq, that won't load 20:55:44 on x86-64 iirc 20:55:46 It will on x86. 20:55:48 And *nowhere* else. 20:55:51 pikhq, not on x86-64 20:56:00 pretty sure about that 20:56:03 AnMaster: Yes. That's not x86. 20:56:11 pikhq, well the difference is slight 20:56:18 also x86-64 is the norm nowdyas 20:56:21 days* 20:56:25 for linux 20:56:31 The difference between the CPU architecture is slight. 20:56:38 The ABI is radically different. 20:56:44 true 20:57:06 where is the x86 abi 20:57:14 I only read the amd64 abi 20:57:21 Undefined. 20:57:24 It's per-OS. 20:57:28 And often per-compiler. 20:57:32 pikhq, well it must be documented for linux... 20:57:34 somewhere 20:57:40 And if you're on Windows, give up now. 20:57:48 pikhq, also Microsoft ignores the amd64 abi yes 20:58:02 Microsoft defines its own, yes. 20:58:13 Windows on x86 has 3 or 4 different calling conventions. 20:58:43 The Linux x86 ABI is defined in the LSB. 20:59:17 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 Except for C++-specific details; those are from the IA64 ABI documentation for all GCC-supported architectures. 20:59:47 this would in other words not be based on polygons (or it could be as well) 21:00:13 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 AnMaster: regparam is very, very rarely used. 21:00:38 cfunge uses regparam attribute on x86 to speed things up (there is a measurable difference) 21:00:53 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 cpressey, plain expat is a program it says 21:01:17 cpressey, "expat - XML parsing C library - example application" 21:01:22 apt-get tells me that 21:01:27 err 21:01:28 apt-cache 21:02:04 Wheras on Windows, there's fastcall, stdcall, cdecl, safecall, and pascal calling conventions... 21:02:04 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 cpressey, well. maybe it needs *.la or *.a? 21:02:25 -!- rodgort has quit (Client Quit). 21:02:40 And those are just in use by Microsoft's compiler. 21:02:50 cpressey, if you are doing subversion why not apt-get builddep subversion 21:02:53 or was it builddeps 21:02:54 ? 21:02:57 something like that 21:03:00 AnMaster: well, libexpat.la appears to have been in my lib dir since Jan 19 as well 21:03:16 At any rate, it's built. best not to think any more about it, right? :) 21:03:19 pikhq, delphi (which is pascal) used fastcall internally iirc 21:03:23 There's *also* the Borland fastcall and the GNU cdecl. 21:03:29 or was it a modified fastcall? 21:03:32 well probably 21:03:42 pikhq, gnu uses it's own cdecl on windows? 21:03:53 AnMaster: The difference is in struct packing. 21:04:06 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 pikhq, -_- 21:04:15 It packs its structs differently from Microsoft C. 21:04:15 -!- rodgort has joined. 21:04:23 pikhq, that isn't calling convention! 21:04:26 With an attribute for Microsoft packing. 21:04:31 struct packing is, well, ABI yes 21:04:36 but not calling convention 21:04:38 Fine, fine, remove the GNU cdecl. 21:04:52 Borland still has its own fastcall. 21:05:06 (different registers are used) 21:05:12 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 cfunge is the first thing I've heard of actually *using* it. 21:05:42 AnMaster: maybe my smiley should have been a ;-) 21:05:43 pikhq, does MS still use fastcall? 21:05:49 cpressey, maybe 21:05:53 Yes. 21:06:08 pikhq, for what sort of functions 21:06:09 Random parts of Win32 use it. 21:06:13 pikhq, also what about thiscall? 21:06:30 That's just a C++ implementation detail. 21:06:32 ah 21:06:33 "First argument is this". 21:06:43 s/C++/python/ ;P 21:06:54 (except there it is explicit!) 21:07:00 Heheh. 21:07:42 Microsoft at least went sane on x86_64... 21:07:44 how comes C++ needs it's own "different from C" ABI, while python manages fine with the C abi. 21:07:48 There is one calling convention. 21:07:48 well yes I can see the reasons 21:07:50 but still 21:07:52 it makes you wonder 21:08:10 pikhq, different from linux one though on x86_64 21:08:19 pikhq, also doesn't syscalls use their own? 21:08:24 on both linux and windows 21:08:26 Yes, but it's at least a *single* calling convention. 21:08:36 Syscalls must -- there's no way to just "call" them. 21:08:43 pikhq, call gates? 21:08:50 I have a vague memory of reading about that 21:08:58 not sure how it worked 21:09:00 AnMaster: Even that requires some specific work on them. 21:09:38 The Linux call gate is linked in before the dynamic linker is started. 21:09:51 And the Linux call gate is at a specific address. 21:09:52 true 21:09:56 also no longer used 21:10:02 it uses SYSCALL/SYSRET iirc? 21:10:07 ... No, the call gate is still used. 21:10:09 or was it SYSENTER/SYSEXIT? 21:10:13 The call gate is a *recent thing*. 21:10:17 pikhq, if you mean the vdso... 21:10:27 Yes, that's the call gate. 21:10:36 pikhq, not the call gate in the meaning I used it 21:10:42 http://en.wikipedia.org/wiki/Call_gate 21:10:52 "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 Oh, that bloody thing. 21:11:24 pikhq, so you know about it? 21:12:12 Linux doesn't use that. 21:12:22 did I say it did? 21:12:27 No. 21:12:37 I'm saying it doesn't at all, though. 21:13:01 SYSENTER is quite funky. IIRC, it does not save address that called it. 21:13:10 Because it damned well doesn't help matters any. 21:13:19 is it SYSCALL that is used then? 21:13:33 Linux's entry methods are an interrupt, syscall/sysret, or sysenter/sysexit. 21:13:37 So there can only be one SYSENTER in each VM space. 21:13:48 The Linux VDSO uses whichever one is the fastest. 21:13:48 "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 significantly faster." 21:13:55 Interesting stuff. 21:14:32 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 And that SYSENTER is part of Linux-gate VDSO. 21:14:59 cpressey, iirc virtualbox uses ring 2 a bit if there is no VT-d/whatever support 21:15:05 or VT-x or whatever it was 21:15:12 Waiting for the next interrupt can be killer. 21:15:21 Ilari: Only if it's present. 21:15:26 Ilari, even on x86-64?' 21:15:31 s/'// 21:15:46 I thought it used syscall exclusively on x86-64 21:16:21 -!- MissPiggy has quit (Read error: Connection reset by peer). 21:16:29 basically AMD64 deprecated Intel's sysenter in the AMD64 specs 21:16:33 * AnMaster opens the file 21:17:01 "6.1.2 SYSENTER and SYSEXIT (Legacy Mode Only)" 21:17:02 Well, if X64 has SYSCALL, its probably better than SYSENTER. 21:17:20 " 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 SYSEXIT are low-latency system call and return instructions designed for use by system and 21:17:20 application software implementing a flat-memory model. However, these instructions are illegal in 21:17:20 long mode and result in an undefined opcode exception (#UD) if software attempts to use them. 21:17:20 Software should use the SYSCALL and SYSRET instructions when running in long mode." 21:17:24 yeargh 21:17:28 * AnMaster kills evince 21:17:37 what the hell did it do there 21:17:47 with that spacing 21:17:52 Ilari: Syscall and Sysenter do roughly the same thing. 21:18:02 One was created by Intel, the other by AMD. 21:18:20 pikhq: And presumably SYSCALL saves RIP... 21:18:46 Probably. 21:19:10 doesn't linux map the clock in process memory for gettimeofday() and such 21:19:18 it is iirc done in the vdso magic 21:19:41 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 hah, getting a newer gmp and compiling mpfr and gmp locally seems to have given around 20% 23:21:13 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 Finally, it works! 23:58:59 It works! The OASYS->TAVSYS works! It works! It {OUCH} 2010-02-02: 00:01:31 http://pbox.ca/121kt 00:09:51 -!- jcp has joined. 00:12:04 -!- cheater has quit (Ping timeout: 260 seconds). 00:12:35 Hay you ! No cheating! Of course I am not channel operation 00:12:39 -!- zzo38 has left (?). 00:19:18 http://sprunge.us/HdLe Hooray, boredom. 00:22:45 (CPS in C. For no good reason.) 00:23:02 all hail bad reasons 00:23:27 all also hail absense of reasons 00:24:45 also, dividing by the same (large arbitrary-precision floating-point) value was slower than inverting the value and multiplying instead 00:25:13 almost 3x as fast, actually 00:28:41 -!- cheater has joined. 00:30:42 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 Night all. 00:30:49 -!- cpressey has left (?). 00:33:33 -!- zzo38 has joined. 00:35:14 This is a better one http://pastebin.ca/raw/1774973 00:35:51 Now it is not useless 00:37:39 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 How many eyes does ettercap has? 00:55:36 -!- cheater has joined. 01:01:08 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 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 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 is function-level programming similar to writing completely lambda lifted programs? 17:05:04 i think it's more similar to writing point-free programs 17:05:34 or wait, what is lambda lifted again 17:07:00 -!- Asztal has joined. 17:08:33 hm right 17:11:58 -!- BeholdMyGlory has joined. 17:12:50 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 they certainly have plenty of variables 17:14:13 cheater: ^ 17:15:25 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 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 yeah his strictly limited set of higher-order functions makes it very weird 17:18:13 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 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 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 hm doesn't FP have a way of creating constant functions? 17:22:14 Although, depending on the language, there are ways to defeat that, given logical invariants like x & ~x -> false 17:22:45 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 i don't see how that makes sense if functions are _not_ values 17:25:18 and my impression is they are not 17:26:18 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 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 sure, but a function in FP cannot turn a value into a function 17:27:30 it can only give values as results, i think 17:27:38 * oerjan should find a more reliable source 17:27:44 FP is STUPID!!!!!! 17:27:45 hm, that's a point. 17:28:00 MissPiggy has a point also. 17:28:02 anyone that wants to do functional programming without LAMBDA has lots his MARBLES 17:28:19 it's no coindicendec that LAMBDA is an anagram of MARBLES 17:28:37 you must have lost some marbles to think that 17:28:45 (the anagram part) 17:29:17 LAMBSER DRACULA'S 17:31:26 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 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 and functional forms may have object arguments as well as function arguments 17:35:27 [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 I love the sort of time dilation that makes ehird capable of that 17:35:55 oerjan: That's what I suspected - so "functionals take functions to functions" on wp is wrong 17:36:10 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 yeah 17:43:13 where is ehird? 17:43:29 no idea 17:43:32 -!- kar8nga has joined. 17:44:58 maybe we should try email? 17:45:05 my guess is an extended ban from the internet, for whatever reason 17:45:57 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 most recent email I have from ehird (which he posted to a mailing list I'm on) is jan 13 17:46:46 he's been online since then though 17:46:54 hm 17:47:23 also, could haskell exist without *external* state. 17:47:25 18th or so 17:47:31 as in, imagine there is no universe, just haskell 17:47:51 I've emailed him, anyway 17:47:55 or maybe not 17:47:57 ;( 17:49:36 AnMaster: sounds worryingly like the smalltalk view of the universe 17:49:43 but that's pretty easy to set up 17:49:48 just ban the IO monad, look no more universe 17:50:31 scarf, also ST/state. 17:50:40 AnMaster: that's an internal thing 17:50:42 since there is nowhere for the interpreter to store the state 17:50:50 and yes there is, it can be stored in the moand 17:50:51 *monad 17:50:54 without existing in an external stateness context 17:50:56 you can implement the state monad in pure haskell 17:51:02 scarf, oh? 17:51:15 scarf, what about the ST one? 17:51:19 I don't know about ST 17:51:25 hm okay 17:51:34 ST is only implemented with magic for efficiency's sake. 17:51:40 State *is* pure Haskell. 17:51:58 In fact, IO is only implemented with magic for utility's sake. 17:52:15 I mean, I don't know what ST is 17:52:16 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 scarf: Strict state monad. 17:52:32 ah, ouch 17:52:34 also unless the gc could be implemented in pure haskell, this haskell's heap would grow forever, no? 17:52:46 That's an implementation detail. 17:52:48 that sounds like it would be a) implementable nonmagically, and b) very inefficient if you did 17:53:02 scarf: Yes and yes. 17:53:22 AnMaster: you're assuming something with a relatively standard pointer architecture for gc to even make sense 17:53:39 AnMaster: There's no *need* for garbage collection. 17:53:41 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 scarf, well we are getting to that 17:53:54 Only for most practical implementations. 17:53:55 hm 17:56:13 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 I was trying to implement ST today 17:56:21 but I did not succeed 17:56:39 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 well, in theory at least, but probably practice too 17:57:05 for instance, you wouldn't use gc if you were implementing underload in, say, lisp 17:57:09 Indeed, when you have an infinite amount of tape, why bother reusing it? 17:57:10 because having two layers of gc is pointless 17:57:34 scarf, and pointerless? 17:57:37 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 (sorry, should have left that to oerjan) 17:57:58 oh, didn't realise it was meant to be a pun 17:58:44 also the bf tape is not infinite 17:58:48 in practise 17:59:06 scarf, just write one in C and use gcc-bf ;P 17:59:38 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 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 heh 18:00:46 scarf, doesn't it partly depend on memory patterns 18:00:56 like an endless loop that duplicates some data along the way 18:01:04 AnMaster: yes, of course 18:01:07 but which keeps the stack at a limited max 18:01:37 scarf, wouldn't that require a gc to not run out of memory? 18:01:54 AnMaster: it would either run out with or without, or not run out with or without 18:02:13 scarf, oh? 18:02:34 AnMaster: because you need either infinitely many pointers to the data/infinitely many copies of the data 18:02:37 or finitely many of both 18:02:59 ah 18:03:43 ^ul (x)(y)(z)(a(~)~*^~)(:^):^:^:^:^^^S 18:03:43 ...out of time! 18:04:23 ^ul (x)(y)(z)(a(~)~*^~)(:^):^:^:^^^S 18:04:24 ...out of time! 18:04:27 ^ul (x)(y)(z)(a(~)~*^~)(:^):^:^^^S 18:04:28 ...out of time! 18:04:31 ^ul (x)(y)(z)(a(~)~*^~)(:^):^^^S 18:04:32 ...out of time! 18:04:35 ok, that's strange 18:04:39 ^ul (x)(y)(z)(a(~)~*^~)(:^)^^S 18:04:39 ...bad insn! 18:04:57 fungot evaluates Underload? 18:04:58 cpressey: what is stfu?". i want a divorce!!... this is nice but the drivers aren't always 18:05:00 cpressey: yes 18:05:23 ^ul (x)(y)(z)(a(~)~*^~)^S 18:05:23 x 18:05:33 ^ul (x)(y)(z)(a(~)~*^~):*^S 18:05:33 y 18:05:39 oh, I see what I did wrong 18:05:50 ^ul (x)(y)(z)(a(~)~*^~)(:*):*:*:*:*^^S 18:05:50 ...too much stack! 18:05:53 ^ul (x)(y)(z)(a(~)~*^~)(:*):*:*:*^^S 18:05:53 x 18:05:57 there we go 18:06:43 still, the mistaken original somehow segfaulted when I pressed control-C, for no obvious reason 18:06:43 in derlo 18:07:01 oh, with a stack overflow 18:07:13 (thanks Valgrind!) 18:11:35 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 and likewise, http://sun.com is just a redirect 18:12:51 cpressey, see: 18:12:53 ^help 18:12:53 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 18:13:00 scarf: I don't see anything strange about the 1st link, but the 2nd was darn surprising 18:13:01 bf and ul 18:13:13 cpressey: the first link, look at the title and the colours 18:13:22 scarf: Ah. 18:13:23 if you teach Java for a living like I do, you get used to looking at the API 18:13:28 and it's weird seeing it with Oracle branding 18:13:37 cpressey, also: 18:13:39 ^source 18:13:39 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 18:14:03 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 cpressey: Oracle bought Sun 18:14:25 the entire company, including everything that they owned 18:14:34 it's hilarious seeing adverts for Oracle Solaris, for instance 18:14:38 and likewise, http://sun.com is just a redirect <-- old (several days) 18:14:44 That's so... sad. 18:14:55 AnMaster: yes, but still shocking 18:15:08 well yes 18:15:17 also what will happen to mysql 18:15:24 just wondering 18:15:30 apparently, oracle are going to invest in it 18:15:30 I much prefer postgre 18:15:32 AnMaster: re source: cool! 18:15:47 cpressey, well yes, I thought *you* would think that ;P 18:15:51 the underload interp starts on line 311, if you're interested 18:16:27 If you want to pay a lot for a mediocre DB, Oracle is a good choice. 18:17:54 If you don't have that kind of money for that kind of mediocrity, MySQL is a good choice... 18:18:13 MySQL manages to not quite be a relational database 18:18:26 I think it's useful for the market it targets, but I'm not sure how to define that market 18:18:59 Data integrity? Who needs *that*? 18:19:03 Pfft. 18:19:15 cpressey: sometimes you don't, although I agree sometimes you do 18:19:46 well, as in, sometimes you can get the same effect without transactiosn 18:19:49 *transactions 18:19:52 scarf: I was merely trying to define that market, ... through parody 18:19:59 ah 18:20:15 If you don't have that kind of money for that kind of mediocrity, MySQL is a good choice... <-- no 18:20:22 postgresql is a better choice 18:20:52 AnMaster: I meant that with MySQL you get a lot of mediocrity for your buck :) 18:21:12 well, as in, sometimes you can get the same effect without transactiosn <-- what about innodb 18:21:12 I prefer postgres, too. 18:21:49 AnMaster: innodb doesn't really have transactions 18:21:51 well, it does a bit 18:21:58 more than myisam, but less than a sane database engine 18:22:32 -!- cheater2 has joined. 18:23:12 I wonder how long it'll take Oracle to completely destroy Java and Solaris. 18:23:54 my guess is, they won't 18:24:09 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 I suspect that most of the companies that rely on Oracle rely on Java too, you see... 18:25:16 Hm. And now, they just rely on Oracle... 18:25:45 "completely destroy" might have been a bad choice of term. 18:26:03 yep, "lock-in" seems more likely or reasonable 18:26:51 what about iced tea 18:26:59 or whatever it is called 18:27:00 AnMaster: or OpenJDK? 18:27:18 those should both be out of oracle's control whatever happens 18:27:51 (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 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 http://www.oracle.com/features/suncustomers.html 18:28:45 cpressey: hmm, but aren't those good things? 18:28:50 scarf: ! 18:29:04 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 scarf: !! 18:29:24 there are something like ten different ways of writing an anonymous function and passing arguments to it 18:29:55 cpressey, what is wrong with python 3 18:30:04 any more than python 2 that is 18:30:10 they fixed some stuff in it iirc 18:30:20 like integer division now being // 18:31:00 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 And I suspect Java 7 will be similar. 18:31:21 cpressey: oh, I can imagine the sharkjumping 18:31:25 cpressey, I prefer python 3 to python 2 18:31:28 there's a reason perl5 is still developed 18:31:38 I think perl6 is a different language with an unfortunately similar name 18:31:39 oerjan: function level programming is not functional programming 18:31:41 although not very different 18:32:47 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 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 cheater2: sort-of like concatenative langs? 18:33:38 $ 5to6 some_complicated_perl5_file.pl 18:33:38 Lua seems to have a better philosophy about "progress", overall, I think. Just my opinion. 18:33:45 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 and I have done that too 18:33:53 AnMaster: how many LoC? 18:34:04 and thanks to ifdefs made it compile against both python 2 and 3 18:34:25 cpressey, around 1000 or so in total there. Also done a few other programs 18:34:49 AnMaster: 1000's almost short enough to rewrite 18:35:01 AnMaster: Depending on how many 3rd party packages? 18:35:03 scarf: yes 18:35:07 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 cpressey, one third party one. why? 18:35:22 cpressey: that also applies to you (FLP is not in any way related to FP) 18:35:37 cpressey, so the third party ones need to be ported first 18:35:48 and yes that one was tricky, it was a C json library. 18:35:58 which depended on byte rather than unicode strings 18:36:03 AnMaster: I'm just suggesting that your example is small, compared to lots of Python codebases out there. 18:36:23 cpressey, true, it isn't completely painless, but not too bad I found 18:36:35 cpressey, also why are you using third party libs? NIH NIH! ;P 18:37:02 hmm, ideally code should be written to be so portable it can easily be transferred to a different /language/ 18:37:19 cheater2: So design an imperative function-level programming language :) 18:37:31 oh, of course, you just write it as compiled BF, that works 18:37:52 scarf, that *always* works 18:38:00 ;P 18:38:12 gah, I just had an urge to mention PSOX again 18:38:13 scarf, well you might need psox ;P 18:38:16 snap 18:38:22 argh same second here 18:39:01 we've clearly become some sort of hivemind 18:39:17 hah 18:39:54 cpressey, iirc you had some erlang code on your website? do you still use it? 18:39:58 (the language that is) 18:40:20 AnMaster: Unfortunately, I haven't touched Erlang in a while. 18:40:46 cpressey, how long? since before the unicode support? 18:41:07 AnMaster: Yeah, probably about then. I remember it being discussed, I don't remember actually using it. 18:41:13 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 scarf, not his fingerprint 18:41:27 The continuous growing size of the OTP distribution frightens me :) 18:41:41 cpressey, well efunge is written in erlang. I'm not aware of any other bignum funge 18:42:02 (also I'm the author of efunge, as well as cfunge) 18:42:04 Ah, well. Funge, like C, was never designed with bignum implementations in mind... 18:42:28 cpressey, well yes indeed. Currently I'm considering bignum intercal 18:42:34 which would be just craz 18:42:36 crazy* 18:43:18 cpressey, anyway I'm also working on a fingerprint for async threads in efunge. work in progress. 18:43:19 More than I care to put in my brain at the moment, yes. 18:43:26 some part works 18:43:45 Interesting... 18:43:55 cpressey, really t feels so silly when you have multiple cores and possibly multiple nodes. 18:43:59 really,* 18:44:09 so that is where this things comes into it 18:44:31 actually the multiple nodes might pose a problem since I use an ets table for funge-space. 18:44:41 multiple nodes scenario* 18:45:03 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 But when you introduce nodes.... yeah. 18:45:30 cpressey: i am not sure that imperative style would be good for FLP, since there is no assignment in FLP 18:45:37 Hard to see how to mesh those with Befunge's model. 18:45:42 I guess I could switch to mnesia, but that would be horribly slow 18:45:43 cpressey: btw, porting from py2 to py3 should be easy 18:45:54 cpressey: not much harder than porting 2.6 to 2.5 for example 18:45:59 or 2.4 18:46:41 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 also these threads wouldn't block each other when waiting for IO, unlike IPs in befunge normally do 18:47:31 https://bugzilla.mozilla.org/show_bug.cgi?id=476766& https://bugzilla.mozilla.org/show_bug.cgi?id=542689 18:47:32 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 cpressey: function level programming does not produce results like you expect from normal programs. 18:48:13 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 the output of a function level program is a program that is not written in FLP. 18:49:15 cheater2, is it per chance written in #!/bin/cat ? 18:49:18 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 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 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 cpressey: a sort of constructive argument for coming up with ideas and concepts :-) 18:53:42 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 yes, that is my impression too 18:54:58 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 i think the idea was too completely separate the data from the program structure 18:55:39 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 but what's important, i think, is that he also separated the description framework 18:56:00 that reminds me of one thing in freebsd kernel source 18:56:02 cheater2: that might be. If so... one of my language designs is "function-level" in that sense 18:56:08 #define SECONDS_PER_MINUTE 60 18:56:10 yes really 18:56:19 -!- sebbu2 has joined. 18:56:20 at least it wasn't a runtime variable 18:56:24 i.e. that program, which calculates the area, is not written in the same language it was defined in. 18:57:18 http://catseye.tc/projects/larabee/ forbids literals in the program -- all values have to be read from input. 18:57:37 so, you define a program such as: print(multiply(arg2(),multiply(arg2(),arg2())) 18:57:51 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 and this program definition is defined in CFLPL which is cheater's function level programming language 18:58:33 cheater2: ok ... 18:58:51 and then it gets compiled to: code which is executable in php. 18:59:11 i think i've heard of larabee before 18:59:34 ah, it was the name of the intel gpu thing 19:00:41 Hm, 2 r's in the spelling of the gpu thing, but yes. I wasn't aware of that 19:01:47 i wasn't aware of the 2 r's 19:01:47 :D 19:01:57 have you ever used happstack cpressey? 19:02:15 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 cheater2: No. 19:02:36 AnMaster: right, or if you have arithmetic, X-X = 0, X/X = 1. 19:02:49 (or DivByZero exception :) ) 19:02:56 yeah 19:03:27 cpressey, and then you can do (basically) 2=1+1 4=2*2 and so on 19:03:58 it's fruitless, there's no point in doing that 19:04:02 would it be possible to make a tc language where this wasn't possible 19:04:25 AnMaster: well, forbid copying maybe? 19:04:43 AnMaster: although I don't think that'll get you very far :) 19:04:46 cpressey, would it be tc then? 19:04:54 and yes I suspect you could work around it 19:05:10 AnMaster: If my work on Larabee isn't completely whack, I think it's not TC. 19:05:35 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 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 not 100% sure though 19:06:18 AnMaster: Definitely an interesting line of inquiry. 19:06:22 cpressey, but then isn't the program bounded by the number of arguments 19:06:26 and thus sub-tc 19:07:12 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 Like, computing pi to an indefinate # of decimal places 19:07:28 cpressey, so it is allowed to copy those values once calculated? 19:07:40 just not use an argument more than once? 19:08:17 then it could just do it like X = arg1(), One = X / X, Zero = X - X. 19:08:18 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 ( heh I just realised that was potentially valid erlang code) 19:08:43 well, it would need div, but otherwise) 19:09:32 (just define arg1() to something suitable calling something in the init module to get the arguments) 19:10:32 cpressey, well if you can't copy then internally you are probably subtc 19:10:38 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 since you can use each argument, then those new things can be used as one input in another computation 19:11:15 and then the these results only used once 19:11:16 and so on 19:11:21 until you had no more input 19:11:22 hm 19:11:29 I think you could do "not" forever 19:11:32 since it is unary 19:11:35 Ugh, my brain is hurting now. 19:11:43 I should probably have lunch. 19:11:46 but any binary operators would reduce the number of variables to use 19:11:49 brb 19:13:14 Ohhey, ehird is gone? 19:13:17 Didn't even notice that. 19:14:28 -!- kar8nga has quit (Remote host closed the connection). 19:14:54 That's actually a bit distressing. He's been more or less constantly present for a long time. 19:15:22 yeah ehird is hard to notice 19:15:38 you'd have to own a computer 19:16:36 In five days he'll join and see that the topic says "20 days since last ehird sighting" :P 19:17:26 back 19:17:53 Gregor, ... or not 19:18:13 (depends on if we remember to update it ;P) 19:18:21 Well, true. 19:18:37 Oh btw, go to http://sun.com/ 19:18:38 And cry. 19:18:40 15 days since our last workplace accident. 19:19:13 fungot: seen ehird 19:19:14 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 That's not a very good "seen" command, though I guess it *could* produce the correct reply too. 19:19:48 fizzie: 'snot likely :P 19:20:26 -!- cheater2 has quit (Ping timeout: 248 seconds). 19:20:27 cheater2: i know that function level programming is not functional programming. 19:20:30 -!- cheater3 has joined. 19:21:19 cheater3 "Oh not this again" 19:21:21 NO U 19:21:48 what? 19:22:23 cheater3: oh FP doesn't refer to functional programming, it refers to backus' original function-level language 19:22:37 oh ok 19:22:55 (btw i'm answering old messages so i have no idea what you are saying now yet) 19:23:59 fungot: seen ehird <-- implement such a command then 19:24:00 AnMaster: deep macrology? beh, beh. i don't seem to have run into the fnord status.' 19:26:41 Didn't one of the bots already have such a thing? 19:26:55 hehe 19:27:01 fungot, style 19:27:01 MissPiggy: you can always fnord the occasional scheme code here. use lisppaste. 19:27:24 fungot: Yes, but it might not be a good idea to fnord Scheme. 19:27:25 fizzie: glyp glof! varsinkin se yksi ( jos se en on siell), jossa ne fnord niit fnord! fnord!" " jenwolf sucks!" " fnord 19:27:37 Heh, a rare bit of Finnish there. 19:28:29 "glyp glof"? 19:28:38 fizzie, you are heavy on the fnords over there! 19:28:39 Deewiant: I don't know what that was about. 19:29:22 I am disconcerted by the notion that both "glyp" and "glof" occur often enough to not be "fnord" 19:29:59 "Often enough" means "more than once" here, but still. 19:30:42 2006-12.log:[2006-12-27 21:52:44] < oerjan> !exec "Argle bargle, glof glyp!"PrntNl 19:30:42 2006-12.log:[2006-12-27 21:52:48] < oklobot2> Argle bargle, glof glyp! 19:30:42 2006-12.log:[2006-12-27 21:54:53] < oerjan> !exec "Argle bargle, "PrntNl "glyp glof!"PrntNl 19:30:42 2006-12.log:[2006-12-27 21:55:00] < oklobot2> glyp glof! 19:30:49 Seems that you can blame oerjan. 19:30:57 (Well, you can always blame oerjan!) 19:31:15 oerjan: Consider yourself blamed! 19:33:51 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 fizzie: lambdabot has a @seen command, i don't know about any here... 19:36:23 Deewiant: glyp and glof are famous H2G2 words 19:36:35 or wait 19:36:40 that's glop glyf 19:37:14 2006-11.log:[2006-11-12 21:09:23] < oerjan> !bf_txtgen Argle bargle, glop glyf 19:37:14 2008-11.log:[2008-11-15 00:32:26] < oerjan> fungot: argle bargle, glop glyf 19:37:15 fizzie: don't throw the pic away, i'll check that out. how do you implement by yourself 19:37:17 It's always you. 19:37:28 I could tell envbot to join, it has a seen command 19:37:41 but due to being written in bash it isn't very esoteric 19:38:03 I'm not totally convinced we need one. And anyway, fungot ought to be clever enough to spontaneously develop one. 19:38:03 fizzie: hey! eso already exists. and, instruction and operand ( including numbers) 19:38:44 argh no, not the blaming! 19:39:53 * oerjan is no a jour 19:39:55 *now 19:41:09 argh no, not the blaming! <-- is it just me, or was this a very vague and obscure discworld reference? 19:41:12 *à 19:41:17 (iirc, one of the tiffany series?) 19:41:41 not a chance, unless my unconscious has read more pratchett than me 19:41:48 ah... 19:44:38 * oerjan would not rule that out entirely though 19:46:48 turns out sometimes his recalls really are vague 19:47:09 you think? 19:48:38 i haven't caught that many errors 19:48:52 compared to the amount of vaguations 19:49:53 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 either that, or possibly i left no witnesses. 20:01:32 "take only photographs, leave no witnesses." i like that. 20:04:54 i'm not really that big on photographs either 20:06:24 Oooh yeah, they can be used as evidence of a court of law, cain't they. Well nix that then. 20:06:38 s/of/in/ 20:06:57 of, too, i believe 20:07:33 also an excellent place to leave no witnesses 20:23:30 -!- MissPiggy has quit (Ping timeout: 245 seconds). 20:30:32 HEY that's a segue to http://codu.org/projects/zee/ 20:30:38 -!- MissPiggy has joined. 20:30:38 Thanks for the segue guys 20:30:41 -!- augur has quit (Read error: Operation timed out). 20:31:20 i've had that idea 20:31:31 i think i almost considered doing something with it 20:31:38 or well, maybe not *almost* 20:31:55 but not much less 20:32:11 Have you had PLOT ideas? :P 20:32:24 no. plots make games impure. 20:32:29 as do "based on"'s 20:32:35 :P 20:32:58 * oklopol likes his games flash and ball. 20:33:16 ball being the objects, flash being how the game is implemented 20:33:36 but umm plot... 20:33:54 "Based on true story" games! 20:34:18 based on a filthy lie 20:35:09 Gregor: i might consider thinking about a plot, in the future maybe, or not. 20:35:24 would be so awesome 20:35:30 -!- speeskees has joined. 20:35:36 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 wouldn't be a problem to do realistic rendering for the graphics :P 20:50:23 -!- adam_d has joined. 21:09:01 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 and the most common one is what? 21:19:44 * oerjan executes a swatting, terminating oklopol -----### 21:20:48 As in execution. Mr. Bobbert was executed. 21:20:48 http://esoteric.voxelperfect.net/wiki/TMMLPTEALPAITAFNFAL <-- hmm, this is interesting 21:21:00 try to build a polyglot in all variants of that language :) 21:21:12 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 *involves 21:21:24 also, http://tvtropes.org/pmwiki/pmwiki.php/Main/MostCommonSuperPower 21:21:26 "execute" = euphemism for "execute a death warrant" 21:21:37 Yes, I know. 21:21:41 yeah, i'm pretty sure that's the least used meaning 21:21:41 But that doesn't matter. 21:21:45 That's how words come to be. 21:21:47 oklopol: ??? 21:21:52 oklopol: Maybe for a computer scientist. 21:22:01 and based on the dictionaries 21:22:26 Dictionaries don't index by meaning frequency ... 21:22:29 checked two other web ones and there was no mention of killing 21:22:32 true... 21:22:58 Meaning #3 at dictionary.coim is: " to inflict capital punishment on; put to death according to law." 21:23:07 I argue that that is the most common meaning understood by English speakers. 21:23:21 oklopol: It may not be in sane countries, but I'm in a country with the death sentence. 21:23:28 heh 21:23:29 I think what's more remarkable is the frequency of use of euphemisms in English-speaking countries... 21:23:30 Executions, y'know, *happen* here. 21:23:51 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 that's true... i think of executing as a term you'd only need when talking about 14th century france 21:24:10 i mean the killing one 21:24:33 Gregor: I hold a different opinion - the euphemistic meaning has become the dominant one, but it's still a euphemism. 21:24:39 14th century france, 21st century US, what's the difference *ducks* 21:25:01 ducks are very different in usa, yes 21:25:37 Gameboy emulators without any sort of throttling... 21:25:43 Hard to play most games with. 21:25:44 pikhq: lawl 21:25:46 *Amazing* for RPGs. 21:26:03 "Suck it, grinding.": 21:26:16 THAT'S WHAT SHE SAID 21:28:15 there really should be something that lists frequencies of different meanings of words, at least a rough estimate 21:29:22 This is Mr. Command. Execute him! 21:29:23 may be hard to determine 21:29:47 or not. 21:29:56 maybe in 1% of cases 21:30:08 "does this word mean do or kill?" 21:30:48 i mean for an entire dictionary 21:31:05 not that do and execute are actually synonyms in any context 21:31:51 maybe it could be so rough an estimate it's actually just random numbers 21:32:19 oklopol: Wordnet has count-of-occurrences-in-tagged-texts, which sort of tries to be an estimate for that. 21:32:35 oklopol: It's just that not all meanings even have any counts there. 21:33:18 It sort of works for "real common" / "not so common" distinguishment; for red as an adjective: 21:33:20 The adj red has 3 senses (first 3 from tagged texts) 21:33:21 21:33:21 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 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 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 well, execute? 21:34:22 1. (2) execute, put to death -- (kill as a means of socially sanctioned punishment; "In some states, criminals are executed") 21:34:22 2. (1) execute -- (murder in a planned fashion; "The Mafioso who collaborated with the police was executed") 21:34:22 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 The other four meanings don't have a count. 21:34:32 Or have a count of zero, if you prefer. 21:35:06 why would you use a 14th century dictionary 21:35:38 It is up to you how much a meaning you derive from one or two mentions. 21:36:05 to spelle properlie, of course 21:36:49 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 *rewinding* 21:39:16 ...i never used an oracle thing in my life 21:39:24 cpressey: That seems like a very prescriptivist approach to language. 21:39:32 GreaseMonkey: YOU HAVE NOW 21:39:37 ARGH THIS SITE REQUIRES JAVACRAPT 21:40:01 cpressey: And IMHO prescriptivism is pretty silly for English in particular, and language in general. 21:40:06 Gregor: the versions of java i have were pre-oracle 21:40:06 Gregor: Prescriptivist? I'm not the one claiming throwing around "not legit to say that" :) 21:40:10 s/claiming// 21:40:37 anyways, i'm hoping they'll keep releasing open stuff 21:40:45 cpressey: Fair enough :P 21:41:08 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 prescriptivism is the only way mankind could ever escape the horrors of natural language 21:41:36 it's probably not the only thing 21:41:40 uhh... 21:41:48 what else do you think i'd use? 21:42:00 i've really only done j2se and j2me 21:42:03 afaik 21:42:09 Do use any Unix system? 21:42:17 what, you think language is just going to *evolve* into something sensible? do you know how ridiculous that sounds... 21:42:37 Sun has tentacles in every corner of nearly every Unix system. Maybe not huge portions, but little bits everywhere. 21:43:38 i use freebsd here, linux on my lappy 21:43:46 not using any zfs. 21:44:08 i actually use the diablo jdk 21:44:11 on freebsd 21:44:44 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 And aside from that, everything else. Everything. 21:45:33 OK i'm having trouble finding the j2se library documentation 21:45:34 Oh no, Sun has contributed to open-source products I use every day. How shall I ever escape their diabolical grip. 21:45:37 everything under the sun 21:46:05 -!- MigoMipo has quit (Ping timeout: 240 seconds). 21:46:16 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 cpressey: you'll have to cleanse it in holy water, i hear jews do that 21:46:50 -!- augur has joined. 21:47:11 found it: http://java.sun.com/javase/6/docs/api/ 21:47:12 mind you i'm not sure if they apply it to electronics 21:47:33 probably applies well to programs 21:48:00 Misread "Sun has contraband in open-source products I use every day". That's quite a statement. 21:48:20 dear oracle: why did it take about 5 clicks from the front page to get to the j2se API documentation? 21:48:37 GreaseMonkey: Because you should have gone to java.sun.com ? 21:48:52 -!- MigoMipo has joined. 21:49:02 I tend to google for "java api" and go from there; never bothered to bookmark the thing. 21:49:02 So glad I'm not a "Java person". 21:49:15 ...hmmkay... i shall hopefully remember that 21:49:17 No offense to any "Java people" here of course. 21:49:31 Java people need more offense :P 21:49:39 i don't think we have many indonesians here 21:50:01 takes 4 clicks 21:50:25 i attempted to make a java decompiler once 21:50:26 read those two sentences as one, "oerjan: i don't think we need any indonesians here" 21:50:32 i could get the bytecode alright 21:50:45 that was slightly out of character for oerjan 21:50:53 however i think i was lacking in knowledge of decompilers 21:50:53 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 *slightly* 21:51:34 ...people still use usenet? 21:51:51 GreaseMonkey, yes of course 21:52:07 don't you? 21:52:11 nope. 21:52:15 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 unless i'm encountering archives and stuff 21:52:26 Hence, clcm. 21:52:41 lol 21:52:46 fizzie: How delightfully useless :P 21:52:47 Deewiant: What, and not read all that spinoza1111 stuff? 21:53:03 Yes, exactly. :-P 21:53:46 Deewiant: And all Kenny McCormick crossposts between comp.lang.c and rec.games.bridge? 21:53:55 Deewiant, clcm? 21:54:00 AnMaster: comp.lang.c.moderated. 21:54:04 ah 21:54:06 oh 21:54:08 fizzie: Yes, those too. 21:54:12 so clc was not about clc-intercal? 21:54:15 argh 21:54:19 fooling me like that 21:54:28 You are as easily fooled as ever. 21:54:40 AnMaster: Given that I had mentioned the full "comp.lang.c" name in my previous comment, I thought the abbreviation safe. 21:54:58 Deewiant: That price is too high to pay for some peace and quiet. 21:55:07 fizzie, meh 21:55:24 fizzie, I didn't read the full url 21:55:33 AnMaster: It's also in the text before the URL. 21:55:43 fizzie, "meh" 21:56:07 if I can't spot it when re-reading, why would I have spotted it first time ;P 22:01:01 fizzie: what's the best way to do usenet? 22:01:07 fizzie: hopefully, free. 22:01:53 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 hrm :( 22:02:23 i don't have an nntp server.. i don't even have 'an isp' (i travel a lot around da world) 22:02:27 Someone -- I don't remember who -- used http://www.eternal-september.org/ for that. 22:02:41 It should be somewhat free. 22:03:00 cheater3: what game do you cheat at to have the money for that? 22:03:12 oklopol: your mom 22:03:13 Number of connections per day per user limited? That sounds like it sucks 22:03:14 (Though with some connection limits and no binaries-style groups.) 22:03:21 fizzie: that looks useful, thanks 22:03:35 fizzie: Does your ISP provide the binaries-style groups? 22:03:42 Deewiant: probably not. 22:03:49 Deewiant: you use easynews for that. 22:04:42 -!- FireFly has quit (Quit: Leaving). 22:04:43 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 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 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 heh 22:06:49 How long ago was that? 22:07:18 I would guess late 1990s. 22:08:30 alt.binaries.music appears to have 75k headers here at least; let's see if there's any content 22:08:39 There was something like a hundred gigabytes (this was a big deal back then) full of copyrighted software and porn. 22:08:47 And possibly a few other files, but that was the majority of it. 22:08:48 fizzie, that link: "Today is September, 6000 1993, the september that never ends " 22:08:55 that should possibly (not) be celebrated 22:09:35 Hey, is it the 6000th day today (in some time zones)? Almost went by without noticing. 22:09:38 ais523 would be interested in it 22:09:47 fizzie, yes I just mentioned it! 22:10:17 AnMaster: Yes, it was a reaction to that. 22:10:41 TIME FOR MOAR MST3K 22:10:45 fizzie, "hey" implied (to me) "look what I found out" 22:11:04 No, it was "hey" in the "surprised interjection" sense. 22:11:13 It does look like there's data there, too. So apparently Welho provides. 22:11:16 hrrm 22:11:18 very well then 22:11:28 Elisa didn't, IIRC. 22:12:40 Deewiant, didn't what? 22:12:43 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 Deewiant: See e.g. http://sektori.com/uutinen/saunalahtea-moititaan-piratismin/1457/ 22:13:15 I think it got discontinued after getting official notice like that. 22:13:30 But before that, it had been quietly distributing data for at least some years. 22:13:48 AnMaster: Provide binary newsgroups. 22:13:51 ah 22:14:01 "syytää" :P 22:14:25 newszilla6.xs4all.nl provides binaries 22:14:35 readonly only (afaik) 22:14:41 also that is ipv6 only 22:17:55 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 fizzie, why not keep-alive? 22:18:52 What does "one connection" over NNTP actually do? Download one message? 22:19:13 Deewiant: No, you can keep it open pretty much as long as you wish, and I think newsreaders usually do. 22:19:54 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 Ah, that's not much of a limit then indeed. 22:21:24 night →↓←↑ 22:22:21 -!- FireFly has joined. 22:23:16 Doing a cartwheel while going to sleep, how suspiciously athletic. 22:23:52 -!- adam_d has quit (Quit: Leaving). 22:24:15 fizzie: what is the significance of september 1993? 22:24:52 cheater3: http://en.wikipedia.org/wiki/Eternal_September 22:26:03 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 Interesting. September 1993 is when Befunge was born :) 22:35:02 -!- augur has joined. 22:35:16 it's actually all your fault! 22:37:58 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 `define squawk 22:39:44 * 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 oh dear 22:40:23 well i guess madness takes its toll 22:41:08 that'll be 5 quarters 22:49:06 Oh, the madness I blame squarely on shared objects. 22:49:44 hmm 23:03:15 squared objects 23:07:16 Right on! Unit test segfaulted! 23:11:34 eh? can't you just multiply by it and check if the result is the same? 23:11:45 oh shit unit 23:12:00 yeah okay that's much harder to check 23:12:06 -!- coppro has joined. 23:12:12 i bet he tested the units but forgot the nulls 23:13:20 nulls are easy to test for, units are sort of hard. unless it's a field, then it's pretty easy. 23:13:25 great, now we have to write null tests to go with our null tests? 23:14:00 err 23:14:06 null tests to go with our unit tests 23:14:23 clearly. any ring theorist could have told you that. 23:15:14 i can only assume cpressey is some sort of an applied ring theorist 23:15:52 sup oklopol 23:16:23 both sup and inf lately, i hear 23:16:49 but maybe i shouldn't spread private conversation 23:17:13 hehe 23:18:03 also coding theory, but i figured you wouldn't be that interested 23:18:19 i find it a bit too cryptic 23:18:26 Hm, someone pinged me 23:18:49 Well, I pong you 23:19:29 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 ah, string rewriting, a prefect match for numerical computing 23:19:42 *perfect 23:19:46 sizes are obvious, as is the fact linear codes and their translates all form perfect tiles 23:20:05 but there are codes that form perfect tiles that have seemingly no structure 23:20:39 I might have incidentally built a thue interpreter too 23:20:46 (translate = take the code and add something to it) 23:21:02 what a curious incident 23:21:43 basically i've been playing with 2^4 hypercubes for hours 23:22:09 ...according to the logs, no one pinged me 23:22:12 *mindboggle* 23:22:15 and yet you still appear human 23:22:24 there you go 23:22:50 okay i'll do the following sleeping now: 23:28:32 * 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 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 Too many ideas, too little time. 23:40:21 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 23:49:15 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 cpressey: I meant too as in "as well as what I was attempting to build" 23:54:56 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 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 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 oklopol: You literally give a crap about their instructions, then. 08:16:33 -!- Asztal has quit (Ping timeout: 276 seconds). 08:18:24 actually it was pee, if you must know 08:18:31 -!- lifthrasiir has joined. 08:18:40 i probably would've realized during a longer operation 08:21:51 In retrospect, I'm not sure I actually wanted to start a conversation about this. 08:24:26 in this context, i'll interpret "retrospect" as "looking at ass". 08:24:54 although i guess that makes no sense 08:27:08 -!- lereah_ has joined. 08:27:08 With all retrospect due, I really wasn't looking at your ass. 08:28:35 it's fine 08:29:34 -!- lifthrasiir has quit (Ping timeout: 258 seconds). 08:30:37 I'm going to have to take your word for that, though I'm sure it is. 08:30:42 Does linux have a standard way to read djvu files? 08:30:48 Or do I need to get one 08:31:25 I don't know of any "standard" way but viewers do exist 08:31:41 you want to get a way from here? 08:32:31 Not sure I can get one though 08:32:34 I be at zerk 08:32:37 werk* 08:32:47 Evince, which is everywhere, has some support for it, I think. 08:32:50 Not sure you can install anything on that computer 08:34:14 At least djvu's mentioned on http://projects.gnome.org/evince/ and Evince's probably installed on anything Gnomish. 08:35:15 I'm on scientific linux, is it gnomish? 08:35:37 Yeah, I think it is 08:35:48 -!- lifthrasiir has joined. 08:37:09 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 How do I open it? 08:38:54 If it's there, "evince" in a terminal should run it. You may be out of luck there. 08:39:05 Balls. 08:39:27 i tried finding an online converter to pdf but no luck 08:39:39 Can someone convert the file to pdf for me? 08:39:59 It is http://membres.multimania.fr/bewulf/Russell/Quantum%20Mechanics%20And%20Path%20Integrals%20-%20R.%20Feynman,%20A.%20Hibbs.djvu 08:40:17 KDE's "Okular" supposedly supports djvu too. 08:40:19 ooh math 08:41:11 No, SCIENCE! 08:41:20 (it are physics)\ 08:41:53 hmm oh quantum mechanics 08:41:54 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 i just read blah blah path integrals 08:42:30 ofc quantum mechanics is certainly more interesting than path integrals 08:42:46 It is pretty neato torpedo 08:42:50 See, the concept is 08:42:59 fizzie: yell "woohoo math!" 08:43:06 A particle in this theory actually travels on EVERY POSSIBLE PATH 08:43:40 so how exactly does the path integral come in? 08:44:16 and does it travel in R^3? 08:44:18 Well, you have to do a sum over all path to find the probabilities of finding the particle here or there 08:45:22 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 "sum over all path" isn't specific enough 08:45:54 Yeah, it is rarely easy to find 08:46:07 I'm doing one right now, for instance 08:46:32 i mean you can't sum over all the paths, there's an uncountable number of them 08:46:35 You decompose time in little increments, and for the paths, you do all the possible turns you can do 08:46:42 Then you take the limit 08:47:17 -!- Gracenotes has joined. 08:49:00 all the possible turns is still an uncountable amount; and is this in R^3? 08:49:15 Iunno 08:49:21 Here's the example 08:49:27 you don't know or you don't know what R^3 is? 08:49:39 It is in R^3 08:49:50 A particle goes at the speed of light in 1D 08:50:10 At every time increment, it can do a turn 08:50:29 yeah in 1D you can do it combinatorially 08:50:42 So to go from point A to point B, you sum over all the possible turns at every increment of tine 08:50:57 In the end it's ~ an exponential 08:51:15 (by the way can someone convert it to pdf) 08:51:41 what i would do is google "dvu to pdf" 08:51:48 I did 08:51:56 But I can't install softwares here 08:52:12 well and "online converter" ofc, i never install anything 08:53:09 nothing on the first few pages 08:53:22 i guess no one's invented a converter 08:56:12 (that is why I ask) 08:57:43 -!- oerjan has joined. 08:59:45 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 never trust a human to change his habits 09:00:06 or think about what he's actually doing 09:00:53 i was thinking about teaching math to innocent children 09:01:15 _evil_ math i assume 09:01:53 it's not the math that's evil, it just makes humans evil 09:02:04 MWAHAHAH 09:02:23 it turns them into rational, uncaring beasts 09:03:10 Even irrational numbers? 09:03:38 it's a bit complex 09:04:21 i think it's natural enough 09:04:27 we need more number fields 09:04:42 ...with funny names 09:04:44 oklopol: what a surreal idea 09:06:47 -!- augur has quit (Ping timeout: 246 seconds). 09:07:58 -!- augur has joined. 09:08:44 There's plenty of number sets 09:09:00 Constructible, computable, compressible, definable 09:09:22 and how are those names funny 09:09:41 that's the problem with contemporary mathematics, things aren't given funny names 09:09:59 and what's a contructible number 09:10:11 ohhh 09:10:22 right ofc i know those 09:11:13 Also algebraic and transcendental 09:11:16 Shit like dat 09:12:52 what's the definition of a compressible number? 09:13:13 i think you have to be careful or it might not be a field 09:13:32 A number you can write a finite sized program for 09:13:52 oh. then what's the definition of computable 09:13:55 -!- kar8nga has joined. 09:14:00 i thought you'd have to be able to compress it 09:14:16 Lemme check 09:14:50 Hm, I might remember the wrong name for it 09:15:46 no, finite sized program applies to compressible strings, not real numbers, i think 09:15:56 and the program must be shorter than the string 09:18:25 i wonder if there are puns involving Z[sqrt(2)] 09:18:37 compressible number doesn't seem to be a real term 09:18:46 or Z(sqrt(2)) if we want to emphasize fieldness i suppose 09:19:07 It might have been incompressible 09:20:12 no better 09:20:39 http://homepages.cwi.nl/~paulv/schedule06/intro.ps 09:20:57 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 Unrecoverable error: configurationerror in setpagedevice 09:22:54 Operand stack: 09:22:54 false --nostringval-- 09:22:54 Failed to open device or install ViewerPreProcess hook: returns -26 09:23:02 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 oklopol : http://arxiv.org/pdf/hep-th/9302097v1 09:42:51 If you want the path integral mathematically 09:43:04 It describes it a bit 09:43:16 With the hilarious wiener measure 09:43:30 ah, now there's a funny name 09:45:04 It was waiting for you 09:45:35 ":This calculus in functional space (“Wiener measure”) attracted 09:45:36 several mathematicians" 09:45:42 They love wiener measures 09:47:41 "this file is damaged and could not be viewed" 09:47:43 :P 09:47:55 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 How can I check what Linux I have? 12:35:30 "lsb_release -a" if it happens to support that LSB thing, but not all do. 12:35:54 k 12:36:05 If it does, the "Description" field is most likely a human-readable sensible thing. 12:36:29 Scientific Linux 12:36:32 Damn it 12:36:43 I guess it's close to some other linux 12:36:46 Let's check 12:37:28 It seems to be at least slightly related to Red Hat Enterprise Linux. 12:38:15 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 You talk like a free, web-based, collaborative, multilingual encyclopedia project. 12:40:51 I sure do 12:40:56 Forgot the quotes 12:41:09 I don't like to type too much here, the keyboard is qwerty 12:41:49 ugh, who still uses qwerty 12:42:09 well i do but you know that's not relevant. 12:42:17 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 France does not 12:42:58 Visited CERN once, the azerty keyboards in the terminals there were confusing. 12:43:29 isn't azerty even stupider 12:43:58 Well, confirmed : I can't install a software here without admin priviledges 12:48:24 they're drilling in harmonic major second outside, i love it 12:49:21 drill baby drill 12:49:24 haha, a tritone xD 12:49:57 i can't concentrate with all this beautiful music around me 12:50:26 Put on some shitty music then 12:51:15 or i could just not concentrate 12:56:58 Debian package single-line descriptions are sometimes less than informative; what'd you expect from "gaia - interface to the planet"? 12:57:17 Some Pandora shit 12:57:28 Just plug in your ponytail 12:57:50 It is, in fact, "an Earth viewer that lets you navigate around the globe and zoom into almost any place". 12:58:02 I'm not sure how that's interfacing with the planet, but. 12:59:19 okay what am i wearing 12:59:42 well okay that's not fair, i'm not outside 13:01:54 It would be much more interfacingy if I could also change what you're wearing. 13:02:06 hmm, true 13:02:28 that sounds really scary after your questions about my ass 13:02:46 or how did the conversation go again 13:22:23 -!- deschutron has joined. 13:22:48 RIP 13:24:45 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 deschutron: Soon it'll forward to oracle.com/ogppl , and be renamed to the Oracle General Purpose Programming Language 16:00:45 Also, Solaris will be renamed to Oracle System Services 16:01:12 And they'll try to rename JavaScript to OracleScript 16:01:55 Then they'll rename VirtualBox to Oracle Virtual System and MySQL to the Oracle Database Sy--no wait. 16:02:55 MySQL will be renamed Oracle Database Demo :P 16:03:44 Can't MySQL just be forked? 16:03:53 Sure, but why? PostgreSQL is better. 16:04:15 Easier on systems already using MySQL? 16:04:34 I'm sure Oracle provides a very handy upgrade path :P 16:04:41 "Oracle General Purpose Programming Language" haha 16:05:49 yeah they could make a fork called OurSQL or something 16:05:53 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 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 phew 16:54:09 1.5 dm snow during the night to today, then when I got home, another dm of snow 16:55:51 also: open and mostly flat landscape around here and strong winds 16:56:04 so really really bad roads today 16:58:02 AnMaster: who measures in decimetres? 16:58:27 IMO, 0.15m, 15cm, and 150mm would all be more plausible units there 17:02:04 scarf, err, dm isn't all that uncommon in Sweden 17:02:33 as in "a few decimetres" or such. 17:02:54 scarf, oh and there is a class 1 warning for this part of the country 17:03:06 (note: higher numbers are worse, it goes up to 3) 17:03:39 hmm, 25cm of snow would be enough for a severe weather warning here in the UK 17:03:46 but then, we're less used to large amounts of snow 17:04:20 Sweden. 17:04:23 Sweden is so weird. 17:04:33 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 scarf, really, this winter has been unusually bad 17:04:52 -!- tombom has joined. 17:04:54 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 *buses 17:05:15 scarf, well same line, so two buses on the same line met 17:05:23 really they had a hard time managing (I was in one) 17:05:55 scarf, anyway what about non-articulated buses. 17:06:15 AnMaster: oh, I see those all the time 17:06:23 the record was something like 20 at once, that was a fun day 17:06:34 scarf, I meant: the above scenario for other buses... 17:06:45 or maybe you don't get enough snow to have a street made so narrow due to snow... 17:06:48 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 heh 17:07:02 they had to close the roundabout as a result, while they did safety checks 17:07:19 and pretty much every car driver avoided the city centre that day, but the busses didn't 17:07:26 and they somehow managed to all be clumped in a really huge line 17:07:35 nothing for half an hour, then 20 at once, on a huge range of different routes 17:08:33 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 scarf, oh and skyscraper, how many stories does it need to be that 17:09:22 rather than just a tall house 17:09:37 AnMaster: not sure, I think it's a relative term 17:09:51 but it's one of the tallest buildings in Birmingham, many tens of storeys 17:09:53 *stories 17:10:35 could 15 stories or so be a sky-scraper anywhere? 17:10:42 that is about the tallest around here I think 17:11:08 and here = not just this town, but also the city a bit away 17:11:31 in this town, I guess around 5 stories, maybe 7 in some of those newer houses... 17:12:52 not sure 17:13:49 -!- oerjan has joined. 17:13:55 -!- cheater has quit (Ping timeout: 245 seconds). 17:14:44 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 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 scarf, btw, the snow outside the university reached above my knees outside one of the doors I had to reach 17:16:30 due to the wind blowing it up against the house 17:16:39 not nice 17:16:40 cpressey: the header files take clues from the compiler as to which POSIX calls they should include 17:16:52 oerjan, bad weather in norway too? 17:16:58 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 oerjan, some 2.5 dm or so since yesterday here 17:17:07 and still snowing 17:17:08 but you can write your own #defines in order to select one yourself 17:17:40 AnMaster: no new snow here, although below -10 temperatures, no wind to speak of. i don't really call that bad... 17:17:42 scarf: Thanks. 17:17:56 oerjan, well strong wind here... 17:18:09 cpressey: man 7 feature_test_macros describes the whole mess 17:18:26 oerjan, official warning (lowest level) from SHMI and such 17:19:06 i saw some warnings on yr.no in weeks previous, although i think trondheim was mostly missed 17:19:26 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 oerjan, lucky you 17:19:43 no, milliseconds are too fine-grained, and that's actually impossible in DOS 17:19:54 (the minimum sleep length is 1/19.2 seconds in DOS, for some reason I don't fully understand) 17:20:08 we did have approx -20 temperatures for a short while, though 17:20:11 oerjan, fun yr.no claims it isn't snowing around here any longer 17:20:18 looking out I have to strongly disagree 17:20:32 true, it's not always accurate 17:20:50 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 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 oerjan, also it is generally better than most other ones I know of 17:21:18 thus when it isn't better it is fun to poke fun at it 17:21:21 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 oh do you look at yr.no often too? :D 17:21:50 or you could require SUSv2 compatibility (#define _XOPEN_SOURCE 500) and use usleep 17:21:52 (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 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 setting the PIT to a higher freq 17:22:00 or something such 17:22:30 it's in cooperation with the norwegian meteorological institute, you'd imagine they had _some_ clue 17:22:35 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 oerjan, nah, they just check the weather stone 17:23:20 *different 17:23:28 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 yep, time 17:24:12 :D 17:24:30 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 cpressey: #ifdef __STRICT_ANSI__ 17:24:52 the feature test macros work both ways round! 17:25:11 -!- Asztal has joined. 17:25:12 And scarf will even volunteer that information. This must be my lucky day! 17:25:14 although, I think that's a glibc definition 17:25:22 which is a really perverse sense of portability 17:25:47 (if you wanted to be less perverse, you'd instead check that, say, _POSIX_C_SOURCE /wasn't/ set) 17:27:20 Yes. 17:27:34 -!- cheater has joined. 17:32:01 cpressey, -ansi is C89 iirc? 17:32:19 AnMaster: Yup. 17:32:28 cpressey, so what is wrong with C99 17:32:37 The manpage even says it's equivalent to "-std=c89". 17:32:53 don't claim it jumped the shark, it didn't. The difference to C89 aren't that large 17:32:54 AnMaster: Nothing's "wrong" with C99, I just don't want to require it. 17:33:01 cpressey, meh 17:33:15 No, it didn't jump the shark :) 17:33:20 everything supports the most useful subset of C99 these days. Windows doesn't count (and on windows icc does it) 17:33:24 (and mingw) 17:33:27 (and so on) 17:33:51 AnMaster: I guess you did not see me type "sick sense of pride" twice above? 17:33:56 hardly anything supports all of C99, though 17:34:05 scarf, sure, complex numbers thingy and such 17:34:17 AnMaster: I know you dislike python 3, but at least it exists 17:34:19 C99 doesn't, really 17:34:25 it's just a standard that only half caught on 17:34:32 -!- rodgort has quit (Quit: Coyote finally caught me). 17:34:38 "most useful subset" = stdint.h, restrict, stdbool.h, inline, // comments, for (int i ...) and a few such things 17:34:50 oh and .fieldname = foo initialisers 17:34:54 -!- rodgort has joined. 17:35:23 Hey, at least there's only one C99. There's like three RSS 2.0's. 17:35:59 there are two C89s, though 17:36:01 well, C89 and C90 17:36:10 hilariously, they're identical except for the section numbering 17:36:14 which makes them rather hard to quote 17:36:32 scarf, you just *love* to mention that right? 17:36:48 AnMaster: not massively, but it's worth mentioning in this context 17:36:50 I mean, I heard it so many times 17:36:53 from you 17:37:33 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 not aimed at at me every time no 17:38:54 scarf, also hard to grep for due to exact wording differing 17:41:15 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 scarf, so around 45 cm of snow then 17:42:24 that's a lot for one day 17:43:11 scarf, quite, 10-15 cm being more normal "lot of snow for one day" around here 17:44:45 this has been both the coldest and the snowiest winter for a long time 17:44:56 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 scarf, oh btw, about 40 cars has gone over the side of the roads in this . Due to the extremely slippery roads, partly caused by snow blowing across them. 18:25:14 is there a funge like befunge-93 but with inserting and removing rows/columns? 18:25:49 and is it tc? 18:26:45 cheater4: ooh, I wrote something a bit like that 18:26:52 now I'm trying to remember the name 18:26:55 http://esolangs.org/wiki/Shove 18:27:02 no, not that 18:27:03 'a bit'? 18:27:07 'splain 18:27:21 sprain your brain 18:27:22 lol 18:27:46 i sprain my brain when i'm reading the mysql manual. 18:27:57 cheater4, use postgresql 18:28:00 doesn't seem to be online, how strange 18:28:49 fuck sql and their non-deterministic totalitarian regime 18:29:06 Shove is conspicuously absent 18:29:07 scarf: just write it again, what could be so hard. :p 18:29:42 reference interp: http://pastebin.ca/1786097 18:29:47 strangely, I seem to never have written a spec 18:29:49 but I believe it's TC 18:30:45 aha 18:30:48 so it is shove after all? 18:30:53 yes, just not online 18:31:11 -!- kar8nga has joined. 18:31:38 jesus christ perl 18:31:39 i hate perl 18:32:02 why? 18:32:28 why not? 18:32:36 i hate it because i don't know it. 18:32:40 if your having perl problems I feel bad for you son, I got 99 programming problems but regex ain't one 18:32:46 isn't that good enough for you? 18:32:55 i don't have problems with regex 18:33:04 but RAP (regex ain't perl) 18:33:18 MissPiggy: that a quote? 18:33:22 yes 18:33:25 im rapping about perl 18:33:28 it's from an old blue song 18:33:31 blues 18:33:47 um i mean literally 18:33:51 no 18:33:53 it's modified 18:35:26 -!- Gracenotes has quit (Read error: Connection reset by peer). 18:36:01 -!- impomatic has joined. 18:36:05 Hi :-) 18:36:10 i note that googling "if you're having perl problems" gives several relevant hits, but not with "regex" 18:37:09 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 i conclude that regexes _are_ a problem in perl ;D 18:37:28 There are rappers with guns after me 18:37:29 Enemies that want to make sure I'm dead 18:37:29 Rap critics that say, "he only cares about money and women" 18:38:24 we scandinavians frequently rape after dinner 18:39:38 heck if it's old _enough_, it may not have been a joke when it started 18:42:23 Is anyone planning to enter the CROBOTS tournament? http://crobots.deepthought.it/home.php?link=91 18:45:39 Hmmm... not much BF_Joust action :-( 18:45:54 unfortunately not 18:48:42 GCC hates tail-call optimisation when longjmp is in use. 18:57:37 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 pikhq, are you trying to implement call/cc? 18:58:00 if so, arrgh, and that won't work after you returned 18:58:17 AnMaster: call/cc with continuation-passing style. 18:58:38 Meaning no returning. 18:58:51 It works, GCC just doesn't tail-call optimize it at all. 19:00:05 dude if you wantCWCC don't use longjmp 19:00:44 MissPiggy: But it works just fine if you write continuation-passing style. 19:00:56 This means that functions never, ever return. 19:01:05 pikhq, so longjmp() isn't tail call optimised? 19:01:36 AnMaster: No, functions *with them* aren't tail call optimised. 19:02:12 A tail call to fact becomes "call fact;addq $248, %rsp;ret" 19:02:51 -!- Sgeo__ has joined. 19:02:58 And a tail call to longjmp becomes "call longjmp". 19:03:09 Not "longjmp and then ret", just 19:03:13 "call longjmp". 19:03:43 __attribute__((noreturn)) makes GCC fecking stupid. 19:03:56 pikhq, well longjmp doesn't return 19:04:07 AnMaster: Yes. "jmp longjmp" would be valid. 19:04:24 That would be a tail-call optimisation. 19:04:35 my guess is that longjmp is coded in such a way that it expects to be called by a call 19:04:36 pikhq, well since it restores the stack, the stack growing is not an issue 19:04:50 scarf, iirc longjmp is a builtin for gcc 19:04:59 AnMaster: It's not. 19:05:01 that is just iirc though 19:05:05 pikhq, hm? really? 19:05:05 I'm looking at the assembly. 19:05:12 pikhq: it's a bit of both 19:05:18 Builtins get handled differently. 19:05:26 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 but it ends up being turned into a cal in the asm 19:05:34 It's almost certainly part of libgcc.a. 19:05:36 ah it seems to be libc 19:05:37 -!- Sgeo_ has quit (Ping timeout: 264 seconds). 19:05:41 *call 19:05:46 extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) 19:05:46 __THROW __attribute__ ((__noreturn__)); 19:05:46 But it's not a builtin. 19:05:54 The builtins are invariably inlined. 19:06:08 pikhq, then what about libgcc 19:06:09 pikhq: it has properties of a builtin, and properties of a nonbuiltin 19:06:30 libgcc_s even 19:07:14 AnMaster: Mmm. 19:07:41 or maybe that is just for unsupported instructions kind of stuff (like 64-bit division on 32-bit x86) 19:07:55 scarf: Anyways. It seems that longjmp is part of libc. 19:08:30 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 hmm, or is that setjmp? 19:08:43 setjmp is the crazy one. 19:08:48 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 Among other things, it's declared __attribute__((returns_twice)). 19:10:26 that's a beautiful attribute 19:10:32 and not one that's officially documented, I think 19:10:36 besides, it can return more than twice 19:11:01 -!- MigoMipo has quit (Ping timeout: 264 seconds). 19:11:07 "Returns twice" just means "there is more than one return here. Make sure all registers are dead." 19:11:41 scarf, err, setjmp has the "return twice attribute" yeah 19:11:55 scarf, but what other strange calling convention would there be 19:12:16 gah, now I'm going to have to look at libbf/setjmp.s 19:12:17 and not one that's officially documented, I think <-- yes it is 19:12:25 I'm 100% sure I read the docs 19:12:50 pikhq, isn't vfork() also returns_twice? 19:12:54 not sure about fork() 19:12:57 AnMaster: Yeah. 19:13:03 even though it returns twice it happens in different processes 19:13:05 fork() isn't. 19:13:15 It returns twice, sure, but once per stack. 19:13:20 pikhq, but... on linux vfork() is just fork() iirc? 19:13:25 as in, it is mapped like that 19:13:32 AnMaster: not quite 19:13:33 since linux does COW anyway 19:13:39 vfork messes with the scheduling on linux 19:13:45 scarf, in what way? 19:13:49 such that the parent won't run until the child execs 19:13:54 well yes 19:13:55 AnMaster: No. 19:13:58 so you need a mutex or such 19:14:03 to make it wait 19:14:07 it's safe under the same circumstances as it's safe on non-cow systems 19:14:11 AnMaster: vfork() halts the parent until the child exits. 19:14:16 pikhq: or execs 19:14:20 which is the normal use-case 19:14:30 By any of: _exit, fatal signal, or exec. 19:14:38 pikhq, or _Exit() 19:14:41 scarf: The *sane* use-case, you mean. :P 19:14:54 pikhq: the *portable* use-case, I mean 19:15:03 because vform means something rather different on, say, SunOS 19:15:05 *vfork 19:15:05 AnMaster: _Exit is an alias for _exit. 19:15:15 pikhq: different standards 19:15:39 pikhq, well, _Exit is C99 too 19:15:43 _exit() is posix 19:16:06 Ah. 19:16:17 Really should look at the feature test macros in the man page more. 19:16:28 beats me why they didn't just use _exit() in C99 19:16:36 after all, the behaviour is identical 19:16:38 POSIX requires that _Exit be an alias for _exit. 19:16:45 well yes 19:17:05 But it makes no sense for the two of them to exist. 19:17:09 huh 19:17:11 wth 19:17:18 okay this is strange 19:17:24 3p comes before 2 in my man 19:17:25 on arch 19:17:33 reverse (and saner) way on ubuntu 19:17:45 now to find where to fix it on arch... 19:18:20 ah /etc/man_db.conf 19:23:27 -!- MizardX has quit (Ping timeout: 276 seconds). 19:31:31 -!- tombom_ has joined. 19:33:19 I've got half a mind to do this with getcontext and setcontext. 19:33:23 (oh, the evil I can do!) 19:34:22 -!- oklopol has joined. 19:34:39 pikhq, they are removed and/or deprecated in POSIX 2008 iirc 19:34:41 -!- tombom has quit (Ping timeout: 258 seconds). 19:34:51 ah yes 19:34:53 man page says: 19:34:56 " 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 pikhq: it's because _exit is in user namespace in C89 19:35:05 rather than implementation namespace 19:35:16 so adding it might have broken existing C89 programs that used it as a variable name (!) 19:35:20 scarf, so what about printf()? 19:35:24 isn't that user name space? 19:35:32 AnMaster: But POSIX threads aren't a replacement. 19:35:39 pikhq, not my fault 19:35:49 I know, just debating. 19:35:58 AnMaster: yes, unless you include stdio.h 19:36:04 Pthreads are... Threading. getcontext et al are continuations, with which coroutines can be done. 19:36:12 (and thereby userspace 'threads') 19:36:28 pikhq, you could simulate getcontext/setcontext with posix threads and mutexes 19:36:34 presumably, they had a choice of making you #include to get _exit(), or just calling it _Exit() and putting it in a preëxisting header 19:36:37 o.O 19:36:38 scarf, .... 19:36:43 Yes, you could. 19:36:52 Dear lord. 19:36:58 pikhq, what? 19:37:04 This would be the most evil fibonacci sequence implementation ever. 19:37:10 what? 19:37:13 pikhq: I did something similar in continuation.i 19:37:20 using INTERCAL threads to simulate continuations 19:37:24 Continuation-passing style using POSIX threads. 19:37:29 pikhq, wonderful! 19:37:53 pikhq, a bit irritating on implementations not using user space threads 19:38:02 on m:n mappings it shouldn't be too bad 19:38:11 on 1:1 mappings, well, it would be bad 19:38:24 AnMaster: Could just link against GNU userspace threads for those platforms. 19:38:32 pikhq, such as linux? 19:38:38 linux uses 1:1 threads 19:38:54 freebsd used to use m:n but switched to 1:1 too 19:39:02 most other are 1:1 I think 19:39:13 NPTL uses either 1:1 or m:n. 19:39:21 ntpl can use m:n? 19:39:23 link? 19:39:30 I never heard about this before 19:39:34 Not sure how to switch it over to m:n, but Wikipedia says it can. 19:39:44 nptl* 19:39:46 Argh. 19:39:52 pikhq, what? 19:39:53 No it doesn't. 19:40:03 "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 That's just saying "this is possible". 19:40:11 -_-' 19:40:13 yeah 19:40:35 but linux doesn't do it 19:40:53 GNU Portable Threads are M:1. 19:41:15 Slightly inefficient, but work just about everywhere. 19:44:16 (i think there was a big error in it when i found it, which i removed :D) 19:44:25 darn windows 19:44:30 oerjan, big error in what? 19:44:54 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 AnMaster: Well, doing that I would have *one* advantage. 19:45:57 Writing in a functional style makes everything automatically reentrant. 19:46:02 Mmm, immutable values. 19:49:21 Though, if I did everything with getcontext et al, I could do stuff like have garbage-collected stacks. Which amuses me. 19:49:46 Doing continuation-passing style with pthreads would be a bit like doing it with bash shell calling "exec $0"... no? 19:50:12 cpressey: Remarkably similar. 19:52:09 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 I think I just liked the term "continuator". 19:52:55 pikhq, how could you gc the stacks? 19:53:04 pikhq, also I doubt boehm-gc would like it very much 19:53:12 AnMaster: Stacks are explicitly allocated. 19:53:34 pikhq, boehm-gc would go mad 19:53:39 You literally have to allocate a stack and stick it into a context for creating a new context. 19:54:36 pikhq, what if you realloc() it? 19:54:36 -!- GreaseMonkey has joined. 19:54:40 or anyway 19:54:44 how do you grow it 19:55:09 -!- BeholdMyGlory has joined. 19:55:13 Generally, you just allocate a sufficiently large stack. 19:55:32 But it's normally allocated memory. 19:55:39 Which happens to be where the stack pointer is. 19:55:51 'lo. 19:56:27 hard disk's a little slow this morning 19:57:21 mhm 19:57:39 GreaseMonkey, why are you still using a legacy rotational storage device? 19:57:55 also instead of flying cars: WHERE ARE MY DATA CUBES? 19:58:15 AnMaster: so how much are, um, 160DMGB+250DMGB SSDs? 19:58:26 DMGB = drivemakers' gigabytes = 1000^3B 19:58:27 wth is DMGB 19:58:56 GreaseMonkey, thanks, will use that against ehird (he uses GB/GiB) 19:58:56 i completely refuse to refer to them as just GB 19:59:12 GB was always 1024^3 19:59:27 those who insist we use GiB for that should learn to stop being so cheap 20:00:12 some country should bring in a legislation which enforces that a xB is 1024^y bytes 20:00:28 GreaseMonkey, G = 1000 in the SI system though 20:00:31 because 1000^x is just false advertising 20:00:37 or are you using kig for 1000 grams? 20:00:42 -!- augur has quit (Ping timeout: 252 seconds). 20:00:51 GreaseMonkey, ^ 20:00:58 well, note that there's kg, and KB 20:01:01 also they should just use cyliders 20:01:04 cylinders* 20:01:26 it was always 1024 for a KB, anyway 20:01:41 kig = 1024 grams? 20:01:52 thing is, with metric, you're working with real numbers 20:01:54 -!- augur has joined. 20:02:03 and a human is supposed to measure it 20:02:04 wow: http://labs.ripe.net/content/pollution-18 20:02:08 (usually) 20:02:17 but with a computer, you're working with integers 20:02:17 it's a graph of what happened when 1.1.1.0/24 was put live on the internet 20:02:23 GreaseMonkey: The SI prefixes are useless for computers, yes. 20:02:25 kig = 1024 grams? <-- ah hm 20:02:29 basically, the people who owned it got DOSed 20:02:37 This is why we shouldn't use SI prefixes. 20:02:40 make it, dmkg for "drive makers kilogram" 20:02:45 Mmm, gibibytes. 20:02:51 to keep with GreaseMonkey's logic 20:02:59 should be Kig 20:03:07 capital K on KiB 20:03:09 thing is, it was always 1024 bytes to a KB 20:03:19 err 20:03:22 it was also always 1000 grams to a kg 20:03:39 isn't 1.0.0.0/8 private? 20:03:41 oh wait 20:03:43 that is 10 20:03:45 AnMaster: No. 20:04:00 1.0.0.0/8 was recently assigned. 20:04:08 However, it's been used as a private space. 20:04:25 (it was reserved by the IANA since '81) 20:04:28 there's a huge amount of unofficial use of 1.0.0.0 20:04:35 at first i thought you said they allocated 10.0.0.0/8 20:04:50 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 good point 20:05:23 and it looks like RIPE decided to put it online for a bit to see what happened 20:05:29 (the result was chaos, as you can imagine) 20:06:20 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 it's not so bad considering that they actually tested it before attempting to release it 20:08:54 it's brilliant that they even thought of testing 20:09:29 that might be why AW's server was so damn slow 20:09:51 scarf, I couldn't imagine before reading it that it was chaos 20:10:11 mainly because I couldn't imagine people would be abusing reserved prefixes 20:10:20 AnMaster: Wikipedia has edits from 1.2.3.4, you can check that yourself 20:10:29 that's what cottoned me on to thinking that there might be a problem 20:10:35 (it also has edits from 127.0.0.1, which is amazing) 20:10:38 scarf, what does that signify btw 20:10:44 the 1.2.3.4 thing I mean 20:10:54 it means that someone, probably a dev, put a fake IP in for the edit 20:10:59 although I'm not sure whyt 20:11:00 *why 20:11:03 hm 20:11:12 scarf, as for those 127.0.0.1, what sort of edits 20:11:23 I guess someone used an ssh tunnel... 20:11:23 you can check for yourself, you know 20:11:29 http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Special:Contributions/127.0.0.1 20:11:33 scarf, I don't know how to search on the ip 20:11:34 ah 20:11:47 looks like mostly interwiki links to the Russian Wikipedia 20:11:55 yep 20:12:02 so a bot that wasn't properly logged in? 20:12:31 http://en.wikipedia.org/wiki/User_talk:127.0.0.1 is not that bad either 20:12:41 "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 hehe 20:13:14 "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 err 20:13:24 is that backwards? 20:13:24 ARGH BALLS i can't get on wikipedia >_> <_< 20:13:40 AnMaster: yes, it's backwards 20:18:00 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 no idea there 20:19:20 might be worth mentioning that it's changed hands since 20:19:43 also why allocate 1/8 20:19:50 just switch to ipv6 already dammit 20:20:01 scarf, what changed hands? 20:20:26 AnMaster: 1/8 20:21:21 hm 20:30:21 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 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 cpressey, it *is* about our only hope atm 20:37:58 cpressey, any alternatives would take years to develop 20:38:00 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 and we don't have that amount of time any more 20:38:16 before ipv4 runs out completely 20:38:33 cpressey, also I use a sixxs tunnel 20:40:34 cpressey, my isp has an ipv6 block allocated, they don't use it though 20:40:39 also I doubt my router could handle it 20:40:46 could telnet to it and check it's menus 20:40:55 (it's a speedtouch adsl modem/router) 20:41:48 I remember trying NetBSD once, and it insisting on using IPV6. That was not fun. 20:42:14 Comcast is beginning the switch to IPv6 *now*. 20:42:28 How very NetBSDish... "No! We will do it the RIGHT way, no matter what the cost!" 20:42:40 ...what the crap 20:42:49 cpressey: heh 20:42:52 netbsd should still be using IPv2 20:43:01 THAT seems more netbsdish to me 20:43:08 GreaseMonkey: Heh 20:43:39 my netbsd experience is that it takes up sod-all RAM 20:44:15 GreaseMonkey: Garbage collection and manual memory management are highly overrated. 20:44:29 Just statically create a heap of a couple gigabytes and hope it works. 20:44:30 :P 20:45:06 just use your nanobots to create a few cubic meters of computronium 20:46:38 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 cpressey, my isp hasn't started going ipv6 yet 20:48:33 also 20:48:37 things will be bad 20:48:45 because almost no servers will have ipv6 20:48:52 so you will have to go through 6-to-4 20:48:54 and that 20:48:59 will result in problems 20:49:06 like connection limit counts for irc 20:49:07 and what not 20:49:24 also wikipedia banning 20:49:36 I'd expect wikipedia to go to ipv6 some time 20:49:41 well yes 20:49:48 scarf, still, the issues are huge 20:50:00 going home now, anyway 20:50:01 bye everyone 20:50:04 scarf, imagine rate limiting on lots of places 20:50:05 scarf, cya 20:50:09 -!- scarf has quit (Remote host closed the connection). 20:50:09 cya scarf 20:56:44 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 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 Well, I've got CPS with getcontext et al... 21:43:51 And it behaves... *Weirdly*. 21:44:38 It goes through 3 continuations just fine, before going up to a nulled out stack frame. 21:45:33 Yes, a nulled stack frame. 21:50:06 I'm sorry I ate your stack frame. 21:50:09 I was hungry. 22:01:29 And it is in fact a stack fram that was valid. 22:01:36 It just somehow gets nulled out. 22:01:46 I don't know how. 22:06:50 It would appear to be a result of a too-large new stack... 22:06:53 Somehow. 22:11:44 ... The program changes behavior with normal malloc. 22:12:10 With GC_MALLOC, it computes factorials validly for n in [0..11]. 22:12:27 With normal malloc, it loops infinitely. 22:16:07 http://sprunge.us/RNie 22:18:06 niht 22:18:08 night* 22:20:59 ni! 22:22:40 -!- MizardX has joined. 22:23:28 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 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 And Then There Were 42. 00:17:28 wow. 00:17:37 we really understand life. 00:17:47 at least conway's version, that is 00:23:29 Boo-yah! 00:23:31 -!- cpressey has left (?). 00:23:47 -!- SimonRC has quit (Ping timeout: 246 seconds). 00:24:08 conway's life is awesom 00:24:14 Are there any life-based languages? 00:27:00 well REDGREEN has a life subset 00:28:31 -!- SimonRC has joined. 00:29:11 hmm 00:29:17 is there a graphical version of REDGREEN somewhere? 00:29:40 no idea. and cpressey just left. 00:29:52 I know he left 00:30:43 i guess you'd want a graphical version of ALPACA, since that's what it's written in 00:31:07 but still i dunno 00:37:20 you could have a simple text-to-image replacement on top of the ALPACA layer 00:37:46 true 00:39:04 does a nice generic one of those exist? 00:39:49 "no idea" 00:45:04 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 *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 Nothing ever reflects well on you. :P 02:35:55 Seriously, one of these guys is a professional programmer, and apparently he's struggling 02:36:06 I think that that reflects poorly on the teacher 02:36:45 Sgeo__: What's the class about? 02:36:53 also, what school? 02:37:03 Data Structures, but currently we're just doing a Fraction calculator 02:37:10 SUNY Farmingdale 02:37:34 A lot of the students are complaining about a previous teacher from a 2xx level course 02:37:42 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 ... Professional programmer. Struggling with data structures. 02:52:20 ... Data structures, a 3xx level class? 02:53:10 Sgeo__: what's complaining about a previous teacher got to do with it?> 02:53:31 coppro, the previous teacher didn't actually teach anything 02:53:39 oh 03:18:04 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it). 03:30:08 so, anyone interested in a program to display a text file with a tile system? 03:56:10 ABCDEFGHIJKLMNOPQRSTUVWXYZABCD 03:56:10 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 hey! : 05:20:16 :D 05:20:24 graaaaacenotes :D 05:29:35 heh, now they're drilling in minor third 05:31:23 oklopol! :D 05:32:26 augur! :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 05:33:49 ::glomp:: 05:34:13 g...lomp? 05:34:23 pounce huggle 05:34:37 argh alarm clock is making a sound 05:34:44 WHY IS THIS MORNING FILLED WITH SOUND 05:34:54 because today is 05:34:56 SOUND DAY 05:35:00 :o 05:35:04 wow that would be cool 05:38:30 BYE 05:38:31 -> 05:38:43 byeee 05:51:36 this is rather useful, javascript:as=document.getElementsByTagName("a");for(i=0;i for link-copying and the like 05:55:50 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 they went up to 8, and i was told that's where all the reeeeally technical math happens 05:56:52 oh, and it was a math university 05:57:30 Gracenotes: ... 05:57:36 Gracenotes: That seems silly. 05:58:55 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 why not express the y with s and k 06:01:41 -!- _s_k_y_ has left (?). 06:01:52 yeah i guess that was a bit rude on my part 06:02:02 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 fukken 08:19:15 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 h' 10:42:43 hi 10:42:45 all 10:42:48 hello 10:43:21 where from 10:43:33 norway 10:43:37 turkey 10:43:45 36 m 10:44:08 39 m 10:44:18 good 10:44:48 what is time there 10:44:57 11:44 10:45:06 same 10:45:15 what s your job 10:45:24 no comment 10:45:28 ok 10:45:43 -!- mustafas has left (?). 10:45:55 huh 10:49:30 -!- oerjan has quit (Quit: Later). 10:49:41 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 Isn't it 17 days now? 15:46:29 -!- MigoMipo has joined. 15:48:21 Yes. 15:48:25 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 Maybe his parents found out what sort of people we are, and forbid him to associate with us. 17:09:10 perverts 17:10:20 that doesn't explain why he's also gone from reddit. oh wait... 17:10:33 Wait, what sort of people *are* we? 17:11:07 Complete professionals. 17:11:12 That's my story and I'm sticking to it. 17:11:27 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 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 Actually, "Is it just me" was exactly the wrong phrase to start that question with :) 17:37:30 lol 17:37:35 that was a total nonsequiter 17:37:52 hm 17:37:57 except backwards 17:38:08 well stop nonsequiting then 17:38:47 Is it just me that sees all the developers around them liking all that operational stuff 17:41:43 well it would be bad if nobody liked it, given that it has to be done 17:53:46 I think maybe some developers like those tasks because they are (in some sense) much easier than designing and coding. 17:56:14 Well, it's also utterly boring :) 17:56:24 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 that's what you get for having a job 18:00:48 True. Although I'm sure this kind of thing happens often enough in open-source projects, too. :) 18:01:55 i'm not a strong support of OS either 18:02:11 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 supporter 18:03:11 only do the work that's fun? in what sense? 18:03:47 i mean i'm under the impression OS programs are not inferior in quality to CS ones. 18:03:57 One sec, I'll try to find the article. 18:04:21 i'll prolly go to sleep soon, but maybe i'll read parts of it. 18:04:39 http://www.jwz.org/doc/cadt.html 18:04:42 It's short 18:07:24 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 which is almost "i just dislike for the heck of it". 18:08:25 *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 I don't like doing non-programming crap (either? that original question was a bit unclear) 19:33:03 it was also 2h ago 19:33:58 version control, whenever it becomes a distinct activity, also sucks a lot 19:35:51 Hm. I don't mind most version control tasks (although I can see how some can be just awful). 19:37:07 I'm getting used to writing test cases. At least there, there's some concrete improvement you can feel. 19:37:33 And some troubleshooting is inevitable. 19:37:48 But configuring Apache and that sort of stuff... ugh. 19:39:39 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 moving stuff around in a VCS that doesn't do moving, for example 19:41:46 Oh heck yeah. Maybe it's just me, but distributed version control seems much more hassle than it's worth. 19:42:20 I think DVCS:es are more modern and thought-through and thus handle larger projects better 19:43:22 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 yeah, CVS has the benefit of only having to work at one file at a time :P 19:44:54 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 it's O(n^2) in the number of existing branches 19:51:23 Nice. 19:52:06 I think CVS is actually also using a hashtable to do this, but iterating it linearly 19:52:18 or maybe their "hashtable" is just a list/array 20:55:17 -!- kar8nga has quit (Remote host closed the connection). 21:04:37 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 *gasp* 21:09:34 Hm, 3PM. Time for lunch. 21:09:55 -!- Sgeo|web has joined. 21:09:58 *sigh* 21:10:13 The idiots in my UNIX class are playing the "penis" game 21:11:23 sounds fun!! 21:11:33 but a bit raunchy for a UNIX class 21:11:56 or am I thinking of a different game.. 21:12:05 * oerjan is afraid to ask 21:26:22 what's the penis game 21:29:02 -!- Gracenotes has quit (Ping timeout: 246 seconds). 21:29:04 Where a group of people say "penis" louder and louder. The person who refuses to say it loses 21:29:50 lol that sounds awesome :D 21:30:09 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 "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 They are like you in that they are people :P 21:55:08 this is insulting to all the non-people who happen to be reading that! 21:55:51 -!- MigoMipo has quit. 21:59:36 pfft, people 22:04:25 -!- MigoMipo has joined. 22:08:05 "It is made by people who like you." Then they'd be even better suited for starting that dating service, no? 22:09:07 "it is made by people, like you". 22:09:16 "It is made by people who hate you and are trying to kill you." 22:10:18 i win because mine was a mom joke 22:10:24 "it is made by norwegians." 22:12:41 same thing. 22:17:04 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 fruit delinquents 22:59:58 Troblem Pomatoes 23:01:00 i find that a spousy loonerism 23:01:59 orle 23:02:02 *orly 23:02:18 0118 999 881 999 119 725... 3 anyway 23:02:29 huh? 23:04:58 -!- wareya has joined. 23:05:18 -!- wareya has changed nick to Wareya. 23:05:29 check MATE! 23:11:04 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 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 http://cymonsgames.com/forum/index.php?topic=191.0 23:48:07 What game be this? 23:48:36 http://cymonsgames.com/asciiportal/ apparently 23:49:19 Looks cute. 23:58:53 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 Sam Hughes responded to me! *squee* 02:28:54 Sam Hughes? 02:29:28 The qntm.org guy 02:29:42 Fine Structure, the Ed stories, Geocide 02:32:40 oh, he does things outside of everything2? 02:33:44 -!- MizardX has quit (Ping timeout: 260 seconds). 02:34:46 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 Pthing: www.qntm.org . Read. 02:48:09 but i can't, jibreel 02:50:24 ? 02:50:48 nyekulturny 02:50:56 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 why do i keep reading john gabriel's knols 06:05:24 it hurts so much 06:06:45 oklopol, fiction? 06:06:57 ouch got to run bbl 06:12:03 yes 06:12:15 guys 06:12:21 06:12:21 thems=[] 06:12:21 i feel like i spoke with one of you at one point 06:12:28 about some sort of graph transformation 06:12:34 http://knol.google.com/k/are-real-numbers-uncountable# 06:12:49 famous fiction 06:12:51 maybe it was you, oklopol, i dont know 06:14:13 but basically it was a transformation of a rooted graph into a tree where like 06:14:36 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 does that sound familiar to anyone? 06:22:05 yes 06:22:12 but i don't recall any use for it 06:24:00 -!- sebbu2 has joined. 06:24:17 whats it called 06:24:19 tell me, please 06:24:20 D: 06:25:08 it's a treificated graph, obviously 06:25:10 see you -> 06:25:14 :| 06:25:19 nooo 06:25:26 i need to know what its called! :( 06:26:55 -!- sebbu has quit (Ping timeout: 240 seconds). 06:27:19 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 oklopol, fiction? 10:10:31 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 is there something wrong with me? 12:50:12 I wanted to write a program, and decided Java was the best language for it 12:50:34 :o 12:51:15 so far it's going rather well 12:51:30 although this confirms my suspicions that Java absolutely needs an IDE specifically designed for it 12:51:49 scarf: What kind of program? 12:52:03 i don't think a java project of mine has ever failed 12:52:04 Ilari: I'm trying to write a ttyrec player that's better than any of the current ones 12:52:06 but a GUI one 12:52:11 but i've just done semisimple uni projects 12:52:15 and with all sorts of interesting features 12:52:17 in it 12:53:17 Java doesn't allow much crazy stuff. But the reflection part is really nice... 12:53:27 I'm not trying to do crazy stuff, though 13:11:25 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 the most crazy thing I've done so far is subclassed BasicSliderUI and overloaded the method that paints the background 13:16:49 so as to have a slider with a custom background 13:30:58 why's that crazy? 13:32:07 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 it's fiction, it's just that the author doesn't know this <-- ouch! 14:52:03 although this confirms my suspicions that Java absolutely needs an IDE specifically designed for it <--- iirc there are plenty 14:52:25 though the only ones I can remember the names of right now are eclipse and netbeans 14:52:44 scarf, and what the hell is that program? 14:52:48 AnMaster: there are plenty, I'm using netbeans because it's what I'm supposed to teach here 14:52:54 and it's a ttyrec player 14:53:03 what the crap 14:53:10 what's the what the crap for? 14:53:24 that java would be best for that... 14:53:37 -!- augur has quit (Ping timeout: 264 seconds). 14:53:37 scarf, is ttyrec a text format? Or binary? 14:53:40 binary 14:53:50 but it's meant to be portable, cross-platform, GUI and have loads of features 14:53:52 hard to parse? 14:54:06 easy to parse, hard to interpret 14:54:20 also fun: jaunty kernel *source* update, and modules, but no the actual kernel image itself 14:54:27 and it changed patch level number 14:54:29 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 or whatever it is called 14:54:32 AnMaster: I noticed that too 14:54:41 same in karmic, except there was a kernel update the next day 14:54:55 scarf, any bug report for it in jaunty? 14:55:12 ah here it is, ran apt-get update again 14:57:28 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 can't see any obvious "lots of text only" package either 15:02:24 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 gah at the netbeans update dialog 16:28:47 it concatenates the licences of all the updates that are being applied, and asking if you agree 16:29:04 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 oh, there are other licences there too 16:31:14 3 copies of the Apache licence so far 16:31:21 Heh. A need for "license de-duping." 16:31:35 and a modified BSD3 which bans using a particular name for derivative works 16:31:52 cpressey: Debian actually has that 16:31:52 Oh, you got to love the BSD license forking. 16:32:00 it symlinks all the copies of the GPL to a common location 16:32:25 Well, I'll defeat it by rewording my BSD disclaimer! 16:32:45 I was kind-of scared there'd be a BSD4 in there somewhere 16:32:57 done about 2/3s, though, and haven't seen one yet 16:33:14 4. Thou shalt not distribute as part of a "Hits of the 90's" compilation. 16:34:12 ooh, LGPL 16:35:04 hmm, looks OK 16:35:16 the ridiculous thing is, that accepting an open-source licence agreement is generally irrelevant anyway 16:36:05 Given that most of the conditions only apply once you copy it or modify it -- yes. 16:36:09 scarf: what's wrong with bsd4? i am ignorant on that topic 16:36:17 cheater: the "odious advertising clause" 16:36:30 oh, they still make new versions of the unmodified? 16:36:33 basically, the fourth clause of the original BSD licence basically required credit in documentation and on startup 16:36:41 i thought they were gone from the new versions 16:36:43 they are 16:36:46 BSD3 is newer than BSD4 16:36:49 oh you mean the bsd 4clause 16:36:51 (3-clause BSD, 4-clause bSD) 16:36:52 *BSD 16:36:53 -!- whtspc has quit (Ping timeout: 240 seconds). 16:37:06 yeah, heh 16:37:12 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 rolling my own has the advantage of being able to put various customisations in, like starting halfway through the ttyrec 16:40:28 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 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 That also appears to be the opinion by most sane people. 17:24:50 pikhq: agreed 17:26:26 -!- kar8nga has quit (Remote host closed the connection). 17:35:13 -!- tombom has joined. 17:58:36 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 No, C99 implies the availability of a small subset of SUSv3 system calls. 17:59:43 And that's only because that's how you *implement* stdio.h. 17:59:57 C99 does not imply, say, fork. 18:01:05 I think I'm going to uninstall this transformation pack thing 18:02:54 pikhq: Interesting. And somewhat of a relief. 18:03:49 different C standards have started taking features from the others, which is not exactly surprising 18:04:18 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 there's a list of C99 headers at the end of C99 itself 18:04:58 Cool. 18:04:59 let me try to find one of the public drafts (the actual standard is behind a paywall) 18:05:11 I think I have a link somewhere... 18:06:15 Why do you have to pay to see a standard? 18:06:26 Sgeo: that cheeses me off too 18:06:47 cpressey: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf 18:06:55 look at annex B in the table of contents 18:07:12 annex B summarises the contents of the headers, the table of contents says which they are 18:07:28 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 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 that would presumably be a different draft of the same standard 18:08:16 yours is newer than mine, probably works better 18:08:49 BRB restart home my comp survives 18:09:39 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 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 cpressey: it's not "disallow", it's "prevent compatibility problems" 18:17:41 it's perfectly legal to have a function called _exit() in a file that includes stdlib.h in C89, for instance 18:17:46 Ah. 18:17:49 try that in POSIX, and you'll get an error 18:18:00 Well then it is "disallow", but it's for a good reason. 18:18:05 yes 18:18:24 (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 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 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 UNIX standardisation is a mess 18:21:44 Yeah, it is. ok. 18:21:59 (nanosleep is in POSIX, I mean) 18:22:27 * scarf wonders how long it will be before a picosleep becomes necessary 18:22:40 Eerm 18:23:00 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 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 Eeerrm no, not yet. 18:24:11 (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 AmigaOS forbid() and permit() come to mind. 18:26:04 Cooperative multitasking is so nice. 18:26:34 * Sgeo needs to stop appearing in XML 18:27:16 cpressey: I dealt with it back when I was writing windows 3.1 programs 18:27:59 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 0 18:28:32 source of http://www.stubhub.com/all-cities/unc-tickets/ 18:28:33 18:36:06 * Sgeo should probably eat food at some point 18:38:20 -!- oerjan has joined. 18:42:52 "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 how nicely tortuous 18:46:23 I would have said torturous 18:47:15 there's something nicely eso about a function whose only purpose is to determine whether to call it again 18:47:18 what the hell 18:47:30 unfortunately, setlocale has side effects, meaning that it isn't quite so purely beautiful 18:47:34 scarf, it would be worse if it didn't have .. 18:47:35 right 18:49:31 hmm, among other things, that means it's an undecidable problem to tell whether a C99 program is strictly conforming 18:50:01 you could make a turing machine of locales, or something 18:50:34 I like how most undecidable problems suggest Turing-complete esolangs 18:50:37 (admittedly, you can do that /anyway/ in C99, but doing it with locales would be funny) 18:50:45 It's the setlocale tarpit! 18:50:57 -!- pikhq has joined. 18:51:06 cpressey: I read an article about cache effects recently 18:51:10 and was wondering about making an esolang out of those 18:51:26 e.g. multiple threads each of which can only store finite data each, but you can have arbitrarily many 18:51:46 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 That could work, as a design... 18:53:22 bbl -- need food. 18:53:27 it would be horrendously nonportable, but I think that's a plus 18:54:34 What happened to the deliberately slow language? 18:54:44 SLOBOL? 18:54:52 I think people just forgot about it, it wasn't particularly interesting 18:57:36 -!- Sgeo_ has joined. 18:57:41 Accidental hibernation is fun! 18:57:59 Not SLOBOL 18:58:29 The one olsner was making, with the conversion between base e and pi, or whatever 18:58:43 ah 18:58:48 I don't know about that one 18:59:43 -!- Sgeo has quit (Ping timeout: 256 seconds). 19:01:02 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 not massively difficult, although the problem might not be in the javascript 19:01:36 it rather depends on what the issue is, I'd imagine 19:01:46 * Sgeo_ will attempt it 19:01:56 Maybe make a Greasemonkey script 19:02:20 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 (That set includes me. I doubt that it includes anyone else, but still) 19:11:29 -!- augur has joined. 19:11:52 Hmmm 19:12:58 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 And then returns the result as a new list 19:13:19 zipWith 19:13:24 Ah, thanks 19:14:02 oklopol! 19:14:17 meeeeeeeeeee 19:14:33 did you actually recognize that description of a graph-to-tree transformation i described last night? 19:15:15 augur: Transitive closure? 19:15:28 Deewiant: uh.. i dont _think_ so but who knows 19:15:48 If you have a DAG, anyway. 19:16:12 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 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 Ah, not transitive then. I thought you'd get all N' that could be reached from N. 19:17:10 the nodes for b would have a b c as its daughters, etc. 19:17:23 Sounds more like a spanning tree -- sort of the reverse of transitive closure. 19:17:28 a spanning tree huh 19:17:32 Awesome! avast has a virus-scanning screensaver 19:17:39 Not exactly, but similar 19:17:49 no, not a spanning tree at all :( 19:18:28 ...union of all possible spanning trees? :) 19:18:41 :P 19:18:42 no 19:18:45 even then! 19:18:51 the resulting tree is infinitely large 19:19:11 Ah. 19:20:59 If I run a screensaver at the same time XP turns off my monitor, will the screensaver still run? 19:21:02 So by most definitions of "tree" it's actually not a tree :) 19:21:17 well it SORT of is :P 19:21:18 absolutely nothing to do with a spanning tree if you ask me 19:21:32 (The screensaver has side-effects) 19:22:12 i don't know the name for the structure, but really it is the exact same mathematical object in some sense 19:22:24 oklopol: same as what? 19:22:36 i mean if you just care about how things are connected to each other 19:22:39 Sounds more like the closure of all infinite paths through the graph to me, now. 19:22:49 augur: as the original graph 19:22:57 oh, yes, thats part of the point actually 19:23:10 i dont remember who first showed it to me, someone here i think 19:23:26 cpressey: what does "closure" mean there? 19:23:28 and at the time i thought, gosh thats useless isnt it 19:23:46 but ive actually realized that its immensely important to something im working on 19:23:47 well maybe that's a stupid question 19:23:53 oklopol: well, union over a countable set, i think. 19:24:16 countable set of what? or is that your definition for closure? 19:24:51 Countable set of infinite paths, in this case. 19:25:04 At least I hope that's countable :) 19:25:46 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 you'll get the connected component as a set 19:26:36 consider a graph that forms a triangle, everytime you move you have two choices, now consider reals in binary representation 19:27:03 These are good questions; I don't have answers, since I only started thinking about this 10 minutes ago. :P 19:28:23 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 Well, can you have closures of uncountable sets? 19:29:01 what!! 19:29:25 MissPiggy! :o 19:29:26 topological closures are sets that are closed under convergent sequences 19:29:35 topology is all about uncountability 19:29:50 So is that a "yes"? 19:30:01 sure 19:30:46 i mean if i understood what you meant 19:31:12 "can you take the closure of an uncountably large set w.r.t. some operation" 19:32:12 OK, so what' 19:32:26 One sec. 19:32:45 So what's left is to define the operation. 19:33:12 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 this is a truth 19:34:02 And each path is a countable list of nodes, is it fair to say that? 19:34:27 a path in a graph is a function from N to the set of nodes, imo 19:34:36 an infinite graph that is 19:35:05 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 OK, fair enough, but can it be represented as a countable list of nodes? 19:35:42 well there's a surjection from N isn't there :P 19:36:10 But the graph I'm talking about it's infinite (yet). 19:36:16 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 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 so... yes 19:36:41 yes, most likely 19:36:49 Simpler that way, anyway :) 19:37:11 infinite graphs are sexy 19:37:35 coding theory is one of my current obsessions 19:38:34 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 That's sloppy, but hopefully it captures the idea 19:39:10 You're actually making copies of the nodes in g 19:39:26 the thing is the result must be a tree 19:39:36 See, I don't see that part :) 19:39:51 a closure is usually the closure of a set 19:39:59 you don't "see" it? 19:40:00 Well, ok, maybe I do. 19:40:01 It 19:40:13 It's a tree, because you're making copies of the nodes from g 19:40:30 So you have no cycles. 19:40:56 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 i mean, the objects in it will be finite 19:41:27 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 arbitrarily big, sure, but finite things are usually closed under operations 19:41:38 or "finiteness" is 19:41:58 even without cycles the result contains infinite paths 19:42:01 you can return 19:42:09 well, okay, directed plus no loops and maybe 19:43:03 If "without cycles the result contains infinite paths" then I don't understand the construction, sorry :) 19:43:29 see, if you have an undirected graph, then every edge is a loop 19:43:34 Oh, undirected. 19:43:38 Mrrrh :) 19:43:53 i don't know, but that's why "well, okay, directed plus no loops and maybe" 19:44:03 Yeah. 19:44:05 universal covering graph! 19:44:06 in any case no one said no loops 19:44:14 thats the closest ive seen to it, oklopol 19:44:22 infact its EXACTLY what i want 19:44:35 minus reflexing edges 19:44:41 but thats ok, because thats dependent on the graph 19:46:23 it's just for trees says wp 19:46:38 Hard to imagine the usefulness of an infinite tree in a practical application, but then, I'm not a mathematician :) 19:46:42 but it also gives a definition that works without that assumption 19:46:43 so yeah 19:47:11 cpressey: infinite just means you don't have to care it's finite. 19:47:23 Ah. Indeed. 19:47:27 extendable 19:47:36 You could even code this up as some sort of lazy generator... 19:47:41 my back.... hurts... 19:47:43 oklopol: actually its for any connected graph 19:47:54 cpressey: its totally lazy, yeah 19:48:06 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 this is what i meant 19:48:15 but also read 19:48:17 "but it also gives a definition that works without that assumption" 19:48:18 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 atleast as far as you can tell locally 19:48:48 Wellll... you're kind of "looking at it lazily" :) 19:48:50 yeah... and god my back hurts 19:49:04 -!- Gracenotes has joined. 19:49:10 cpressey: i prefer to think of it as a graph iterator 19:49:36 "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 than a graph generator 19:50:09 Now to apply this to Hunt the Wumpus somehow. 19:52:38 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 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 That's what I was trying to say, in a painful, pseudo-mathematical way. 20:09:30 very well then. 20:11:03 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 ah. 20:11:27 oerjan: that's the answer to how to represent it as a closure? 20:11:36 or is it the answer to what its name is? 20:11:51 these were the two questions that were asked, not sure of others 20:11:59 it's the answer to how to define it easily... 20:12:06 I don't know if it's an answer, but it's a succinct way to describe it. 20:12:07 i see 20:13:07 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 don't have augur's original q 20:13:40 because it would be a pretty weird tree :P 20:13:55 oklopol: unless your name is John Gabriel ;D 20:14:02 hah 20:15:02 the infinite paths would be separate connected components of the graph wouldn't they 20:15:13 i mean components of one node 20:15:25 ...i guess we'd need some sort of definition first 20:15:38 oh i meant finite paths 20:15:51 right 20:16:28 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 well with the right topology, you could have the finite paths converge at infinite ones 20:16:48 hmm 20:17:07 a graph's connectedness is just topological connectedness? 20:17:29 if you include the edges as lines, so 20:17:46 i mean they're pretty discrete things... 20:17:48 otherwice the vertices seem somewhat isolated 20:18:25 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 afaiu, really you could only define open sets sensibly as connected components, or discrete topology. 20:18:46 hmm 20:18:48 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 It was one of those joke questions, where the correct answer was that yes, all of them do 20:19:36 But in a topological sense, they do not 20:20:09 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 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 (hm scratch acyclic, that works anyhow i think) 20:21:12 Sgeo_: unless you consider them complex entanglements of strings! 20:21:32 ooooh, sock theory, is there a complete categorization of topological socks? 20:22:16 oerjan: err, do you mean taking as closed sets the connected components in the graph sense? 20:22:31 in fact there is iirc a direct correspondence between finite T0 spaces and trees 20:22:40 -!- kar8nga has joined. 20:22:53 oklopol: oh no, i'm assuming a directed graph 20:22:56 er 20:23:00 s/trees/forests/ 20:23:11 oh no wait 20:23:30 *in fact there is iirc a direct correspondence between finite T0 spaces and finite partial orders 20:23:46 actually that might be forests too 20:23:50 so what exactly would the topology be? 20:24:10 umm 20:24:16 oh 20:24:21 -!- whtspc has joined. 20:24:36 closed sets = for all nodes x all vertices reachable from x? 20:24:42 yeah 20:24:45 ah cool 20:24:52 -!- kar8nga has quit (Remote host closed the connection). 20:25:00 sexy stuff 20:25:09 you could also make that the definition of open, well that's just reversing the graph really 20:25:33 for finite spaces the axioms for open sets == the axioms for closed sets 20:26:12 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 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 whoops 20:42:42 anyway limits require a topology, and linking finite and infinite things in a sensible way is usually done via limits 20:43:00 (of some sort) 20:43:42 -!- bsmntbombdood__ has joined. 20:44:03 -!- ehird_ has joined. 20:44:09 Zero days since last ehird sighting. 20:44:10 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 Oh hi ehird_. 20:44:39 you're alive! 20:44:51 Yes, but it doesn't feel it. I can't believe my life at the moment. 20:44:54 hello ehird_, i'm just as excited about your arrival as the others 20:45:10 oh dear 20:45:22 cpressey: discrete topology means every set is open, which essentially just means you have a set. 20:45:52 I think I've disappeared this long before for similar reasons; maybe I was just especially awesome before disappearing. 20:46:09 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 the book would basically be about set theory. 20:46:45 infinite vs finite groups is a completely different matter 20:46:58 If anyone wants me to explain, I will, in /msg. I don't want it to be logged. 20:47:11 oklopol: Gotcha. 20:47:23 -!- bsmntbombdood_ has quit (Ping timeout: 256 seconds). 20:47:46 (by which I mean "I see", in case there was any ambiguity) 20:48:02 i don't think there was 20:48:35 maybe "gotcha" is easier to interpret as "i have no idea what you mean" 20:48:44 than "i see" which is more neutral 20:48:58 Well, there's the "Gotcha!" as in "Aha! Now you're trapped!" 20:49:11 Which I didn't mean. 20:50:04 hmm, i guess 20:50:55 "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 i mean 20:51:10 it's even wrong 20:51:13 let's retry 20:51:33 the topology of a space is a *subset* of the powerset of the set objects in the space 20:52:20 clearly i couldn't handle such a long string of information 20:52:58 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 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 topology 20:56:15 toplology 20:56:22 Sgeo: looks fairly decent 20:57:29 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 Hi coppro. 21:25:51 He's back! 21:25:59 He liveth! 21:26:22 Yes. Methinks I should link you both to the log of #esoteric-priv so you know what the hell's up. 21:26:49 Perhaps. 21:26:58 http://pastie.org/private/4oxpzgiywxbjobgrsa 21:27:07 Oh, that's logged. 21:27:11 But not easily googleable. 21:27:18 You know what, I don't care. 21:27:55 ehird why did you leave 21:28:00 In true utilitarian form, I'm sorry for dragging you into this and probably making you sadder as a result. 21:28:06 what the hell is priv 21:28:08 MissPiggy: Click the link. It wasn't voluntary. 21:28:16 #esoteric-priv as in private, I created it just to relay that. 21:28:21 O_o 21:28:32 O_o is pretty much perfect. 21:28:50 I'd suspect myself of hallucinating all this if it weren't so fucking gritty. 21:28:54 so are you okay now? 21:29:06 No. I'm still not free. 21:29:13 Y'know, that's perhaps the most retarded way of treating... Anything. 21:29:20 Particularly Asperger's. 21:29:22 agree with pikhq :( 21:29:57 what the fuck 21:30:04 ehird are you in UK 21:30:14 Yes. 21:30:22 (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 s/or/to/ 21:30:57 ehird so when will you be allowed to resume? 21:31:34 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 I mean like not be detained by these people? 21:32:13 ehird_: When is the soonest that you can get the fuck out of Britain? :P 21:32:22 When I... /msg time, I don't want this to be logged. 21:32:37 ehird_: contact your media 21:33:19 Yes, I've been suggested that multiple times tonight. I'm seriously considering it now. 21:33:41 from what I've heard, the British media can be especially harsh 21:34:08 You have no idea. 21:34:36 "Help! Help! I'm being repressed!" 21:35:45 ehird_'s back! 21:36:00 ehird_: When the hell did that mess start, anyways? 21:36:00 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 *cough* 21:36:26 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 Like say september or slightly earlier. 21:36:38 oerjan: I really can't care any more. 21:36:44 If they find the logs, so be it. 21:37:36 like, I'm seriously considering contacting someone myself about this :/ 21:37:53 Well, please ask me first... 21:38:27 yeah 21:38:46 you're clearly smart enough to know what they're doing is bad for you 21:39:10 coppro: Britain's handling of mental health issues is just royally fucked up in general... 21:39:22 Apparently 21:39:57 Heard one too many horror stories from British friends. 21:40:12 ... One to many? Try far too many. Anyways. 21:40:21 What really scares me is that even his parents can't stop them 21:40:34 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 Child's rights, a better punchline I've not heard. 21:42:46 ehird_: It's law in all countries other than the US and Somalia. 21:43:11 But in the modern world, in practice, children have basically no rights. 21:44:18 thankfully, that's not the case everywhere 21:44:20 Not to belittle the situation in any way -- I'm a bit surprised at how unsurprised I am at this. 21:44:57 cpressey: It surprised me only because I was the one it was happening to. 21:45:01 Darned thing doesn't allow parents to veto the state. 21:45:05 No belittling taken. 21:45:07 That's a freaking useless document. 21:45:39 In case anyone doesn't know (cpressey might not, for instance) I'm 14 21:46:26 do you know if there's any legal recourse your parents can take? 21:47:01 (besides seeking asylum elsewhere) 21:47:31 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 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 what does "sectioned" mean? 21:48:43 Institutionalised. 21:49:11 :( 21:49:20 How is it that you're out now? 21:49:40 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 Sgeo: Monday-Friday 21:49:45 *weekend 21:49:46 Ah 21:50:20 ehird_: If I were you, I'd be contacting the press and seeking asylum. 21:50:21 so you have to stay there overnight ?? 21:51:56 MissPiggy: yes. 21:52:12 this is not right 21:52:26 I am very sorry for you being in this horrible situation 21:52:44 Thank you 21:53:17 yeah, this is seriously awful :( 21:53:34 I don't trust the media about anything, I am not sure if that would be to your advantage or not? 21:53:44 I don't know. 21:53:49 They certainly generate massive publicity. 21:53:59 I'm a wreck right now, I guess I've been bottling this up for weeks... 21:53:59 Publicity is likely to be in your favor 21:54:07 but not for certain 21:54:14 It's just hit me how insane this all is... 21:54:19 * oklopol would take institutionalization over publicity... 21:56:30 maybe i'll go get some coke before someone notices i'm insane and removes that freedom -> 21:56:52 At least they are not shooting him up on insulin to make him gain weight... :-/ 21:57:01 I count myself glad that I'm in the US, where our mental health system almost does not exist. :P 21:57:05 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 Canada's nice, but yes, last resort. 21:57:30 If moving I'd much rather do it the regular way if at all possible. 21:57:36 not sure about elsewhere, because you don't qualify under the Convention 21:57:52 ehird_: Just straight-up moving there is pretty easy for you, though. 21:57:58 I'm sure lucky that you guys are clever. 21:58:02 Hooray, Commonwealth. 21:58:24 Europe is the most likely place to move to 21:58:30 Dead easy to move around the EU 21:58:33 yeah 21:58:56 I was mostly looking at Canadian immigration law to satisfy my own curiosity 21:59:31 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 don't worry about that :P 22:00:05 -!- SimonRC has quit (Ping timeout: 246 seconds). 22:00:34 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 i thought your mom said no computer 22:00:54 yeah. It's better for you to come out, because now we can be worried about you if you disappear again 22:00:56 ;P 22:01:06 (seriously) 22:01:18 My mother isn't stupid. :) 22:01:31 yeah i know, but that was my first thought 22:01:33 coppro: Oh, I almost forgot! I'm gay. Joking :p 22:01:38 eh, the coek 22:01:41 :P 22:01:49 not that I'd care 22:02:39 was our bet about just girls? 22:03:20 probably not 22:03:54 ehird: I'd say your Article 5 right under the European Convention on Human Rights is being violated 22:03:55 because if it was just about girls, then i'd totally be against you being homosexual 22:04:23 oklopol: Coke? Wanting to damage liver? :-) 22:04:39 *ehird_ 22:04:42 coppro: Which one's that? 22:04:44 by coke i mean the blackish drink, or did you mean that as well? 22:04:55 pikhq: liberty and security of person ("liberty" being the key bit) 22:05:13 oklopol: Yes. 22:05:19 damages liver? 22:05:26 coppro: Ah, right. 22:05:31 what have you been reading 22:05:56 http://en.wikipedia.org/wiki/Article_5_of_the_European_Convention_on_Human_Rights 22:06:02 Also a violation of the Article 3 of the Universal Decleration of Human Rights. 22:06:27 oklopol: http://www.youtube.com/watch?v=dBnniua6-oM (as introduction). 22:06:42 pikhq: but the Universal Declaration does not have legal force in the UK 22:06:52 the European Convention has direct legal force 22:07:01 [22:03] ehird: I'd say your Article 5 right under the European Convention on Human Rights is being violated 22:07:05 yikes. 22:07:14 "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 coppro: Yes it does. 22:07:27 pikhq it does? 22:07:46 oklopol, I'd imagine though that they'd have to be told for what, though 22:07:48 coppro: Only Somalia and the US have *not* ratified it. 22:08:24 you mean the Convention on the Rights of the Child? 22:08:40 Erm. Right, that was ratified. 22:08:51 The Declaration is just that -- not enforced at all. 22:08:53 Thinko. :/ 22:08:53 right 22:09:14 but the UK Human Rights Act of 1998 directly puts the European Convention into force 22:09:22 oklopol: Its the sugar in the coke that does the damage... 22:10:04 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 cpressey: marry me. 22:11:03 cpressey: Sugar and HFCS are pretty much the same health-wise (i.e. nasty). 22:11:47 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 Ilari: Not really. 22:12:55 True, I'm actually a Canadian. But if I stay here long enough I'll eventually turn into one of them... 22:12:56 Ilari: HFCS encourages greater consumption. 22:13:19 Our obsession with corn syrup is part of *why* Americans eat so damned much. 22:13:24 -!- [newbie] has joined. 22:14:03 Sugar + Refined grains => Trouble. That has been seen over and over again. 22:14:07 -!- SimonRC has joined. 22:14:24 Yes. HFCS is just more trouble than straight sugar. 22:14:47 okay i'm wanting coke more and more by the minute, have to get some before watching more -> 22:15:19 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 Thank you. 22:15:30 -!- [newbie] has quit (Client Quit). 22:15:34 Is this not serious? :-) 22:15:42 this is 100% serious :) 22:16:00 * oerjan does the 100% serious dance 22:16:01 But yes, I will most likely need advice very soon... 22:16:12 -!- [newbie] has joined. 22:16:16 ehird_: Hmm. As a Commonwealth citizen, you are *nearly* a citizen of Canada already.... 22:16:19 Same here, but I probably can't be as helpful 22:16:37 -!- MigoMipo has quit (Ping timeout: 240 seconds). 22:16:44 pikhq: if I moved to canada how easy would it be for the uk to retrieve me 22:16:58 (As in, I'm willing to listen, not that I need help) 22:17:03 -!- [newbie] has changed nick to MigoMipo. 22:17:06 ehird_: Non-trivial. 22:17:26 if you get refugee status (and as I said, I believe you would qualify), very difficult 22:17:59 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 If you get refugee status, there is but one way for the UK to retrieve you... 22:18:15 War. 22:18:30 too bad UK loves going to war... 22:19:05 Without refugee status, though? 22:19:15 MissPiggy: I'm almost entirely sure. 22:19:27 ehird_: Depends. 22:19:34 At what level of government are these actions being done? 22:20:07 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 Which is law. 22:20:21 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 It would still be pretty difficult 22:20:49 pikhq: Careful. Ilari has studied the shit out of nutrition. 22:20:55 NHS can't do jack shit to a foreign resident. 22:21:09 Ilari: Alas. I should shut up about things I've merely heard about. 22:22:03 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 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 What about another EU country? 22:22:47 I don't know about the EU 22:23:00 pikhq: I don't think that falls under the Prerogative 22:23:19 coppro: Mmm. Right. 22:23:23 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 (quite possibly the strongest piece of human rights law in the world) 22:23:55 ehird_: They'd have to find you. 22:24:01 And then sue the country you're in at the time. 22:24:16 Meanwhile, you could go a few miles to the next country. :P 22:24:42 pikhq: HFCS is infamous, yes. But it might not be (much) worse than sugar. 22:24:47 I'd expect they'd just ignore you if you left 22:24:49 Are there downsides to refugee status? 22:25:04 Sgeo: It's non-trivial to get. 22:25:12 Especially compared to just moving. 22:25:28 Particularly compared to moving in the EU... 22:25:37 yeah, moving in the EU is a breeze comparatively 22:25:43 (which is a matter of just leaving...) 22:25:55 the biggest trick about refugee status is that you must have left your country already 22:27:03 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 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 On the whole, #esoteric probably contains at least one person who knows more than most ordinary people for nearly any subject 22:28:51 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 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 :P 22:30:00 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 :D 22:30:14 We are also, relatedly, known as the international hub of slackers who've never done anything worthwhile anyway. 22:30:24 :P 22:30:31 * coppro is going to judge a Pro Tour in two weeks! 22:31:05 coppro: Oh, you're a judge? Niceness. 22:31:19 Yeah! 22:31:21 * pikhq is merely a guy who knows the rules very well 22:31:22 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 pikhq: got your RA? 22:31:31 Which helps when friends do things very, very weird. 22:31:39 coppro: ... No. 22:31:45 you should try for it 22:31:53 Sgeo: My life is complete once more ;P 22:32:00 When it comes to programming, it seems that some people are just better as programmers (and it isn't about experience). 22:32:03 *:P 22:32:21 (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 :D 22:32:54 I take it you're mostly old-schoolers then? 22:33:11 No, just very casual. 22:33:20 Which means we end up seeing a lot of *everything* going. 22:33:33 nice 22:33:39 play EDH! 22:34:46 I've got my Reaper King EDH deck right here. 22:34:53 :D 22:35:07 there will be EDH side events at the PT, too bad I don't get to play :( 22:37:55 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 Also, you may apply outside of Canada. 22:38:41 http://laws.justice.gc.ca/eng/I-2.5/page-4.html#anchorbo-ga:l_2-gb:l_1 22:39:17 coppro has the Magic: the Gathering department covered <<< you're not the only one 22:39:29 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 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 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 I just meant for this channel 22:42:41 yeah me too, pikhq, zzo, etc 22:42:56 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 Speak of the debbil 22:48:57 SORRY 22:49:03 I mean SPEEK of the debbil 22:49:29 Ilari: soon first liter down 23:01:32 -!- Gracenotes has quit (Ping timeout: 240 seconds). 23:03:10 I think I already posted this, but 23:03:11 http://cymonsgames.com/forum/index.php?topic=191.0 23:03:31 Turing complete ascii game, haha 23:03:42 REDGREEN 23:03:44 You did, but it's still entertaining. 23:03:50 yeah 23:03:52 Rubicon :) 23:03:59 Wareya: Congratulations, you just doubled the lightheartedness of this channel with that one link. :P 23:04:04 (And the ontopicness...) 23:04:17 I wonder if anyone's tried to put together a list of Turing-complete (or nearly so) computer games. 23:04:21 what is the lightheartedness was 0 23:04:24 if* 23:04:36 -!- tombom_ has quit (Quit: Leaving). 23:05:44 Wareya: Who knows. 23:05:48 It was something like 1/xkcd. 23:06:03 haha 23:06:03 (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 cpressey: turing complete computer games? 23:13:58 GoL! 23:14:11 it's a game? 23:14:11 lol 23:14:15 oh... 23:14:18 GAME of life 23:14:21 OBVIOUSLY 23:14:38 ah okay i thought you were referring to a possibly existing computer version of the board game 23:14:45 augur: I know one time I was on here, long ago, people were discussing whether Transportation Tycoon is TC 23:14:52 augur: so uh are you remotely interested in how fucked up my life is? 23:14:53 but i guess that's an even better joke 23:14:54 chess is turing ocmplete 23:15:05 ehird_: always! 23:15:08 scarf claims to have a proof that Rubicon is TC. 23:15:18 wp says chess's extensions to an infinite grid are exponential time, but not tc 23:15:27 oklopol: true! 23:15:28 augur: http://pastie.org/private/4oxpzgiywxbjobgrsa. 23:15:37 Yeah, I've also seen Minesweeper called TC, but I'm suspicious 23:15:39 augur: And I'm not joking, or doing some emo shit when I say fucked up. 23:16:02 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 Obviously AsciiPortal and Robozzle 23:16:40 cpressey: no but it was proven NP-complete 23:16:43 pretty simple really 23:16:50 There was something called Winter something or something that was like a video game version of CRobots or something 23:17:00 AsciiPortal is TC? 23:17:08 oklopol: exponential time in the size could still mean TC for _infinite_ size 23:17:26 MissPiggy: not sure if it's proven, but suspected at least 23:17:28 i suspect that wp really means unbounded, not infinite 23:17:30 err yes, i guess... 23:17:48 or then it means some sort of extensions to "size n" 23:17:50 i have no idea 23:17:55 you can build nand gates into asciiportal levels 23:18:02 ehird, wait, so what 23:18:11 you're being forced to go to some place? 23:18:12 How are you supposed to "execute" chess? Nondeterministically make every possible move? 23:18:16 why? how did this come about? 23:19:17 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 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 well i think you're normal. and pretty cool. 23:19:38 if a bit girly. ;P 23:20:30 augur: anyway it came about for complicated reasons... 23:20:34 i can't really explain 23:20:40 How can chess be turing complete? I think of [[InfChessPro]] but I don't know if you can assume such things 23:20:50 And I have the same question, how to "execute" chess? 23:20:54 RoboZZle is TC 23:21:11 Carnage Heart, that's it, not Winter anything 23:21:38 Sgeo: I can believe that, it has stacks and also sometimes command for change color of a square, too. 23:21:55 Langton's Ant was implemented in it 23:22:00 That means it's TC, I think? 23:22:05 augur: #esoteric-priv if you want to discuss it... 23:22:31 sorry if I sound snoopy, but I just want to listen 23:22:47 That's okay. Just don't tell anyone else... 23:22:58 no problem 23:23:06 It's public enough to anyone in here given the pastie link. 23:25:55 Please show me how Langton's Ant is implemented in it? 23:26:10 are you serious? 23:26:14 zzo38, I think it's pretty trivial 23:26:18 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 since it has got a paint command 23:26:22 hence "are you serious" 23:26:27 so you just do the obvious thing 23:27:07 then you need to encode your computation into the initial position. 23:27:07 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 oerjan: I think that's equivalent to what I said? Nondeterministically make every possible move. 23:27:29 oerjan: Chess halts given perfect play. 23:27:35 zzo38 did that actually help at all? 23:27:35 How do you "execute" chess? 23:27:43 Actually, even without perfect play, it must halt. 23:27:58 pikhq what if you have infinite peices 23:28:26 pikhq: we are naturally assuming an infinite extension here 23:28:27 pikhq: how come 23:28:31 move forwards and backwards forever 23:28:33 I'd sell a finite amount on eBay at regular intervals 23:28:34 50 move rule 23:28:36 eh there's probably some dumb-ass limit rule 23:28:39 ehird_: 50 move rule. 23:28:39 Chess will always halt if you use 50 move rule 23:28:39 coppro: ding 23:28:50 if you have infinite pieces and infinite space, though, you're fine 23:28:54 :( 23:28:57 because the 50 moves reset every time a pawn moves 23:29:03 so a pawn could keep moving forever 23:29:04 Also, given perfect play, such an instance will never happen. 23:29:18 threefold repetition wouldn't happen in perfect play 23:29:27 Right, let's extend to an infinite chessboard -- but don't drop the 50 move rule! :) 23:29:34 :P 23:29:46 Let's also include every variant piece! 23:30:22 Also, I'm pretty sure an infinite chessboard would make it easy to guarantee checkmate. 23:30:42 even without the 50 rule, the game only has a finite amount of positions, and therefore doesn't allow any computation. 23:31:14 And since perfect play aims for checkmate... 23:31:34 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 23:31:36 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 It is possible some variants might be different, though 23:33:40 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 you need an unbounded board just to have computation in the mathematical sense. 23:35:27 -!- coppro has joined. 23:35:41 Yes, I think you would, but there are variants with unbounded boards. 23:35:47 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 if (board looks like this) { ... } else if (board looks like that) { ... } etc 23:37:59 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 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 cpressey: impossible! 23:39:47 ehird_, hi! 23:39:58 ehird_, what kept you away before? 23:40:01 welcome back 23:40:15 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 AnMaster: http://pastie.org/private/4oxpzgiywxbjobgrsa 23:40:49 The system has a finite amount of initial positions... 23:41:04 ah but that *is* algorithmically trivial 23:41:28 for each of those numbers, it either stops or not 23:41:38 and there's a finite amount of them. 23:41:47 -!- ehird_ has quit (Ping timeout: 248 seconds). 23:42:13 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 coppro, hrrm 23:43:19 * Sgeo doesn't see a Scroll Lock button on this keyboard 23:43:32 cpressey: just going by the rigorous definition of "algorithmically trivial" 23:43:39 -!- ehird has joined. 23:43:49 wb 23:45:20 ehird, wv! 23:45:21 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 oklopol: and an interesting definition of "solve" :) 23:46:14 clearly not "answer correctly" 23:46:15 how is it not a solution if you can write a O(1) algo for it? ;) 23:47:34 the algo is clearly O(1) (hidden constant 600 billion billion) 23:48:05 cpressey, oklopol: what are you trying to solve? 23:48:09 http://chessvariants.org/shape.dir/infiniteboard.html 23:48:27 nothing really 23:49:00 Well, I've solved the P=?NP problem, then. It is either yes or no. 23:49:01 It depends on what the meaning of "trying" is 23:49:30 the P?=NP problem is algorithmically trivial, yes 23:49:51 And thus it is solved. 23:49:52 this is the first thing you hear in a course about computability 23:50:02 oh okay i see what you mean 23:50:37 hmm 23:50:46 cpressey: I assume not for any useful values of solved 23:50:59 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 I think there's maybe a linguistic issue about "solve" versus "has a solution"? 23:51:19 okay i don't think i've said anything incorrect 23:51:44 algorithmically trivial to solve != possible to solve 23:51:59 AnMaster: ah, you have recently returned? 23:52:08 AnMaster: http://pastie.org/private/4oxpzgiywxbjobgrsa 23:52:21 ehird, someone else (coppero?) linked it above 23:52:24 so read it 23:52:24 Okay. 23:52:28 ehird, poor you 23:52:45 Poor me. 23:52:45 ehird, also: emigrate to somewhere saner 23:52:55 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 My plan. 23:52:57 oklopol: OK, maybe. 23:52:57 linguistics!? :o 23:53:00 Sweden or Norway, most likely. 23:53:13 Well, our plan; my parents' too. 23:53:17 ehird, Sweden is shit nowdays. Norway is expensive to live in 23:53:25 well, Sweden isn't as bad as UK 23:53:27 but still 23:53:32 How's Sweden shit? You may have an incredibly skewed view; you guys voted for the pirate party 23:53:35 cpressey: just a matter of definitions, i love nothing more than to use a completely counterintuitive definition as counterintuitively as possible. 23:53:42 ehird, FRA, IPRED 23:53:46 to mention two things 23:53:51 well okay i love many things 23:54:07 AnMaster: the whole world is going that way 23:54:13 well 23:54:16 fra, okay, sure, that's bad 23:54:24 but sweden doesn't have internet censorship right? finland does 23:54:27 Nighty 23:54:32 norway is expensive sure but surely not that much more expensive than sweden 23:54:36 the three counrties are really similar right? 23:54:40 -!- FireFly has quit (Quit: Leaving). 23:55:01 ehird, iirc there is/was some sort of non-enforced recommendation of child porn sites that isp could blacklist 23:55:03 or such 23:55:06 vague memory 23:55:26 ehird, also what about Bolivia? It might be saner 23:55:57 O_o 23:56:10 I think it is what AnMaster would call a joke. 23:56:17 ah. 23:56:36 ehird, no 23:56:38 AnMaster: Yes, there was. 23:56:50 AnMaster: Do note that that's one of the things the Piratbyran opposed. 23:57:10 pikhq, well yes, but this all goes at EU level nowdays 23:57:19 And that the other political parties adopted as part of their platform in response. 23:57:19 scandinavia is one big happy family really 23:57:22 there is basically no choice at any lower level for such things 23:57:38 ... Things inside of Sweden are at EU level? 23:57:41 -!- bsmntbombdood has quit (Ping timeout: 246 seconds). 23:57:46 Not just EU laws? 23:57:48 I can't knock the EU if it's going to be saving my ass with free immigration. 23:57:58 :P 23:58:34 ehird: did you see my idea? 23:58:35 Not just EU laws? <-- I referred to EU laws 23:58:36 as in 23:58:48 FRA and IPRED are required laws by EU 23:58:49 coppro: which? 23:58:49 ehird: More like "near-citizenship". 23:58:49 AnMaster: Ah. 23:58:57 not fra surely 23:59:02 pikhq, as in, the country has to implement something like it 23:59:06 i don't think the eu would condone warrantless wiretapping much less require it 23:59:06 ehird, pretty sure yes 23:59:10 well 23:59:14 something very close 23:59:24 Sweden went way further though iirc 23:59:38 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 i actually felt a brain context switch there, to programming mode 00:00:30 sorry i'm thick right now, tilize? 00:00:43 I just made the word up :) 00:00:50 -!- SimonRC has quit (Ping timeout: 246 seconds). 00:00:53 make tiled? :P 00:00:55 I mean to take a text "image" and render it with graphical images 00:01:09 like produce a graphical version of a Befunge program or something 00:01:26 okay 00:01:41 coppro, like showing code flow paths in colours? 00:02:53 i actually felt a brain cell switch there, to programming mode 00:02:57 all one of them? 00:03:11 umm context switch 00:03:12 not cell switch 00:03:22 but yeah, just one cell is all my programming magic 00:03:23 it's 00:03:24 quantum 00:03:25 that's how /I/ read (the first time) 00:03:26 AnMaster: no 00:03:30 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 lili 00:03:45 the basic version would just take a text and replace each character with an image 00:04:36 i think i'm obligated to inject some ehird into the discussion 00:04:49 that was the plan; we haven't had enough ehird lately 00:04:57 00:05:08 the basic version would just take a text and replace each character with an image <-- bitmap font rendering? 00:05:08 that's my quota 00:05:31 ehird, oh? so you love the ipad? 00:05:38 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 I hate it and want it to be my wife! 00:06:02 Anyway, I gotta go. Later folks. 00:06:03 AnMaster: that would be the basic principle, yeah 00:06:03 Good luck ehird :) 00:06:07 cpressey: Thank you. 00:06:10 ehird, hard to decide on it? 00:06:12 -!- cpressey has left (?). 00:06:24 AnMaster: Regular teenagers think they have issues with deciding on their sexuality. They should try being freedom-lovin' Apple fanboys. 00:06:38 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 It's not new 00:06:54 you mean, actually render in *software*? 00:07:01 coppro, I was being sarcastic 00:07:02 ... 00:07:03 umm i'm required to inject some display nerdery into this subtopic 00:07:06 guys, it has an IPS screen 00:07:12 and it's so thin and light and handheld. IPS! 00:07:14 ok 00:07:18 back to more depressing things 00:07:31 * coppro knows of sexual troubles! 00:07:32 ehird, but it is too large to fit into a pocket 00:07:38 well 00:07:40 so's your mom 00:07:45 coppro: you and everyone else 00:07:50 join the club 00:07:55 receive t-shirt, etc. 00:08:00 unless you want: "is that an ipad in your pocket, or are you just extremely happy to see me?" 00:08:06 I've been a member for a long while now 00:08:07 lol 00:08:14 but that would be, um, ridiculous 00:08:14 -!- pikhq has quit (Read error: Connection reset by peer). 00:08:22 pretty sure I'm in a special division though 00:08:38 Thta's a reason I wear cargo pants 00:08:54 wait it costs $499? why don't i have one already 00:08:58 apart from it not being released and stuff 00:09:03 hah 00:09:13 i was expecting like, $799 00:12:12 could be a misprint. 00:12:29 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 ehird, but what use case does ipad fill 00:15:37 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 it has better video hardware 00:16:22 i'm not sure how useful the ported office suite will be though 00:16:25 with that keyboard 00:17:18 the plug-in one? 00:17:49 the onscreen one 00:17:51 ehird, hm 00:18:15 yeah, I don't expect that to be useful 00:18:18 it runs a subset of iphone apps too so it's a big games console 00:18:25 and fart sound maker 00:18:31 too big to thumb-type, and practically impossible to touch-type 00:19:19 i dunno, touch-typing could be practical 00:19:27 with the error-correction 00:19:27 I can't see it really being 00:19:33 i can almost do it on an iphone, it's just too small 00:19:57 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 it runs a subset of iphone apps too so it's a big games console <-- not full OS X apps?! 00:20:34 what the crap 00:20:38 AnMaster: >_< 00:20:42 American laptops: Full sized keyboard! Bigger keys instead of a full layout! Yay! 00:20:48 AnMaster: I said it's a big iPhone. I wasn't kidding. 00:20:54 coppro, ... 00:20:57 AnMaster: and i said i wouldn't argue with you this weekend 00:20:58 that stupid... 00:21:04 i lied 00:21:04 it has better video hardware 00:21:20 I'm just shocked at this vendor lockin 00:21:31 American laptops: Full sized keyboard! Bigger keys instead of a full layout! Yay! <-- hm? 00:21:31 * ehird grabs the popcorn 00:21:34 We're playing Vendor Lockin! 00:21:36 you mean, like most laptops? 00:21:41 The game where AnMaster calls EVERYTHING vendor lockin! 00:21:43 Wareya, having full sized main area? 00:21:47 24/7/365! 00:21:48 huh? 00:21:49 Don't miss it! 00:22:05 No, the whole thing's width is that of a standard IBM-style keyboard 00:22:12 seriously full sized 00:22:34 but it's just an enlarged version of a normal laptop keyboard 00:22:38 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 yes 00:22:57 some side keys are smaller, such as the F-keys 00:23:02 it's as big as a full keyboard 00:23:04 and alt/ctrl/win 00:23:16 but it has no numpad and the arrows are squashed under shift and enter 00:23:18 and the arrow keys are smaller and moved 00:23:25 Wareya, yes? 00:23:26 indeed 00:23:33 seems like a sane solution for a laptop 00:23:37 easy to adopt to 00:23:38 And it's the same size as a normal IBM-style desktop keyboard 00:23:45 hm? 00:23:46 yet it uses a laptop layout 00:23:52 Wareya, no mine isn't 00:23:55 mine is 00:23:58 due to the lack for a keypad on the side 00:23:58 I'm saying 00:24:02 it's a 15" laptop 00:24:09 so you couldn't fit keypad there 00:24:14 with full sized main key 00:24:18 main keys* 00:24:28 Wareya, still it makes it easy to switch between laptop and desktop 00:24:30 If can fit an IBM desktop keyboard on top of this laptop's keyboard 00:24:32 same key sizes for most keys 00:24:42 the keys are enlarged, but it has a laptop layout 00:24:50 I mean 00:25:10 well with the numeric keypad the desktop keyboard is wider than my laptop 00:25:16 well,* 00:25:27 -!- pikhq has joined. 00:25:32 for me they're the same 00:25:54 Instead of taking advantage of the space for a full kayboard layout, they squeezed in an engarged laptop layout. 00:25:56 Wareya, is that a 17" laptop? 00:26:12 I don't know measurements very well 00:26:29 Wareya, becuase having the same *key size* for the letter keys is useful 00:26:33 when you switch a lot 00:26:37 it avoids a LOT of annoyance 00:26:42 due to missed keys and such 00:26:47 -all- of this laptop's kays are super sized 00:26:48 it's retarded 00:26:55 Who is Wareya? 00:26:57 super sized from an IBM keyboard's size 00:26:57 Is he new? 00:27:00 relatively 00:27:04 Joined? 00:27:10 http://esolangs.org/wiki/User:Wareya 00:27:14 ehird, you know ais -> scarf btw? 00:27:33 yes, is that permanent? I doubt it 00:27:42 ehird, seems fairly permanent so far 00:27:47 as in, lasted several days 00:28:08 i'm gonna move to a country where i have to wear ais523 around my neck 00:28:17 eh? 00:28:26 cold country? 00:28:32 * Sgeo watches the joke woosh above AnMaster's head 00:28:43 Oh, or maybe it didn't 00:29:36 Sgeo, indeed, it is controlled airspace there 00:31:06 yes, otherwise all the jokes would crash together 00:31:15 and form some sort of horrible mutant joke of all of them combined 00:31:19 which you would then laugh at 00:31:23 like that one? 00:31:39 hehehe 00:33:39 so anyone want to come to norway with me and found an operating systems and programming languages research company 00:33:52 that sounds cool 00:33:54 I want to do that 00:34:28 joke sothoth 00:34:30 so do i :P 00:34:39 sothoth 00:34:42 the only problem is figuring out a way to be profitable! 00:34:44 freaking 00:34:49 I have to freaking read goddam 00:34:54 H P Lovecraft 00:35:01 is there a good version with lots of pictures?? 00:35:06 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 XD 00:35:08 chill 00:36:47 00:38:05 night ↓ 00:38:15 I'm not going to sleep now! 00:38:22 AnMaster: you're on top of sgeo 00:38:33 congratulations, you managed to turn #esoteric to the awkwardly homoerotic once more. 00:39:46 Esolangers are the only ones in that strange channel right niow 00:40:46 Which strange channel? 00:41:20 The tullinge one 00:41:33 It's just a channel for some area of Sweden. 00:41:54 best area there is 00:42:17 "tulling" means fool in norwegian. just saying. 00:43:00 tulling - turring, just saw that 00:44:16 "turring" means fool in norwegian with a ridiculous japanese accent. just saying. 00:44:26 Luftputefartøyet mitt er fullt av ål 00:44:27 Min svävare är full med ål 00:44:35 Ilmatyynyalukseni on täynnä ankeriaita 00:44:38 norweigan, swedish, finnish 00:44:39 who wins 00:45:38 swedish; it has three funny accents, the others just two 00:45:59 haha 00:46:20 swedish is not... rounded enough 00:46:23 it's too... tall 00:46:31 you can't imagine a pleasant gentleman speaking swedish 00:47:13 indeed. like elves, really. 00:47:32 Good day gentlemen, bork bork bork. 00:47:52 which elves? 00:48:07 the tall, arrogant obnoxious ones. 00:48:08 High fantasy elves or childhood fantasy elves? 00:48:11 okay 00:48:18 i welcome you to the pleasantness of the current moment. 00:48:30 I'm getting jumk food 00:48:34 junk* 00:48:37 i wish i had junk food 00:48:56 I'm walking to a store half a mile a way for... 00:49:05 a single bag of doritos, and a 2-liter of whatever 00:49:09 later 00:49:13 later 00:49:20 someone hug me 00:49:22 ! 00:49:23 no idea what doritos are, but they must be awesome 00:49:34 * MissPiggy hugs ehird 00:49:41 yay 00:49:45 doritos are corn crisp things 00:49:52 they're overprocessed, brand-name corn chips with cheese and spicing 00:49:54 you dip them in things 00:50:04 hugging guys is weird 00:50:09 I know too much about junk foor for a 130 lb teenager 00:50:23 * oklopol hugs still 00:50:24 food* 00:50:35 Wareya: http://www.airshipentertainment.com/growfcomic.php?date=20091101 00:50:53 I'll read it when I get back 00:51:09 14, 74 lbs representin' 00:51:15 i am light. light as a feather 00:51:21 also really short. 00:51:33 in fact my interior is 99% air. 00:51:39 0.99% helium 00:51:45 i'm like two and a half yous 00:51:52 well not exactly 00:52:26 ehird: maybe you could escape the uk in balloon form 00:52:50 i'd get a squeaky voice *and* escape 00:52:51 sounds good 00:53:14 it's like two horses with one giant hammer 00:53:18 better not fart while over the north sea, though 00:54:09 oh dear, second fart joke 00:54:44 -!- SimonRC has quit (Ping timeout: 246 seconds). 00:55:06 wait, there was another one? 00:55:30 i started doing this thing today where i do the french r thingie without voicing 00:55:39 makes breathing more fun 00:55:40 err 00:55:52 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 that's essentially the german ch, isn't it 00:56:35 i don't think it's supposed to roll that much 00:56:44 acch so 00:56:56 at least it rolls less audibly 00:57:00 i basically snore 00:57:08 -!- pikhq has joined. 00:57:17 like a helicopter 00:57:35 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 Hi, SimonRC. 01:08:37 -!- pikhq has joined. 01:09:20 -!- pikhq has quit (Read error: Connection reset by peer). 01:09:29 alright 01:11:28 that's pretty funny 01:13:54 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 My experience on the internet is like blurry tunnelvision 01:14:23 or so i assume, since i hadn't noticed it before 01:14:30 so I don't know this guy 01:14:45 -!- pikhq has quit (Read error: Connection reset by peer). 01:15:49 well the newer comic Girl Genius has won a good number of awards 01:18:12 I find it funny how it just loosely compared good/evil to roder and chaos 01:18:19 http://www.airshipentertainment.com/growfcomic.php?date=20091115 01:18:32 Well, entropy is the greatest evil in the universe. 01:19:12 In my opinion, order/chaos and good/evil are utterly seperate scales 01:19:44 well duh but isn't what that comic _says_ 01:20:11 It sounds like it's listing new names for the same things, to me. 01:20:21 Maybe because of my dialect, eh 01:20:39 and in d&d good/evil and law/chaos are the two fundamental axes 01:20:56 yeah 01:23:16 also i would say it's because we're all culturally impressed with associating good with light and law 01:23:34 even if we may not always agree consciously 01:23:51 On a really fundamental level, I guess you're right 01:24:16 but I do feel like that good and light are the same thing anyway, so 01:24:22 er, s/law/order/, or both 01:24:26 -!- pikhq has joined. 01:24:54 while the bat people are likely to disagree vehemently ;D 01:25:02 heh 01:32:35 i don't really see any connection between good and light 01:33:08 maybe you have been educated evil? 01:33:21 and do not understand the four simultaneous days? 01:33:30 ;) 01:33:46 i like being in the dark, dunno why 01:33:52 I've played plenty of jrpgs 01:34:02 I think that's where good=light and evil=darkness came from 01:34:06 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 good night everybody, may i find dreams in my sleep. 02:01:03 -> 02:01:27 Sleep, perchance to quark. 02:02:34 "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 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 hmm, someone pinged me >7h ago 02:13:59 olsner, might have been me 02:14:08 I mentioned the language you were making 02:14:17 -!- pikhq has joined. 02:14:55 Sgeo: sweet, what were you saying? 02:15:06 I was asking what happened with it, I think 02:15:10 It should all be in the logs 02:15:18 meh, logs, bah 02:16:08 well, it's being developed, and I have an experimental implementation that should be reworked slightly to make it TC 02:16:16 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 and I may still decide to rebuild the middle-part of it 02:17:04 ehird, *shrug* it's your life, your decision 02:17:05 ehird: oh, ensadden me as early as possible so that I may not be worsely ensaddened in further future 02:17:17 *life story 02:17:44 ehird about to die or something? 02:18:03 Heh, no. 02:18:22 I know at least one thing and it's that I'm not that bad off. 02:18:55 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 Anyway, http://pastie.org/private/4oxpzgiywxbjobgrsa 02:19:13 (For perspective, since I'm not sure if you know or not, I'm 14.) 02:23:30 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 I think it's definitely better in some places. 02:23:48 after all, it's pretty much impossible to differentiate sane persons and insane persons claiming to be sane 02:23:58 thud. 02:24:04 ...or vice versa. 02:24:35 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 claiming to be insane? that's a sign of sanity if there ever was one :P 02:24:41 But they're not 02:30:00 I think these systems are (with good intentions) built to prevent either you or your parents from bailing you out 02:31:41 Yes. But I cannot forgive the people involved. 02:31:51 They still did these things unthinkingly. 02:33:59 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 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 Runs in the family, we're both perfectly healthy, no story there. 02:36:07 But, you know, if the junk science of BMI says I'm overweight, well howdy-doody, to hell with the facts 02:36:23 I think that I could use that drink 02:36:47 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 I think that it would make sense for me to be in your position, tbh 02:38:22 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 Sgeo: no, believe me it wouldn't 02:46:18 nobody would be helped by my position 02:46:29 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 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 ehird, my physical body, if not my mind, might be helped 02:47:00 I seriously don't eat enough 02:47:05 they don't seem to especially care about actually fixing things, just temporary "fixes" 02:47:16 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 Internet? Work? 04:28:31 Please? 04:33:15 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 Neat, I've got Internet. 04:35:43 "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 uorygl: No. It approaches the top asymptotically. 04:37:42 That's one side of the debate 04:39:44 Though I'm pretty sure it depends upon the geometry of the hill... 04:40:25 God dammit xkcd forums. 04:40:44 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 I'm pretty sure the infinitists are right. 04:41:23 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 uorygl: I'm pretty sure there's a limit in there, so yeah... 04:43:24 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 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 uh. super. 10:41:29 -!- Pthing has quit (Read error: Connection reset by peer). 10:42:04 "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 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 why do I feel like writing my own irc client suddenly 11:54:42 hello 11:57:13 hi 11:58:50 are you identi.ca user? 11:59:13 no idea what that site is 11:59:55 is the free as in freedom twitter 12:00:36 look: http://identi.ca/group/conspiracy 12:00:50 -!- Pthing has joined. 12:01:05 verangirl, mhm, you know this channel is about esoteric programming languages right? Not about esoterica. 12:01:20 Sometimes people mistake this channel for the other thing 12:02:29 hum, ok 12:03:42 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 than see you 12:07:04 -!- verangirl has left (?). 12:19:01 Bwuh? Why did Chrome spontaneously decide to reload a bunch of tabs? 12:19:11 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 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 04:20:41 i wonder if there actually is a channel for magick weenies 13:07:42 ##php 13:07:52 hilarity 13:07:57 oblivious to how things work, merely trading magic incantations that appear, on the surface, to do what they desire 13:08:42 also 23:33:37 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 "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 hi MissPiggy. 13:42:42 hey 13:43:39 MissPiggy: agda question - it's tc but total, right? how does it handle that; that partiality monad? 13:44:28 well it is total 13:44:41 is it not tc, then? 13:45:12 but you can express every partial function N -> N using a data type 13:45:22 ehird, interesting, but what is the context? 13:45:24 or you could build a model of lambda calculus using a partiality monad 13:45:30 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 thingy 13:45:36 easy 13:45:37 (of that quote above) 13:45:45 AnMaster: http://bertrandmeyer.com/2010/02/06/reflexivity-and-other-pillars-of-civilization/ 13:45:51 (bertrand meyer = creator of Eiffel) 13:45:58 hmm i said bertrant before 13:45:59 *Bertrand 13:47:05 the function space A -> B (or forall a : A, B, or whatever) cannot express every recursive function 13:47:25 because -> is total functions (because you want to compute with them in types) 13:47:31 right 13:47:33 hmm 13:47:43 but e.g. A -> Computation B can be a model of lambda calculus 13:47:44 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 right, so a partiality monad 13:48:15 well you can define all the primitive recursive stuff and Mu, just as a syntax first 13:48:27 then you can give a big step semantics, 13:48:35 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 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 your Computation there is a partiality monad, isn't it? 13:49:53 so presumably to make meaningful use of them, given a haskell-style main program solution, you need main :: Partial (IO ()) 13:49:54 yeah that's just one way 13:50:08 otherwise you'd be in total-land, and couldn't invoke the forbidden fruit of the partial lands 13:52:40 my lambda syntax is currently λα.β because otherwise function types would get confusing :) (λα. α → ∅) vs (λα → α → ∅) 13:52:54 (fuck yeah, unicode; i'm using unicode up the wazoo) 13:53:15 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 yeah \x -> m is stupid 13:53:51 hmm, wait 13:53:55 ∅ is Void 13:53:56 not () 13:54:55 MissPiggy: come up with a nice unicode name for my () set :P 13:55:07 I wouldn't worry about writing partial programs 13:55:37 although that is just me .. 13:55:43 so maybe not such a valuable statement 13:55:47 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 why do you want to write an OS with it? 13:56:32 I dunno. I love the proof system duality and the mathematical soundness of having no ⊥, 13:56:40 but I'm not sure totality is practical. 13:56:52 hurrump 13:57:08 MissPiggy: My goal in computing is to completely revolutionise it. My two separate interests are operating systems and programming languages. 13:57:19 It is only natural that my awesome programming language would be my awesome operating system. 13:57:33 Note "be", not "be used to write". 13:57:46 alright but you're not going to do a full correctness proof of the OS? 13:57:51 My OS design involves the programming language being central; a living environment. 13:57:53 Think Smalltalk. 13:58:05 MissPiggy: Yes, well. :P 13:58:07 have you talked to luqui about thsi 13:58:20 luqui's blog was a big inspiration 13:58:26 but i haven't caught him on irc yet 13:58:53 heh I could use ∈ instead of ∷ 13:58:55 that's ugly though 13:59:12 the thing about \in is that it's asymmetric 13:59:34 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 ⊥ would be the type theory way; ∅ the set theory way... 14:00:24 ∅ seems less confusing; ⊥ is too associated with non-termination and undefinedness in programming 14:00:42 in haskell* :P 14:00:42 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 nobody else has a clue what it is 14:01:08 well, whatever; apart from agda guys, haskellers are the most mathematically civilised programmers :) 14:01:15 (and coq etc) 14:02:28 The joys of Unicode: /=? Why wouldn't you just write ≢? 14:03:42 I was thinking about a language that could compile into almost every high level language 14:03:52 ehird, see my memo to you 14:03:56 ≢ because you have to use ≡ for equality 14:04:01 because = is definition 14:04:07 MissPiggy: underlambda :P 14:04:42 Sgeo: relink the paste in /msg; it may not be so bad 14:04:52 I have after all linked to the pastie which tells everything in this channel 14:05:21 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 := for definition 14:05:41 = for the equality type! 14:05:48 then yuo can say x = y and MEAN IT 14:06:06 := isn't unicode bitchnizzle 14:06:13 there's a unicode one :P 14:06:21 FIND IT PEASANT 14:06:52 ≝ 14:06:57 * ehird considers that |α| instead of abs α may be taking the mathematical notation thing a *bit* too far 14:07:10 |a| is a fucking abomination 14:07:13 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 MissPiggy: yeah agreed 14:07:18 |a|b|c| 14:07:19 retarded notation 14:07:26 ≔ 14:07:40 maybe that reduction symbol that rconnor likes 14:07:51 yeah I'm not keen on the unicode stuff because all the operators are too small (unnecessarily :/) 14:07:54 mathematical notation defines too much syntax when functions would do :/ 14:08:02 MissPiggy: yeah I'm taking care not to use any blots of ink 14:08:14 also, _my_ OS will display it perfectly legibly ;) 14:08:18 hehe 14:08:27 http://r6.ca/blog/20031202T032200Z.html 14:08:36 β* 14:08:41 we have our definition symbol. 14:09:08 ||a||₂ for the euclidean norm. 14:09:21 I draw the line at superscript numbers for powers 14:09:39 fizzie: yes, the stupid symbol is used for all norms 14:10:05 Okay, okay, so any fancy space-age editor, like my OS, will *display* it as superscripts. 14:10:17 But in the Unicode representation? 14:10:19 Nooooooooooooooooooooooo way 14:11:01 (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 s/$/)/ 14:11:22 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 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 maybe ↑ due to knuth :) 14:14:47 http://www.reddit.com/r/math/comments/axd4m/what_is_the_mathematical_rule_that_says_if_abc/c0jw2vc 14:14:48 wut 14:15:18 anyone who answers a question starting "What is the mathematical rule" with "common sense" is so idiotic I cannot comphrend it 14:15:44 1+1=2 is common sense! 14:15:54 http://us.metamath.org/mpegif/2p2e4.html 14:15:57 a^2+b^2=c^2 because duh!! 14:15:57 i love metamath 14:16:07 yeah it's so 80s 14:16:15 howso 14:16:24 hey guys I just had a great idea, lets put all our math in the computer! 14:16:34 says the agda fan 14:16:47 epigram fan 14:16:55 why don't you like metamath? 14:17:04 I do like it, it's just very funny 14:17:07 aight 14:17:11 i misinterpreted what you said 14:18:18 foo α β = (α ≡ β) ∨ (α ≢ β) 14:18:57 ⊕ ∷ Bool → Bool → Bool 14:18:59 AND JUST WHY NOT 14:19:14 hmm ≡ is sometimes used for definition? 14:19:17 maybe i could swap =/≡ 14:19:21 or definitional equality 14:19:26 oh or ≐ is a nice unicodey thing for := 14:19:34 not at all ridiculous like ≝ 14:19:47 like y + x = x + y, but not definitionally 14:19:52 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 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 I am crazy enough. 14:21:50 I just need nice syntax for doing things like this in expressions. 14:22:51 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 given some surrounding brackets to denote that it's a special expression thingy ofc 14:23:09 that way you could use the maybe monad 14:23:27 MissPiggy: So, do you think ≡ is a reasonable symbol for what-Haskell-calls (to avoid ambiguity) =? 14:23:29 why you would want to?? 14:23:36 no I don't 14:23:40 kay 14:23:48 also, 14:23:58 for one, Maybe handling 14:24:14 2 + {3 ÷ x} 14:24:20 hahahaha ÷ 14:24:22 yes! 14:24:26 nice 14:24:34 oh 14:24:43 "... enough to do ÷ ∷ Boringtypeclasstypethingy..." 14:24:46 I read that as a + :( 14:24:52 lol 14:25:02 + ÷ = ≢ ≝ 14:25:07 anyway, {| 2 + {3 ÷ x} |} is nicer to write than fmap (2 +) (3 ÷ x) 14:25:37 a downside is that imperative weenies could do {| say {readLine} |} :P 14:25:49 but i guess it's just a generalisation of >>= and =<< and <$> and blah blah blah 14:25:50 lol 14:26:00 idiom brackets 14:26:02 ehird, Hm is ÷ fraction, integer division, floating point division or something else? 14:26:08 yeah i suspected idiom brackets were the same thing 14:26:14 AnMaster: Yes. 14:26:28 ah all of them then 14:26:30 ah,* 14:26:44 Well, not all of "something else". You have to obey some properties, or the compiler will yell at you. 14:26:54 well of course 14:27:21 Not really "of cause"; almost all languages don't do such things. 14:27:28 You can define (/) to be pretty much whatever you want in Haskell. 14:27:31 "of cause"? 14:27:34 *course 14:27:38 ah 14:27:42 ehird, but is the result of ÷ exact or not? 14:28:07 It depends on the definition doesn't it? 14:28:47 ehird, yes indeed, which is what my first question about it tried to ascertain. 14:28:59 I'll probably require that {| α × {β ÷ α} ≡ β |}, so... 14:29:16 (Using ≡ as equality, though that symbol is very much in flux.) 14:29:46 then it can not produce a "simple" floating point value when dividing two floating point values I think. 14:29:52 though, I'm not 100% sure about that 14:30:45 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 >>> (3231.318478239 / 238914.12391) * 238914.12391 14:31:08 3231.3184782389999 14:31:22 I love how my λ is the same thing as ∀. 14:31:25 It makes me feel warm and fuzzy. 14:31:36 AnMaster: I might have a separate class for inexact operations. 14:31:58 ÷?, maybe. 14:32:01 epigram has quotient types 14:32:16 so you could quotient out by "someEqualityThingProvidedByTheDefinition" and still use {| α × {β ÷ α} ≡ β |} 14:32:45 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 so that allows inexact definitions but still doesn't let you define it to anything you want? How? 14:32:52 so haskal? 14:32:57 AnMaster: Yes, I know. 14:33:07 right 14:33:11 by the way 14:33:14 in numerics 14:33:22 AnMaster: Floating-point operations don't obey the laws of arithmetic, though. :) 14:33:24 we get something like fl : R -> R defined 14:33:28 hmm 14:33:31 maybe you could use Real 14:33:38 and specify the inexact implementation as an "implementation detail" 14:33:39 and you write x + y*z would compute to fl(x + fl(x*z)) 14:33:45 ehird, true. So what you want is basically a CASkell? 14:33:46 where fl does the rounding etc 14:33:47 i.e., the code is considered to operate on reals in all their exactness 14:33:53 CASkell! lol 14:33:53 AnMaster: no. 14:33:55 awesome 14:33:59 but at runtime 14:34:01 that's a good name though 14:34:04 it uses floating-point 14:34:05 AnMaster: yeah 14:34:07 erm 14:34:07 MissPiggy: yeah 14:34:13 i smiled at the name. 14:35:39 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 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 AnMaster: heh 14:36:04 it's correct for sufficiently large values of zero 14:36:34 i'd call e "euler", but euler has done so many mathematical things that it would be hopelessly vague :P 14:36:37 hm? representing numbers as the length of a series of zeros? 14:36:57 like if an idiot was working with the Euler–Mascheroni constant he'd be confused. 14:37:02 AnMaster: It's a joke. 14:37:36 in a mathematical context e means exp(1) 14:37:45 in a monad context + means mplus 14:37:45 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 well actually I prefer (+) for mplus 14:38:01 MissPiggy: + for mplus would be interesting. 14:38:08 might have been ais/scarf 14:38:19 I'm already sold on o (too lazy to unicode) = category composition 14:38:27 which is even generaler than o = fmap, i think 14:38:39 hmm 14:38:48 fmap and o are quite different thuogh 14:38:54 and I think o is better 14:39:02 fmap should just be map 14:39:02 hmm 14:39:06 (.) :: cat b c -> cat a b -> cat a c 14:39:08 --control.category 14:39:10 yeah 14:39:10 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 that seems good 14:39:14 ok, that doesn't allow . = fmap 14:39:16 but that's good i think 14:39:20 i think you're right 14:40:09 the supereditor will probably display α ÷ β as 14:40:13 α 14:40:13 - 14:40:14 β 14:40:15 :) 14:40:42 although at the same time I don't think I want to abandon the entirety of linear syntax 14:40:44 it has useful properties 14:40:51 (not necessarily textual, but linera) 14:40:53 *linear 14:41:11 also, consistency is Good, and also something mathematical notation sorely lacks 14:41:29 MissPiggy: any good ideas for the hole character in mixfix operators? 14:41:37 I don't want to use _, it should be allowed in variable names I think 14:41:38 mixfix? boo!!! 14:41:42 (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 [14:33] and you write x + y*z would compute to fl(x + fl(x*z)) 14:41:51 i like that 14:41:53 why I hate mixfix is: 14:41:54 ehird, what about that way to explain why e is a good name for e? 14:42:03 basically the same thing as what i was saying 14:42:13 AnMaster: yes, but in programming "e" is not an uncommon variable name 14:42:20 so having "e" in global scope is problematic 14:42:22 MissPiggy: I'm listening 14:42:24 ehird, true. 14:42:28 but i love mixfix so it better be a good argument :P 14:42:34 ehird, you could use namespaces/module prefixes 14:42:41 so you have like math:e or such 14:42:51 AnMaster: and if you're writing mathematical code? 14:42:53 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 Presumably you envelop all of math. 14:43:05 ehird, import it? like "from math import e" 14:43:05 And you run into the same problem, although I guess mathematicians wouldn't name variables e because of that. 14:43:13 the type of t depends on T, so in mixfix you can't do it.. you have to write T ::' t 14:43:17 (psedo-python) 14:43:22 pseudo* 14:43:49 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 mixfix operators being typed is the problem really 14:44:07 yeah if you just make them notations, rather than well typed terms I think it's better 14:44:19 I didn't know they were terms in Agda or whatever 14:44:23 if they are I don't see why 14:44:41 welll when you compute it will print back the mixfix terms 14:44:53 rather than something horrid like Ap (Ap (Dollar ..) (Ap .. 14:44:58 that we're so used to seeing. 14:45:03 so it's basically prettyprinting? 14:45:14 if they are just notations then it's a bit harder to make the link, I guess 14:45:14 also, you may be used to seeing it but I observe agda from a strictly outside viewpoint! ha! 14:45:27 :p 14:45:28 MissPiggy: seems ridiculous to add such craziness just for prettyprinting 14:45:33 make a smarter pretty-printer! 14:45:41 but not too smart! 14:45:51 Unless you make sure it's Friendly! 14:45:55 lol 14:45:56 yeah 14:46:22 ehird you know I have read so muh lesswrong 14:46:24 much* 14:46:27 yeah i prettyprinted my expression that (given infinite time) checked if the reimann hypothesis was true or false 14:46:35 it printed "the Boolean *£($&(*£$uq))(ii!£()!*£)(*NO CARRIER 14:46:41 :D 14:46:48 -!- ehird has left (?). 14:47:19 -!- ehird has joined. 14:47:22 Phew, my connection dropped there. 14:47:32 ehird, easy to explain 14:47:37 you said "no carrier" ;P 14:47:49 i'm still trying to come up with some sort of high-level esolang... can't come up with anything implementable :-/ 14:47:53 clearly _something_ listened 14:48:09 lieuwe you came up with unimplementable stuff? :) 14:48:11 AnMaster: Was that a pun? A carrier carries something, if a carrier stops carrying something they drop it? 14:48:15 If so, I love you. 14:48:21 You have made an actually good pun. 14:48:24 Congratulations. 14:48:24 lol 14:48:33 MissPiggy: not toataly unimplementable, just very hard... 14:49:00 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 sounds like the compiler for my language 14:49:13 "yeah, in fact it's technically implementable!" 14:49:31 should hire a buncha phds to do it for me 14:49:35 AnMaster: So not a good pun then :( 14:50:15 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 ehird, My variant seems more relevant to any sort of connection over telephony. 14:50:33 ehird you could just steal Coqs module system 14:50:42 I have no idea about modules though 14:50:45 MissPiggy: i might, is it as good as ml's? :P 14:51:02 well I think it's basically the same, except a bit extra for the types 14:51:13 ehird, and iirc you have iphone or adsl to choose from. 14:51:52 or 3g stick :P 14:51:58 well true 14:52:07 still a carrier there 14:52:34 and if you use that or the iphone then it is carrier in several meanings 14:53:07 -!- kar8nga has joined. 14:53:16 data [_] ∷ Set → Set where 14:53:18 ∅ ∷ λα. [α] 14:53:20 _:_ ∷ λα. α → [α] → [α] 14:53:29 ehird, but primarily see http://en.wikipedia.org/wiki/NO_CARRIER 14:53:31 where _ is the operator placeholder thingy 14:53:43 Yeah, yeah, so in actuality those names are in the Container or Sequence or whatever thingy. 14:53:43 why not epsilon? 14:53:51 also PUKE!!!!!! 14:53:56 And yes, overloading ∅ to mean something other than the empty *set* is probably abhorrent. 14:53:58 use : for type judgements and :: for cons :P 14:53:59 BUT I LIKE UNICODE. 14:54:06 epsilon is unicode!! 14:54:09 MissPiggy: I don't use :: for type judgements, I use ∷ 14:54:12 I just didn't look it up 14:54:15 AnMaster: I know what no carrior is 14:54:17 *carrier 14:54:20 that's why i said it 14:54:20 ehird, right 14:54:22 yeah well ∷ sucks ;[ 14:54:36 MissPiggy: i don't even know what it's supposed to be :) 14:54:44 anyway : for type judgements just seems too... lightweight 14:54:52 i dunno why, it just seems like the meat is taken out from the expression 14:55:10 maybe I shhould use ∈ for type judgements :P 14:56:03 yeah ∈ is better than :: 14:56:09 or ∷ whatever 14:56:10 looks ugly to me :P 14:56:13 what's wrong with :: 14:56:21 it atkes TWICE as long to type 14:56:26 >_< 14:56:27 believe me it adds up 14:56:36 it is the single most common operator you type 14:56:41 MissPiggy: wtf's up with the greek letters:-p? 14:56:43 no, = is 14:56:45 ∈ and :: mean different things, no? 14:56:52 lieuwe: we're being pretentious functional programmers 14:56:53 AnMaster: no 14:57:01 is-member-of-set = is-of-type 14:57:02 ehird: :P 14:57:10 MissPiggy: = is more common than :: 14:57:14 think e.g. let and where 14:57:18 where often you omit the types 14:57:26 but :: outside of a definition isn't very common 14:57:30 ehird, but hm 14:57:31 so = is definitely more common than :: 14:57:33 ehird, hm seems wrong to use the same symbol for them somehow 14:57:38 AnMaster: They are the same thing. 14:57:48 nevertheless... 14:57:51 but meh 14:57:53 You're saying the same thing as "it seems wrong to use the same symbol for addition and addition". 14:58:19 yes, there should be different symbols for integer and floating point addition 14:58:22 and so on 14:58:24 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 AnMaster: But those are different things. 14:58:43 You don't seem to understand: "Type" is just another word for "set". 14:58:43 true 14:58:58 ehird, depends on what set theory and/or type theory you use iirc? 14:59:06 types aren't really sets though 14:59:17 we just call them that and use ∈ because we don't like set theory 14:59:30 is ℕ not a set? 14:59:42 well it's an inductively defined set 14:59:47 i.e. a set 14:59:49 ehird, ℕ is the set of natural numbers yes 14:59:51 but it's not made up of {}'s 14:59:59 No, but it's a set. 15:01:23 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 bloody haskell doesn't have to avoid naming conflicts between value- and type-land :P 15:02:01 oh yeah 15:02:32 operators just break up the monotony of f (g x y) (h z (w p q)) 15:02:49 g x y + h z (p * q) 15:02:50 i suggest we call using non-operator names for functions 9-to-5 naming 15:03:03 MissPiggy: *× 15:03:12 p × q 15:03:16 I love that x 15:03:17 or · 15:03:19 your choice 15:03:25 x × x 15:03:33 unicode needs italics-x as a character :P 15:03:55 ehird, the cross product of x and x? 15:04:11 iirc × and · are quite different 15:04:13 Heard of multiplication, AnMaster? 15:04:34 ehird, yes but isn't cross product and dot product different for vectors? 15:04:54 two different kinds of product 15:05:09 Well, true. 15:05:38 * ehird wonders what fun category-theory concept × should be defined to 15:05:44 There's gotta be something, there's always something. 15:06:05 * MissPiggy doesn't even know what category theory does... 15:07:02 It doesn't do anything! It sits around looking awesome. 15:07:21 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 cosmic usefulness transfer 15:07:35 ah 15:07:41 curry-howard-lambek 15:08:05 a three way isomorphism between types (in programming languages), propositions (in logic) and objects of a Cartesian closed category. 15:08:37 you forgot linguistics 15:08:55 ??? 15:08:57 what 15:09:03 linguistics is isomorphic to logic, thus to programming 15:09:07 ho 15:09:08 how 15:09:11 dunno ask augur 15:09:15 is forgetting linguistics worse than forgetting poland? 15:09:16 tell me!!! 15:09:21 also they, well augur, also i think i've seen you, use basically lambda calculus for some syntax :P 15:09:28 also, I take it you mean semantics 15:09:31 Gracenotes: i had to restrain myself not to say that 15:09:33 yeah semantics whatever 15:09:34 i'm no linguer 15:09:43 no no don't do it. We won't get rid of the linguistics discussion for hours then! :( 15:09:57 uh oh 15:10:06 quick, what's the one thing that can distract augur from linguistics 15:10:07 AH! 15:10:10 Gay sex! 15:10:17 QUICK EVERYONE, TO THE BUTT-BATALLIONS 15:10:20 argh 15:11:18 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 oklopol: that also works to kill the linguistics. 15:11:53 argh i should have said "buttallions" 15:14:06 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 called bijection for functions ofc 15:14:35 i have to pizza maybe 15:14:56 would be nice to have a formal theory about these informationy heuristics we use 15:16:34 i did data Bijection a b = Bijection (a -> b) (b -> a) in haskell but i was sad 15:16:43 because you couldn't, you know, show that it was actually... that 15:17:15 in awesome languages I could just include an (f (g x) = x) :P 15:18:56 hey 15:18:59 is that a Category, I wonder? 15:19:18 (.) :: cat b c -> cat a b -> cat a c 15:19:43 so ((b->c),(c->b)) -> ((a->b),(b->a)) -> ((a->c),(c->a)) 15:20:02 yes it is 15:20:11 (Category as in the haskell definition of it in base) 15:20:22 that's pretty slick. 15:20:45 * MissPiggy still doesn't see the point 15:20:50 MissPiggy: it's cool? 15:20:53 so you have a category of bijections, now what?? 15:21:00 now you can compose bijections! 15:21:41 hey wait 15:21:47 I don't even need to require that they be functions 15:21:49 no wait, I do 15:21:52 I need a way to apply them 15:21:55 was thinking I could just do categories 15:22:00 waiiit 15:22:01 I could 15:22:09 no 15:22:10 I couldn't 15:22:10 kay 15:24:03 data Bijection ∷ Set → Set → Set where 15:24:05 Bijection ∷ λα. λβ. 15:24:07 {f ∷ α → β} → 15:24:09 {g ∷ β → α} → 15:24:11 {λx. f (g x) ≡ x} → 15:24:13 {λx. g (f x) ≡ x} → 15:24:14 Bijection α β 15:24:23 only problem there is that we need ≡ 15:24:31 but having it depend on equality is silly imo 15:24:51 erm, f and g shouldn't be in {} 15:24:53 they should be in (), I think 15:25:11 (MissPiggy: right?) 15:25:37 well 15:25:47 if you are into category theory why don't you define it as a split epi 15:25:49 and mono 15:26:51 -!- lieuwe has quit (Ping timeout: 248 seconds). 15:27:18 because i don't understand category theory :) 15:27:31 me neither 15:27:37 * ehird wonders how to combine GADTs and the Foo { blah :: ..., } stuff 15:27:49 GADT?? 15:28:05 record syntax for GADT? 15:29:05 yar :P 15:29:15 well, not record syntax necessarily 15:29:21 just automatic accessor-definers 15:29:28 MissPiggy: you know what would be nice? 15:29:32 Having juxtaposition be like 15:29:48 juxtaposition :: (Juxtaposable a b c) => a -> b -> c 15:29:49 where 15:29:55 class Juxtaposable a b c | a b -> c 15:30:04 so you have Juxtaposable (a -> b) a b 15:30:15 and, say you have an accessor 15:30:17 but it also works for writing 15:30:29 so you have like 15:30:42 modify :: value -> accessor for that value -> new value of the property -> value 15:30:43 but also 15:30:51 Juxtaposable (Accessor a b) a b 15:30:58 so you can do "prop value" for access 15:31:02 by the way (you probably know this..) the dependent type stuff is more general than GADT 15:31:25 hmm although is it more general than She style GADT? 15:31:26 yeah 15:31:36 but gadts are nice syntax for most stuff, so. 15:33:05 i'll also have type-level functions basically 15:33:12 type Foo bar baz quux = ... 15:33:23 don't use type to define them?? 15:33:32 i was just picking an arbitrary keyword :) 15:33:38 okay but why need any keyword 15:33:41 but it's the same thing as haskell's type synonyms 15:33:42 just more general 15:33:45 as opposed to 15:33:50 the only different is that you are going into Set rather than Int or something 15:33:57 well, yes 15:34:01 but you use it at compile-time 15:34:07 I guess in the living environment of my OS it doesn't matter, but... 15:34:15 I suppose you are right. 15:35:36 # 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 According to Apple 4:3 is widescreen 15:38:29 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 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 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 ehird, #hl? that url is broken 15:39:20 everthing after that first # is an anchor 15:39:21 "Unfortunately, there is an error in the proof [...]." 15:39:24 AnMaster: javascript 15:39:27 not me, google 15:39:37 ehird, usually I don't get # there in the urls.. 15:39:37 hm 15:39:42 it's to avoid loading the surrounding stuff of the page, I bet 15:39:46 to speed up load times 15:40:12 "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 ehird, After reading it twice: huh? 15:41:38 It's a joke; laugh. 15:41:46 ehird, ah 15:41:56 If you don't understand it, you don't understand what p=np means :P 15:42:54 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 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 ehird, well, my brain was in math proof mode when reading it. I do see the joke now 15:43:27 anyway 15:45:20 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 You're a genius! 15:47:28 Why don't we just define P=NP as an axiom? 15:47:33 omg, this changes everything :D 15:48:26 har har 15:49:51 couldn't it (in theory) be proven that it is impossible to prove either P=NP or P!=NP ? 15:50:42 If it's true, maybe it can be proven. 15:50:52 It could be true that it is unprovable and yet not be provable that it is unprovable. 15:50:59 that too 15:51:01 It could also be false and thus not provable, at least if ZFC is consistent. 15:51:25 ehird, maybe it could be proven that it is unprovable to prove it unprovable? 15:51:36 (argh the headache) 15:51:59 I'll prove your mom. 15:52:16 alas I can't think of any snappy reply to that 15:53:20 "Your mom proved your face in bed last night, didn't she?" 15:53:29 "I was there. WATCHING" 15:53:45 Why don't we just define P=NP as an axiom? -- because nobody knows if it's independent yet!! 15:54:15 CONSISTENCY IS IRRELEVANT! 15:54:25 it's import to me :( 15:54:34 Son, I am import. 15:54:38 lol 15:55:18 i feel like i'm stumbled upon this wonderful oasis in programming language design 15:55:20 *i've 15:55:29 all the smartest people are here and it has such cool stuff 15:55:52 also, she is my favourite preprocessor ever. 15:56:04 pattern synonyms are actually something i've always wanted in haskell 15:57:03 She has them 15:57:12 She does. 15:57:12 oh shit 15:57:16 you are talking about she 15:57:22 YOU BROKE THE GRAMMAR 15:57:38 * MissPiggy crawl back into my mud bath 15:57:41 She has rules, and the first is: She can be talked about, but only if you respect her grammar. 16:00:31 hm a non-constructive proof for P=NP would be fun 16:01:14 Go straight to ⊥; do not pass go, do not collect £200. 16:01:26 heh 16:01:52 isn't testing *if* a number is prime in P? iirc that is 16:02:16 ehird, ^ 16:02:39 Yes, it is. Known since 2002. 16:02:49 Deewiant, AKS right? 16:02:53 Yes. 16:03:01 That book actually contained something meaningful? 16:03:03 I'm astonished. 16:03:15 Stolen from someone else, right? 16:03:20 Wut? 16:03:29 wut indeed 16:03:29 Oh, not A New Kind of Science. 16:03:34 It was published in 2002. 16:03:36 ehird, AKS Primality test 16:03:40 My inferrence engine is broken today. 16:03:50 ehird, you mean, it wasn't intentional 16:03:51 ? 16:03:52 YOU BROKE THE SPELLING 16:03:54 Nope :P 16:03:58 Deewiant: :'( 16:04:05 :-P 16:04:09 MissPiggy: any totally dependawesome insights on http://www.daimi.au.dk/~madst/tool/papers/expression.txt 16:04:22 she has http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html but i dunno seems hacky 16:04:22 ah 16:04:28 I have never actually understood this problem 16:04:33 i.e. I didn't read through it 16:04:41 my understanding is 16:04:51 higgelty piggelty works nice for epigram 16:05:00 but I don't know if it's related to expression problem 16:05:01 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 data Ty a = Foo a | Bar a 16:05:18 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 Here, we can easily add functions (columns) to this without violating type safety or modifying existing code, 16:05:39 but we cannot add new rows (data type cases) 16:05:42 like 16:05:47 func1 func2 func3 16:05:49 AnMaster: I don't know if it's "horribly inefficient" but yes, in practice it's slower than the probabilistic tests 16:05:51 Foo ... 16:05:52 Bar ... 16:05:53 with the results 16:05:55 get it? 16:06:07 in an object-oriented language, the columns can't be changed: they're the methods in a class 16:06:12 but you can easily add new rows: subclasses 16:06:21 The expression problem is: How can we have *both*? 16:06:36 wait a second, 16:06:56 you have data Expr = ..., and each constructor of Expr is a row 16:07:03 and you have func1, func2, ... each is a column 16:07:06 yar 16:07:25 you can easily add new functions, but you cannot add rows *elsewhere in the program* 16:07:29 they're fixed 16:07:35 with functions, you can just create a new one and bam, you're done 16:07:39 now, with OOP 16:07:48 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 you have class Foo { int bar(); int quux(); } 16:07:57 each method is a column 16:07:58 and you have 16:08:08 the values as the rows still 16:08:14 but you can extend them 16:08:15 class Bar extends Foo { ... } 16:08:18 so we can add rows 16:08:26 so with FP you can add columns, with OOP rows; the problem is being able to add both 16:08:33 elsewhere in the program 16:08:40 without breaking existing code 16:09:09 alright let me think 16:09:14 i'll make a text file showing this more clearly without ircspeak 16:09:23 you can do both of these (FP or OOP) approach using ADTs 16:09:43 I mean each one individually, using a different approach 16:09:44 btw, when you measure O(whatever) for an algorithm for prime factorisation, what exactly is it you measure it against. 16:09:56 but to have one framework that lets you solve both problems at once.. 16:10:15 AnMaster: Their complexities are O(f(n)) where n is the number tested 16:12:02 usually you say a number's size is its log 16:12:14 so just stick 2^n in there 16:12:18 or what Deewiant said 16:12:22 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 interesting problem 16:12:58 bbiab 16:13:00 I must be missing something critical here 16:13:10 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 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 oklopol, ah. Which logarithm? the natural one? 16:13:49 doesn't matter 16:14:06 i'll leave proving that as homework 16:14:30 oklopol, it does... if you take the n-log 16:14:37 it would always yield 1 16:15:09 obviously it must be a constant 16:15:18 oh right 16:15:30 eh, misspiggy disappeared 16:15:48 anyway log_a(n) and log_b(n) are a constant apart, so that doesn't matter for O 16:15:50 (usually) 16:16:32 Well, for anyone who wants an explanation of what the expression problem is: http://pastie.org/812457.txt?key=jy9qm2hfkgtfxiooahshxw 16:16:48 i have enough problems already 16:16:52 (5) 16:17:23 oklopol, hm correct me if I'm wrong but: log_a(n) > log_b(n) for all n if a < b? 16:17:27 http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w 16:17:32 Revised version; forgot to change one sentence. 16:17:41 wait, no, that probably only applies to n larger than the base or such 16:17:44 AnMaster: nope 16:17:45 oklopol: Is a bitch one? 16:17:58 ehird: they all have to do with complex analysis 16:18:14 oklopol, "nope" to "only applies" or to the original statement? 16:18:40 no matter what n is, log is increasing 16:18:41 oklopol: So I suppose you could say that you have 99 (minus 94) problems, but a bitch ain't one. 16:18:50 (well n>0) 16:19:00 oklopol, well yes, but that isn't what I said. I said what their relative values are 16:19:04 between two different bases 16:19:04 ehird: is that a reference to something? 16:19:14 Maybe. Also, http://i.imgur.com/b8OLl.jpg 16:19:28 AnMaster: oh sorry 16:19:49 oklopol, log_10(500) < log_e(500) for example 16:20:03 yeah that's true then, log is decreasing w.r.t. base 16:20:05 (those are the ones with easily accessible buttons on my calculator 16:21:50 AnMaster: What you're missing in your trial division thing is the complexity of a division 16:21:50 oklopol, does it make sense to do something like lim_{a->+inf} log_a( whatever ) 16:22:16 depends on the topology! 16:22:20 but yes, why not 16:22:33 oklopol, then use that log for the complexity! 16:23:06 whenever it is constant or not could perhaps be argued, but it no longer depends on n at least 16:23:12 ah, i guess you win 16:23:16 Deewiant, hm. What is that complexity 16:23:30 O(n^2) with the trivial algo 16:23:35 oklopol, well, I'm on deep water here, I probably missed something crucial. 16:24:14 that is still polynomial unless I'm completely missing something? 16:24:18 i don't remember what the known bounds are tho 16:24:28 wait were you serious about the lim? 16:24:32 i have no idea what you meant 16:24:38 oklopol, not really 16:25:09 but, it is an interesting question: What happens with logarithms as the *base* approaches infinity? 16:25:41 the function "f(n) = lim_{a->+inf} log_a( n )" is the constant function 0, i think 16:26:48 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 oh wait, prolly not. 16:28:32 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 hm 16:31:25 -!- cheater2 has quit (Ping timeout: 264 seconds). 16:31:48 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 and e^x > 0 for real x 16:32:17 like a=-4 and y=3 16:33:31 (-4)^3 = -64 Thus shouldn't 3 = log_{-4}(-64) ? 16:34:47 AnMaster: So -64 takes 3 digits to represent in base -4? Noted. 16:35:10 with a negative base, it makes no sense to give the log any arguments except naturals afaik 16:35:12 ehird, well yeah, when you think of logarithms that way it doesn't really work out ;P 16:35:27 isn't it true though? 16:35:30 For general negative x, y is complex 16:35:40 And non-unique 16:35:45 oklopol, hm? (-2)^(-1/2) gives an imaginary answer, doesn't it? 16:36:15 abc in base n is just (((a*n)+b)*n)+c 16:36:31 to be more precise, isn't it ((sqrt(2))^-1)i 16:37:09 Deewiant, ah, the lack of uniqueness could indeed cause issues 16:38:10 hmm okay i'm not sure what i was thinking 16:38:27 -!- MissPiggy has joined. 16:38:35 ehisrd 16:38:40 MissPiggy: http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w 16:38:48 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 The expression problem, explained simply. 16:39:02 ehird iI think I can give nice solution 16:39:13 are you so excited you can't type? :P 16:39:14 which makes essential use dependendt types 16:39:21 no this sthing is qwerty 16:39:22 :/ 16:39:25 ah lol 16:39:27 haha 16:39:37 I am on my moms computer because I got fed up with this installer 16:39:39 MissPiggy, which layout normally? 16:39:44 colemak 16:39:47 ah 16:39:57 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 ehird you know lists 16:40:47 excpet backwards... 16:40:53 [] :: a :: b :: c 16:40:58 okay 16:41:00 equivalent 16:41:05 of course the type of c can depend on the tail of the list 16:41:13 the head you mean 16:41:17 :P 16:41:18 head::tail 16:41:22 or are we still calling it the tail 16:41:25 just having tail::head 16:41:26 AnMaster: log_a(x) would be defined when: x > 0 & a > 1 or x < 0 & a < 0 & what 16:41:49 i mean you coulld have xs :: x, then x : Vector (length xs) 16:41:50 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 AnMaster: 1) if you want it to be complex, that's already been done. 16:42:15 then you get [] :: () :: (a) :: (x y) :: (p q r) 16:42:20 AnMaster: ln(-1) = i pi 16:42:24 http://www.wolframalpha.com/input/?i=set 16:42:24 wat 16:42:37 AnMaster: For 2), sure, but what's the definition 16:42:39 so similar to this, instead of making a triangle ou could make a matrix 16:42:46 by adding rows and cols to it 16:42:50 hey guys 16:42:58 anyone got introduction to algorithms 3e? 16:42:58 Deewiant, 1) hm right 2) what? 16:42:59 MissPiggy: interesting! 16:43:09 AnMaster: What I just said 16:43:11 but does it work for any type? i don't think so 16:43:14 you have to define it to work 16:43:20 Deewiant, isn't it undefined due to x^-1 = 1/x and division with zero being undefined? 16:43:22 AnMaster: Sure, you can let it be undefined for some values, but what are those values 16:43:29 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 ehird anyway that's just the idea.. I'll try and write it out and see if it works 16:43:56 AnMaster: Huh? e^(i pi) = -1 16:44:23 MissPiggy: If that works it's really cool 16:44:23 Deewiant, I think we are talking about two different things here. with regards to 2). 16:44:35 ^..^ 16:44:40 come on 16:44:42 someone has to 16:44:43 Deewiant, Didn't "sure, but what's the definition" refer to the bit "x^-1 is undefined for x = 0"? 16:44:57 oh 16:44:57 meh 16:45:00 AnMaster: I meant what would the definition of log_a(x) be 16:45:09 Deewiant, I read "what" as "that" -_- 16:45:12 And what values of a and x would it be defined for 16:45:30 Deewiant, as in, you claimed x^-1 was undefined for x=0 due to being defined that way XD 16:45:41 Yeah, no. :-P 16:46:01 (Although that's sort of true too.) 16:46:10 oh? 16:46:54 x^-n is defined as 1/x^n for x != 0, n > 0 16:47:36 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 hm, forgot that was by definition rather than as a consequence of something else 16:47:58 well it's a consequence of what i said 16:48:13 that it's defined that way 16:48:15 Deewiant, but a lot of math wouldn't work if it wasn't defined like that though. 16:49:14 I didn't say it's unnecessary or anything. 16:49:43 (differentiation of expressions like x^(1/3) comes to mind) 16:49:55 Deewiant, hm is it an axiom then? 16:50:07 No, just a definition. 16:50:17 hm. 16:52:00 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 Hrrm, maybe it could be defined in some other way for when a<1 in that case 16:52:35 (x^a)' = a*x^(a-1) 16:52:39 in no point but 0 could that change 16:52:45 by the way 16:52:54 there's two kinds of differentiation 16:53:14 one is where you differentiate a function, like the function x |--> x^a 16:53:42 the other is where you differentiate 'formally', like it's just some kind of symbolic operation on syntax 16:53:50 and you get dxdx = 0, dxdy = -dydx 16:53:58 it's weird as fuck.... 16:54:32 there are natural ways to interpret those, even without infitesimals 16:54:50 and to be honest i'm not sure i understand them 16:55:05 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 well, ... it gives the right answer in the end 16:55:14 s/;/:/ 16:55:22 d isn't a letter though 16:55:22 formal differentiation is usually an operation defined for polynomials defined just like differentiation usually works for polynomials 16:55:31 d is a magical operation and it isn't even the letter d! 16:55:36 at least i consider d an operation, prolly cause i'm stupid 16:55:44 like, it's a transformation on variables 16:55:55 d(u+v) = du+dv 16:56:06 d(uv)=du*v + u*dv 16:56:11 stuff like that 16:58:04 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 it's just a mnemonic 16:58:26 oklopol, yes I know that 16:58:38 oh you know integration by substitution 16:58:42 it still creeps me out though 16:58:44 I have an idea about that 16:59:06 intergration by substitution works as follows: substitute something for x. 16:59:07 if (x,y,z) is one coordinate system (u,v,w,...) is another, then you make a pullbacn 16:59:12 pullback 16:59:27 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 and the idea is that you can transform forms like Adx+Bdy+Cdz into a du,dv,dw.. form 17:00:18 MissPiggy: what? 17:00:38 MissPiggy, wait, is that integration in more than one variable? 17:00:49 yes 17:01:16 you can interate over dx,dy,dz, or dydz,dxdz,dydx or dxdydz 17:01:21 MissPiggy, I don't read that much math when studying CS. At least not during the first year 17:01:34 which corresponds to the curves, surfaces and volumes 17:01:59 of course 3D is just one special case of nD 17:02:48 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 well theres this theorem that relates integration over a boundry to integration over the volume itsselt 17:03:39 AnMaster: if you have a function from an n-dimensional rectangle to reals, just integrate one axis at a time 17:04:05 it's all pretty nebulous and convoluted.. I'm still trying to figure it out myself 17:04:06 hm... 17:04:14 i mean integrate along one axis, and at each point integrate over the (n-1)-dimensional rectangle 17:04:18 corresponding to that point 17:05:11 -!- Pthing has quit (Remote host closed the connection). 17:05:16 oklopol, like ∫(∫(∫...dz)dy)dx? or something like that? 17:05:28 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 yeah something like that 17:06:05 fubini's theorem says you can integrate along the axes separately, and order matters not 17:06:08 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 inside of each other 17:06:19 right 17:06:43 woah is that fubini's theorem 17:06:49 I should know that.... 17:07:08 -!- sshc has quit (Quit: leaving). 17:07:13 oklopol, seems like a PITA to calculate though 17:07:33 (considering what a PITA integrals in one variable is) 17:07:40 if you have n axes, you have to solve n integrals 17:07:40 s/is/are/ 17:07:56 often some of them are just multiplication 17:08:28 oklopol, oh? "often" as in "often in exams" or "often in real world applications"? 17:09:27 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 if you're integrating an expression that doesn't depend on y over variable y, then it's just multiplication 17:10:07 i don't know anything about the real world 17:10:14 or calculus, for that matter 17:11:24 In real world you just integrate numerically and forgot all that symbol-manipulation nonsense. (Okay, so maybe not *quite*...) 17:11:31 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 even if you can solve it for many such products 17:12:04 (that was in reply to " often some of them are just multiplication") 17:12:28 fizzie, hah 17:12:30 yeah okay you completely misunderstood then 17:12:46 reread "oklopol: if you're integrating ..." 17:13:19 oklopol, well, yes, I was so busy writing that line to be correct, I hadn't noticed any line after " oklopol, oh? "often" as in [...]" 17:13:27 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 often the expression is only nontrivial to integrate over one axis (in homework problems that is :P) 17:14:51 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 even int y a b (x) should be obvious 17:15:44 oklopol, to be more specific: I'm unable to detect any dx or dy indicating which variable you are integrating to 17:15:54 oh that would be y 17:15:56 err, "integrating with respect to" 17:15:57 i don't use d's 17:16:21 well okay, then that line makes perfect sense yes 17:16:56 That'd be (b - a)y then, not (b - a)x. 17:17:24 Deewiant: what would be? 17:17:48 No, right, I read that exactly upside-down. 17:17:55 Deewiant, err wait... the x would still be there as well, no? wouldn't it be x*(b-a)*y 17:17:58 y is not necessarily even bound after the integral, and okay 17:18:10 8| 17:18:24 wait, nvm 17:18:24 AnMaster: y means nothing except inside that integral. 17:18:36 oklopol, I forgot that it wasn't an indefinite integral 17:18:38 xb - xa. 17:18:54 y is what gives (b-a) indeed 17:19:02 ...what does it have to do with this that it's indefinite? 17:20:18 oklopol, unless I'm completely confused by now: ∫xdy = ∫(x*1)dy = x*∫1dy = x*y 17:20:29 (i mean apart from the fact it's not one) 17:20:42 you can just write 17:20:44 oh 17:20:50 ∫dx 17:20:52 AnMaster: Yes, for an indefinite integral that's correct. 17:20:56 it doesn't need ∫1dx 17:21:19 MissPiggy, well yes. I added the 1 to make it clear what I meant though. 17:21:28 ok 17:21:38 And for an definite one then y turns into (b-a) 17:21:48 ∫_A dxdydz is the volume of A 17:21:58 Deewiant, ^ 17:22:13 Yes, I am aware. 17:22:27 Deewiant, well, but looks like oklopol got confused: 17:22:29 y is what gives (b-a) indeed 17:22:29 ...what does it have to do with this that it's indefinite? 17:23:01 yeah i was confused, didn't see why it's relevant that the definite integral was indefinite 17:23:07 AnMaster: So why are you talking to me and not him? 17:23:09 because it wasn't true 17:23:09 oklopol, my point was that I forgot it _wasn't_ indefinite 17:23:14 i see 17:23:30 "AnMaster: oklopol, I forgot that it wasn't an indefinite integral" misread 17:23:37 Deewiant, well: both since you highlighted me ;P 17:24:22 Mostly because he didn't respond 17:24:54 Deewiant, err? he did? " oh" 8 seconds before that highlight? 17:25:23 I wasn't sure if that was a response :-P 17:25:32 i just realized what he meant 17:25:51 and continued watching simpsons 17:25:52 Deewiant, I couldn't see what other interpretation would make any sense though 17:27:04 -!- MissPiggy has quit (Quit: MissPiggy). 17:27:39 also: definite integrals from 1 to infinity (or similar) are creepy. 17:27:39 i should sleep 17:28:29 -!- MissPiggy has joined. 17:29:31 what's creepy about them? 17:29:40 -!- Asztal has joined. 17:30:18 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 oh that old thing 17:30:36 I don't remember if it was 1/x or 1/(x^2). Something like that anyway 17:30:45 think about the same thing in one less dimension 17:30:56 oklopol, hm? 17:30:58 say you have the curve 1/x^2 or something 17:31:03 the are under it is finite 17:31:07 but the actual line is infinite 17:31:08 well yes 17:31:10 WOW 17:31:14 *area 17:31:18 which is creepy too. But not quite as creepy 17:31:27 then there's the paint argument 17:31:33 that 17:31:38 if you pour paint into the infinite tube 17:31:41 it'll fill up 17:31:43 oklopol, Yes I heard that 17:31:52 but you can never actually paint it 17:31:53 but it wouldn't be enough to paint the sides 17:31:56 exactly 17:31:56 yeah 17:32:16 but the thing is this makes absolutely no sense as an analogy 17:32:35 because you'd be painting it with some constant thickness of paint 17:33:12 so obviously you'll be using much more paint toe paint it than to fill it, after a whi 17:33:24 *to paint it *while 17:33:30 (wild mouse) 17:34:52 oklopol, about that thickness: you could get it go towards zero. 17:35:17 (makes as much sense at the rest...) 17:35:32 yep 17:35:37 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 and then the amount of paint would also be finite 17:35:56 well for 1), that is excluding the integral of f(x)=0 17:36:55 or functions that not only approach zero, but actually reach it and then stay there. 17:37:00 that sounds about as creepy as "two numbers can add up to a third one" 17:37:01 at some finite point 17:37:10 oklopol, hm? 17:38:05 it just does not sound creepy 17:38:45 oklopol: they CAN?!?!?!? 17:38:51 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 ehird: they can, and they *will* :| 17:39:04 oklopol, how is that not creepy? 17:39:20 are you sure you know what creepy means 17:40:23 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 this is what the whole thing reduces to 17:40:48 *sum of that subset 17:40:54 shouldn't use words for stuff like that 17:41:25 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 oklopol, that way to express it is too abstract (to me at least) to visualise it. 17:43:33 it means you take your integral and round things up 17:43:36 why visualise it 17:43:42 you get an infinite amount of numbers 17:43:46 all of which are positive 17:44:18 and if you know anything about series, you can see this infinite amount of numbers can have such an upper bound 17:44:25 oklopol, but try imaging this integral in terms of area 17:44:43 i always imagine infinite sums in terms of area 17:44:55 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 i just start stacking them up 17:45:09 and i see their sum is 2 17:46:02 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 Presumably 2^-n 17:46:35 hehe 17:47:04 AnMaster: sure, i even feel comfortable with defining "area" of that to be a frog 17:47:25 *the 17:47:29 oklopol, har. 17:47:36 it was not a joke 17:47:39 negative bases are awesome 17:47:41 signs are rubbish 17:47:54 there is no connection between mathematical areas and the real worls 17:47:56 *world 17:48:00 yes there is 17:48:00 ehird, balanced -ternary? 17:48:03 no ther eisn't 17:48:05 http://en.wikipedia.org/wiki/Negative_base 17:48:06 *there isn't 17:48:35 where - is a minus sign of course 17:49:52 oklopol, then how do you explain that finite real world and math areas seem quite often to match up? 17:50:06 http://personal.cis.strath.ac.uk/~conor/pub/Holes/Holes.pdf 17:50:08 this is awesome 17:50:32 AnMaster: because we constructed them to be vaguely similar to the real world at first 17:50:44 AnMaster: they model the real world well; obviously i didn't mean what i said 17:50:47 matheamtics has no inherent existence, it's just single-manipulation we dreamed up 17:50:50 although it was completely true 17:51:00 ehird, well yes. 17:51:24 mathematics is real 17:51:52 Your definition of "real" is strange. 17:51:55 MissPiggy, unless it is complex (or quaternionius or whatever) 17:52:04 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 hm 17:52:13 but the geometry of our world isn't the same as R^n, it's just one approximation of it 17:52:16 And the symbol manipulation was all invented by us. There's no inherent existence of mathematics. 17:52:18 "quaternionius" sound incredibly awkward 17:52:19 The universe does not have mathematics. We do. 17:52:30 AnMaster: Sounds like a good name for a fictional character. 17:52:33 Quaternionius. 17:52:39 ehird, what genre? 17:52:44 WHO KNOWS 17:53:33 oklopol, what about fractals? Comfortable with them too? 17:54:23 AnMaster is uncomfortable with a lot of very simple things. 17:54:23 ehird, hm does a balanced negative base even make sense? 17:54:29 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 AnMaster: what definition of fractal? 17:55:08 I agree with what you are saying about geometry 17:55:31 i'm not all that comfortable with sets whose hausdorff dimension is not a natural number, they are usually really scary 17:56:46 oklopol, hm. 17:56:55 -!- Pthing has joined. 17:57:56 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 "Definition of fractal" can't really mean more than one thing 17:59:04 Deewiant, oh? 17:59:22 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 I could think of two things: a) definition of a given fractal b) definition of what a fractal in general is. 18:00:11 "Definition of fractal" can't mean a) 18:00:17 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 if possible 18:00:25 "Definition of x" where x is known to be a fractal does 18:00:39 now fractals, afaik, are defined as sets whose hausdorff dimension is not a natural number 18:01:16 but a common way to construct such sets is through these recursive thingamajigs 18:01:33 which are probably a more common definition for a fractal 18:02:20 so what i'm saying is i'm comfortable with drawing things recursively, but sure, some complex sets are pretty scary 18:02:27 well yes recursive algorithms is the most common way to define a fractal that I have seen 18:02:32 if not the only way 18:02:49 that is, a given fractal 18:03:03 so everything is a fractal that can be computed using recursion, or what exactly? 18:03:23 oklopol, well, not afaik. 18:03:27 a question by which i mean that's a crappy definition, the hausdorff one is sexy 18:03:49 oklopol, I did know a bit about the dimension thing 18:03:53 -!- MissPiggy has quit (Quit: MissPiggy). 18:04:37 what do you mean, you knew we can embed k-dimensional objects in n-dimentional space? 18:04:55 *dimensional 18:05:47 also, what ehird said about common creepyness above: by that logic complex numbers should be creepy. But they aren't IMO 18:07:04 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 oh? cool. 18:07:48 (i hope you also know not all do) 18:08:24 oklopol, hm? 18:08:36 well err 18:08:55 i mean if you use the definition "thing you can draw using some sorta recursino" 18:08:58 *recursion 18:09:00 :P 18:10:04 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 (or something like it) 18:10:20 yeah 18:10:39 which, while recursive, would give you a straight line starting at a given point and then going on forever 18:11:46 the sexiest thing about hausdorff dimensions is you don't have need to be working with real numbers 18:11:52 just any metric space 18:11:55 oklopol, what about requiring more operations for each step (alt: you recurse more than once at a given level) 18:12:11 most (all?) fractals seems to be like that? 18:13:26 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 hm, is that a fractal, or just something similar? 18:13:42 koch snowflake 18:13:48 oh 18:13:57 that's the cantor set 18:14:06 did you come up with that? 18:14:15 oklopol, I know that algorithm is a classical one 18:14:19 if you did, you could've been famous! 18:14:20 oh 18:14:21 I didn't remember the name of it 18:14:38 also called cantor's dust, it has useful properties 18:14:51 oklopol, name is indeed familiar when you mention it 18:15:03 oklopol, anyway, what is the dimensionality of it 18:15:32 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 (with lebesque measure) 18:15:49 oh... 18:15:52 Homeomorphic lebesques. 18:16:00 ehird, XD 18:16:01 I think they have porn of those. 18:16:48 Higher math is actually all porn behind the scenes 18:16:52 also: " koch snowflake" <-- that's the one you add in a triangle (well, two sides of one) in the middle, right? 18:16:53 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 yeah 18:17:22 Homeomorphic lebesques functoring. 18:17:59 "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 ehird, that quote is one truly awful joke... 18:20:00 where is it from? 18:20:11 It's not so much a joke as colourful wordplay. 18:20:34 http://personal.cis.strath.ac.uk/~conor/pub/Holes/Holes.pdf, a paper that begins: 18:20:34 yeah, maybe calling it "joke" was stretching things a bit ;P 18:20:38 Abstract 18:20:41 Mornington Crescent 18:20:43 1 Introduction 18:20:46 The purpose of this paper is not only self-citation (McBride, 2001; McBride & Paterson, 2006), ... 18:20:54 (Yes, the abstract is actually "Mornington Crescent".) 18:21:03 hah 18:22:02 ehird, the language used, which one is it? haskell? 18:22:16 some parts of it look quite similar at least from a quick glance 18:27:29 Haskell with a few bits of do-what-i-mean. 18:27:39 In 18:27:43 naughtE :: ∅ → a 18:27:44 naughtE = ⊥ 18:27:46 for example, 18:27:53 ⊥ would be an operator and thus not valid like that 18:28:04 But it doesn't matter because it's a paper, not a program. :P 18:28:18 -!- MizardX- has joined. 18:28:26 (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 ehird 18:32:23 you're right, she forgot language 18:32:38 the lambek calculus was designed for grammatical structures. 18:34:54 augur returns to the discussion, just in time for me to wake up 18:35:01 hey :p 18:35:17 ಠ_ಠ 18:35:25 oh hai 18:37:28 ehird, ah 18:39:09 ehird, i think you're naughtE 18:41:12 * pikhq waves at folk 18:51:39 hey pikhq 18:52:33 Hey. 19:06:24 -!- sshc has joined. 19:07:24 * Sgeo wonders if ehird is going to read FS soon 19:10:55 im having an email convo with noam chomsky D: 19:10:55 :D 19:10:57 D: 19:19:14 hello 19:20:22 [18:32] you're right, she forgot language 19:20:22 he 19:20:27 augur: really? 19:20:28 cool 19:21:00 ehird: misspiggy is not a boy. 19:21:06 he's fax. 19:21:08 aka soupdragon 19:21:11 and fax is a girl. 19:21:18 i'm fairly sure i've heard otherwise 19:21:34 If using a female nickname one should expect female pronouns. 19:21:42 well we'll ask just to confirm ;P 19:21:56 ehird: indeed, tho, yes. lambek calculus _is_ a theory of grammar. 19:22:22 "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 In wonderland. 19:22:28 Aw, taken. 19:22:37 -!- alice has changed nick to alise. 19:24:37 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 my evidence is that she told me so. 19:25:11 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 augur: ah. 19:25:58 whats up sweeties? 19:26:05 or maybe transman? i have no clue about the details, honestly. 19:26:23 all i know is that fax/soupdragon/misspiggy is smart and interested in CS and linguistics 19:26:28 and therefore has become a good friend. 19:26:33 cheater3: WHOS YOU 19:26:37 hmm... i think we've had more transgirls here than cisgendered females 19:26:39 DONT CHEAT ME 19:27:00 alise: you're a transgirl. 19:27:08 no. no i'm not 19:27:09 tho maybe not intentionally :X 19:27:16 my gender is 0.5 :P 19:27:26 :p 19:27:33 ehird is genderqueer! 19:28:42 augur: i am you 19:28:47 D: 19:28:49 oh ok 19:28:51 god programming languages are sexy :| 19:28:55 * augur makes out with himself 19:29:00 can i be typesexual 19:29:05 programming languages are transgender 19:29:17 only if you're into programming languages with strict typing 19:29:24 which ofcourse means lots of leather and whips 19:29:29 i was about to - 19:30:08 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 i wont 19:30:39 i hate ovaries 19:30:57 but you're still ehird, and ovaries wont make you most spiteful 19:31:03 more* 19:31:10 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 augur: do you have 'introduction to algorithms' 3 ed for me? 19:31:26 and two, they're not really a concrete collection of values 19:31:31 so I'm back to square one 19:31:34 cheater3: what? 19:31:53 alise: call it Empty. thats what the dependent type people call it. 19:31:57 i am looking for the book called what i just mentioned, augur 19:32:05 cheater3: ill try! 19:32:15 augur: I *am* a dependent type person! 19:32:22 augur: but I'm also a Unicode whore. 19:32:32 :) 19:32:38 then use an epsilon 19:32:53 ∅ should be reserved for actual {}'s 19:33:07 right but epsilon is "arbitrarily small", not "length one" 19:33:11 ε is occasionally used for the empty string, but 19:33:12 augur: 2ed gives minus 50 points 19:33:33 augur: do you think ∅ is acceptable for any sequence, though? 19:33:48 lists, concrete sets (actual {}s, as you put it), associative maps, etc. 19:33:50 no, its not a sequence 19:33:59 but it's a convenient and pretty notation 19:34:13 1 ∷ 2 ∷ 3 ∷ ∅ 19:34:38 err wait 19:34:44 what i want isn't "arbitrarily small" 19:34:46 I want "empty" 19:34:52 epsilon isn't empty, it's arbitrarily small 19:35:08 well its the empty string in formal language theory! 19:35:10 relatedly, what should I call the unit type? maybe a circle 19:35:13 cheater3: i only have the second edition :( 19:35:24 cant find the 3rd edition anywhere 19:35:26 augur: don't get me wrong, I don't care about total mathematical notation faithfulness 19:35:29 augur: you don't want minus 50 points, do you? 19:35:30 alise: unit type should be a fancy 1 19:35:31 I just don't want it to *confuse* mathematicians 19:35:36 augur: heh 19:35:39 augur: find me a fancy one and it's done 19:35:46 augur: blackboard 1 would work, to fit in with sets like N 19:35:58 well lets see what unicode gives us 19:36:51 disregard ∷ ∀a. a → ○ 19:36:52 disregard x = ○ 19:37:18 1⒈①❶➀➊⓵⑴Ⅰⅰ 19:37:28 heh, ➀ 19:37:36 ○ > ➀ imo 19:37:40 ☝ 19:37:55 that is not a rude gesture. 19:38:10 if i had one more finger it would be 19:38:11 ZAL҉̵̞̟̠̖̗̘̙̜̝͇̊̋̌̍̎̏̐̑̒̓̔̿̕̚͡ ̒̓̔̕̚GO he cometh. 19:38:11 :| 19:38:27 i like the ring tho 19:38:28 ring is nice 19:38:58 ZAL҉̵̞̟̠̖̗̘̙̜̝͇̊̋̌̍̎̏̐̑̒̓̔̿̕̚͡ ̒̓̔̕̚GO is ta∵∵si∵∵ 19:40:43 ⦶⦸⦼⧃⧂ 19:40:49 check it out, im writing in naboo-an! 19:41:01 ○ is nice because it's like () but without the tupley implications 19:41:04 because it isn't really tupley 19:41:09 indeed 19:41:18 main ∷ Partial (IO ○) 19:41:35 ⦾ 19:41:47 ⨀ 19:41:57 ⇄ would be a good unicode name for IO. 19:42:00 ⊙⊚ 19:42:08 augur: i think it doesn't exist :( 19:42:10 main ∷ Partial (⇄ ○) 19:42:18 augur: your second-last line is just a boob. 19:42:26 cheater3: it does, published in like september last year or something 19:42:39 augur thats not the kind of exist that i meant 19:42:43 ⨴ can denote partial 19:42:54 ⨴ (⇄ ○) 19:42:58 I can't see that 19:43:12 its part of a circle! 19:43:14 multiplication sign in left half circle 19:43:15 lol 19:43:25 why are you guys using squares all the time 19:43:32 we're using unicode 19:43:33 and you're not 19:43:36 GTFO 19:43:39 i am using xchat 19:43:43 the latest version 19:43:52 so what are you talking about 19:43:53 http://www.fileformat.info/info/unicode/char/25d6/index.htm 19:44:02 If it doesn't do Unicode, then it sucks balls. 19:44:03 cheater3: one, stop using windows 19:44:04 two, get fonts 19:44:07 how do i make xchat use unicode more than it does already 19:44:08 three, set encoding to utf-8 19:44:15 how do i set encoding 19:44:20 press alt-f4. 19:44:38 alttttttttttttttffffffff44444 19:44:41 doesnt work 19:44:46 i cant reach the minus 19:44:49 autodefenestrate 19:45:31 cheater3: Weak. 19:46:27 so pikhq 19:46:37 i don't want to use _ for my multifix operator placeholder character 19:46:41 uh you may not know what multifix is 19:46:47 pikhq: multifix lets you define operators like this 19:46:53 if_then_else_ 19:47:02 [_] 19:47:03 (_) 19:47:17 _therefore_CHICKENPOX$_okay_okay 19:47:19 used as: 19:47:24 if poo then bar else lux 19:47:26 [bok] 19:47:29 (wammy) 19:47:44 mints therefore (death is okay) CHICKENPOX$ whoa okay (2+2) okay 19:47:56 alise: So, even less special syntax. 19:48:11 λ_._ 19:48:11 Hmm. 19:48:12 It's a lambda! 19:48:17 pikhq: i would like to stand up to your expectations but i cannot. :( 19:48:19 pikhq: but I don't want to use _ for it because you should be able to use that in names 19:48:25 (Unicode is acceptable, even encouraged) 19:48:56 alise: Not sure; that's hard to pick... 19:49:44 i used the boob character, ⨀, but it just didn't really look very good 19:49:46 if⨀then⨀else⨀ 19:49:55 λ⨀.⨀ 19:50:00 pikhq: Some sort of question mark would work 19:52:34 can you guys try those squares again pls 19:52:38 if ※ then ※ else ※ 19:52:43 nope, doesn't work 19:52:51 try again? 19:53:05 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 Asztal: try once again 19:53:23 ‽℀℘ℋ₨áóíúéμ 19:53:29 nope, still squares 19:53:29 http://esolangs.org/wiki/RETURN <-- made an interpreter in python 19:53:30 Asztal: no spaces 19:53:42 if※then※else※ 19:53:45 looks like a holocaust 19:53:47 :P 19:53:52 if BOOM then BOOM else BOOM 19:53:59 i saw: interrobang, a/c, some weird p, some weirder H, Rs, 'a, 'o, 'i, 'u, 'e, mu. 19:54:01 Asztal: i am using xchat, is that not a good client for that? 19:54:13 cheater3: try setting the encoding to UTF-8 19:54:13 what has ℀ got to do with anything? 19:54:24 gm|lap, Asztal: i tried doing /charset IRC and /charset UTF-8 19:54:32 both do not work 19:54:34 aww :/ i guess you might be lacking fonts then 19:54:47 where do i get unicode fontz for my windoze? 19:55:03 idunno, all i can say is you can get them with linux 19:55:08 or FreeBSD, even 19:55:36 i suggest you look at that python interpreter, the idea is really scary 19:56:16 let me try this 19:56:17 Courier New – 2726 characters (3151 glyphs) in version 5.00 19:56:57 heh... AFAIK X11 rips chars from other fonts 19:56:59 if you couldn't see áéíóú that's an indication that it's not a font issue 19:57:04 if anything's missing 19:57:26 Asztal: i could see that 19:57:29 if you couldn't see ☭ that's an indication that it's probably a capitalism issue 19:57:32 cheater3: stop using windows. :) 19:57:33 Asztal: but i could not see the 5 to the left of that 19:57:37 if☭then☭else☭ 19:57:38 gm|lap: Yeah, X11 makes a best-effort to display everything, even if it is ugly as hell. 19:57:41 alise: stop being a transgirl :) 19:57:51 consider it done 19:57:53 gm|lap: not on my usual baux 19:57:58 (yes, baux) 19:58:18 alise: don't upgrade, pulseaudio in ubuntu 9.10 is extremely crappy 19:58:30 i removed it with force 19:58:34 ...actually, with apt-get remove 19:58:40 i like 9.10, but this isn't my machine 19:58:44 also esound is broken too 19:58:45 it hasn't been upgraded only out of laziness 19:58:48 hmmkay 19:58:52 my desktop runs freeBSD 19:59:05 if¤then¤else¤ 19:59:11 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 My desktop still runs 7.04 19:59:20 tbh freebsd has the best sound system for unix ever: newpcm 19:59:38 it's like multi-application OSS 20:00:04 gm|lap: we have that it's called ossv4 20:00:34 i heard that was the one that was single-app-only... hmm 20:00:45 there was one which did MIDI and one which did multi-app 20:01:05 ossv3, old oss, is single-app 20:01:10 ossv4, which is new and not in the kernel, isn't 20:01:14 unless i'm mistaken 20:01:21 (it's kernelspace just not in the mainline kernel) 20:03:30 gm|lap, this isn't my desktop 20:03:37 I rarely even use my desktop anymore 20:03:44 Only when I want to get old files off of it 20:03:53 this is the slowest installer ever 20:03:59 microsoft word viewer 97 or something 20:04:07 pikhq: perhaps a solid middle dot would work 20:04:10 Get AbiWord? 20:04:11 ok 20:04:15 alise: Perhaps. 20:04:18 can you guys try the squares again 20:04:22 pls 20:04:31 最↓→ð 20:04:32 Perhaps 20:04:35 works 20:04:37 gm|lap: also, harddrive sizes are not a marketing conspiracy. 20:04:40 didnt even need to restart 20:04:42 ‽℀℘ℋ₨áóíúéμ 20:04:46 this did not work 20:04:58 cuils? 20:05:00 i see 5 squares and then 5 letters with diacrytics 20:05:09 and then \mi 20:05:14 or \mu or whatever that is 20:05:14 i reckon it's just being cheap 20:05:20 brb 20:05:50 gm|lap: http://www.tarsnap.com/GB-why.html 20:05:59 -!- cheater3 has quit (Quit: Leaving). 20:06:03 cheater3: Don't even see interrobang? 20:06:16 I'd guess you don't get a gnaborretni, either. 20:06:33 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 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 we don't run 2.2GB processors, we run 2.2GHz. 20:07:24 1 Gbps Ethernet transmits data at... 10^9 bits per second < that's also stupid. 20:07:26 pikhq: Please LART gm|lap, for he believes that units change their prefixes. 20:07:39 it was always 2^10 B for a KB 20:07:50 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 gm|lap: And it was fucking wrong. 20:08:12 Stop making things fucking wrong. 20:08:26 stop making things so damn cheapass 20:08:30 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 gm|lap: I will quote from the page you apparently didn't read. 20:08:48 "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 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 Yes, because they should be SSDs. 20:09:29 However, that does not mean a gigabyte is 2^10 megabytes. 20:09:35 (or mebibytes, for that matter) 20:09:37 Which are flash memory, which is addressed in silicon, so you get powers of two. 20:09:47 SSDs: Sexually Satisfying Disk 20:09:49 s 20:09:50 megafael 20:10:00 i restarted xchat and it said the 30 day evaluation is over 20:10:03 so i had to restart it 20:10:14 i thought this was free open source software, wtf 20:10:20 It is, the Windows build isn't. 20:10:23 Use Silverex, or not Windows. 20:10:29 can you guys try some unicode again? 20:10:35 no. :D 20:11:14 http://silverex.net/news IIRC 20:11:21 Hm 20:11:28 This laptop has to be at least 3 years old 20:11:31 do not be unfriendly alise 20:11:35 it is not nice 20:11:40 http://www.silverex.org/news/ actually 20:11:48 cheater2: :'''''''''''''''''( 20:11:48 * Sgeo is using Silverex 20:11:53 i cry 20:12:11 Asztal: can you try some unicode for me please? 20:12:26 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 *sightings 20:17:21 http://www.fileformat.info/info/unicode/char/2237/index.htm 20:17:26 I wonder what it's actually supposed to b e 20:17:27 *be 20:17:31 "proportion" is unhelpful 20:18:11 pikhq: annoyingly unicode messes with layout :( 20:18:26 because characters that display as >1 character are still treated as one character 20:18:32 (you can't fit *every* character into a tiny space) 20:18:35 (not without distortion) 20:18:41 alise: :/ 20:18:46 the solution, of course, is non-textual editing! :P 20:23:57 if ※ then ※ else ※ 20:24:02 hmm 20:24:08 if ※ then ※ else ※ 20:24:13 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 hi MissPiggy 20:26:45 hello 20:26:54 nice name 20:27:13 so's your face :| 20:27:19 why thank you 20:27:25 I know rite 20:28:05 just repartitioned and reinstalled my os 20:29:17 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 I don't know what you mean 20:29:38 what type 20:29:39 I didn't really understand it so yeah 20:30:39 ? 20:31:47 hm 20:31:52 what are you asking 20:32:22 well 20:32:25 can you explain your solution to me 20:32:27 I didn't really grok it 20:32:49 okay 20:33:43 dyld: unknown required load command 0x80000022 20:33:43 zsh: trace trap ocaml 20:33:53 dammit 20:33:55 MissPiggy is an AI?! 20:33:59 le gasp 20:34:12 MissPiggy: you're using OCaml and zsh on OS X. 20:34:13 you're surprised by this? 20:34:19 i am so inferrerator 20:34:47 okay anyway, 20:34:56 the idea is to make a data type a bit like this one: 20:35:15 data Snoc a where nil :: Snoc a ; cons :: Snoc a -> a -> Snoc a 20:35:39 god dammit 20:35:45 data Snoc a where nil :: Snoc a ; snoc :: Snoc a -> a -> Snoc a 20:35:55 ya ya 20:36:07 the difference, is that in snoc xs x, you let the type of x depend on xs 20:36:09 so perhaps 20:37:00 data Snoc f where ... ; snoc :: forall xs :: Snoc f, f xs -> Snoc f 20:37:21 if you let f = const a, then it's equivalent to the old one 20:37:40 but if you let f xs = Vector a (length xs),for example -- you get triangles 20:37:52 forall xs :: Snoc f, f xs -> Snoc f 20:37:53 my idea is to use this to make matrices instead of triangles 20:37:54 this notation confuses me 20:38:14 it's just (xs :: Snoc f) -> (x :: f xs) -> Snoc f 20:38:17 use haskell notation like you've been doing but with (name::t)-style dependent type notation plz :P 20:38:19 ok 20:38:19 wait 20:38:21 lemme write this out so far 20:38:43 what type is f? 20:38:47 a->a? 20:38:53 no, a->Set 20:38:58 f :: Snoc f -> Set 20:39:01 -!- kar8nga has joined. 20:39:12 but don't worry about the type of f 20:39:21 it will probably become something else in the future 20:39:36 so it's not Snoc f a 20:39:38 just Snoc f? 20:39:57 yeah as I was writing Snoc f a I realized Snoc f subsumes it 20:40:08 so there's no need for an a 20:40:16 so: 20:40:22 data Snoc :: (Snoc f -> Set) -> Set where 20:40:22 nil :: Snoc f 20:40:26 cons :: (xs :: Snoc f) -> (x :: f xs) -> Snoc f 20:40:33 so, let me say this in words 20:40:56 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 so f gets the rest of the list, and returns the relevant type 20:41:17 so Snoc (const t) = Oldsnoc t 20:41:30 I think I see how this is cool 20:41:35 It's a polymorphic list of sorts 20:41:41 except the type of the element depends on the rest of the list 20:42:07 yes 20:42:25 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 but nothing else 20:42:28 okay, got it 20:42:32 so how does this solve the expression problem? 20:42:34 now what we could do is define something like 20:42:48 ROW 20:42:57 COL 20:43:23 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 this way you can build up a NxM matrix starting from a 0x0 one 20:44:03 at a first approximation that matrix could just have numbers in it, or whatever -- it doesn't really matter 20:44:26 to solve the expression problem we will have to compute the type of the cell based on the function spec. 20:44:37 but that's just details, the important bit is SNOCing on ROWs, and COLs 20:48:09 wait wait 20:48:12 let me catch up 20:48:15 forgot to read 20:48:20 okay so ROW and COL are data constructors 20:48:23 of the same type or not 20:48:34 yeah, I think that they have to be of the same type 20:48:39 an issue is that 20:48:46 ROW does not actually add rows 20:48:49 + func1 | func2 | ... Foo x y | y | x ... Bar x y | x | y ... +-----------------... 20:48:50 erm 20:48:54 Foo x y | y | x ... 20:48:55 Bar x y | x | y ... 20:48:58 all Foos and all Bars are the same row 20:48:59 ROW adds a column 20:49:03 and COL adds a row 20:49:05 ... 20:49:06 why? 20:49:24 [20:43] 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 :/ 20:51:19 so 20:51:24 let me answer that question 20:51:49 just a sec 20:51:55 MissPiggy: I think an example would help, so 20:51:56 http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w 20:51:59 the unextended bit there 20:52:04 with Foo x y and Bar x y as the rows 20:52:07 and func1 and func2 as the columns 20:52:14 how would you write that, given your definitions? 20:52:29 suppose we wanted to define functions, eval, size and show on data Exp = Num Int | Add Exp Exp | Mul Exp Exp 20:53:01 no 20:53:05 can we use my example :P 20:53:11 not to be rude, it's just that i understand mine 20:53:14 since it's very simple 20:53:32 instead of getting bogged down in details etc 20:55:59 z 20:57:24 MissPiggy: think I should have inductively defined sets as in mathematical notation? 20:57:28 might be convenient, dunno 20:57:44 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 read that sequentially and slowly :P 20:58:10 I think you can consider inductives as sets, but I don't 20:58:31 oh you said something else completely 20:58:38 yerr, i don't understand that :( 20:58:40 well you can implement set theory in type theory 20:58:48 what is it for Foo/Bar/func1/func2? :P 20:58:55 and what's a description 20:59:04 and er you have an unterminated string 20:59:09 it just says whwat the type of the constructor is 20:59:52 ?? 21:01:34 we dont' program over the real data Expr = ... 21:01:48 we are actually making a program over a generic sort of datatype called a universe 21:01:54 yeah but uh 21:01:59 ff 21:02:02 so U is isomorphic to Nat 21:02:10 and U is .... Expr 21:02:17 so what is * 21:02:20 what is string * thing 21:02:22 what operator is that 21:02:28 tuple? 21:02:31 oh I just meant that like a tuple yeah 21:02:39 thanks for inventing notation without telling me :/ 21:02:55 description = type? 21:03:02 could be yeah 21:03:13 what's the resulting value 21:03:18 (exists a. a)? 21:04:26 resulting value? 21:04:31 of what? 21:04:31 of the type 21:04:33 which type 21:04:37 fff 21:04:38 description 21:04:39 = type 21:04:40 of row 21:04:49 you know this sort of notation? 21:04:55 MuX.1+X 21:04:58 for data types 21:05:01 [20:57] 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 that line is what i'm referring to 21:05:22 I'm starting to realize that my idea takes quite a bit of background to understand.. 21:05:43 Okay, so I've tried to write my Foo/Bar/func1/func2 example using your notation. 21:05:47 wait I have a great idea how to explain that 21:05:49 nil `snoc` 21:05:50 Row "Foo" (a -> a -> (exists b. b)) `snoc` 21:05:52 Row "Bar" (a -> a -> (exists b. b)) `snoc` 21:05:54 Col "func1" (\_ y -> y) (\x _ -> x) `snoc` 21:05:55 Col "func2" (\x _ -> x) (\_ y -> y) 21:06:02 yeah just like that 21:06:15 Okay. Unfortunately, it doesn't allow adding rows. 21:06:20 ?? 21:06:25 If I add a row, and then call func1 or func2 on it, they don't work; they explode and break. 21:06:30 Because they don't handle the new type. 21:06:31 no 21:06:33 * Sgeo goes to mark 7000 or so conversations as read 21:06:46 In the OOP system, which can add rows, they inherit the definition (and you cannot remove fields, so they must work) 21:06:49 when you add a Row you must define one new case for func1 and func2 21:06:57 so it becomes 21:07:00 the reason you MUST do this, is because if you don't -- it will not typecheck 21:07:19 Row "Quux" blah (\_ _ z -> z) (\_ y z -> y+z) 21:07:23 func1 and func2 respectively 21:07:24 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 yes 21:07:45 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 this would be incredibly awkward to program in 21:07:51 * MissPiggy is compiling Coq to try and implement this 21:08:09 alise yeah it'll be awkward as fuck in Coq but I bet you could make easy as pi in epigram 21:08:16 easy as pi :D 21:08:23 fuckin' Coq 21:08:25 (the epigram that isn't quite finished yet, epi 2) 21:08:39 try agda? 21:08:47 the flexible operators might help make the syntax more bearable 21:09:08 I have 16,163 messages in label "Agora" 21:09:22 I have two rabbits 21:09:38 (13530 conversations here, comprising more messages) 21:09:44 umf gtg 21:09:51 MissPiggy: rjg spg 21:09:56 well i look forward to your implementation 21:10:02 and i'm going to play around with this as a language feature now 21:10:02 bye 21:10:46 Well, when I said messages, I meant conversations >.> 21:11:05 lawl 21:12:59 Ah 21:13:05 My Gmail account looks so clean now 21:14:12 After what? 21:14:38 MissPiggy: http://pastie.org/812719.txt?key=yvxcfkcsixjpvfijd5gug 21:14:41 It looks slick as a language feature 21:14:52 Marking everything as read 21:15:01 Ah. 21:15:24 mmmm 21:15:41 * Sgeo goes to mark all 30398 conversations as unread for no good reason 21:15:44 http://pastie.org/812720.txt?key=p9mayakdi0z2wka3vzwtq 21:15:48 MissPiggy: More consistent syntax 21:15:54 I guess the natural thing to do now is generalize it to infinite dimensions 21:16:04 What would that help? :P 21:16:23 MissPiggy: one thing I don't like is 21:16:34 if you have a function that's the composition of two columns, it doesn't need to be a column 21:16:39 in fact it shouldn't be 21:16:40 but 21:16:52 in functional programming you don't have to distinguish columnular and non-columnular functions 21:16:57 it seems a bit awkward to have to do so, in fact 21:17:11 well I should say something here, 21:17:21 suppose we defined t1 = []`snoc`... a bunch of stuff... 21:17:31 and t2 = t1`snoc`... some more stuff... 21:17:50 (note: in mine, since tables would be compile-time, they would "mutate") 21:17:54 (so no need to make new names) 21:18:13 so t1's type would express that it defines N-functions over some (M-constructor'd) datatype 21:18:22 MissPiggy: your system is a vulnerability 21:18:27 and t2 would define more functions over a data type that is an extension 21:18:44 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 easy fix though: 21:18:52 suppose that x is a value, and you wanted to apply it 21:18:55 just add constraints requiring proofs 21:18:57 voila, security 21:19:07 you would need to PROJECT and EVALUATE the function out of the table 21:19:08 MissPiggy: apply it? 21:19:11 right 21:19:20 like projeval t1 "f2" x 21:19:32 in mine, just f2 x 21:19:33 :P 21:19:46 yeah 21:20:26 I don't think there is any vulnerability though 21:20:31 I do think http://pastie.org/812720.txt?key=p9mayakdi0z2wka3vzwtq is remarkably elegant though 21:20:42 MissPiggy: not if you make sure you have constraints on the functions 21:20:46 yeah 21:20:49 like any good dependent programmer will 21:20:58 plus you'd have to inject code into the system anyway 21:20:58 s/programmer/type system/ 21:20:59 :p 21:21:00 and if you can do that, well... 21:21:02 MissPiggy: touche 21:21:17 maybe we've discovered the Nth major paradigm 21:21:24 table-oriented programming 21:21:28 (not to be confused with SQL :P) 21:21:33 lol 21:21:59 maybe I should use agda :/ 21:22:27 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 MissPiggy: wut 21:22:44 haha I don't think you can turn that into haskell 21:22:51 worth a try 21:22:56 this this good plugin for Coq I can try out 21:22:59 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 Point is, it has type-level functions and a whole lot of other trickery. 21:25:52 It's everything apart from dependent, pretty much. 21:25:55 TC or not, it still doesn't have lambda 21:26:04 oh well you can do everything in SK 21:26:18 TC means it is equivalent to lambda in computational power, though. 21:26:33 MissPiggy: it does have lambda 21:26:37 you just have to define them elsewhere 21:26:41 And compiling lambda to SK is trivial. Annoying, but trivial... 21:26:41 okay, so it doesn't have lambda 21:26:46 but it has first-class functions (types) 21:31:54 internet archive is really slow today it seems 21:32:07 even more than usually 21:32:38 (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 heh 21:33:14 -!- cheater2 has quit (Ping timeout: 252 seconds). 21:33:40 -!- cheater2 has joined. 21:35:06 What good alternatives are there to C++? 21:35:57 C-like alternatives, I mean. Not talking about Haskell here 21:36:05 Sgeo, C? 21:36:17 With OOP, preferably 21:36:21 objective c then 21:36:27 why not haskell? 21:36:57 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 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 Sgeo: C, Objective C, D... 21:38:49 yeah Objective C 21:38:54 Objective D++ 21:38:58 lol 21:39:00 the language with literally every feature 21:39:04 Objective C++ is a real thing. 21:39:15 AND SO IS OBJECTIVE D++ 21:39:38 Just not implemented. 21:39:55 yes it is 21:39:57 apple implement it 21:40:04 and so does gcc because of that 21:40:05 ummm lol 21:40:08 Hm, I shoulld probably learn D 21:40:13 don't. it's shit 21:40:20 How so? 21:40:34 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 It's been like this for years, and I mean years. 21:40:44 Secondly, it is not a designed language. 21:40:51 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 Probably much like being in a different building. 21:47:13 hm? 21:48:14 MissPiggy, I _think_ alise is saying I should switch schools in order to actually get challenging classes 21:48:21 oh 21:48:51 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 Or have done the classes before. :P 21:49:16 You may be a really excellent programmer, but the probabilities are weighted in the direction of bad school. 21:49:43 I know the other students think I'm an excellent programmer.. 21:49:44 MissPiggy: I'm getting the example translated, slowly 21:49:53 Sgeo: They could just be realy bad programmers, though. :P 21:49:59 alise, I think that that's the case 21:50:02 I'm not dissing you, just being all probabilitying. 21:50:37 you're so bayesian! 21:53:10 totally mon 21:54:34 MissPiggy: do you have any idea how many times i've seen the word "kind mismatch" in the past few minutes 21:55:36 hahaha 21:55:46 Kinds are basically the type of tyoes? Maybe is * -> *? 21:56:02 Sgeo you are correct 21:56:27 yar 21:56:39 *words 21:56:50 {-# LANGUAGE KindSignatures, RankNTypes, GADTs, FlexibleContexts #-} 21:56:52 a sure sign of madness 21:58:24 ffff 21:58:27 ohh 22:04:09 * Sgeo tries to make a website that doesn't support Chrome work in Chrome 22:05:19 Does Chrome not support getElementById? 22:06:56 ... 22:06:57 haha 22:07:59 It looks like it should 22:08:06 Some googling suggests it doesn't 22:09:03 It's supported 22:10:18 Ugh 22:10:26 Does it have something to do with the fact that it's in a table? 22:11:45 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 i don't know if you actually wanna get A's, if you do, that might be relevant. 22:13:22 i think he means more "a programming class that isn't really easy" 22:13:52 yeah, probably, that's why i hastily added the second line :P 22:13:57 i'll reread what he said 22:14:27 hmm yeah 22:14:45 then it'd probably feel nice, since taking trivial courses feels is a waste of time 22:14:53 ... 22:14:57 another great sentence 22:15:16 i should stop trying, i clearly haven't woken up yet 22:15:51 They're trivial for me 22:15:58 I don't know if they're trivial for most people 22:16:47 well i mean taking courses that are trivial for you is a waste of time. 22:17:13 I do need to get a degree 22:17:38 i suppose, i prefer to live in the moment 22:18:05 a degree from a bad school sounds exciting 22:18:52 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 almost? 22:21:16 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 so you need to add that rule 22:21:22 hi coppro 22:21:27 hi 22:21:27 * alise (ehird) 22:21:44 any particular reason? 22:22:11 i think he just likes you 22:22:15 lol 22:22:19 :P 22:22:29 I decided to see if people would treat me differently if they believed I had ovaries 22:22:41 i was like oooh want summa that 22:22:53 but then i realized you were a guy 22:22:57 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 after reading a few of your lines 22:23:03 lol 22:23:04 xD 22:23:13 MY TALKINGS ARE VERY FEMININE 22:23:25 I don't think I behave any different towards women on the internet 22:23:35 did I just PM alise? 22:23:48 this stupid client thinks // means / 22:24:09 real life is a different story :P 22:25:29 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 MissPiggy: do any existing dependent langs have isa :: a -> Set -> Bool 22:25:46 probably 22:26:00 isa?? 22:26:08 you mean like equality check? 22:26:28 oklopol: I suspect the LGBT community has some pitchforks ready for you 22:27:00 :P 22:27:23 i've been known to raise people's pitchforks 22:27:38 ... 22:27:47 "..."? 22:27:49 pervert 22:27:53 there we go 22:28:44 i wish i had water 22:28:46 -> 22:29:32 MissPiggy: anyway do you think Complex :: Set; Complex = {_+i_ m n | m ← Real, n ← Real} is good notation for set construction? 22:29:41 i dunno, I think: 22:29:45 data Complex :: Set where 22:29:48 alise I think isa is probably inconsistent 22:29:56 _+i_ :: Real -> Real -> Complex 22:30:00 is easier to understand 22:30:06 but it's also "specialer" 22:30:07 _+_i? 22:30:09 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 but I am doing stuff instead 22:35:23 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 14:30:09 that {} stuff is horrid 22:43:18 you're horrid. 22:43:21 14:30:07 _+_i? 22:43:22 nice 22:43:25 alas, both are ambiguous 22:43:29 -!- bsmntbombdood has joined. 22:43:30 3 +i 4 could be 3+(i 4) 22:43:42 3 + 4 i could be 3 + (4 i) 22:44:05 then make i the Imaginary operator 22:44:08 14:29:48 alise I think isa is probably inconsistent 22:44:09 why 22:44:13 it's just type checking 22:44:24 14:23:48 this stupid client thinks // means / 22:44:25 _ + _ :: Real -> Imaginary -> Complex 22:44:29 i didn't see it, my connection went wonky 22:44:32 coppro: no way. 22:44:33 :P 22:44:49 14:23:25 I don't think I behave any different towards women on the internet 22:44:56 you probably do, sexism is incredibly ingrained in society. 22:46:12 coppro: then again ambiguous operators are all the rage 22:46:17 if_then_ plus if_then_else_ 22:46:29 (if x then y else z) could be (if x then (y else z)) 22:46:32 where else is a variable name 22:46:46 not that if_then_ makes any sense without an else clause but still 22:46:57 What about an else by itself 22:47:12 ehird, oh nevermind, since it returns Bool it doesn't matter 22:47:15 Deewiant: that's a name. 22:47:21 MissPiggy: as opposed to? 22:47:24 if it gave some evidence then it might cause a problem 22:47:36 ah 22:47:48 yeah i was wondering whether to make it give evidence, decided against it 22:48:18 _::_ :: a -> (a::Set) -> a 22:48:28 MissPiggy: also I was thinking about: 22:48:40 how to do quantification 22:48:46 id :: λa. a -> a 22:48:46 or 22:48:53 id :: {a::Set} -> a -> a 22:48:54 or even 22:49:14 id :: λ(a::Set). λ(_::a). a 22:49:19 the last one isn't feasible unfortunately 22:49:23 because you can't say λInteger. 22:49:26 use capital lambda instead of small lambda 22:49:36 to be sugar for? 22:49:37 hm 22:49:42 no wait I'm wrong 22:50:07 eh? 22:51:10 Why does a legitimate script feel a need to obfuscate its strings? 22:51:40 I see no good reason to say "\x75n\x64\x65fined" 22:52:52 undfined? 22:52:56 oh 22:52:56 undefined 22:53:00 Sgeo: filtering of something 22:53:10 hm? 22:55:40 maybe undefined is filtered by something 22:58:29 They do the same thing elsewhere in the code 22:58:32 Including error strings 22:58:42 "\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 I don't know; I'm not psychic. 22:59:33 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 probably the latter i guess 23:00:31 I don't even know what that means 23:00:40 which function? 23:01:07 id :: λa. a -> a 23:01:08 or 23:01:13 id :: (a::Set) -> a -> a 23:02:28 erm 23:02:28 or 23:02:32 id :: {a::Set} -> a -> a 23:03:06 oh okay 23:03:07 and ? 23:08:20 [15:44:32]you probably do, sexism is incredibly ingrained in society. 23:09:20 it's in your genes, pal 23:09:26 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 of course it is 23:09:57 I certainly treat women differently in person 23:13:02 mm 23:13:03 maybe. 23:13:09 but unless I have a particular reason to do so, I don't associate gender with someone over the internet 23:13:20 likewise for other traits, such as age and race 23:14:24 -!- sshc has quit (Quit: leaving). 23:14:27 Right, but if you know someone's female you'll probably treat them differently. 23:15:01 Depends on the context 23:15:13 but yes 23:19:21 i usually treat women differently because they are completely different 23:20:07 it's those venusian antennas 23:20:37 ISN'T IT THE GUYS WHO HAVE... nm 23:20:45 ... 23:20:52 -!- kar8nga has quit (Remote host closed the connection). 23:21:41 you know what annoys me 23:21:53 Stupidity? 23:21:54 the hardest part of doing lambda calculus and stuff is the variable renaming 23:21:58 it's fucking bullshit 23:22:01 nobody wants to rename variables 23:22:05 stop using a shitty representation 23:22:06 ugh 23:22:49 * coppro ponders a bit of psychology 23:23:23 psychology is too hard 23:23:34 have i mentioned i just love wolframalpha? 23:23:38 that's just what you _think_ 23:23:46 why do you love wolframalpah 23:24:08 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 i don't think it's ever misinterpreted me, even though i just write like i would to a human 23:25:07 cool 23:25:07 It's misinterpreted me :( 23:25:10 especially with set stuff 23:25:13 i'm not saying it's actually that great a parser, it's just others are incredibly stupid. 23:25:19 yeah 23:25:22 agree with that 23:25:29 well i just use it for integrals, because i hate them (suck at them) 23:25:52 what kind of set stuff have you asked it? 23:26:23 hm i definitely had to rephrase things a bit when solving equations/graphing 23:26:39 you solved equations? 23:26:46 may i ask why? 23:27:25 (have you been doing math behind my back! :''() 23:27:45 so how does wolfram alpha work? 23:28:11 fancy parser, then stick the result into mathematica, prolly 23:28:21 it was just something trivial about population growth 23:28:44 it's 1.5 million lines of mathematica, so i assume it's just a list of hardcoded query * response pairs. 23:29:23 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 heh 23:30:15 oerjan: okay, that's fine then 23:30:18 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 no that's not imagination. those raptors you see coming toward you are _real_. 23:35:16 lol 23:37:19 The worlds that I create in my head 23:37:34 Although both the major one and this one have me as a major Mary Sue 23:37:56 In the major one, I'm essentially God 23:38:02 and in this recent one, I'm fighting God 23:39:09 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 I just put Eliezer in charge 00:00:37 dependent types are so sexy 00:01:03 * Sgeo returns to reality 00:01:19 intuitionalistic type theory? o.O 00:02:05 what about it?? 00:03:01 Since when is intuition valid in math? (note: I haven't actually read the article) 00:03:08 haha 00:03:11 intuition leads to valid math 00:03:22 well you can apply lots of common sense arguments 00:06:10 intuitionism is more about rejecting the parts of math that are _not_ intuitive, like the axiom of choice 00:06:16 afaiu 00:07:23 and the law of excluded middle 00:08:28 -!- MigoMipo has quit (Remote host closed the connection). 00:09:55 [00:00] intuitionalistic type theory? o.O [00:02] Since when is intuition valid in math? (note: I haven't actually read the article) 00:09:57 * ehird facepalms 00:11:48 The law of the excluded middle is usually intuitively correct 00:12:50 excluded middle seems incredibly intuitive to me 00:12:54 yeah you can prove it for anything that has decidibility 00:12:55 either something's right, or it isn't 00:12:57 lol 00:13:03 in our brains there isn't any 00:13:10 "god doesn't exist, but god doesn't not exist!" 00:13:26 oerjan: I think it's just axiom of choice that gets people. 00:16:34 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 MissPiggy: why not? 00:19:49 what is neither true nor false? 00:20:01 any independent axiom 00:20:46 what do you mean by that? 00:20:57 they're false if you don't include them 00:21:12 They're true if you do include them. 00:21:24 (defined to be true, in fact) 00:22:25 of course 00:22:27 if you don't include an (independent) axiom it's not provable but neither is it's negation 00:22:38 MissPiggy: well yes, but provable != true 00:22:52 the axiom is one of either true or false, you just can't know which 00:23:02 and so it doesn't matter 00:23:03 I agree that provability is a subset of truth 00:23:27 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 yes, I wasn't thinking properly 00:24:26 an idependent axiom is not necessarily true or false, because you can negate some of them -- such as the continuum hypothesis 00:24:32 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 or even that well founded set one (I think) 00:24:41 which gives you infinitely deep sets 00:24:52 which axiom? 00:25:07 any non-included independent one 00:25:15 anyway i'm just arguing that excluded middle is intuitive 00:25:16 not that it's true 00:25:23 i <3 constructivism 00:25:38 and good look with forall a. Either a (a -> Void) 00:25:39 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 *luck 00:26:12 ehird: Yeah, it is quite intuitive. 00:26:20 axiomatic :: a; axiomatic = error "Axioms are unquestionable" 00:26:37 excludedMiddle :: forall a. Either a (a -> Void) 00:26:39 excludedMiddle = axiomatic 00:26:53 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 statements low on the arithmetic heirachy can be independent but /actually/ true 00:28:13 let A be an independent axiom not in system S 00:28:33 in S, either A or ~A; however, in S, one cannot know which it is, and it never matters 00:28:40 therefore, the excluded middle stands 00:28:51 I don't know how you conclude this "in S, either A or ~A"? 00:28:57 (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 (so it's effectively either in a nebulous way) 00:29:07 what if both S+A and S+~A are (equally) consistent? 00:29:09 MissPiggy: given excluded middle 00:29:18 S+A and S+~A are irrelevant in S 00:29:25 oh you're basicalyl arguing that assuming excluded middle then excluded middle? I agree with this 00:29:31 well, no 00:29:39 you said excluded middle is consistent but not really true 00:29:44 yes 00:29:52 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 forgot to change nick on reconnect :P 00:31:53 * alise tries modelling the dependent lambda calculus; she's helping me. 00:33:52 first person in an ACTION? 00:34:14 lol 00:34:21 She is a haskell enhancement 00:34:37 She's lovely. 00:34:59 She does all the work for you, and makes it just like you've got dependent types - almost. 00:35:05 She really does well to Haskell. 00:35:38 MissPiggy: isn't it awful that basically syntactic parts are holding up the representation of this? :( 00:35:48 we need some sort of awesome semanticity in the language of semanticity. 00:36:08 now /me is really confused 00:36:18 alise everything is syntax :P 00:36:22 everything you write down anyway 00:36:37 it's utterly confusing when you start to think about everything as syntax.. 00:36:46 coppro: She would help you not be confused. She is the one you should accept; she'd help. 00:37:04 who is the 'she'? 00:37:07 She's the Strathclyde Haskell Enhancement, don't you know? 00:37:17 She has a homepage at http://personal.cis.strath.ac.uk/~conor/pub/she/. 00:37:34 MissPiggy: yeah, but I mean things like representing forall a. b 00:37:35 ah 00:37:52 that's the thing that fucks up nice GADT representations of things 00:37:56 having to bind things to names then use them 00:38:07 new rule: lower-case acronyms spelled the same as a pronoun should be banned 00:38:08 oh I'm not sure what you mean 00:38:26 not having lambda in haskell is quite awful 00:38:35 lambda *in the type level* in haskell 00:39:04 coppro: She hates you for saying that. 00:39:08 MissPiggy: That's simple enough to fix. 00:39:14 is it? 00:39:15 I should name something "and". 00:39:21 Write a Template Haskell compiler from lambda to SK. 00:39:25 And define type-level SK. 00:39:29 Voila. 00:39:30 hmm 00:39:36 We should use the best tool, and... And: it's the best way to get things done. 00:39:47 MissPiggy: yeah i *really* want type-level lambda 00:39:51 it'd be so easy to do this 00:39:52 The power of compile-time execution. 00:39:57 she should just let me do {\x -> ...} :( 00:40:30 alise do it! based on pikhqs idea 00:40:44 oh 00:40:53 we also need higher order unification though... 00:41:09 lol 00:43:32 a unified world order 00:43:43 MissPiggy: basically what I want to write is 00:43:52 Forall :: (Type -> Type) -> Type 00:43:56 which works at the value-level 00:43:59 but at type-level? nope. 00:44:27 * alise wonders what she lifts that to 00:45:14 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 yikes 00:45:22 but uh 00:45:24 data SheTyArrow x1 x2 = SheTyArrow x1 x2{-# LINE 4 "foo.hs" #-} 00:45:26 pretty benign that 00:45:33 (shitty arrow) 00:48:10 * Sgeo is watching Early Edition 00:49:15 MissPiggy: alas, she does not transmogrify (a -> b) into (* -> *) 00:50:26 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 since you could just translate your types into its types, rather than check them yourself 00:52:35 yeah 00:52:42 a bit difficult to get good error messages though 00:52:59 oh I bet you could have some fun with Ziggeraut and that idea 00:54:21 MissPiggy: well it would have a feature where you would tag arbitrary expressions with strings 00:54:51 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 (it'd give error reports in a convenient format to extract this stuff from) 00:55:05 some sexp-like thing 00:55:24 ugh, if I can't get this working very soon I'm doing it in agda 00:56:00 she doesn't really let you say (foo::Bar) 00:56:07 you can do pi (foo::Bar). but I think that's different in some way 00:56:08 why the fuck doesn't zsh read .profiele 00:56:17 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 i'm fighting sexism in language or something 00:59:47 linguistics! 00:59:49 MissPiggy: speeling? 01:00:01 http://www.cs.virginia.edu/~evans/cs655/readings/purity.html is genius btw 01:00:47 I hate you, gedit. I WANT A NEW WINDOW, NOT A TAB 01:00:49 I HAVE A WINDOWING SYSTEM! 01:03:08 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 I want to write that. 01:03:22 data Term :: {Type} -> * where ID :: Term {Forall (\a -> Arrow a a)} 01:03:24 I want to be able to write that. 01:04:14 the problem with ForAll is that you can't unify it against anything nontrivial 01:04:21 because of haskell being very careful... 01:04:35 TyVar :: ID {a} -> {a} 01:04:39 is that actually valid in a GADT, I wonder? 01:04:43 (I've tried to do a non-She version of this before) 01:04:43 (desugars to just ID a -> a) 01:04:50 er, wait 01:04:53 same thing as ID Type -> Type, heh 01:05:16 wow I have Coq Epigram and urweb installed 01:05:22 QUICK INSTALL AGDA 01:05:31 heh I should do 01:05:38 hmm maybe cabal will install agda for me 01:06:56 it does 01:06:58 you actually do your type checking and evaluating and filling in and everything from inside emacs, feels very alive 01:07:05 http://pastie.org/812913.txt?key=7bkzz7vxkuiclztxsdof9q 01:07:07 note that you need to set it up with emacs 01:07:09 Here's what I want to be able to write. 01:07:10 it depends entirely on it 01:07:24 *ID {TyTy} -> Type 01:07:46 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 I don't think she lets you do pi (a :: T) from inside T :( 01:09:20 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 sigh 01:09:45 Arrow :: forall a . SheSingleton ( Type) a -> ID (a) -> ID (SheTyTyTy) -> Type -> Type{-# LINE 16 "foo.hs" #-} 01:09:47 the problem is 01:09:58 I want a bona-fide Type value at the value level 01:10:04 but I want it reflected in the type system too 01:10:08 and this is crossing the colon 01:10:09 which isn't allowed 01:11:36 -!- SimonRC has joined. 01:12:02 cross-colonization is dangerous 01:12:28 :D 01:12:30 I think oerjan just renamed dependent types to a far more awesome name 01:13:00 it's apparently a medical term 01:13:46 is that when your colon gets angry 01:13:52 >_< 01:13:58 Maybe I should name my language Alise, it's a nice name 01:14:49 MissPiggy: is conor mcbride on irc? 01:16:14 SheTyTyTy 01:16:16 shitty titty 01:19:12 alise no 01:19:44 which is good because he'd probably not get much done if he was 01:19:46 heh 01:19:53 okay, I've decided that it's totally fruitless using haskell for this 01:19:58 agda time???? 01:20:03 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 what error? 01:22:59 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 *strange. 01:23:31 the solution is to stop pretending to be a girl 01:23:44 who said i'm doing that now eh 01:23:51 PERHAPS MY MOTIVATION CHANGED, perhaps i just like this name 01:23:55 also stop pretending to be Canadian 01:24:22 oooooooooooooo 01:24:35 ?? 01:24:42 oh 01:24:42 eh 01:24:43 har har 01:25:06 http://en.wikipedia.org/wiki/Alice_(programming_language) ok, alise would not be a good name for the language 01:25:07 i don't get it 01:25:19 oklopol: canadians say eh, eh 01:25:24 -!- cheater2 has quit (Ping timeout: 276 seconds). 01:25:28 oh. 01:25:39 MissPiggy: what error did you get? 01:25:53 cabal: cannot configure QuickCheck-2.1.0.3. It requires ghc -any 01:25:53 There is no available version of ghc that satisfies -any 01:26:48 pigworker = conor right? 01:26:52 yeah 01:26:57 MissPiggy: just checking. you have ghc right :D 01:27:02 yes I have ghc lol 01:27:15 ehh, ask #haskell 01:29:42 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 asdfghjkl; 01:31:32 huh 01:31:36 that's odd 01:33:00 maybe i'll upgrade cabal-install 01:33:42 * Sgeo needs an ST monad tutorial 01:33:50 it's like io but only has iorefs 01:33:51 fin 01:34:00 Or something along the lines of how to hold onto state in Haskell 01:34:23 dude ST is awesome 01:34:38 what do you mean hold onto State though? 01:34:40 ST is about mutation 01:34:47 mutable reference with O(1) update 01:34:57 so might be the wrong thing 01:36:35 Sgeo: ST is for temporarily using (real) mutable state inside a theoretically pure computation 01:37:59 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 iirc 01:38:41 and if you just want to _simulate_ state using pure computations, use State / StateT 01:39:22 I want a nice tutorial on all of these 01:39:28 hm 01:39:44 haskell is learned by word-of-IRC 01:40:25 indeed, never seen a tutorial in my life 01:42:14 -!- alise has joined. 01:42:37 Tutorials are just lies that the MAN uses to keep us down. 01:42:48 yeah! 01:42:51 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 Antecedent 01:44:13 huh? 01:46:17 * Sgeo bookmarks 01:47:12 * coppro <3 LaTeX 01:57:17 MissPiggy: instead of a partial monad, would it be possible to have just an "infinite computation" monad? 01:57:25 dunno 01:57:26 just a thought 01:57:47 what's the difference 01:57:52 same thing no? 01:58:20 well, partial lets you have things in-between 01:58:24 few-steps-delayed 01:59:03 data Inf a = Further a (Inf a); bottom = Further bottom bottom -- I think 01:59:13 MissPiggy! 01:59:47 an infinite computation monad is just a partial monad where you cannot distinguish Further . Further from Further 01:59:52 i think 02:00:06 oerjan: it's a partial monad where Later has some not-fully-computed value, and there is no Now 02:00:24 oh right no Now either 02:00:27 hey augur :) 02:00:56 it's essentially opaque outside of runtime, then, like IO... 02:00:59 have you clarified your sex and/or gender to ehird? 02:01:13 clarified butter 02:01:18 melted and seived 02:01:34 i'd clarify your butter 02:01:38 lol 02:01:40 until you clarify we shall have to refer to you by the generic pronoun (s)h/it 02:01:57 :D 02:02:11 oerjan: not opaque 02:02:18 with a definition of the naturals you'd get 02:02:29 Further [] $ Further [1] $ Further [1,2] $ Futher [1,2,3] etc 02:02:37 Bottom would be Further ? $ Further ? $ Further ? 02:02:39 for some ? 02:03:03 Length of an infinite list would be Further 0 $ Further 1 $ Further 2 $ ... 02:03:09 argh the question mark, my old nemesis 02:03:19 aka fake unicode 02:03:26 It's an actual question mark. 02:03:34 i know, i checked the logs 02:03:37 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 With IO, for instance, you'd have an EndProgram event, and then just Nop, Nop, Nop forever, 02:03:51 *forever. 02:03:55 (they'd never be looked at) 02:04:07 i.e. main_ = main >> exitSuccess 02:04:10 erm 02:04:16 main_ = main >> exitSuccess >> main_ 02:05:49 as alise I am getting speedier help in #haskell! 02:06:55 alise: hm this is possibly isomorphic to Reader Natural 02:07:21 right but not in a total language 02:07:41 MissPiggy: btw does agda allow something like foo :: Void -> a; foo _ = bottom? 02:07:47 yes 02:07:49 if you have a Void you have bottom anyway, so you're not making anything worse 02:08:11 you can do 02:08:13 foo :: Void 02:08:15 foo = foo 02:08:19 if you turn off the termination checker 02:09:15 data Void where bottom :: Void -> a 02:09:31 oh wait 02:09:32 no, data Void 02:10:05 foo :: Void -> a 02:10:07 foo () 02:10:13 alise: foo x = case x of { } 02:10:24 that's the syntax to define it by "pattern match" on an empty type 02:11:07 that's intuitively correct, at least 02:11:38 MissPiggy: um you mean that foo () means the same thing? 02:11:46 Fun with the list monad: (| return ({[1..2]}, {[3..4]}) |) 02:11:53 oerjan same as what? 02:12:01 MissPiggy: as my case 02:12:18 oerjan, yeah (except that agda doesn't have case) 02:12:23 ok 02:12:32 oh wait this isn't agda is it? 02:12:36 oh it is.. 02:12:37 -!- Asztal has quit (Ping timeout: 265 seconds). 02:16:11 hmm... (| f {x} |) -> f <$> x, (| f {x} y |) -> join (f <$> x <*> return y) 02:18:01 (| 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 oh, and (| x; y |) -> do (| x |); (| y |) 02:23:33 cat = (| putStr {getContents} |) 02:23:50 catLines = (| putStrLn {getLine}; catLines |) 02:24:19 MissPiggy: I wonder if you could make that table thing into the actual data type system of a functional lang 02:24:34 a gadt is shorthand for creating a table and adding some rows 02:24:43 functions are automatically turned into columns 02:25:04 (if they pattern match on the constructors; otherwise, they must be compositions of existing functions that do) 02:25:10 (and so don't need to be columns) 02:25:27 add some syntax for adding rows and voila 02:27:02 -!- SimonRC has joined. 02:27:04 yeah it could work 02:27:06 I think! 02:27:20 but well it only defines a small class of functions 02:27:26 (one that are folds) 02:27:35 I don't see what you mean 02:28:01 also, it's ridiculous how much low hanging fruit there is in abstraction design 02:28:21 dependent types. a powerful module system ala ML. these tables. etc. 02:28:31 Yet nobody is putting them into their languages. 02:29:13 about time to start doing it I think :) 02:29:23 i'm on it 02:29:56 i'm so gonna have to hire some phds to write the compiler, though 02:30:18 proving the type system sound with all this stuff will be *way* out of my league for one :P 02:31:07 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 then you don't have to worry about consistency 02:31:32 this is the approach Coq takes (And the one Agda doesn't) 02:31:39 well, that's my plan, but some of the features would be really, really convoluted to compile 02:31:43 so need to be in the base language 02:31:46 and thus complicate things 02:31:53 ah I see what you mean 02:31:58 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 literal brackets 02:33:01 a pair of brackets whose contents is interpreted according to a separate, extensible syntax 02:33:03 why? 02:33:29 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 template haskell comes close to that, but not quite 02:35:45 (in one of its features) 02:36:44 (| email {fileContents <~/message.txt>} |) 02:42:11 It'd be nice if there was a way to do symbolic computation without writing a parser in the lang 02:43:28 just have a Symbolic type 02:43:34 and use expression templates 02:43:52 whatever that is, it's probably a C++ abomination. 02:44:28 Expression templates are when overloading is used to build up expressions in data 02:44:57 e.g. x^2 might give some value which represents "x^2", which is exactly what you want in symbolic computation. 02:45:02 It's more the "any undefined value just sits there" thing. 02:45:46 what about transcendental constants? For accurate math, they must be treated very much like unknowns 02:48:11 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 Time for GREGOR'S LANGUAGE CHALLENGE 03:00:07 Write a language with the following name: 03:00:11 ATTACK OF THE FLYING MONADS 03:01:10 alise: That seems like a pretty easy feature to add 03:03:56 Adding arbitrary features is bad. Adding general constructs is good./ 03:03:57 *good. 03:14:39 MissPiggy: would you believe i'm still at the "install agda" step in my dependent lc plan... >_< 03:14:40 i hate software 03:14:53 me too it sucks 03:15:19 and _this_ is why i have a grand os vision >:| 03:16:30 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 it's called Debian 03:18:26 yeah everything's called something else if you ignore pertinent words like decentralised, type signatures, and value ecosystem 03:18:49 Debian supports decentralisation 03:19:03 if you believe your statement, you are not using the word i meant. 03:19:07 don't even know what you mean by type signatures and value ecosystem 03:19:35 then perhaps you shouldn't make snarky comments about debian 03:19:44 no, I just assume you're insane 03:19:51 :P 03:19:57 actually, you know what? I retract that 03:19:58 it wasn't funny 03:20:10 bitbucket :: a -> () 03:20:13 bitbucket _ = () 03:20:15 > bitbucket coppro 03:20:35 coppro: perhaps slightly inappropriate given my current situation :P 03:20:43 retraction accepted, but i don't really mind 03:20:47 wait, we cannot claim we're all mad here any more? damn doctors. 03:20:59 alise: "value ecosystem" turns up 0 relevant hits 03:21:13 so does your face. 03:21:21 as for type signatures, I have no clue how that relates to packages 03:22:05 if you understood "value ecosystem" it would make more sense :P 03:22:25 then explain it, because apparently you're the only one who does 03:23:00 Gregor: Attack of the Flying Monads, eh? 03:23:03 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 like that, but with functional-programming values instead of objects. 03:23:18 ah 03:23:21 pikhq: No, ATTACK OF THE FLYING MONADS 03:23:27 Gregor: Definitely needs to use the function instance for monads as the only way to be Turing-complete. 03:23:36 alise: I retract my retraction :P 03:23:39 That (except for the functional bits) sounds like Unununium 03:23:48 (>>= is S, return is K) 03:23:49 coppro: yeah my system isn't unusable, i must be crazy 03:24:03 (... Erm, no. >>= is not S. XD.) 03:24:08 Grog XD. 03:24:16 S is ap 03:24:22 Sgeo: Roentgenium 03:24:24 Yes. 03:24:39 And ap is defined in terms of return and >>=... 03:24:50 hm lessee 03:24:58 So, >>= and return suffice for combinator calculus. 03:25:00 alise: It's a pipe dream. 03:25:06 coppro: the os is called unununium 03:25:09 also, it's very much not 03:25:17 these techniques are actually simpler to implement than a traditional unix system 03:25:19 (f >>= g) x = g (f x) x 03:25:24 it's not one additional layer, it's one _less_ layer of separation 03:25:29 Yes, I know. 03:25:43 I just had a bit of a thinko. 03:25:49 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 But it's one layer trying to abstract toom uch 03:25:56 *too much 03:25:59 you are wrong, and do not understand it 03:26:04 occasionally pipe dreams work out 03:26:07 for one, smalltalk has existed since the 70s, and its implementation was _very_ simple 03:26:10 for two, run Squeak right now 03:26:13 sure 03:26:15 you're using the exact thing I'm describing 03:26:22 but as an OS? 03:26:23 for three, see Oberon OS. it fits on a floppy and does just this. 03:26:26 Squeak is an OS in a box 03:26:27 smalltalk is an os 03:26:29 it was an os 03:26:31 it booted up the computer 03:26:34 squeak is descended from it 03:26:38 it's just in a window now 03:26:42 Smalltalk is one of the simpler OSes. 03:27:05 Since all that the "OS" is is a language runtime... 03:27:11 * Sgeo searches for Smalltalk.NET 03:27:16 ah, I think I am misunderstanding 03:27:19 Everything else is just your library. 03:27:27 coppro: How did you interpret it? 03:28:09 eh, I'm not really sure 03:28:18 * coppro tries to think it through 03:29:03 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 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 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 And... well, that's it. 03:29:53 * coppro needs sleep, he thinks 03:30:02 The computer's memory becomes a disk cache, and the disk is full of values. 03:30:05 With types. 03:31:01 okay, pretend I wasn't a part of this conversation. I think I was insane. 03:31:08 A lot of insanity. 03:31:13 what were you thinking? :P 03:31:33 oerjan: Just discussing ideas for ATTACK OF THE FLYING MONADS. 03:31:41 oerjan: Don't necessarily need Haskell's type system. 03:31:51 alise: I'm not sure what I was thinking. Which is why I think I was insane. 03:32:25 pikhq: note that it says MONAD_S_. you cannot use just one ;D 03:32:36 oerjan: Yes, I know. 03:32:49 oerjan: I'm just saying the function instance should be the only thing making it TC. :P 03:33:25 there's no reason we have to use the programming concept 03:33:29 hm maybe that reverse state monad would be something for getting fix-points... 03:33:59 then it can still be well-typed 03:34:13 i <3 the reverse state monad 03:34:38 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 bach did that? 03:37:28 err 03:37:30 Beethoven 03:37:32 * coppro whistles 03:37:44 Bachovenzart 03:38:53 that would require some reverse state indeed, bach died before schiller was born (1750 vs. 1759) 03:40:42 hm a language based on time travelling anachronisms... 03:41:23 to quit the program, you need to get hitler eaten by a dinosaur. 03:41:50 without causing an alternate world war to take its pace 03:41:51 *place 03:42:16 _may be_ 03:42:22 yes! 03:42:24 wikihistory esolang 03:42:47 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 is anyone here on vista? 03:42:54 :x 03:42:59 or win 7? 03:43:08 No, but I do have erectile dysfunction. 03:43:09 * Sgeo is on WinXP 03:43:14 We all have our issues. 03:45:10 Me: My email address is ********@gmail.com 03:45:16 Other person: thats yahoo? 03:45:51 alise: you're pulling off the female thing really badly 03:46:51 Sgeo: Just send the $500,000 so we can complete the transaction. 03:46:56 coppro: i know rite 03:47:04 coppro: well everyone knows i'm male in here so there's hardly any point 03:47:08 and the only other place i dwell is #haskell! 03:47:09 true 03:47:13 but that's your own fault! 03:47:19 Talking to someone who randomly came to a nearly dead chat 03:47:27 so the only affect of this is that i'm referring to myself as "she". well, when i remember. 03:47:46 alise: no wait, erectile dysfunction means you cannot be male, right 03:48:04 * alise scratches head 03:48:05 o.O 03:48:10 The person invited me to private chat 03:48:19 I was in another tab, but I accepted 03:48:19 SEXY TIME 03:48:24 THat meant I couldn't see the main chat 03:48:53 Just closed out of private chat... and apparently before I went into private chat, e said "Let's have sex" 03:49:19 Ha! I was RIGHT! 03:51:43 sex chat... usually that's hard because there's not many girls on IRC 03:52:02 it was probably in one of sgeo's endless obsessions^Wshitty 3d virtual-reality games from years ago. 03:52:13 alise, you're psychic 03:52:40 actually the universe has shown a disturbing tendency to shape what i experience according to me recently 03:53:54 madbr: Though, if you're gay you shouldn't have *too* much trouble. 03:54:21 At least insofar as I can tell, there's more gay men than there are females on IRC. (in general) 03:54:21 Or botsexual. 03:54:37 If you're botsexual, then it's trivial. 03:55:06 pikhq: yes 03:55:16 Or silensexual. 03:55:26 /ignore *@* 03:55:49 coppro: i'm not ready for that kind of commitment. 03:55:56 :P 03:56:01 coppro: /join #brainfuck 03:56:15 why? 03:56:26 Silent. 03:56:36 ah 03:58:30 Sex chat is easy so long as you're not so damn picky :P 03:59:08 He knows this from extensive ... research,. 03:59:10 *research. 03:59:39 -!- Sgeo has quit (Ping timeout: 256 seconds). 03:59:57 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 Clearly, everyone should only have sex chat with Egobot. 04:00:20 `echo I put on my robe and wizard's hat. 04:00:21 I put on my robe and wizard's hat. 04:00:23 Gregor: THE IRC SERVER INBETWEEN 04:00:26 It knows everything 04:00:27 EVERYTHING 04:00:29 OH GOD THE HORROR 04:00:49 ah, it has probably seen much worse 04:01:20 "I fling my dung-covered vomit into your urethra." 04:01:28 HOT 04:01:44 Urinal tract infections are SO SEXY. 04:02:46 urinalot of trouble 04:04:54 seen worse 04:06:19 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 I have a fetish... 04:07:53 for LOVE 04:07:55 -!- alise has quit (Ping timeout: 248 seconds). 04:07:58 -!- alise_ has changed nick to alise. 04:08:03 'tis a good thing 04:08:11 -!- Sgeo has joined. 04:08:44 That was screwed ip 04:09:00 ip ip ip 04:09:06 SCREWED, ey? 04:09:35 look, I already told you to stop being Canadian. Switching to a y doesn't count. 04:10:58 uhh 04:11:00 maple syrup 04:11:00 eh 04:11:01 eh 04:11:02 eh 04:11:02 eh 04:11:03 eh 04:11:03 eh 04:11:03 eh 04:11:04 eh 04:11:04 eh 04:11:04 eh 04:11:09 ^ canadians 04:11:37 There's no canada like french canada 04:12:52 maple syrup is indeed delicious 04:13:21 So is chapstick >.> 04:14:21 I'm beginning to suspect that chapstick is an euphemism for something else 04:14:38 I'm going to assume it isn't 04:14:43 everything in english is an euphemism for sex 04:16:16 i'm afreud so 04:16:26 madbr: including "english"? 04:16:34 Or how about ... discombobulated 04:16:43 I'll give you english lessons 04:16:48 ooh, look at those bobules 04:17:03 madbr: No, just everything written by Shakespeare. 04:18:02 Country matters. 04:18:49 http://tvtropes.org/pmwiki/pmwiki.php/Main/CountryMatters 04:19:47 I love that Ulysses quote. 04:22:07 sgeo: heh, eventually we'll wear out "fuck" and have to switch to "cunt 04:22:08 " 04:27:44 g 04:27:59 i keep reading my name as aisle 04:28:17 Pick up the phone booth and aisle? 04:28:44 actually that might be a plan if you're a rapper that sells disks to 11 year olds by saying obscenities 04:47:19 amasses of obulence 04:49:29 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 Chapstick, folks. Chapstick. 04:51:06 My chapstick is tingling. 04:55:09 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 HM 06:39:41 Most examples of using this particular SDK are C. This example is C++ 06:40:06 Wait, no 06:40:08 Wait, yes 06:41:23 O_o 06:41:27 link? 06:41:34 http://wiki.activeworlds.com/index.php?title=Aw_laser_beam 06:42:40 which is C++? 06:42:43 oh 06:42:45 yeah, I see 06:42:46 hah 06:43:37 At first, I forgot that C had structs, so I thought the whole Line thing wouldn't make sense 06:43:56 Then I realized it does.. but it doesn't have the & pass-by-reference thing.. I think 06:44:38 yeah 06:44:41 Only pointers. 06:45:14 The & stuff is somewhat confusing, tbh 06:45:32 I don't know why people think pointers are complicated. IMO, they make more sense 06:47:32 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 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 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 To converse at the distance of the Indes by means of sympathetic contrivances 11:10:53 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 [07:32] 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 coppro: remember what I said about me seeming to shape the universe? 14:08:56 it's getting ridiculous lately. 14:09:30 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 oerjan: whatever curse you've put on me, stop it 14:20:58 wait, what? i was trying to put a curse on your doctors, not you. must have missed slightly. 14:23:37 also i was pondering more scientific plans. unfortunately they all involve first inventing a working teleport device. 14:28:13 the universe has been freaking me out since before that :p 14:28:48 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 yes, but there's simply not enough space in the non-synchronicitious day for other people to have all theirs, too 14:30:36 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 wait, you are affecting the TV news? 14:31:49 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 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 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 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 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 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 from a 1-second google it's actually postulating that luck exists and some have it more than others? 14:45:08 so much for "scientific" 14:45:14 (well it's more in a popular science form) 14:45:32 "In this book Richard Wiseman, former magician turned" 14:45:42 james randi is the only one who can pull off that :P 14:46:54 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 i.e. even _if_ it's all about perception, you can still affect your luck by changing it. 14:48:04 Only through working harder to do better (in ways that minutely change seemingly "random" outcomes) because you think you will... 14:48:24 Which isn't really changing your luck at all, luck would be affecting things you have no control over. 14:49:11 perhaps. this book is about the part you can control though, and why it's still important. 14:49:47 Well, I don't call things like that chance. 14:50:35 _i_ think there's more than that, of course. 14:51:03 but that book imho goes as far as you can _without_ leaving the scientific worldview 14:51:06 Many mathematicians seem to believe in the orbiting teapots, though I can't fathom why them specifically. 14:51:14 it was sort of gateway drug for me really 14:51:21 Maybe because their rational system doesn't say anything about the world. 14:51:28 So they don't make the connection... 14:52:58 whatever. i'll just have to wait for you to change your opinion ;D 14:55:39 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 Although I'm a lazy slob and don't tend to follow my utilitarian aspirations. 14:56:56 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 You believe in something entirely unfalsifiable. 14:57:22 That is irrational by definition. 14:57:40 * oerjan sets fire to alise's strawman 14:57:55 Then what do you believe? 14:58:37 godchat 14:59:10 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 Define synchronicities. 14:59:47 how do you spot a time when it's important to happen 14:59:56 Pthing: because it happened, obviously! :P 14:59:57 i guess _you_ have never been followed home by a three-legged black kitten when in a particularly self-destructive mood. 15:00:08 a kitten deciding to follow you 15:00:15 and it lost a leg because of some happening? 15:00:21 man, that's spoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooky 15:01:26 whatever. 15:01:33 i mean it 15:01:36 how do you tell 15:01:52 surely there are instances where it could be really important one happens but it doesn't 15:01:52 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 yes, yes. 15:02:10 ok so i'm not rational. 15:02:42 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 *than 15:02:58 heh 15:03:01 jesus christ, you weren't convincing 15:03:14 i am not _intending_ to be convincing. 15:03:20 i meant alise 15:03:43 a second ago he was claiming he was rational. 15:03:49 anyway i didn't say i was convincing 15:03:53 that was not the word i used 15:04:06 "convince" is the word 15:07:35 ok i'm uncomfortable continuing this conversation. if it's because i'm irrational, so be it. 15:08:13 now iwc. 15:11:30 don't worry martians, the froghurt is cursed anyhow 15:13:42 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 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 hm played with ghostscript's image backends 15:30:16 they give ugly results 15:30:21 non-antialiased 15:33:09 -!- MissPiggy has joined. 15:33:22 hi MissPiggy! 15:34:07 hey 15:34:16 what's happening 15:34:24 stuffs 15:38:17 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 and that gives antialiased output 15:44:16 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 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 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 Ilari: Well, it's relative to the type (∃a.a). 15:46:30 alise that sonuds insane 15:46:38 can you even compute that? 15:47:01 MissPiggy: well for the typechecker it's easy 15:47:12 if the value is in the set we complemented, go all beepy like 15:47:14 otherwise, smile 15:47:27 you could construct a type of "everything you cannot `show` (as in Haskell show)" :D 15:47:40 hah 15:47:58 * Sgeo is learning the joy of watching TED talks 15:47:59 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 MissPiggy: i guess it's more useful to have complements 15:49:07 then you can just do (∃a.a) - foo 15:49:10 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 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 hmm, what uber-general concept can we apply to - to let us define it on sets? :-) 15:49:24 sounds a bit SET THEORY to me 15:49:27 hmm... maybe sets are haskell-ish Nums 15:49:27 * MissPiggy pitchforks 15:49:34 (+) :: Set -> Set -> Set, yes 15:49:49 Hm 15:49:52 (-) :: Set -> Set -> Set, yar 15:50:03 In my Data Structures class, we made a fraction calculator in C++ 15:50:05 (*) :: Set -> Set -> Set, that'd be a tuple 15:50:12 Maybe I should make a similar calculator in Haskell 15:50:25 MissPiggy: Quick, what's set `div` set?! 15:50:27 :P 15:50:34 (Not required for Num, but amusing to think about anyway.) 15:51:18 One property of sets is that for any set, there is strictly larger set. 15:53:03 More construcively: All sets have powerset, and that powerset is always strictly larger than the set itself. 15:53:48 There's no bigger set than (∃a.a). 15:53:50 is that a property of sets hm 15:53:57 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 it's exists :P 15:54:44 Sgeo: It's flipped E. 15:54:46 (exists) 15:54:52 alise: If there isn't anything bigger than it, it can't be a set, it is proper class. 15:54:54 oh 15:55:07 In haskell, you would write it (forall a. a) because it overloads forall for existential quantification. 15:55:17 Ilari: Yes, but type theorists poop on set theory for breakfast. 15:57:09 Another funky feature: Sets with cardinality above Aleph-0 include undescribable elements. 15:57:57 Such is the strange world of the Curry-Howard isomorphism. 15:59:22 Hmm. 15:59:44 -!- kar8nga has joined. 15:59:47 (\(x::T). ...) -> (\x. (\x'. ...) (x::T)) if you have ::. 16:00:17 -!- Asztal has joined. 16:00:48 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 *Main> L (TyTy :-> (\(T a) -> a :-> (\_ -> a))) :1:0: No instance for (Show (ID -> Term -> Term)) 16:05:53 Woot 16:06:16 (That's (\...) :: (a::Set) -> a -> a) 16:08:14 Hmm. 16:08:19 I don't actually need to have separate Term and Set types. 16:08:49 L :: Term -> (Term -> Term) -> Term 16:08:51 (:->) :: Term -> (Term -> Term) -> Term 16:09:01 Whenever I see two things of the same type, I feel this intense urge to unify them. 16:09:11 But they're not the same :p 16:09:12 *:P 16:10:26 Starting to think that that function idea isn't so great, though, because then I can't, you know, show lambdas. 16:12:48 idL = L (A SetSet (A (N Top) (N (Dip Top)))) (N Top) 16:12:49 That's better. 16:14:56 * Sgeo drinks a Red Bull shot 16:15:02 * alise drinks a horse 16:15:18 It came free with a few hundred dollars worth of books 16:15:42 Let me guess, it's awful and terrible for you. 16:15:55 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 Don't let Ilari hear about this or you'll never stop hearing about sugar :-) 16:16:07 *coffee, also. 16:16:52 He says if I want something convenient, there are pills 16:17:33 Or how about sleeping better and not needing things like that. 16:17:36 *Main> idL \((*) -> (t) -> dt). t 16:17:37 Woot 16:19:05 If sugar's main issue is that it causes obesity or something, I don't see a problem 16:19:29 Destroys your liver 16:19:49 Oh 16:21:20 -!- jcp has joined. 16:26:37 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 And I hate the taste of coffee 16:29:38 Drink tea. It has more caffeine. 16:30:14 Drinking tea takes time 16:31:16 MissPiggy: HALP http://pastie.org/813531.txt?key=ahcwvmgdprki24beyw5gq 16:31:24 Sgeo: So does coffee 16:31:35 alise, indeed 16:31:45 Anyway if you want a cheap boost the expense of your health feel free. 16:31:46 whatos :.? 16:31:50 Drinking this Red Bull shot took maybe a few seconds 16:31:50 , he said, while drinking cola. 16:31:55 MissPiggy: application 16:32:03 I would call it :$ but it's left-associative As God Intended 16:32:23 rT is 16:32:23 uh 16:32:24 in 16:32:27 (x::T) -> ... 16:32:32 rT is the ... 16:32:38 f : (a : A) -> B[a], 16:32:43 x : a |- 16:32:45 wait, rT isn't actually a function 16:32:46 f x : B[x] 16:32:52 so i can't do that 16:33:00 L :: Term -> Term -> Term A :: Term -> Term -> Term 16:33:08 maybe the second Term _should_ be a lambda 16:33:13 so that it's expressed as T -> (\x -> ...) 16:33:19 yeah you could try that 16:33:24 is that haskell though? 16:33:36 yeah but it'd actually be written as 16:33:38 not with a real lambda 16:33:40 but with an L term 16:33:41 you can't do HOAS in agda 16:33:44 oh oky 16:33:55 like 16:33:59 idL = L (A SetSet (A (N Top) (N (Dip Top)))) (N Top) 16:34:03 (N is the variable stuff) 16:34:18 A, arrow, pushes a new variable and runs the code 16:34:26 so does L, so maybe A's second argument should be an L 16:37:14 In fact, I think I meant it to be an L. 16:37:39 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 hmm 16:40:31 i was thinking i could rely on glorious laziness to bottom out in the end but i don't think so 16:41:22 for a well typed program you don't need to worry about evaluation order 16:42:37 yeah but my typechecker is sequential not lazy 16:42:40 maybe monad 16:43:05 the problem is that every type is, I think, infinite 16:43:11 every type has a type of the type and the typey type type 16:45:39 infinite O_O 16:45:46 well you can just stop at Set 16:45:48 INFINITE DIMENSIONS OF THE COSMIC SOUL 16:45:50 Set is well formed 16:45:54 yeah but 16:45:57 ok lemme give you an example 16:46:40 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 (\(* -> t -> dt) -> t) whatever 16:46:54 erm 16:46:57 right 16:46:57 so 16:47:05 first we get the function's type 16:47:07 simple enough 16:47:12 then whatever's typef 16:47:14 *type 16:47:21 then we check the types match 16:47:22 but now 16:47:27 we have to pass whatever to the (t -> dt) bit 16:47:36 which is a function, it needs to be typeofwhatever -> set 16:47:41 so we need to check it 16:47:45 check (that bit :. whatever) 16:47:50 ...but we're in the clause for (f :. x) 16:47:52 so we go forever 16:47:54 get it? 16:48:00 no 16:48:25 why not 16:48:35 oh wait 16:48:39 A's argument can't be an L 16:48:45 because that would cause an infinite nestingness 16:48:45 okay 16:48:48 i may be able to solve this with my genius 16:48:52 i'm terribly clever 16:48:55 lol 16:49:09 heh, to write my typechecker i need to write eval :/ 16:49:25 yes you do 16:49:31 yep. 16:49:36 that's expectet 16:49:44 yeah, still :P 16:49:45 fuck, at the end of this I'm going to write Term -> String 16:49:48 its name? 16:49:49 by the way 16:49:49 toC 16:49:58 if there's one thing i'm getting out of this hellhole of coding 16:49:58 eval is pretty easy to write 16:50:03 i'm gonna get some half-efficient code 16:50:05 yeah i know 16:50:13 http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=95 16:50:16 this technique 16:50:17 using `data ID = Top | Dip ID` for my names will make renaming and shit really terribly easy 16:50:18 NbE 16:50:39 well, that type is just de bruijn 16:50:43 it's just nat 16:50:47 maybe i should just use ints 16:50:53 MissPiggy: i can't use that technique, can't use haskell funcs 16:50:57 want to be able to `show` things nicely 16:50:58 why not? 16:51:08 you can quote it and show the quoted form 16:51:14 ro you could implement show on the functions 16:51:17 ? 16:51:21 just apply them to a gensym 16:51:25 hmm 16:51:26 good idea, maybe 16:51:31 yeah ok 16:51:38 so wait. 16:51:44 why do i need de bruijn stuff 16:51:47 if i have it as functions 16:52:06 or the syntax :P 16:52:13 ? 16:52:29 i'm confused 16:52:50 well the syntax should be de bruijn, and the semantics is haskell functions 16:53:11 hmmm, does it even need to be de bruijn 16:53:18 maybe you are right and it doesn't matter 16:53:36 i'm not sure anymore 16:54:00 well 16:54:04 I need some sort of name to do the "pass the gensym" 16:54:21 so i guess it's best to keep it like that 16:54:43 you know what, I'm gonna write my evaluator first 16:54:45 then my typechecker 16:58:16 -!- MigoMipo has quit (Remote host closed the connection). 16:59:58 MissPiggy: that post confuses me 17:00:05 why does it have a separate type for evaluation? 17:00:58 let me explain a simpler version 17:01:23 suppose you have a syntax like: data Exp = Num Int | Var Ref | Add Exp Exp, 17:01:43 ya 17:01:51 hmmmmmm that was a bad example 17:01:57 no variable binding :P 17:02:33 well the point is this, you have a type Syntax and another type Semantics, 17:02:44 eval :: Syntax -> Semantics, quote :: Semantics -> Syntax 17:02:51 now normalize = quote . eval :: Syntax -> Syntax, 17:03:20 the reason it gives you a normal form is because factoring through Semantics quotients out anything you don't care about 17:03:34 tell you what i'll just do it how the article says 17:03:45 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 but as far as i can tell Syntax = Semantics if I use haskell functions in the actual data types 17:04:08 then normalize ((p * q) * x * (y * z)) = p * (q * (x * (y * z))) 17:04:30 now if we use the semantic domain Sem = Sem -> Sem, we have a model of lambda calculus 17:04:41 and thats why it does beta normalization 17:05:22 (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 if you use HOAS, syntax might be: data Syn = F (Syn -> Syn) | App Syn Syn | ..., 17:05:59 Sem doesn't have App 17:07:12 ok, so Sem is the untyped lambdas 17:07:19 and Syn is my dependently-typed language in its entirety 17:07:31 why Var Ref 17:07:36 why not just keep track of vars with haskell arguments 17:07:55 well you could I dunno 17:08:19 the reason that I like ints for bound variables is you can do eval context (Var ref) = context ! ref 17:08:34 oh that should be !! 17:09:20 what i mean is 17:09:23 you don't need variable bindings 17:09:25 because Sem -> Sem 17:09:27 the first Sem gets a name 17:09:28 voila 17:11:26 no? 17:19:57 MissPiggy: :/ 17:20:00 this is confusing 17:20:57 eyeah it 17:20:58 is 17:21:03 I'll help 17:21:46 yaay<3 17:25:41 look at this trivial example 17:25:53 data Syn = N Int | Add Syn Syn 17:25:57 data Sem = Sem Int 17:26:16 eval (N i) = Sem i ; eval (Add x y) = eval x <+> eval y 17:26:21 quote (Sem i) = N i 17:26:51 yah 17:26:59 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 x === y --> nf x == nf y 17:27:27 === is extensional equality, and == is syntactic 17:27:57 so you can also do something like monoid simplification, 17:28:16 data Syn = Id | Var V | Op Syn Syn 17:28:26 data Sem = Sem [V] 17:28:37 ok, can i tell you the "issue" i'm having in code? 17:28:42 eval (Id) = [] ; eval (Var v) = [v] ; eval (Op x y) = eval x ++ eval y 17:28:47 oops 17:28:51 should be <++> 17:29:08 data Syn = Lam (Syn -> Syn) | App Syn Syn 17:29:13 quote (Sem []) = Id ; quote (Sem (x:xs)) = Op x (quote (Sem xs)) 17:29:16 one, what's the Sem for this? and two, when I quote it, how would I stringify it? 17:29:21 there's no "dummy gensyms" to pass 17:29:34 and you have nf = quote . eval, and nf normalizes out identity and associativity 17:29:37 !!!!!!!!!! 17:30:08 yes Syn is a bit harder, we can build it up in two stages 17:30:24 data Sem = Sem (Sem -> Sem) 17:30:38 eval (Lam f) = Sem (\x -> eval (f x)) 17:30:47 eval (App f x) = eval f <$> eval x 17:30:59 Sem f <$> x = f x 17:31:07 now of course you can't quote this yet, 17:31:35 so we can add 17:31:42 data Sem = ... | Neutral N 17:31:56 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 MissPiggy: that confuses me 17:32:59 I can't believe I actually wrote 17:32:59 What exactly happened here is that we generalized the problem - in order to make recursion work on it 17:32:59 show $ uncurry quad $ (\(x:y:[]) -> (x,y)) $ map read $ words line 17:33:06 * Sgeo should attempt to understand that 17:33:17 this is pretty much always a magic step, but it'll becme obvious in retrospect 17:33:19 MissPiggy: I'll have to think about this 17:33:24 maybe I should write the typechecker first :P 17:33:27 (same with induction proofs, when you do a magic generalization) 17:33:36 typechecker is Syn -> Maybe Syn (Syn includes types), not Sem right? 17:33:41 even though it involves evaluation at some point 17:33:45 anyway, the idea is that we generalized from CLOSED terms, to OPEN terms with N free vars, 17:33:49 clearly CLOSE = OPEN 0 17:33:57 but now we have OPEN n (any n) 17:34:03 i must be really dumb today :) 17:34:38 so if we have an term like OPEN 3, suppose the context is [oa, ob, oc] 17:34:39 Ok, I understand what it does now :D 17:34:47 I don't know if I could ever write it again though 17:34:53 Plus, there's probably a more elegant way 17:35:02 and the term is maybe Sem (\x -> oa <$> x <$> ob) 17:35:54 well 17:36:42 the term is Sem (\x -> Neutral (NVar oa) <$> x <$> Neutral (NVar ob)) 17:36:42 anyway, 17:36:42 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 of course you substitute x into say Neutral (NVar od) 17:37:29 once the lambda body is quoted you abstract it back out to get a syntax lambda term 17:38:25 ^ this is one bit where de bruijn syntax is slightly easier/nicer than HOAS I guess 17:41:13 You can also make quote type directed, so that it eta-expands 17:41:21 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 Kind of annoying how you have to read it from right to left. 17:44:19 Probably I should paste the whole thing 17:44:26 Well, what does quad do? 17:44:49 http://hpaste.org/fastcgi/hpaste.fcgi/view?id=17242 17:44:58 MissPiggy: isn't this more complicated than a syn->syn reductor :P 17:45:24 hm I don't know 17:46:01 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 I guess that looks pretty simple. 17:47:07 I think the semantic domain way has better theoretical properties 17:47:59 but if you don't need them... 17:48:20 `translate Suomen kieli eli suomi kuuluu uralilaiseen kielikuntaan ja sen suomalais-ugrilaisen haaran itämerensuomalaisiin kieliin. 17:48:23 The Finnish language, ie Finnish belongs to Uralic language family, and the Finno-Ugric branch of the Baltic-Finnish languages. 17:48:35 That's a very good automatic translation! 17:48:48 `translatefromto fi en eli 17:48:49 ie 17:49:02 I guess ie is an English word now. :) 17:49:28 Yeah, I think that translation is pretty much perfect. 17:49:56 `translate kielikuntaan 17:49:58 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 `translatefromto fi en kielikuntaan 17:50:13 language family 17:50:51 `translatefromto fi en haaran 17:50:53 branch 17:52:38 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 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 thats's good!! 17:53:20 In lazyk.cpp, rot13 takes gobs of memory. 17:53:28 `translatefromto fi en kielikuntaankin 17:53:29 Language Board in 17:53:34 In my SKI interpreter, rot13 runs in constant space. 17:53:45 The power of garbage collection. 17:53:54 `translatefromto fi en haarankin 17:53:56 branch in 17:54:17 `translate haarankin 17:54:19 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 Sweet :P 17:54:59 `translateto he Oy, this has a lovely bunch of coconuts in it! 17:55:01 אוי, זו חבורה מקסימה של קוקוסים בו! 17:55:08 `translateto he in it 17:55:10 αδ 17:55:23 That looks like 'ad' in Greek. 17:55:44 :D 17:56:33 `translateto he in it in it in it in it in it 17:56:34 αδ αδ αδ αδ αδ 17:57:26 `translatefromto fi en puhujia 17:57:27 speakers 17:57:39 `translatefromto fi en miljoonaa 17:57:39 That was accurate 17:57:41 million 17:58:00 `translatefromto fi en on noin viisi miljoonaa 17:58:02 is around five million 17:59:14 `translatefromto fi en ei ole noin viittä miljoonaakaan 17:59:15 not even about five million 18:00:07 Does "Suomen kielen puhujia on noin viisi miljoonaa" literally mean "Finnish speakers are around five million"? 18:00:44 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 As a literal translation, something like that, yeah. 18:00:53 "There are around five million Finnish speakers" 18:01:22 But no, it's not like that 18:01:51 If you want the nonsense "Finnish speakers are around five million" literally translated: "Suomen kielen puhujat ovat noin viisi miljoonaa" 18:02:47 "Puhujia on" and "puhujat ovat" seem to be too many words for what they mean. 18:03:20 Not that I knew any Finnish at all before coming into this. 18:03:39 `translatefromto fi en puhujia on 18:03:41 "Puhujia on x" == "there are x speakers"; "puhujat ovat x" == "[the?] speakers are x" 18:03:41 speakers 18:03:53 That's not too helpful :-P 18:03:56 `translatefromto fi en puhujia 18:03:58 speakers 18:03:59 `translatefromto fi en puhujat 18:04:00 speakers 18:04:01 `translatefromto fi en puhujia on 18:04:03 speakers 18:04:03 Quite. 18:04:04 `translatefromto fi en puhujat ovat 18:04:05 speakers 18:04:09 `translatefromto fi en kaiuttimet 18:04:10 Speakers 18:04:13 heh 18:04:31 Are those the electric kind? 18:04:35 Yep 18:05:01 Anyway, yeah, I was forgetting that "puhuj-" is "speakers". 18:05:11 What's the citation form of that? 18:05:16 Citation form? 18:05:32 The form you would find in a dictionary. 18:05:54 You'd probably find the singular, "puhuja". 18:05:59 * uorygl nods. 18:06:01 I'm still not quite sure what you're after. 18:06:12 Probably that. 18:06:18 You might not even find that, you'd only find "to speak", "puhua". 18:06:29 I'm not sure how dictionaries deal with this kind of thing. 18:06:40 "Puhuja" is probably common enough by itself that you'd find it as well. 18:06:44 What case is "puhuja"? Nominative? 18:07:04 Yeah, nominative 18:07:10 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 See, you'd only find the first in a dictionary :-P 18:10:25 A verb equivalent, though the body text here is in Finnish as well: http://koti.mbnet.fi/henrihe/tiede/verbikaava.html 18:11:21 `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 "Why learning Haskell/Python makes you a worse programmer" 18:11:23 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 Sgeo: "Oh no it lets you write things more easily!" 18:11:47 Well, that translation doesn't really make sense. 18:12:08 pikhq, it seems to be more that you get spoiled 18:12:10 http://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/ 18:12:29 Seems fairly understandable to me 18:13:09 haskell-python? 18:13:12 is that the new C/C++? 18:13:20 "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 Doesn't make much sense to me. 18:13:51 You need to insert an "are" after "groups" 18:14:29 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 Sgeo: So... 18:14:55 It's mostly the former issue that's confusing, IMO. 18:15:07 "Oh no it lets the computer focus on the trivial stuff" 18:16:15 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 `translatefromto fi en vanhoja 18:16:27 old 18:16:54 Sgeo: So, he sucks at programming, and languages aren't going to change that. 18:16:54 Got it. 18:16:57 Finnish->English is so non-injective :-) 18:20:13 It's so convenient how no matter what channel I'm in, there are always suomen puhujia close at hand. :P 18:23:07 Yeah, Finland's population is actually 5.5 billion, not million; we just like to stay undercover that way 18:40:38 back 18:40:54 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 Sgeo: Ah yes, Luke Plant. 18:41:21 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 A creationist Christian. 18:41:33 Not someone to rely on to be anything other than a blithering moron. 18:41:57 I've read some of the drivel on his blog occasionally, and it's all that. 18:42:14 I've found myself demotivated when writing C# >.> 18:42:23 So don't use shitty languages 18:44:21 C# is good at that. 18:44:34 It's not all that unique. 18:44:47 It's just an imperative language with objects. 18:45:59 And we've got plenty of those 18:46:14 Too many. 18:46:19 0 18:46:20 woops 18:46:37 sorry guys I didn't mean to!!!! 18:46:41 In this case, alise is probably right 18:46:42 The Expression Problem may have solutions handling both rows and columns, but adding columns is far more valuable than rows. 18:46:49 So to hell with OOP. 18:46:56 oh still on the expression problem?? 18:47:07 alise you know you can do BOTH in haskell? 18:47:09 errr 18:47:11 -!- jcp has quit (Read error: Connection reset by peer). 18:47:15 EITHER* 18:47:29 like, data Exp = Num Int | Add Exp Exp | ..., then write functions on it 18:47:43 Okay: I WILL finish this dependent typer. 18:47:52 At least, before tomorrow; then I won't be able to. 18:47:54 or data Exp = Exp { eval :: Exp -> Int ; show :: Exp -> String, ... }, then write constructors for it 18:48:00 hmm 18:48:16 I got my record syntax wrong but just delete the "Exp ->"'s 18:48:23 -!- jcp has joined. 18:48:57 alise won't be happy until he can make functional circuitry 18:50:47 alise I wrote a dependent type checkr once but the type system was inconsistent 18:51:03 well not inconsisent 18:51:11 but it didn't have subject reduction 18:51:20 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 [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 i'm wayyy out of my league :D 18:57:48 at least you got the pronoun right 18:58:13 10:48:57 alise won't be happy until he can make functional circuitry 18:58:19 no, the reduceron is fine :P 18:58:28 circuitry is functional 18:58:29 event based 18:58:33 this sparks -> other thing 18:59:13 check' vs (L t _) = return t 18:59:14 it'll do for now 18:59:21 after all, you wouldn't lie to me, would you? 18:59:23 Hm 18:59:31 Why were my Chrome extensions all uninstalled? 18:59:38 Because you touch yourself at night. 19:02:03 Oh, dear. 19:02:12 Inferring variables will be hard, as in I haven't accounted for this. 19:02:23 don't infer anything :P 19:02:25 it's too difficult 19:02:35 Well, not infer. 19:02:39 But I have to keep track of variable's types. 19:02:52 yes that's the type context 19:02:59 Yes, and I'm not doing that, you see. 19:03:04 Wait, yes I am. 19:03:07 Uh. 19:03:08 Sort of. 19:03:26 (A aT rT) <- check' vs f 19:03:31 okay, so I need to do it in the lambda-checking clause 19:04:00 check' vs (N x) = Nothing 19:04:02 shouldn't matter for now! 19:04:21 *Main> check SetSet 19:04:22 Just * 19:04:23 ^_^ 19:04:28 *_* 19:05:28 *Main> check idL Just (*) -> (t) -> dt *Main> check (idL :. idL) Nothing 19:05:30 Spot why I can't do that 19:07:17 fff 19:07:19 so many interdependencies 19:07:53 (idL :. (* --> *)) :. idL ? 19:08:12 no, idL :. typeofidL :. idL 19:08:15 what's dt? 19:08:29 de bruijn; t = 0, dt = 1, ddt = 2, etc 19:08:30 t = top 19:08:30 oh hehe you are right 19:08:32 d = dip 19:08:44 the value of the argument of that type is pushed for the RHS of -> 19:08:58 which incidentally means that evaluating your whole program in the typechecker is trivial :) 19:09:10 there's no IO so it doesn't matter 19:12:33 10:47:29 like, data Exp = Num Int | Add Exp Exp | ..., then write functions on it 19:12:34 10:47:54 or data Exp = Exp { eval :: Exp -> Int ; show :: Exp -> String, ... }, then write constructors for it 19:12:40 this + typeclasses might allow for both? 19:14:44 alise I don't want to say no but I dont see it 19:14:57 yeah i was just thinking that typeclasses solve... most problems 19:15:02 anyway your dependent solution doesn't require dependentness 19:15:07 type families = type-level functions, i bet you could do it with those 19:15:24 I am sure that my way make essential use of full spectrum dependent types 19:15:33 what was Snoc again? 19:15:47 Snoc was just an explanative device 19:16:06 you don't have to implement it that way, infact I think I realized a slightly better form 19:16:26 but it's all the same idea 19:16:44 what was the better form? 19:16:47 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 MissPiggy: you know how the f gets the rest of the list? 19:19:57 f?? 19:19:57 what information does it need to make the ROW/COL decision? 19:20:01 the number of rows and the number of cols, right? 19:20:03 f in Snoc f 19:20:25 plus the types of the cols 19:20:30 and the rows 19:20:32 well if you just have a matrix n m, then functions row : matrix n m -> vector n -> matrix n (S m) 19:20:42 and col : matrix n m -> vector m -> matrix (S n) m 19:20:50 I wonder if I got my n/m row/col right way around 19:20:59 I've forgotten the definition of snoc :( 19:21:02 meh 19:21:07 yeah you can forget about snow 19:21:19 Snow! 19:21:20 snoc* 19:22:31 PIGGEHHHHH 19:23:31 "matrix : nat -> nat -> *" is a simplification though.. the real thing would be a bit more involved 19:23:45 so what would a table tarpit be, I wonder 19:23:47 hmm 19:23:50 do nested tables make sense? 19:24:27 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 well 19:26:48 nested table doesn't really mean anything 19:26:56 the only reason you'd need to think about multiple tables is: 19:27:03 either you have more than a 2D programming problems 19:27:04 MissPiggy: how been 19:27:20 or you have some kind of mututally recursive system of 2D programming problems 19:27:24 (or both!) 19:27:38 mutualy recursive infinite dimensional progarmming sounds hard thuogh 19:27:49 hey augur I was listening to the space flight remix 19:28:00 WOSSAT :O 19:28:00 live mission was on soma 19:28:11 hows it going with ? 19:28:13 you 19:28:15 oooh right! the launch this morning 19:28:27 is good with me 19:29:17 :) 19:29:42 augur me and ehird solved the exeprssion problem using deptypes 19:29:48 once and forall! 19:29:53 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 AND i created the page http://en.wikipedia.org/wiki/Head_grammar 19:30:11 augur, I still need to get back to CCGs... 19:30:26 oh you edited them 19:30:36 whats the expression problem? 19:30:38 cool I will reread 19:31:05 augur you've done really good with these!! 19:31:25 well for all but the CCG one all i did was add the equivalency note, and some examples for LIG 19:31:30 the head grammar page is all new tho 19:33:13 Wait, there's a new version of Haskell? 19:34:01 Sgeo: what 19:34:07 Haskell 2010 19:34:23 oh, yeah. 19:34:28 new spec 19:35:17 MissPiggy: link augur to my pastie about the expression problem 19:35:18 OR I WILL 19:35:31 D: 19:35:34 http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w 19:35:59 lol 19:37:56 Yeah; GHC doesn't implement it yet, though. 19:38:07 (won't be too long -- most of what's not done is syntax tweaks) 19:39:07 alise: interesting problem! 19:39:26 yeah MissPiggy came up with a nice solution 19:39:57 my solution would be, do like haskell does, but allow discontinuous definitions of function alternatives. 19:40:15 preprocess it to all be continuous, if desired. 19:41:08 She does that. 19:41:24 augur: Anyway, that still doesn't let you add constructors to a data type. 19:41:35 true 19:42:07 but your link doesnt specify that as necessary, does it? 19:42:16 Yes, it does. 19:42:18 That's what adding a row is. 19:42:28 oh, right, because for haskell you'd have to have them all the same datatype 19:42:32 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 union types! 19:42:44 The whole point is that they're the same type 19:42:59 type classes! 19:48:04 -!- znerc has joined. 19:49:18 btw, guys, if anyone wants papers from JSTOR or ACM let me know 19:52:49 im also off to target. BYE 19:55:35 bye 20:02:43 asd 20:03:31 MissPiggy: you'd think that typechecking and evaluating the dependently-typed lambda calculus would be really simple... 20:03:45 it seems like one of those "inherent" concepts that should be really simple to express 20:03:50 no I wouldn't 20:03:54 well 20:03:54 i would 20:04:14 there is a simple (dependently typed) lambda calculus, and that's quite easy to implement 20:04:20 but it's not quite good enough 20:04:35 howso 20:05:41 well you know how types are equal if they are definitionally equal 20:05:55 like: Vector (1 + 1) = Vector 2 20:06:13 one annoying thing is if you don't have eta conversion, then stuff like 20:06:29 exists Nat (\x -> P x) is not convertible with exists Nat P 20:06:34 yeah 20:06:37 x :: Set(x) 20:06:38 f x :: Set(f) = (y::T) -> S, Set(x) = T, y = x, S 20:06:38 now that's just a minor annoyance, 20:06:42 \(x::T) -> ... :: S :: (x::T) -> S 20:06:43 -!- gm|lap has joined. 20:06:44 (x::T) -> T :: * 20:06:47 * :: * 20:06:53 ^ the dependent lambda calculus i'm trying to implement 20:07:27 but there's more to be said about this which is sort of detailed 20:07:44 I assume 20:07:45 (x::T) -> T :: * 20:07:47 actually means, 20:07:56 it's syntax :: type 20:07:58 T :: *, T' :: * |- (x::T) -> T' :: * 20:08:22 well that's nto quite right still 20:08:25 but it's closer :P 20:08:38 (x::T) -> S :: Set(T) = *, Set(x) = T, Set(S) = *, * 20:09:31 Gamma |- x :: T <=> Gamma(x) = T 20:10:11 yeh i was just writing it quickly in the form it came into my head 20:11:13 data Syntax = Var Integer | App Syntax Syntax | Lambda Syntax Syntax | Arrow Syntax Syntax | Set 20:11:23 the semantics is just (Semantics -> Semantics), right? 20:11:29 or does it have Var Integer too 20:12:56 hmm 20:13:00 can my thingy type \x->x x? 20:13:05 i don't think so 20:13:07 there's no a = a -> b 20:13:31 Semantics = Semantics -> Semantics is a good first approximation 20:13:42 but to implement quote it needs to be fudged around a bit, nothing major 20:16:43 cons ∈ (α ∈ ★) → (β ∈ ★) → (γ ∈ ★) → (α → β → γ) → γ 20:17:17 cons ∷ (α∷★) → (β∷★) → (γ∷★) → (α → β → γ) → γ 20:17:21 Still think the latter looks nicer 20:17:35 cons : (α:★) → (β:★) → (γ:★) → (α → β → γ) → γ 20:17:37 looks good too, though 20:17:40 I think the last is best 20:17:45 brb 20:20:02 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 eww. eww. eww. what kind of language is that 20:36:23 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 it's oklo the pol! 20:46:21 almost no relation to prozac the bear 20:48:12 -!- MissPiggy has joined. 20:55:09 gm|lap: functional, bitch 20:55:34 not very functional when you don't have loonycode 20:55:44 also, some mathematicians definitely were involved. 20:55:49 gm|lap: the 90s called 20:55:56 they want you to stop using windows 20:56:42 it really depends on the situation as to whether using unicode is a good idea or not. 20:57:11 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 as in, an fread of some sort. 20:57:26 gm|lap: Ah, you still think a string is a char *. 20:57:33 You still think C defines the world. 20:57:37 here you'd use an int * 20:57:43 You still think stone-age computing rules over mathematics. 20:57:51 if C was good enough for the romans... 20:57:56 In short, you're the computer-science equivalent of a dinosaur. 20:58:12 hey, at least i know how to code stuff which runs fast 20:58:20 i usually don't, but nevertheless i can. 20:58:25 Except considering how fast computing changes, you're especially Ludditish. 20:58:29 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 as in wildly successful, and survived for > 200 million years 20:58:54 Ha! You think hand-written asm written by _anyone_ other than a genius can beat modern C compilers? 20:58:57 ASM will always be "potentially faster", by the way. 20:59:01 I thought you'd at least stop at C, a vaguely defensible position. 20:59:28 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 i haven't seen ASM from many "modern C compilers" but usually they're bashing at memory 20:59:48 well 20:59:52 This may in fact end up being the most tedious two-way about computing I've ever seen. 20:59:54 from the code I've seen 20:59:58 gm|lap: you are clearly ignorant of modern optimisation techniques 21:00:16 Good luck manually performing intense intraprocedural optimisation 21:00:54 what!!!!!!!!!!!!!!! 21:01:02 I might be more polite if I didn't know there were so many like you. 21:01:06 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 Did I just miss some conversation or was that a non-sequitur? 21:01:30 MissPiggy: All your base is cool again? 21:01:34 EXCELLENT 21:01:37 well, it may help you understand my thinking 21:01:50 No, not really. 21:01:57 I like open things too. 21:02:18 a 4KB demo using libraries to run itself is technically cheating 21:02:23 oerjan: should I read Triangle and Robert? 21:02:35 but of course! 21:02:39 although if you want to be pedantic, i could whip up some code to turn 80x25 into mode 13 21:02:45 w/o INT 0x10 21:02:53 oerjan: but. so many comics 21:03:14 sure, but you're planning to live forever, aren't you 21:03:50 i'd like to, that doesn't mean i think it's going to happen :P 21:04:07 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 my base 21:04:33 gm|lap: HA! You think functional programming, which is literally identical to mathematics and logic, is some new-fangled thing? 21:04:43 It's imperative programming that was the unfortunate blip in the history of calculation. 21:05:15 i know that functional programming isn't insanely recent at all 21:05:32 UTF-8 is definitely more recent than functional programming, though 21:05:39 heck, you can even do OOP in ASM 21:05:48 But the symbols I am using are ancient. 21:05:50 can functional programming be liberated from the von noymann parradime? 21:05:56 Ugh, you know what, this really is the most tedious conversation I've had. 21:06:15 imperatives aren't new-fangled either, see kant 21:06:20 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 oerjan: Har. 21:07:03 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 [21:07] == IGNORE Unknown command 21:07:36 Damn you, webchat.freenode.net. 21:08:46 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 I'm being a wonderful asshole. 21:09:05 yes, and my ignore list is wonderfully persistent. 21:09:22 who is gm?? 21:09:25 are you new 21:09:27 GreaseMonkey. 21:09:27 * gm|lap == Greasemonkey 21:09:29 erm 21:09:29 ohh 21:09:31 GreaseMonkey 21:09:32 He's been irritating for a few years now. 21:09:43 alise: i don't remember you 21:09:47 it does feel like years, doesn't it? 21:09:50 except from, ooh, a few days ago 21:09:51 always greasing up the place 21:09:51 lol 21:09:59 gm|lap: i've been here a long while. 21:10:18 MissPiggy: it has been years; 2006, according to the wiki 21:10:32 oerjan: why did you fuck with it! 21:10:54 what other names would you have used? 21:11:11 alise: wait, what? 21:11:16 Johnathan, Omaha, Harpsichord, Robotic Overloard #3.9, Bob. 21:12:13 ... don't really ring a bell 21:12:46 alise: see history 21:12:51 Also ᚠᚡᚢᚣᚤᚥᚦᚧᚨ. 21:15:10 when i have a piece of paper, i deal with numbers. 21:15:17 when i have a piece of code, i deal with bytes. 21:15:38 I thought you were using your wonderful ignore list. 21:15:50 Please do, I'm uninterested in your drivel and if it would stop you talking to me that would be great. 21:15:55 yes, even though i code in languages which deal with all sorts of numbers, with and without decimal points 21:16:08 hmm, i actually have some power here... 21:17:23 In a world... where one man... must face his demons... 21:17:25 For he has... 21:17:30 THE POWER TO ANNOY 21:17:36 In cinemas feb 14 21:18:31 on the other hand you have the power to be condescending 21:18:41 Wait, you deal with *bytes* in your programs? 21:18:46 I deal with *values*. 21:18:52 Maybe if my life was any better and you were any less idiotic I would not be trolling you. :) 21:18:52 I deal with *stars* 21:19:06 Oh, and morphisms in the category Hask. 21:19:20 i do actually deal with values, but when it comes to files, i have to deal with bytes 21:19:33 Files! Another wonderfully retarded blip in history. 21:19:48 what's wrong with files? 21:19:55 I want to try plan 9 21:20:02 a bunch; maybe i'll explain sometime when I'm not having fun with an idiot 21:20:03 MissPiggy: Made perfect sense when C was unusually high-level. 21:20:07 i tried it, it's easy to break the GUI 21:20:11 That's been a few decades now. 21:20:13 MissPiggy: plan 9 is the closest to making files bearable 21:20:21 it basically makes them universal identifiers in tuple-space 21:20:33 Review of Plan 9 21:20:36 don't you mean plan 9 is the closes to making all bearables files? 21:20:36 It's easy to break the GUI. 21:20:36 - 21:20:41 LOL 21:20:46 Hey, now that was actually funny. 21:21:32 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 That is to say, tedious and pointless. 21:21:57 oh okay 21:22:06 there's quite a difference between english and japanese, so to speak. 21:22:07 so like 21:22:27 you want a "filesystem" that's actually storing data structures instead of just files in a tree 21:22:43 so it would be like a tree of trees instead of a tree of files? 21:22:45 something like that 21:22:46 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 well... 21:22:57 I want a "filesystem" to just mean data structures that are persistent. 21:23:00 and allows you hierarchical, non-hierarchical, tagged, searched and everything organisation simply through creating data structures 21:23:19 I'd love for my IO to consist of "persist(foo)". 21:23:19 pikhq: Persistent data structures? Why, what redundancy! 21:23:27 it sounds very difficult to organize 21:23:32 alise: what happened to amend? 21:23:41 MissPiggy: If you want a tree structure, like a symlinkless filesystem, just create it. 21:23:42 No harder. 21:23:49 If you want symlinks, use references. 21:23:55 If you want a searchable pool, do it. 21:23:58 alise: it's not going to make itself 21:24:11 gm|lap: That's why my main field of study is focused on making it. 21:24:16 right. 21:24:36 MissPiggy: Are you familiar with Smalltalk? 21:24:46 An apology for the rather harsh bluntness, by the way; I'm grumpy right now. 21:26:24 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 the question is, what am i confusing arrogance with? 21:27:26 ugh 21:27:57 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 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 wait... silly me 21:31:21 roughly half-speed ._> 21:31:27 didn't notice the mixing rate 21:31:47 1.9.0 is pretty slow though 21:35:30 -!- MissPiggy has joined. 21:40:38 there's a package in ubuntu called "sl" 21:40:52 if you type sl accidentally, it suggests that you install it 21:41:03 apt-cache search sl | grep ^sl gives us this: 21:41:04 sl - Correct you if you type `sl' by mistake 21:41:22 25.3kB apparently 21:41:26 *facepalm* 21:41:50 dude you should totally install it, it's awesome 21:42:00 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 Testing, testing, one two three. 21:46:34 sl is just annoying IMO. 21:46:37 I never make that typo anyway. 21:47:00 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 Maybe there should be a carrot, getting ls right speeds up your system for a few minutes or something. 21:48:09 apparently sl is short for "steam locomotive" 21:48:43 Yes; it's a rather terrible pun. 21:48:59 Damn, my XChat looks civilised. 21:51:12 http://imgur.com/CQv7v.png 21:51:20 I'd show the window borders, but apparently gnome-screenshot and scrot fail at compiz. 21:52:13 DejaVu Serif is actually a pretty nice serif. 21:56:35 well dejavu is nice but we've seen it all before 21:57:23 Tabs?? 21:57:31 Erm, button-tabs? 21:58:25 Beats a huge tree with only two lines. 21:59:29 URW Palladio L is also a nice font. 22:04:19 So, value-level (∀a.b) is (λa.b). What's value-level (∃a.b)? 22:04:37 a*b 22:04:47 (a,b) 22:04:49 anything like that 22:05:10 Really? 22:05:21 Hmm. 22:05:23 I guess you are right. 22:05:54 MissPiggy: What about the literal (∃a.a)? 22:06:19 what about it?? 22:06:35 What does that translate to as a value? 22:06:40 If you replace exists with forall, that's id in value-land. 22:07:07 (a,a) sholud work, but also (a,a') 22:07:22 it doesn't have to be the same a 22:07:42 Right, but those would be specific as. 22:08:11 Perhaps my question simply makes no sense :P 22:11:44 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 or something close to that 22:12:58 but if there is no typeclass, only the value is necessary 22:13:14 Actually, (exists a. a) is 0 bits... 22:13:28 really? 22:13:28 You don't need to store the value because the only information you can extract from it is that it exists. 22:13:46 um no 22:13:50 No? 22:13:50 seq, remember 22:13:54 Oh. 22:14:03 Well, seq and unsafePerformIO are not "really Haskell". :) 22:14:10 "Really Haskell" is defined as the subset of Haskell that makes sense. 22:14:11 seq is official 22:14:20 The committee is wrong. 22:14:50 alise: unsafePerformIO, FWIW, only exists as part of the FFI. 22:15:45 i think the new 2010 revision modifies that though 22:15:47 http://bennyhillifier.com/?id=mwDKMiAfxFE 22:16:00 Top of the two bots in the Google Tron AI competition, fighting. 22:16:01 Where can I see the changes in 2010? 22:16:02 To Benny Hill. 22:16:17 http://hackage.haskell.org/trac/haskell-prime/ 22:16:57 *Two of the top 22:17:12 The link on that page seems broken 22:17:14 data Exists (T : *) (P : T -> *) where 22:17:23 Witness : (t : T) -> P t -> Exists T P 22:17:33 MissPiggy: Ah, dependent typists. Always writing everything in the language. 22:17:46 dependent typists :D 22:17:48 -!- tombom_ has quit (Quit: Leaving). 22:18:11 The Cult of Dependent Typists & their Honourable Languages Thereof, est. 1980 22:18:19 (I don't really know how old dependent types are.) 22:18:20 :P 22:18:28 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 doesn't Agda supposedly have both? 22:19:29 I don't think there's any issue with having both. 22:19:33 I just don't really like typeclasses all that much. 22:19:49 agda doesn't have typeclasses 22:19:50 I know that Ur does it with implicit module parameters matching a certain signature. 22:19:55 That's a nice solution. 22:20:03 it's sort of weird because I'm not sure if you can actually add typeclasses 22:20:25 I mean you can pass them explicitly but that probably doesn't count 22:20:26 oh right didn't oleg do something proving the equivalence of modules and type classes. 22:20:31 _+_ : {a:Set} -> {Num a} -> a -> a -> a 22:20:44 Num : Set -> ModuleSignatureThingy 22:20:51 Or something like that. 22:20:53 * MissPiggy has been playing with Ur today 22:20:58 (functorial modules, presumably) 22:20:59 And the implementation: 22:21:25 _+_ {_} {n} x y = n._+_ x y 22:21:27 Or something. 22:21:29 You get the idea. 22:21:49 alise, working link please? 22:21:57 -!- kar8nga has quit (Remote host closed the connection). 22:21:57 the problem with that is you still need the compiler to choose (ARBITRARITLY!!) a Num instance for a 22:21:59 To what? http://bennyhillifier.com/?id=mwDKMiAfxFE? 22:22:15 MissPiggy: same with values that belong to multiple sets in foralls! 22:22:18 It has to pick one! 22:22:26 Sgeo: http://bennyhillifier.com/?id=mwDKMiAfxFE 22:22:29 the final ? breaks it 22:22:33 yeah 22:22:35 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 it's scary stuff 22:22:49 Sgeo: oh. 22:22:52 just google haskell prime or w/e 22:23:08 MissPiggy: Well, it picks the most specific type it can infer, right? 22:23:14 Most specific set. 22:23:14 Of a value. 22:23:16 For a forall. 22:23:33 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 Perhaps more functions explicitly implemented. 22:23:58 Or more concrete types. 22:24:06 If there are two equally-specific ones, you must manually specify one. 22:25:18 basically 22:25:21 * oerjan finds a picture of oleg. i never thought of him as that old! 22:25:24 the whole thing about typeclasses is SYNTAx 22:25:34 oerjan: link 22:25:36 and you can't add them without hacking the compiler 22:25:37 I imagine him as a 30-something guy 22:25:41 just being so fucking cool 22:25:49 no employer, he just has money, buys stuff, you know 22:25:50 and what's so good about them anyway, modules are probably better 22:25:53 but mostly just sits around, publishing 22:26:10 oh wait, that's another guy with the same! 22:26:10 MissPiggy: cayenne has no modules because its products (records) are powerful enough to serve as it 22:26:12 as one 22:26:14 oerjan: :) 22:26:17 oerjan: I think he's a private fello 22:26:20 s/$/w/ 22:26:27 ("Oleg Kiselyov, director of Influenza Research Institute") 22:26:34 MissPiggy: so if modules are better than typeclasses 22:26:40 maybe we just need cayenne records and that's it! 22:27:02 hehe 22:27:12 so how you implement records? :) 22:27:22 ohh 22:27:22 * Sgeo is now an Early Edition addict 22:27:31 I like that idea 22:27:35 http://www.cs.chalmers.se/~augustss/cayenne/ 22:27:36 ask them 22:27:40 hey, it's augustss 22:27:45 didn't know he did cayenne!! 22:27:49 Oleg works for the navy 22:28:00 doesn't he ? some kind of waterry thing 22:28:28 http://www.cs.chalmers.se/~augustss/cayenne/examples.html 22:28:32 cayenne's printf implementation is slick 22:28:34 heck wikipedia? "Oleg Kiselyov (born 11 January 1967) is a Russian handball player." 22:28:41 HAND EGG 22:29:22 egghand? 22:30:40 MissPiggy: I think cayenne records are basically haskell records 22:30:42 except automatically typed 22:30:57 like the type of {foo=3,bar=\a->a} is {foo::Int,bar::a->a} or whatever 22:31:10 also I realised something 22:31:16 my dependent LC doesn't have any way to extract an arrow 22:31:19 (the only composite type) 22:32:14 think I should add it? Maybe it could be a built-in function 22:32:36 destarr : * -> c -> (a -> b -> c) -> c 22:32:51 what does extract an arrow mean though? 22:33:02 (a -> b) => (a,b) 22:33:27 I could add pattern matching, but that'd be the only thing it'd be useful for 22:34:53 hm this _might_ be him, http://www.flickr.com/photos/eelcovisser/283343950/ (it is in a computer scientists set) 22:35:21 Personal home page: Paul Kelly 22:35:21 Paul H J Kelly. Professor of Software Technology, Group Leader, Software Performance Optimisation Department of Computing (map); Imperial College London ... 22:35:22 same guy? 22:35:30 oleg is the one in blue 22:35:33 btw 22:36:14 ok so you're sure? it was the only plausible picture on the first page of google hits for "oleg kiselyov" 22:36:19 it's his only t-shirt http://video.google.com/videoplay?docid=-7990603720514207956&ei=OkBvS7SkMovL-AbZwtHjBg&q=oleg+# :) 22:36:27 (picture search) 22:37:33 i guess that crushes my theory he is trying to keep his real appearance secret 22:38:12 oerjan: do keep in mind that the pictures and videos are not necessarily of the actual oleg 22:38:25 olsner hah it's just a puppet! 22:38:25 hm? 22:38:37 MissPiggy: indeed, just a puppet 22:38:43 ah 22:39:26 ((λ:(★ → 0 → 1). 0) (λ:(★ → 0 → 1). 0)) (λ:(★ → 0 → 1). 0) 22:39:31 there's another picture of Oleg on this http://www.angelfire.com/tx4/cus/people/index.html 22:39:50 xD 22:40:11 Guy Steele 22:40:12 Scheme / CL / Fortress 22:40:15 yeah, just ignore the whole Java thing 22:40:21 hehee 22:40:41 MissPiggy: i already knew about that one 22:40:42 MissPiggy: 22:40:43 ((λ:(★ → 0 → 1). 0) (λ:(★ → 0 → 1). 0)) (λ:(★ → 0 → 1). 0) 22:40:46 does that make sense to you? 22:41:12 it was part of what started my conspiracy theory, after all 22:41:17 it's id id id? 22:41:20 yeah 22:41:21 but it wouldn't typecheck 22:41:24 why not 22:41:30 oh 22:41:31 the types 22:41:31 yeah 22:41:50 i can't do implicit arguments without full inferring can i :( 22:41:59 there is no 'full inferring' 22:42:07 it's undecidible 22:42:12 i know 22:42:13 but i mean 22:42:17 "lots" of work inferring 22:42:24 as opposed to some cheap trick 22:42:25 -!- adam_d has joined. 22:42:26 the best you can do is make a powerful algorithm that works well in normal situations 22:42:35 well, check does return the type 22:42:36 but ehhh 22:42:42 well there are some small classes of inference you can do in a principled way 22:42:56 all i care about is inferring type arguments :) 22:42:57 but it's very hard work.. and I think you probably need HOU to even get started 22:43:04 maybe that's easier still 22:43:11 I think I could fake that since my typechecker returns a type it knows it is 22:43:14 but eh 22:43:36 ((((λ:(★ → 0 → 1). 0) (★ → 0 → 1)) (λ:(★ → 0 → 1). 0)) (★ → 0 → 1)) (λ:(★ → 0 → 1). 0) 22:43:36 There. 22:43:38 id id id 22:44:03 * alise writes cons out of sheer insanity 22:44:32 a:* -> b:* -> a -> b -> c:* -> (a -> b -> c) -> c 22:45:50 consL :: Syntax 22:45:50 consL = 22:45:50 Lambda (Arrow Set (Arrow Set (Arrow (Var 1) (Arrow (Var 1) ...)))) $ 22:45:50 Lambda (Arrow Set (Arrow (Var 1) (Arrow (Var 1) ...))) $ 22:45:51 Lambda (Arrow (Var 1) (Arrow (Var 1) ...)) $ 22:45:52 Lambda (Arrow (Var 1) ...) $ 22:45:54 this is getting boring fast :P 22:46:17 not to mention confusing 22:46:17 hm 22:46:23 yeah it's pretty confusing 22:46:44 okay so after c:*... what the fuck number is a 22:46:48 4 22:46:52 b is 3 22:46:53 c is 0 22:47:02 of course that'll change with the arguments of the function :D 22:47:05 (just add one) 22:50:06 foo3.hs:29:132: parse error on input `)' 22:50:07 AIEEEEEEEEEEEEe 22:50:42 λ:(★ → ★ → 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 MissPiggy: ^ 22:50:55 im not debugging that :P 22:51:01 i need more parens 22:51:08 write a function called --> that turns names into indices 22:51:18 and the opposite way, too 22:51:19 Stupid broken A/V sync on this YouTube video 22:51:22 so I can see what the fuck will happen 22:51:26 so you can write ("x", T) --> "x" instead of T -> #0 22:51:32 λ:((★) → (★) → (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 that's cons 22:51:48 now in the sugar language I wrote over this, here's what it'll look like 22:53:03 cons : (α:★) → (β:★) → α → β → (γ:★) → (α → β → γ) → γ 22:53:12 cons _ _ x y _ f = f x y 22:53:32 MissPiggy: actually, if I define some standard representation for a tuple 22:53:47 then I can trivially infer an ((α:★),α) given an α 22:53:56 simply because I must know the type already, since I'm doing typechecking 22:54:50 no? 22:55:27 http://pastie.org/813947.txt?key=s3kxmqh9xb0pvxoycdqzpw 22:55:31 May I never have to write such a thing again 22:55:52 cons ?? 22:56:17 \x y f. f x y 22:56:22 The pair-creator. 22:56:24 yikes O_O 22:56:29 Dependently typed! 22:56:33 why is it so typed 22:56:38 Pretty-printed (ha), it's 22:56:38 jusst make it simple :P 22:56:39 λ:((★) → (★) → (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 MissPiggy: Because I have no other choice. 22:56:47 I have to curry because this is the LC. 22:56:50 * MissPiggy almost spat tea out 22:57:00 But I have to specify the type of every function, because this is no-inferring, typed LC. 22:57:02 through whoms nose 22:57:13 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 My variable names: αβγδεζηθικμνξοπρστυφχψω 23:05:40 they are hot 23:05:50 I love the Greek alphabet. It's beautiful. 23:06:00 I should set it up so that alt-shift types greek 23:06:52 IMAL (In My Awesome Language), typing abcdefg... will automatically convert. :-) 23:07:44 alise: You and your derived-from-Egyptian scripts. 23:08:07 Unicode has up to quadruple prime :D 23:08:48 they don't compose together well, though 23:08:52 different numbers of primes 23:11:43 * MissPiggy thinks unicode is a bit stupid 23:12:54 Why? 23:13:08 It has some stupidities, like the super/subscripts; it shouldn't be trying for a formatting vehicle. 23:13:13 Anyway, behold: 23:13:14 *Main> System.IO.UTF8.putStrLn $ pretty idL 23:13:14 (λ:((α:★) → (β:α) → α))) α. α) 23:13:33 *Main> System.IO.UTF8.putStrLn $ pretty consL 23:13:33 (λ:((α:★) → (β:★) → (γ:α) → (δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ))))))) α. (λ:((β:★) → (γ:α) → (δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ)))))) β. (λ:((γ:α) → (δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ))))) γ. (λ:((δ:β) → (ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ)))) δ. (λ:((ε:★) → (ζ:(ζ:α) → (η:β) → ε))) → δ))) ε 23:13:34 . (λ:((ζ:(ζ:α) → (η:β) → ε))) → δ)) ζ. ζ γ δ)))))) 23:13:38 MissPiggy: I hope that clears things up for you. 23:14:03 "(ζ:(ζ:α)" - bug or just plain awesomeness? 23:14:08 I'll go with bug. 23:14:12 PLAIN AWESOME 23:14:24 ζ:ζζζζζζζζ 23:14:26 -!- SimonRC has quit (Ping timeout: 246 seconds). 23:14:38 It's because since you can't technically reference it from inside itself, it's free. :-) 23:16:04 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 let v = ident vs 23:16:42 vs' = v:vs 23:16:45 complains about v not being defined 23:17:43 *Main> System.IO.UTF8.putStrLn $ pretty consL 23:17:43 (λ:((β:★) → (γ:★) → (δ:γ) → (ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε))))))) α. (λ:((γ:★) → (δ:γ) → (ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε)))))) β. (λ:((δ:γ) → (ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε))))) γ. (λ:((ε:δ) → (ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε)))) δ. (λ:((ζ:★) → (η:(θ:δ) → (ι:ε) → η))) → ε))) ε 23:17:43 . (λ:((η:(θ:δ) → (ι:ε) → η))) → ε)) ζ. ζ γ δ)))))) 23:17:48 MissPiggy: It's simple, really. 23:17:59 I pity the foo that has to debug their code generator for this 23:19:12 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 *Main> System.IO.UTF8.putStrLn $ pretty (Arrow (Arrow Set Set) (Arrow Set Set)) 23:21:45 (α : (β : ★) → ★) → (β : ★) → ★ 23:21:49 I should probably retain used variables 23:22:14 hmm 23:22:18 this could do with becoming monadic 23:23:10 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 alise 23:29:10 have you raed peter morris' work on universe of strictly positive typs 23:34:21 back 23:34:27 no 23:34:46 * alise will implement a new feature in the prettifier 23:34:56 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 *Main> System.IO.UTF8.putStrLn $ pretty idL 23:51:54 (λ(α:★) : (α : α) → *** Exception: List.genericIndex: index too large. 23:52:53 :/ 23:57:57 -!- jcp has joined. 2010-02-08: 00:00:21 *Main> System.IO.UTF8.putStrLn $ pretty idL 00:00:21 (λα : (α : ★) → (β : α) → α. α) 00:00:30 *Main> System.IO.UTF8.putStrLn $ pretty consL 00:00:31 (λα : (α : ★) → (β : ★) → (γ : α) → (δ : β) → (ε : ★) → (θ : (ζ : α) → (η : β) → ε) → ζ. (λβ : (ι : ★) → (κ : θ) → (μ : ι) → (ν : ★) → (π : (ξ : θ) → (ο : ι) → ν) → ξ. (λγ : (ρ : ο) → (σ : π) → (τ : ★) → (χ : (υ : ο) → (φ : π) → τ) → υ. (λδ : (ψ : φ) → (ω : ★) → (γ′ : (α′ : υ) → (β′ : φ) → ω) → α′. (λε : (δ′ : ★) → (η 00:00:31 ′ : (ε′ : ω) → (ζ′ : α′) → δ′) → ε′. (λζ : (κ′ : (θ′ : γ′) → (ι′ : δ′) → η′) → θ′. ζ γ δ)))))) 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 MissPiggy: in a dependent lang the function arguments to church numerals don't have to be a->a do they 00:07:12 pretty? 00:07:13 they just have to be (something which includes b)->b 00:07:24 Sgeo: prettifies a dependently-typed lambda calculus AST 00:07:38 * Sgeo is already confused 00:08:46 Sgeo: just go along with him 00:08:50 *her 00:09:29 well that's a subtype of b->b isn't it 00:10:28 hïrm 00:11:00 oerjan: right 00:11:04 *Main> System.IO.UTF8.putStrLn $ pretty (church 0) 00:11:04 (λα : (α : ★) → (γ : (β : α) → α) → (δ : α) → α. (λβ : (ζ : (ε : δ) → δ) → (η : δ) → δ. (λγ : (θ : ε) → ε. γ))) 00:15:11 Something's broken... 00:18:22 *Main> System.IO.UTF8.putStrLn $ pretty (church 50) 00:18:22 (λα : (α : ★) → (γ : (β : α) → α) → (δ : α) → α. (λβ : (ζ : (ε : δ) → δ) → (η : δ) → δ. (λγ : (θ : ε) → ε. (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β γ))))))))))))))))))))))))))))))))))))))))))))))))))))) 00:21:21 *Main> System.IO.UTF8.putStrLn $ pretty trueL 00:21:21 (λα : (α : ★) → (β : α) → (γ : α) → α. (λβ : (δ : γ) → (ε : γ) → γ. (λγ : (ζ : δ) → δ. β))) 00:21:21 *Main> System.IO.UTF8.putStrLn $ pretty falseL 00:21:21 (λα : (α : ★) → (β : α) → (γ : α) → α. (λβ : (δ : γ) → (ε : γ) → γ. (λγ : (ζ : δ) → δ. γ))) 00:22:01 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 00:22:25 "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 Me likey. 00:22:40 can you define foldl with foldr? 00:24:17 yes 00:24:31 alise but why would you... 00:24:55 MissPiggy: if a list is defined as its foldr... 00:25:01 what oerjan said 00:25:10 defining things as their natural functions is a nice thing 00:25:20 like Maybe a is b -> (a -> b) -> b 00:25:28 Either a b is (a -> c) -> (b -> c) -> c 00:25:33 (a,b) is (a -> b -> c) -> c 00:25:34 etc 00:25:40 it's one of those anamorphism or catamorphism things 00:25:43 oerjan: what's the definition btw? 00:25:51 * oerjan cannot remember which is which 00:26:02 hm lessee 00:26:26 foldl' f b0 as = foldr (\a k b -> k (f b a)) id as b0 00:26:27 apparently 00:26:45 why the ' ? 00:26:51 that's what the LtU person called it 00:26:53 just not to clash 00:26:55 not for strictness afaik 00:26:58 oh 00:26:59 they failed :P 00:27:01 (at not clashing) 00:27:07 heh 00:27:39 i'm beginning to realise why nobody uses the dependently-typed lambda calculus as a core language 00:27:44 (it's frickin' verbose and opaque!) 00:28:01 um 00:28:09 you cant encode data types by the folds 00:28:20 you can represent a list as its foldr 00:28:28 it doesnt' work 00:28:31 yes, it does 00:28:42 sure you can. it's how it's done in System F iirc 00:28:48 map, foldl, head, tail, ... can all be implemented with juts foldr 00:28:50 *just 00:29:03 also: http://en.wikipedia.org/wiki/Church_encoding#Higher-order_function 00:29:50 MissPiggy: also is it just me or does prolog solve the expression problem? 00:29:51 maybe 00:30:10 prolog has no static types. 00:30:20 without which, it is much easier 00:30:24 iiuc 00:30:50 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 MissPiggy: well, do link 00:31:34 but i'm fairly sure oerjan and wikipedia, and facts back me up on this 00:32:13 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.4355 00:32:45 note that this foldr encoding of lists applies to when lists have all elements the same type, like in haskell 00:32:50 MissPiggy: i'm just talking about lists 00:33:04 yeah I knew it was pointless 00:33:10 sigh 00:33:20 i don't think you understand what i'm saying 00:33:21 data Nat : * where 00:33:22 Z : Nat 00:33:25 S : Nat -> Nat 00:33:28 data List : * where 00:33:30 nil : List 00:33:37 cons : a -> List -> List 00:33:41 same thing 00:34:03 * coppro knows how to bug alise... hehehe 00:34:12 How? 00:34:31 MissPiggy: so, are you saying that map isn't implementable with just foldr? what about foldl? head? tail? 00:34:41 by insisting that C# solves the Expression Problem 00:34:49 you can do whatever the fuck you want in haskell or untyped lambda calculus or wikipedia 00:34:57 what does that have to do with it 00:35:41 coppro: >_< 00:35:51 it comes close 00:35:53 MissPiggy: because you are being opaque about what you are actually trying to state to me 00:36:07 coppro: can you add new methods and have them work on existing members of a type hierarchy? 00:36:20 alise: Yes, they're called extension methods 00:36:27 I think it's more a case of you already have your mind made up 00:36:32 they're just glorified functions, but okay 00:36:38 that doesn't really count :P 00:36:47 MissPiggy: I haven't and I'm trying to get the information out of you, dammit 00:37:02 they are 00:37:02 and you seemed to read an entire research paper in the amount of time it takes to read its title 00:37:13 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 but does the semantic difference of what is and isn't a member of a type matter? 00:37:23 MissPiggy: i read the abstract 00:37:29 usually that summarises what the paper concludes. 00:37:35 other than the verbosity 00:37:39 coppro: yes 00:37:49 alise: explain 00:37:56 coppro: access to private fields 00:38:02 QED 00:38:24 it's equally clear that in the System F type system people _have_ defined list types as their corresponding fold types 00:38:33 this thread of discussion has got murky and clouded with assumptions so lets clear it and we can start again 00:39:00 alise: that isn't required 00:39:09 coppro: well nothing is required 00:39:17 the expression problem doesn't reduce a language's power 00:39:21 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 I'd argue prototype systems come closest to solving it 00:40:01 What idiot? 00:40:09 The author of the .txt file? 00:40:10 alise: Wadler 00:40:13 O_O 00:40:16 You just called Wadler an idiot. 00:40:50 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 he was an idiot when he decided to refer to it as being solved 00:40:54 or solvable 00:41:00 Secondly, he didn't. He presented *one solution*. 00:41:11 It allowed you to add both rows and columns. 00:41:13 That is a solution of the problem. 00:41:21 It may not be the best or even a good solution, but it is a solution. 00:41:40 in that case I contend that C# has solved it 00:42:05 No. 00:42:06 Private fields. 00:42:53 I contend that those do not matter 00:43:28 Nothing matters. 00:43:34 It is a problem of convenience and expressivity, not power. 00:43:43 So either obey all the rules or obey none. 00:43:54 If it wasn't about private fields, *every* OOP language would solve it. 00:44:04 (In an awful, kludgey way, of course.) 00:44:21 you have to "add new cases to the datatype and new functions over the datatype" 00:44:24 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 coppro: Anyway, if you add an extension method to a subclass, do you have to add it to all superclasses too? 00:44:43 Summray: In untyped lambda caculus**** 00:44:45 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 alise: Actually, that I'm not sure about, and would be fatal to the Expression Problem 00:44:52 alise, oerjan ^ 00:44:54 but access to private members is not fatal 00:45:30 Interestingly enough, prototype systems take it one step further 00:45:55 i just spent about half an hour to an hour shoveling snow 00:46:11 par for the course 00:46:22 GRAR UPPER BODY STRENGTH 00:46:26 HULK SMASH SNOW 00:46:58 MissPiggy: kay :P 00:47:03 you are the snow shovelar! 00:47:11 coppro: But yes, I just realised that's why it doesn't solve it. 00:47:13 prototype systems let you define new functions over individual objects 00:47:20 -!- Wareya has quit (Read error: Operation timed out). 00:47:22 coppro: In a real-life table of numbers, 00:47:24 i'd shover your snow ;o 00:47:28 I typed that all out and you're not even going to read it? 00:47:31 you can't just add a column, put one number in, and pretend all the rest are that number 00:47:37 You have to fill in each separately, considering each row 00:47:59 MissPiggy: I read it 00:48:10 MissPiggy: why do you assume I did not? 00:48:16 ah, true 00:48:32 * coppro motions quietly in the direction of Python 00:48:33 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 rather than a nuclear holocaust of oppression as in adding a column 00:49:16 alise: why does inheriting methods screw it up? 00:49:25 wait, it doesn't 00:49:36 with the column fuckup you enter one and it magics into the other rows 00:49:41 but with method inheritance, there's no entering+copying 00:49:44 it's just regular inheritance 00:49:45 ok 00:50:10 Incidentally, language implementations with a solution of the expression problem are godly in their ease-of-organisation. 00:50:25 ok, here's a fun one 00:50:37 Erlang 00:50:41 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 oerjan? 00:50:47 (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 *not 00:50:58 alise because you didn't even argue 00:51:00 It becomes organised by feature, not by phase. 00:51:09 MissPiggy: because you're probably right :P 00:51:18 coppro: Erlang isn't strongly-typed; mu 00:51:30 well. you can't add pattern-matching cases to a function in erlang, too 00:51:41 so even if you arbitrarily said {foo,2} is your new row, you can't fill in the columns 00:51:47 yeah, it fails pretty hard 00:51:54 funny for a functional language though 00:52:04 adding new types is the easy bit 00:52:13 well, since it's not statically typed you can think of it as being able to add rows 00:52:18 it's just that you don't have to declare the rows you add :) 00:52:19 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 er 00:52:28 wait 00:52:28 no 00:52:30 it can add columns 00:52:32 but definitely not rows 00:52:33 right 00:52:35 like most functional languages 00:52:56 the expression problem only really makes sense with static typing 00:53:26 coppro: i was expecting you to be more "coool" at my thing about language implementation organisation :( 00:53:45 sorry 00:53:53 ehird 00:53:53 :P 00:53:57 alise* 00:54:02 ha, i was just about to 00:54:32 are you considering designing a language which has a very easy solution to the expression problem? 00:54:39 food -> 00:55:04 augur: i'm considering including my nice syntax for my solution in my language 00:55:08 and making _all_ types tables 00:55:17 (although of course you have to export the table part to get it extensible by others etc) 00:55:34 all ADTs that is 00:55:46 I wonder if the ability to subclass could be considered a requirement 00:55:58 no, just extend the type 00:55:59 hm 00:56:10 subtyping in OOP extends the parent type, because you can use the subclasses as their parents 00:56:11 or have type extensions of some sort 00:56:16 yeah 00:56:18 yes 00:56:19 that's adding rows 00:56:22 well 00:56:26 adding row = extending type + filling in columns 00:56:35 adding column = making function + filling in rows 00:56:40 with covariance or contravariance? 00:56:49 COMONADS AND CONTRAMONADS 00:56:57 coppro: I don't see why? 00:57:04 alise: no, I mean which 00:57:09 er I was thinking of the wrong meaning of covariance :D 00:57:21 coppro: no, all the extensions are considered equal 00:57:29 subtyping in OOP just happens to do this, it isn't the optimal way 00:57:36 the optimal way is simply adding constructors to an existing data type 00:57:37 subtyping in OOP is covariant 00:57:41 (usually) 00:57:50 yes, but it doesn't matter for the expression problem 00:57:56 but it does 00:57:58 subtyping is a more general operation than what you need for the expression problem 00:58:05 with the expression problem, all are = 00:58:27 what does one define as "adding new cases to the datatype"? 00:58:57 data Foo a = Abc Int a 00:59:01 data Foo a = Abc Int a | Bar a a 00:59:04 data Foo a = Abc Int a | Bar a a | Quux Int String 00:59:32 * alise realises something 00:59:43 alise: Why doesn't simple composition not qualify? 00:59:46 my language probably has almost as many features that almost all other languages don't have, as common features 00:59:48 *does 00:59:55 coppro: it does i think? 01:00:14 well you just said that extension was necessary 01:00:22 well it has to extend the original type 01:00:23 unless we were talking about different definitions of extension 01:00:28 because you fill in the columns 01:00:30 people in haskell are mean 01:00:32 and you can't change the type of the columns 01:00:34 #haskell 01:00:35 it's an overloaded word I think 01:00:39 dependent types, mixfix operators, extensible syntax, partiality as an effect, heavy unicode usage, 01:00:47 solution to the expression problem, 01:00:48 ... 01:01:05 alise: what do you mean "fill in the columns"? 01:01:17 when you add a new row 01:01:24 you have to implement all the functions (columns) 01:01:25 for that row 01:01:40 again, think of a real table of numbers 01:01:49 I don't think that's a requirement 01:01:49 if you add a row, you have to fill in the values for its columns 01:01:55 since many functions can't be implemented 01:01:59 if you add a column, you have to fill in the values for its rows 01:02:03 coppro: all the functions previously added 01:02:04 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 uh, bye. 01:02:21 -!- coppro has joined. 01:02:23 wb 01:02:27 did you miss anything? 01:02:29 alise: I do understand it 01:02:30 no 01:02:34 wait 01:02:39 do you have the link to my explanation? 01:02:41 I'll show what I mean 01:02:44 no 01:02:45 I don't 01:02:54 ok 01:03:14 AFAICT, we're currently arguing over the specification of the problem 01:03:17 i need the explanation though :P 01:03:22 i could search the logs I guess 01:03:34 coppro: well, I'm 99.9% sure I've described the problem correctly 01:03:48 alise: I'll wait on your explanation before saying more 01:03:55 just to check 01:03:59 you have read http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w right? 01:04:06 might be good to read it again :P 01:04:12 (I wrote it) 01:05:00 slight hinting + greyscale antialiasing makes linux typography okay, yay. 01:05:49 alise: yes, I agree 01:05:59 with the antialiasing thing? 01:06:05 no, your explanation 01:06:08 ah :P 01:06:15 however, I also see our disagreement 01:06:28 you're considering it as an isolated case; I'm considering every function and type as a whole 01:07:06 ? 01:07:10 add more jargon to that 01:07:13 it's too vague 01:07:14 e.g. there is an comparison function which is defined for numbers, but not for lists 01:07:30 whereas there is a function to get the first element of a list that is not defined for numbers 01:08:05 a table is a type, by the way 01:08:10 rows = members of that type 01:08:13 columns = functions on that type 01:08:15 ah 01:08:20 okay, that's what I was missing 01:08:23 rows are data, columns are functions 01:08:24 tables are types 01:09:54 now things make more sense :) 01:10:36 yeah the "some functions aren't implementable" thing was confusing me 01:11:02 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 hey alise, will you be on next week? 01:11:21 wend 01:11:25 MissPiggy: End, yes; why? 01:11:35 well just wondering like if you aren't 01:11:39 then ? 01:11:48 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 (pattern match = Damn nigga, you sum columnic function) 01:12:15 MissPiggy: Then what? You mean if they find out and imprison me in a fortress for 100 years? 01:12:52 okay so you're not worried 01:13:41 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 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 If I'm not on this week or next week, well... what can you do? Nothing, really. 01:14:42 Rest assured I won't be personally giving up, so... 01:15:52 We'll just assume your Finnish internet connection isn't set up :P 01:16:27 Internet connection is the only thing going for Finland over Sweden and Norway. 01:16:37 I'm adamant about not working for the military, so it's out :P 01:16:52 (Even though by 18 I'll be a senior professor of awesome at MIT.) 01:17:21 I thought you weren't going to the USA? :P 01:18:34 All the excellent CS universities are in America. I could, at least, stand Massachusetts. :-P 01:18:48 Also note that I may have been joking a wee bit, what with the senior professor of awesome thing. 01:18:56 *gasp* 01:19:12 clearly this is the difference between male and female ehird 01:19:38 yeah the male one never joked 01:19:39 Yes; female alise would never be promoted to Senior Professor of Awesome because of SEXISM 01:19:56 Also, hey, who says I'm female! Just because I'm referring to myself with female pronouns! 01:20:10 It's sexism to mandate that only one sex can use one set of pronouns. 01:20:20 it's the (s)h/it, man 01:25:37 Why did classic Clearlooks become modern Clearlooks? 01:25:40 Old Clearlooks is far prettier. 01:33:40 alise: they'll have to create that professor for you, i think 01:34:47 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 or, if a physicist, at 300 K 01:36:35 yes physicists are cold, horrible people 01:36:37 is that what you meant? 01:36:49 3.15 degrees make all the difference 01:37:02 hmm, so the difference between a physicist and a mathematician is ~pi 01:37:07 makes sense. 01:37:20 -!- Asztal has quit (Ping timeout: 258 seconds). 01:38:31 * coppro cackles 01:38:50 wat. 01:39:07 I'm trying to freeze the physicists 01:39:50 xD 01:40:07 yeah 26.85 degrees is freeeeeeeezing 01:40:13 I know I'll never get rid of their energy entirely, but I'll get rid of what I can 01:40:27 coppropy 01:40:50 then I shall design a mysterious and inexplicable device with their zero-point energy 01:42:28 hmm... in what language should I write my text visualizer? 01:45:07 Haskell. 01:45:18 cobol 01:45:19 "text visualizer"? 01:45:20 Already had your reply written down 01:45:26 I already have one of those 01:45:31 The whole program essentially boils down to "vis s = map tile s", after all. 01:45:43 Indeed, with FRP, you could write literally that. 01:45:46 to start, yeah 01:46:04 Okay then, "vis tiles s = map (tile tiles) s". 01:46:50 yes, I get it :P 01:46:59 I'm strongly considering Haskell 01:47:00 Well, it's not "to start with", it's pretty close to all you need. 01:47:09 alise: I intend to add more features 01:47:15 Of course, but the actual tiling part. 01:47:17 screw Unix 01:47:29 coppro: If you do, please do consider using an FRP toolkit. 01:47:37 You don't have to worry about updating the rendering on its changing or anything. 01:47:42 alise: Yes, that seems like a good idea :) 01:47:43 (FRP is basically event-based programming, but functional) 01:48:10 coppro: Unfortunately, most FRP implementations suck. :-) 01:48:28 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 (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 coppro: So what kind of features are you considering? 01:49:20 Here's something that would be cool: 01:49:47 alise: changing tile images based on surroundings, possibly editing 01:49:53 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 It'd interpret the vt100 codes and send your keypresses, and voila! 01:50:06 yeah, that was on the 'lofty goal' bit 01:50:09 Graphical nethack in a few lines and some drawing! 01:50:14 vt100 codes are very simple, so 01:50:18 yep 01:50:23 was thinking that /exact/ thing, actually 01:50:23 you could even use termcap/whatever to make them send ones easier for you 01:50:33 not that I'd actually use it for nethack 01:50:50 writing apl :P 01:50:56 :P 01:51:06 given a program that compiles ascii characters to apl chars 01:51:19 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 I like APL 01:51:51 where should I start with actually learning Haskell Syntax? 01:52:04 coppro: You should learn Haskell in one go. :-) 01:52:06 coppro, f x y z is what you'd normall write like f(x,y,z) 01:52:11 alise: yes, but where 01:52:14 http://learnyouahaskell.com/ is an excellent starting point. 01:52:14 except that its ACTUALLY (((f x) y) z) 01:52:25 thank you for telling me what currying is 01:52:29 It's practical, simple to understand and amusing. 01:52:36 I like the elephant 01:52:37 MissPiggy: coppro is rather beyond that stage 01:52:42 coppro thank you for learning the first thing about haskell syntax 01:53:02 I also happen to sort-of understand monads 01:53:06 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 ha 01:53:15 ESP too :P 01:53:20 what I wrote has nothing to do with monads 01:53:26 I know that 01:53:28 that was the reverse state monad 01:53:33 http://lukepalmer.wordpress.com/2008/08/10/mindfuck-the-reverse-state-monad/ 01:53:36 (it passes state backwards in time) 01:54:07 hmm... LYAH says it's aimed at someone who hasn't done functional programming 01:54:16 doesn't matter 01:54:19 it works for someone who has too 01:54:20 ok 01:54:31 it just might be a little easy at first :P 01:54:39 remember that style is important in haskell, though 01:54:49 it's easy to write bad haskell code, and it often looks like good code in other languages. 01:54:55 (because they're less expressive) 01:55:00 if coppro doesn't like reading things he already knows he should just learn Haskell from the Report 01:55:02 so paying attention to what it does is probably a good idea 01:55:22 I think A Gentle Introduction is harder to read than the Report :-) 01:55:25 the highest signal ratio you will get is from the report 01:55:35 yeah it is but he flipped out when I mentioned currying 01:55:38 alise is right though; style is everything 01:55:48 MissPiggy: he didn't 01:55:56 so he probably wont be able to handle LYAH 01:55:59 he was just pointing out, sardonically, that he was rather beyond that stage 01:56:05 chill :P 01:56:38 "Haskell was made by some really smart guys (with PhDs)" <-- excellent. An important feature to any language. 01:56:48 Hey, I don't have a Ph.D. 01:56:55 :P 01:57:35 just steal ideas from PhDs then, that's what I do 01:57:39 ditto 01:57:42 lol 01:57:52 later, I'll pay them to make a proof of soundness for me to steal. 01:57:55 like TeX 01:58:07 wat 01:58:12 TeX is pure genius. And it was made by a guy with a Ph.D. Coincedence? 01:58:25 Ehh, TeX has flaws :P 01:58:32 how TeX is pure genius? 01:58:40 it's good though, just not "pure genius" 01:58:42 Objective-C. /me yawns. 01:58:45 I thought it was pretty much just a good tool that needed to be made 01:58:48 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 the top two things missing from haskell: 02:01:25 1. Dependent types 02:01:31 2. A powerful (ML-style) module system 02:01:50 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 doit 02:02:09 I'm no dolt! 02:02:19 (http://folklore.org/StoryView.py?story=Do_It.txt) 02:02:23 but, err, what 02:02:48 go fix Haskell :P 02:03:06 I'm doing that! Sort of. 02:03:13 By making an entirely new language with lots of things from Haskell. 02:03:34 quick, someone explain why negative numbers must be in parens 02:04:01 Haskell needs typeclasses? 02:04:14 coppro: because f -3 is f - 3 02:04:23 ok 02:04:24 I've pondered emulating typeclasses in Agda and decided that Agda without typeclasses would be superior to Agda with typeclasses. 02:04:28 that's haskell's first dirty little secret :) 02:04:34 uorygl: haskell doesn't "need" them 02:04:48 alise, DoIt 02:04:48 implicit arguments + records/modules > typeclasses 02:04:58 the former almost always comes with dependent types. 02:05:15 alise: knowing nothing, I'm going to guess that operators are just identifiers and arithmetic is a curried expression template? 02:05:16 data Monad m = Monad {return :: forall a. a -> m a; . . .} 02:05:26 coppro: (symbols) is an infix operator 02:05:28 (+) :: ... 02:05:36 aw, I'm wrong :( 02:05:43 arithmetic is just a function :P 02:05:51 uorygl: yes, but you have to specify that every time :) 02:05:55 but yes, that + implicit arguments = tada 02:05:58 if/then/else is more than just a function :( 02:06:00 yeah, but I was thinking it would be smalltalkish 02:06:03 Sgeo: not in agda! 02:06:05 coppro: howso 02:06:08 ((1 +) 2) 02:06:17 (1 +) works, so does (+ 2) 02:06:22 you can think of (1 + 2) like that if you want. 02:06:22 coppro, you can do that in Haskell 02:06:39 I guess I'll read a bit more before adding additional comment 02:06:45 coppro: there's also "infix[lr] symbols N" which defines associativity and precedence 02:07:44 ok 02:08:06 agda does operators far better 02:08:16 if_then_else_ is how you define the conditional operator (syntax in haskell) 02:08:21 _+_ is addition, etc 02:08:59 yeah, I know, I read that bit of Agda 02:09:10 languages that modify their own syntax always scare me though 02:09:48 it isn't modifying syntax 02:09:51 not really 02:10:15 you could view it as agda parsing to a very linear form at first 02:10:20 and the rest being semantics, not syntax 02:10:30 anyway, it isn't full syntax modification 02:10:57 still makes me squeamish 02:11:20 I find syntax modification slightly creepy but I just see mixfix as a generalisation of prefix, infix and postfix operators 02:11:30 after all, you can emulate if a then b else c with if a then (b else c) 02:11:45 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 right 02:12:50 We should make a language where syntax modification is critical to use, or something 02:12:55 No :P 02:13:09 coppro: I might have to be up at 8, but probably not. Probably more like 9-10. 02:13:13 it's called Perl 02:13:18 I should probably think about bed sometime. 02:13:23 probably 02:13:25 But I'm stupid, so I won't :D 02:13:26 see you Friday 02:13:42 Bleh. LYAH's code samples have invisible _ 02:14:16 http://esolangs.org/wiki/Defcalc 02:14:19 I like this language 02:14:21 Sgeo: invisible? 02:14:29 alise, I can't see them 02:14:33 For some reason 02:14:38 Get some glasses 02:14:48 They look like spaces 02:14:58 line height or sth probably 02:16:18 http://i.imgur.com/sMKlv.png 02:18:23 There's supposed to be underscores there? 02:18:41 Ah. 02:18:41 Yes. 02:18:43 I love the wiggler diagram of the list 02:18:51 (Underscore means "ignore this argument".) 02:19:08 coppro: link? 02:19:11 Nothing <*> _ = Nothing 02:19:18 alise: http://learnyouahaskell.com/listmonster.png 02:19:25 Not space, like it appears in the screenshot 02:19:36 coppro: ah yes 02:19:38 i think that's new since I read it 02:20:10 A list is a curious monster. 02:20:24 why is == [] bad? 02:20:49 coppro: requires the content type to be comparable with == 02:20:49 because it's "null xs" 02:20:54 also that 02:21:00 (Eq a) => Eq [a] 02:21:10 so you can't compare two lists of incomparable elements, so you can't do == [] on them 02:21:16 null, otoh, uses pattern matching, and so is fine 02:21:38 [1] == [] works fine for me 02:21:48 that's because you can compare numbers. 02:21:55 sure, but try [sin] == [] ... 02:22:04 ah 02:24:18 "Mapping and filtering is the bread and butter of every functional programmer's toolbox. Uh." --LYAH 02:24:48 that "Uh." in the actual quote? 02:24:54 yes 02:24:59 :D 02:25:08 (if you're confused, whoosh) 02:25:11 Ah, B0NUS' writing. 02:25:24 *BONUS 02:25:26 His name is BONUS. 02:25:31 One of the better language tutorials I've read in general. 02:25:34 never mind his writing, take a look at his twitter 02:25:35 http://twitter.com/bonus500 02:25:53 alise: well i read that as a possible sarcasm tag... 02:26:03 oerjan: "bread and butter" "tool box" 02:26:26 well ok i did notice that too 02:26:39 alise: That is one of the more amusing Twitters. 02:26:50 He emits twats on a daily occasion. 02:26:58 Tee hee hee, twat. Ahem. 02:27:32 twit is destined to become a strong verb 02:27:53 Twit, twit your twat's twat. 02:27:59 TRANSLATION 02:28:13 Idiot, post (your vagina's posting to Twitter) to Twitter. 02:29:08 i'll call 't wit 02:29:30 I will sleep soon, I will sleep soon, I will sleep argh 02:29:53 any ops here? we should ban alise for hïrs own good 02:30:17 hrs own good? What sort of grammar is that? 02:30:25 also, I'm only going to be affecting my performance in Hell. 02:30:43 might need to wake up at 8am, it's 2:30. but more likely 9 or 10 02:30:44 you might still want to show up on time... 02:31:13 If Elliot is anything like I, mobility and consciousness are detached. 02:31:17 i'm just trying to make neutral pronouns by merging... 02:31:19 *Elliott 02:31:22 pikhq: only partly. :P 02:31:28 And I presume that he merely needs mobility, and doesn't *desire* consciousness. 02:31:29 oerjan: Show up on time? They come for you. 02:31:36 I would just have to do without much sleep. 02:31:37 oh dear 02:31:49 pikhq: oh, I can't be mobile without consciousness 02:32:00 I find my mind sparks a lot while I'm sitting barely able to move my hands on the keyboard, though 02:32:06 alise: Sounds like mobility isn't needed, either. 02:32:18 I am expected to walk around and go to classes when I get there... 02:32:28 Alas. 02:34:03 I wonder if this chocolate will make me sleepy. 02:36:04 alise, they have classes there? 02:36:21 Sgeo: It is, nominally, a school. 02:36:31 I would hardly be sane if I wasn't pumped with the idiotic national curriculum, would I? 02:36:37 pikhq: Actually, it's a "hospital" containing a school. 02:36:47 Or rather, a branch of a metaschool with no physical location. 02:36:56 (schools various newcastle hospitals.) 02:37:03 For the most part, the idiotic national curriculum is a good thing. 02:37:11 No. Hell no. 02:37:13 Double hell no. 02:37:19 Quadruple hell no. 02:37:27 O_O 02:37:42 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 The national curriculum of almost all - (all?) - countries actively inhibits learning for the intelligent. 02:38:12 alise: Oh, I agree 02:38:30 unfortunately, the majority of people are not 'the intelligent' 02:38:40 Sgeo: He was homeschooled. They believe he is in some manner or another mentally deficient. They are threatening to institutionalise him. 02:38:48 Homeschooled, I object to that word. 02:39:06 alise: 'Tis the word, though. 02:39:08 I was not in a "school" at "home" nor was I taught by my parents as the word evokes. 02:39:15 Ah. 02:39:23 I did, however, learn a crapload more than I ever learned beforehand and stopped hating life. 02:39:37 So, then, your education more consisted of "Learn." 02:39:43 The thing about the public school system is that it inhibits teaching kids stuff like magic and religion. 02:39:50 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 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 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 alise: I'd like to comment that I managed to get through "normal" education just fine. 02:40:42 *Granted*, I spent most of that time learning things for myself... 02:40:47 I somehow survived public schools. 02:40:52 pikhq: the fact that I was also bullied intensely for almost my entire school career did not help. 02:40:53 Hum, alise = ehird? 02:40:55 uorygl: Yes. 02:40:59 * uorygl nods. 02:41:05 He got a sex change. 02:41:12 what, you don't whois everyone who joins the channel? 02:41:16 alise: Oh. That hinders greatly. 02:41:18 I can use a feminine name and pronouns while still identifying as male if I want to! 02:41:28 I whoised alise after I suspected e was ehird. 02:41:34 coppro: I don't have ehird or anything in my whois :P 02:41:35 Such was my life in elementary school. 02:41:39 I did not recognize eir IP address. 02:42:03 uorygl: it says "identified as ehird" 02:42:08 oh, no it doesn't 02:42:12 e must have dropped that 02:42:12 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 9 or 10, maybe, probably. 02:42:23 But still. Perhaps 8. 02:42:29 So, very soon. Very very soon. 02:42:29 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 I was bullied a lot before I switched into this program 02:42:38 Uh, anyone have the link to the pastie? 02:42:44 Since then, I've learned that bullies are idiots 02:42:47 Eh. I'll summarise. 02:42:53 If so, that's simply inefficient. Write the papers. 02:43:11 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 They are, however, doing nothing to "fix" these things even if you accept them as diagnoses. 02:43:29 Or, to use a less oddly ambiguous phrase, inform the media. 02:43:38 "His only crime was being born delicious!" 02:43:48 Okay, that's more... understandable. 02:43:53 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 that's why they're doing the drink thing. 02:44:08 It's intended for people with disease-related malnutrition, so... yeah. 02:44:13 I eat perfectly fine. 02:44:18 They're crazy. 02:44:18 I thought everyone knew that BMI was little more than a guideline... 02:44:25 It's not even that! 02:44:29 a bad one at that 02:44:32 It was invented by a mathematician in the 1800s and was fudged to fit the data! 02:44:36 A poor one, though. 02:44:44 In the 1800s people barely exercised! Body mass was totally different! 02:44:45 Aaaaaaaaaargh 02:44:54 Have you seen a doctor about whether you're underweight or not? 02:45:00 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 uorygl: it's all "doctors" 02:45:15 uorygl: I am "underweight" as in below average weight. 02:45:23 So was my dad at the same age until quite later on in his life. He ate fine too. 02:45:37 Have you seen a GP about whether you're underweight or not? 02:45:51 No, but undoubtedly they had. 02:45:57 But nutrition science is bullshit. 02:46:06 uorygl: Pretty hard to when he's held there on weekdays. 02:46:09 (Just ask Ilari, if you have a few hours. Fudged data for political reasons, outright ignored conclusions, ...) 02:46:28 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 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 Sectioning = institutionalisation. 02:46:39 * uorygl nods. 02:46:47 The court could notice the case, examine it, and conclude I should be sectioned. 02:46:50 *courts 02:46:58 they can actually do that? 02:47:07 without being referred to? 02:47:09 alise, how long could it take to prepare? Shouldn't you have been doing that this weekend? 02:47:13 Well, if the courts don't notice or do anything with the case, why contact the media? 02:47:18 What would it accomplish? 02:47:20 Sgeo: What, moving? 02:47:22 yes 02:47:24 Sgeo: He needs a passport. 02:47:35 We have the forms, I just didn't get round to getting my picture for the passport this weekend, oops. 02:47:38 Next weekend we'll do it. 02:47:40 Well, maybe you should go see a GP. 02:47:42 As far as planning, we don't need to do much. 02:47:45 uorygl: Why? 02:48:00 alise: Issues with employment or anything? 02:48:06 To get a sympathetic viewpoint or something. 02:48:31 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 Next weekend, shall I remind you to get your picture? 02:48:42 BMI has not been widely discredited, even though doing so could be done by an infant. 02:48:47 Sgeo: That would be good. :P 02:49:41 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 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 uorygl: "Real person"? 02:50:00 I am confused by your terminology. 02:50:13 The sort of person who would look at overwhelming evidence and not disagree with it. 02:50:31 Ah. 02:50:58 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 But, uhh, I'm afraid my expectations of the health service are basically 0 after this. 02:51:45 How much time do you spend in this place? 02:51:49 Monday to Friday. 02:52:13 * Sgeo writes stuff in Google Calendar that looks like vacation planning 02:52:14 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 Indeed, the world is full of injustice and strangeness. Especially if you have Asperger's. 02:53:30 uorygl: The UK's handling of it is full-on retarded. 02:53:49 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 Maybe a silly synonym for "intelligent nerd". 02:54:26 I think I concluded at some point that if three things are mutually correlated, you can call them one thing. 02:54:36 I mean, I think the definition of a syndrome is a set of traits that tend to occur together. 02:54:39 Maybe. But it's certainly not a mental illness. 02:54:53 Well, it causes problems. 02:54:58 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 It's a mental difference :D 02:55:09 Empathy is spooky emotion at a distance. :-) 02:55:10 alise: It is, at most, a very mild form of disability. 02:55:24 (mild) autism is certainly a more rational state than allism 02:55:44 In the past couple of days, I've felt significantly, perhaps severely, handicapped by Asperger's. 02:55:53 Why? 02:56:28 Social interaction is very, very hard... 02:56:39 Only allistic social interaction. 02:56:45 With most basic reactions basically learned by rote. 02:56:46 Well, yes. 02:56:51 It wouldn't be a disability if most people were autistic. 02:56:56 Autistic social interaction is the most trivial thing in the world. 02:56:57 So it isn't a disability. 02:57:06 If you had a society full of retards, on the other hand... 02:57:09 That wouldn't work. 02:57:21 Anyway, I may be biased by the fact that psychological conditions are defined by consensus among psychologists, not evidence. 02:57:28 Which makes me go rawr and :(. 02:58:05 I've heard (ahem) that Asperger's causes akrasia to a degree much higher than that suffered by other people. 02:58:14 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 Howso? 02:58:23 Hm, imperfect analogy 02:58:26 You can't be vague, uorygl, and expect everyone else to know exactly what you mean. 02:58:31 Especially if it's based on personal experience. 02:58:32 Where "akrasia" is stuff like addiction, procrastination, and generally acting against one's better judgement. 02:58:52 uorygl: Alas. 02:58:53 * uorygl hugs Sgeo. 02:58:58 I'd call an autistic person's obsession dedication or specialisation, not addiction. 02:59:10 Is procrastination more prevalent in autistics? Prove it. 02:59:17 Wings confer benefits even in a world where only one person has wings. 02:59:28 Sgeo: but autism/allism aren't utilities 02:59:33 they're different configurations 02:59:36 alise: "Addiction" is, indeed, the wrong term... 02:59:54 is being a rabbit, not a snake, a disability? 03:00:10 Addiction is something I don't really suffer from. 03:00:25 My dad thinks I'm addicted to the computer 03:00:31 I'm addicted to the computers and the internet. Which just makes my weekdays stay in Hell all the more pleasant. 03:00:50 Computers and the internet? Yeah, we have those. The computers are for schoolwork only and the internet censored. 03:01:04 The closest I get to programming is on paper. 03:01:09 Procrastination, I do. I've only been able to complete three classes this year. 03:01:20 alise: I've done some of my best golfing on paper. 03:01:23 Assuming that I can finish the one class I have this semester. I probably can. 03:01:29 pikhq: You can't evaluate paper. 03:01:33 Heh heh, "addicted to the computer". 03:01:36 You can't do exploratory programming on paper. 03:01:43 Sorry, *Brainfuck* golfing. 03:01:43 uorygl: Why the hehs? 03:02:03 Which is exceptionally easy to evaluate, even with just a piece of paper and a pencil. 03:02:09 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 "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 uorygl: Oh I agree. 03:02:24 I've tried to explain to people that the computer is composite, not atomic. 03:02:42 How can people *not* understand that? 03:02:43 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 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 I mean, really. My computer gets used for a hell of a lot of things... 03:03:02 Thus, it's one activity. 03:03:05 I once helped someone by showing them the recent files in the File menu in Word 03:03:08 (Yes, I know they don't see *you* mousing.) 03:03:14 I read books, I read magazines, I read comics, I write programs, I chat... 03:03:17 She proceeded to refer someone who was having programming troubles to me 03:03:18 I play video games... 03:03:21 (mmm, emulator) 03:03:52 you forgot pornography 03:03:53 Watch movies, watch TV, listen to music... 03:04:00 alise: Heheh. 03:04:06 Sgeo: Computer = one activity. You're good at programming = fix my computer. 03:04:24 It's like the magic "Do everything" machine! 03:04:30 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 Compare with painting: Most people don't know how to paint a picture of any real sort of caliber. 03:04:51 But you can easily tell a "real" painting, so they don't do that. 03:05:00 With computers, everything looks alike. To inexperienced users, that is. 03:05:48 It's amazing how few people are even competent with computers, even today. 03:06:36 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 pikhq, I love it. 03:06:40 i can't wait until we're all uploaded minds experiencing totally configurable virtual realities of our design 03:06:45 it will be freakin' SWEET 03:06:47 It means I can show off without using my brain! 03:07:16 Sgeo: Hahahah. 03:07:32 I'm shutting things down to leave... 03:07:36 Bye 03:07:36 You have a few minutes, tops. 03:07:37 :P 03:07:54 alise: Gxis la revido, mia bonega amiko. 03:08:01 pikhq: Poo. 03:08:04 "la" revido? 03:08:17 Also, what's -ega? 03:08:27 It's been a while 03:08:37 "Very". 03:08:40 Ah 03:08:41 Anyone have anything to say to me before I disappear for five days? 03:08:51 alise: good luck 03:08:56 oerjan: Thanks. 03:08:58 alise: Retain thy sanity. 03:09:01 alise, may you retain your sanity 03:09:05 -!- jcp has quit (Ping timeout: 260 seconds). 03:09:07 pikhq: Sgeo: EXPOSED AT LAST 03:09:20 Which one is the one created to fuck with me, pikhq or Sgeo? 03:09:23 :D 03:09:36 Sgeo. 03:09:41 wait which sense of "fuck" is this? 03:09:45 I KNEW IT 03:09:49 Bye, alise. :( 03:09:50 He doth not use the common tongue correctly. 03:09:57 oerjan: "to mess with". 03:10:02 oerjan: The sexy sense! By which I mean the sense in which someone is created to confuse me. 03:10:08 uorygl: Aww. Bye. 03:10:14 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 :) 03:10:30 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 *facepalm* 03:11:46 oerjan: ;) 03:16:54 argh, a dripping sound 03:21:47 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 so much easier to type it out 03:22:32 -!- jcp has joined. 03:23:04 always add some commutative diagrams for good measure 03:23:16 * oerjan cackles evilly 03:24:52 I wonder if I have any homework that's due tomorrow. 03:25:02 sadly nothing too abstract yet, just coding theory over binary n-tuples 03:25:22 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 not too many structures to commute over 03:25:39 you and oklopol and your coding theory 03:26:10 * Sgeo should learn LaTeX 03:26:17 also, I really need to write a Haskell module that autogenerates tabular based on a function 03:28:27 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 eh. that would involve using the table AST-y thing they provide 03:29:43 oh 03:29:50 * oerjan just googled anyhow 03:29:59 Sgeo: you should 03:43:55 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 but if it's for computer game programming class... I might be able to forgive myself 03:44:42 also apparently recent versions aren't that bad at all 03:44:47 they aren't 03:45:42 -!- jcp has quit (Read error: Connection reset by peer). 03:46:59 -!- jcp has joined. 03:47:03 here is the site for it: http://mysbfiles.stonybrook.edu/~mgruen/cse380/project.html 03:47:42 is that the assignment? 03:48:20 :( DirectX 03:48:32 the individual project, spanning the next month or so 03:49:51 neat 03:51:30 it all relies on the delay idea being enjoyable 03:51:39 heyo Gracenotes 03:51:41 I've been idly thinking of puzzle ideas these last few days 03:52:43 AUGUR 03:54:31 sup bitch 04:05:48 the identity matrix where n = 1 is just 1, right 04:05:58 yeah, of course it would be 04:06:38 DUH 04:06:53 diagonal unity, hurr 04:08:36 muahaha, latex is so pretty. I feel evil making such good-looking documents. 04:11:04 I know 04:11:19 I feel the same way 04:11:52 oh dear, it's all an evil overlord plot isn't it 04:12:01 all hail Knuth 05:00:13 question: In Haskell, some pattern matches must be in parens. Why? 05:00:36 e.g. (x:xs) rather than x:xs 05:07:33 precedence. : has fixity 6 iirc 05:07:48 and -> has higher precedence? 05:08:04 err, = 05:08:12 -> and = is syntax. : is an operator 05:08:32 oh, I get it 05:08:34 ok 05:08:37 more importantly, function application has higher precedence. 05:08:41 right 05:13:33 coppro: http://www.haskell.org/onlinereport/syntax-iso.html 05:13:50 thanks 05:17:05 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 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 That's rather nice, actually. 06:12:59 probably a compiler setting 06:13:31 Do you mean the -ggdb compiler setting? 06:13:46 I don't know 06:13:57 I should do my homework 06:15:17 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 hm... it occurs to me that functional programming is just a big pun 06:15:27 What do you mean by that? 06:15:34 In what way is it just a big pun? 06:15:49 Haskell Curries 06:16:10 OK 06:16:27 do you get it? 06:16:33 Not quite. 06:17:00 Haskell is a language that curries functions 06:17:09 Haskell is named for Haskell Curry 06:17:15 currying is named for Haskell Curry 06:17:22 coincedence? 06:17:39 OK, now I can see it 06:18:20 IT'S ALL A CONSPIRACY 06:18:43 Do you think it is really a conspiracy? Some things might be conspiracies, but I'm not sure about this one. 06:21:39 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 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 zzo38: Because Windows doesn't support that. 06:28:42 pikhq: OK, but why? getenv works, though 06:29:08 Does it work on gcc on Linux and on FreeBSD? 06:33:08 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 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 zzo38: Windows sucks. 06:40:55 That's why. 06:42:48 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 zzo38: Windows does not have POSIX 06:43:06 No, I don't. 06:43:13 you must use the Win32 API to mess with that stuff 06:43:48 But then the program won't work on cross-platform 06:44:14 But at least getenv works, I can do without setenv, for now, I guess. So getenv should work on cross-platform. 06:44:14 Conditional compilation. 06:44:32 You have to do it a *lot*, simply because Windows likes to be petty. 06:44:38 getenv is a C standard function 06:44:55 or find a nice cross-platform library that does the conditional compilation for you 06:45:07 or use Winelib (not recommended) 06:45:52 For now, I can just make it not compile in the part the uses setenv if it is Windows. 06:46:15 Because, it can be work-around manually 06:47:52 what are you using the environment variables for? 06:49:46 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 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 why do you need setenv then? 06:50:36 also, what do you mean "indicate somewhere that the Glk.dll is changed"? 06:50:53 coppro: Indicate that he hex edited it, in essence. 06:51:07 why would he need to indicate that? 06:51:17 Decency. 06:51:30 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 Well, I didn't really use a hex editor, I used XN Resource Editor, and that is a bit different. 06:52:01 I don't get it 06:52:06 why does it matter? 06:52:19 I want to indicate it so that you can know that it is not the official file. 06:52:34 change its signature 06:52:50 What signature? 06:52:51 note: I have no clue how to do this. All I know is that they have magic GUIDs or the like 06:53:10 I think you will also need to update the .lib 06:53:16 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 Windows doesn't have much in the way of dynamic linking. 06:58:21 Merely just-in-time static linking. 06:58:21 :P 06:58:33 yeah 06:59:29 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 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 O_o 07:02:07 -!- FireFly has joined. 07:06:18 -!- kar8nga has joined. 07:16:38 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 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 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 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 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 then you can at least translate normal thue programs into it 07:26:41 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 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 "oerjan: it's the (s)h/it, man" you're a genius, have i mentioned 09:02:08 http://esolangs.org/wiki/Defcalc <<< this is just tree rewriting 09:02:28 Whatcha got against trees 09:02:56 i just mean that's an incredibly old idea 09:03:10 "pattern recognition" 09:03:13 :P 09:05:04 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 i'm just grumpy because i've made more advanced tree rewriters, but never made a language about them 09:14:59 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 You fucking niggers! 09:16:55 -!- Kori has left (?). 09:17:24 We sure are 09:18:17 Speak for yourself there. 09:23:47 i've never fucked a nigger 09:24:02 but kori means "basket" in finnish 09:25:03 -!- SimonRC has quit (Ping timeout: 265 seconds). 09:30:56 It was also the monetary unit of Kutch prior to 1947, divided into 24 dokda. 09:31:51 -!- SimonRC has joined. 09:45:42 It is also a combinator program! 09:45:49 I wonder what it would do 09:45:58 ```kori 09:46:02 No output. 09:46:18 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 forgot I was already connected... 14:50:04 hi from inside my marking-Java session 14:57:08 -!- oerjan has joined. 14:59:48 22:17:09 Haskell is named for Haskell Curry 14:59:48 22:17:15 currying is named for Haskell Curry 14:59:48 22:17:22 coincedence? 15:00:35 actually, official haskell history says that the reason they used his first name was to _avoid_ the obvious puns. 15:01:21 That's not a pun 15:01:38 Slereah: read the log 15:02:36 of course those obvious puns probably did not have to do with the CS meaning of curry, anyhow. 15:03:35 also of course it's not a coincidence, the work that HC did involving combinatory logic lead to both 15:04:31 although currying was not really his invention. there's another joke that we should be happy it's not called schonfinkeling. 15:05:56 oerjan : I did 15:06:02 Currying Curry? 15:06:09 That ain't no pun 15:07:37 um i didn't see anyone mentioning "currying curry". admittedly i'm still on yesterday's log. 15:08:18 What is the pun then 15:08:36 "haskell curries", apparently 15:08:43 hey i didn't make it 15:08:58 You are excused then. 15:09:27 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 well was it functional? 15:11:32 lol 15:11:53 `translatefromto fi en pito 15:11:54 maintenance 15:12:02 `translatefromto fi en kengän pito 15:12:04 Shoe grip 15:12:21 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: it's the (s)h/it, man" you're a genius, have i mentioned <-- embarassingly often 15:18:44 a puny genius, at any rate 15:24:07 !swedish test 15:24:10 `swedish test 15:24:11 test 15:24:11 test 15:24:27 `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 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 that was just before he was chased by a fermionic chicken. 15:25:51 `swedish bork 15:25:52 bork 15:25:54 `swedish bork 15:25:55 bork 15:25:56 `swedish bork 15:25:57 bork 15:26:03 BORK HARDER DAMN YOU 15:26:13 `swedish Bork. 15:26:13 Bork. \ Bork Bork Bork! 15:26:20 `swedish bjorkbarkburk 15:26:21 bjurkberkboork 15:26:35 wait 15:26:40 `swedish björkbarkburk 15:26:41 björkberkboork 15:26:52 my accent key is hung up 15:27:16 `swedish test. 15:27:17 test. \ Bork Bork Bork! 15:27:25 Ah, it looks for stops 15:35:37 -!- Slereah has quit (Quit: Leaving). 15:35:53 pull out all the stops 15:37:43 ....a pipe oerjan? 15:37:58 huh? 15:38:34 referring to where the idiom "pull out all the stops" comes from 15:38:37 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 I have now lost all my faith in inheritance. Not that I ever had any. 15:45:10 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 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 I like tall inheritance hierarchies. 17:06:03 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 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 I thought that was what INTERCAL was 17:10:21 not really, it has a completely different way of doing expressions, and a relatively different way of doing statements 17:10:30 INTERCAL's more like a regular imperative language based on different primitives 17:10:45 oh okay 17:10:48 it does have the PLEASE thing and the 16-bit restriction for constants, but that's about it 17:11:02 I was thinking about a language that could compile to every major high level language 17:11:08 it's not really eso though 17:11:16 MissPiggy: Underlambda! 17:11:32 hopefully that'll compile to every major low level language too 17:11:39 and pretty much every minor language that's powerful enough 17:11:59 grrr esolangs is always down 17:12:07 -!- BeholdMyGlory has joined. 17:12:13 how can I read about underlambda? 17:12:18 http://esoteric.voxelperfect.net/wiki/Main_Page works for me 17:12:27 but underlambda isn't published yet, it's something I'm working on 17:12:41 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 an intuitive view of it is "purely functional underload" 17:12:48 cpressey: ah 17:13:00 oh okay it's on the wiki then 17:13:05 so tell me about it? :) 17:13:14 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 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 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 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 Infix is fun to play with just because of that whole precedence thing. 17:15:16 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 cpressey, isn't there an algorithm for converting it to RPN? 17:42:49 as in, a specific name, named after someone or such 17:44:27 AnMaster: "it" = ? 17:44:47 Infix? 17:44:55 Yes, probably. 17:46:40 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 Converting it to RPN isn't much of an algorithm: just do a postorder traversal of the AST 17:54:12 Deewiant: there are algorithms that don't involve ASTs 17:54:26 Most of the work is done by the parser (precedence and associativity), before the AST is created. 17:54:27 apparently they were used in early compiler design; they'd compile infix to RPN and then build the AST from that 17:54:49 back when people thought in fortran and recursion was scary 17:55:19 that's quite possibly the reason 17:55:20 scarf: O_o 17:55:47 and memory was scarce, and ASTs were rare... 17:56:08 Well of course you can modify the AST-generating algorithm to print out RPN directly 17:56:14 Like for shunting-yard 17:56:36 I don't know what that is, but yes. Like for a Pascal compiler. 17:56:43 -!- tombom has joined. 17:56:48 http://en.wikipedia.org/wiki/Shunting-yard_algorithm 17:57:03 Oh 17:57:17 AnMaster: I might guess that's the specific name you're looking for? 18:02:43 shunting yard is pretty lol 18:02:59 it's unsound on invalid inputs 18:03:14 of course it's correct on correct inputs 18:03:23 I've seen it several times before, but never knew its name and origin 18:03:46 on wiki there's a great snippet "alternative to Dijkstras algorithm" 18:03:58 basically regex + into )+( and * into ))*(( etc 18:04:09 then you can forget about precedence and just read it with the parens 18:04:44 well I got that wrong ))+(( and )*( 18:17:03 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 cpressey, indeed 18:18:51 Deewiant: huh are you sure 18:19:16 1+2 -> 1))+((2 18:19:26 you also add (((((( )))))) around the whole thing 18:20:04 Ah right, that probably works. 18:20:20 also why couldn't you do error detection in shunting yard? 18:20:41 [1))+((2] <-- variant of that old Scheme syntax 18:21:02 cpressey, hm? 18:21:13 do you mean lisp or scheme there? 18:21:14 does square bracket mean "unlimited number of parens, so long as it matches"? 18:21:20 Maybe LISP, I don't remember. 18:21:25 I can see why lispers would like that 18:21:30 cpressey, is it those m-expression thingies? 18:21:33 It actually seems very un-Scheme-like somehow, so maybe yeah. 18:21:38 or whatever their name were 18:21:54 * MissPiggy hates that scheme syntax 18:22:00 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 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 people just use ] on IRC 18:22:50 cpressey, is it related to http://en.wikipedia.org/wiki/M-expression ? 18:22:54 that's where it comes from anyway, some crazy person decided to implement it after seeing it on IRC 18:23:20 AnMaster: gack. 18:23:29 I don't think so. 18:23:39 cpressey, "gack"? 18:24:01 Sorry, I meant: Gack!! 18:24:07 cpressey, why 18:24:31 and what is it supposed to express 18:25:19 Surprise and alarm at unearthing of historical computer science artefacts. 18:25:27 ah 18:25:55 I thought it was well known that the S-Expressions weren't intended to be used for coding in lisp originally 18:26:12 MissPiggy: btw, the mixing of brackets and parens is one reason I'm not so keen on Clojure 18:26:39 cpressey, well .......... when it has a semantic meaning that's a BIT better, like [] for vectors 18:26:43 but what I really hate is fucking 18:26:51 (let [(x ...) 18:26:56 as if that is any easier to read 18:27:09 it's like people that write sh*t as if that is somehow less offensive than shit 18:27:24 No, actually it's completely different :-P 18:27:43 * MissPiggy takes my similes and goes home 18:27:56 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 also I found lisp without an editor that highlights the matching bracket to be very painful 18:28:25 AnMaster, just write it without any parens? 18:28:37 MissPiggy, if it is lisp: wtf? 18:28:50 lisp without parens... All comments? 18:28:55 read it like natural language, figuring out the ambiguity yourself 18:29:07 let x 3 map + x 3 foo 18:29:11 LISP without parens would be Logo :) 18:29:14 MissPiggy, doesn't help the interpreter or compiler actually compile it 18:29:18 ?? 18:29:20 (or interpret it) 18:29:29 MissPiggy, I meant it is painful when coding lisp 18:29:30 why would you NOT use an editor to write lisp on a computer? 18:29:40 not for reading 18:29:41 well your situation is just ridiculous so there's no solution to it 18:29:47 what are you talking about 18:29:48 I thought you were talking about on paper 18:29:48 LISP without parens would actually be fine, if all S-expressions started with an atom which determined the arity exactly 18:30:01 MissPiggy, you must somehow have misread my comment 18:30:12 -!- scarf has quit (Remote host closed the connection). 18:30:31 cpressey, hm I can think of a syntax for that. +/5 or such. for 5 parameters 18:31:03 AnMaster: ah, you mean encode the arity in the atom? Interesting, but probably a bit cumbersome. 18:31:04 but really, I think in many cases it would be more irritating 18:31:11 very much so 18:31:13 cpressey, well, wasn't that what you meant? 18:31:38 I was just thinking to store it in an internal table when the atom is defined 18:31:48 or did you mean something like + 2 5 4 would be the same as (+ 5 4) 18:31:57 cpressey, you forgot that some are n-ary, like + 18:31:59 and * 18:32:34 also any non-painful way to create lists 18:32:35 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 sure, you could use lots of cons 18:32:45 but would you really want that 18:32:57 Would you really want to use LISP without brackets? 18:33:19 If the answer to the above question is no: it doesn't matter. If it is yes: seek help. 18:33:22 Deewiant, in some cases I think you can get too many brackets 18:33:34 typically cond constructs comes to mind 18:33:44 especially if it is at the end of a define or lambda or similar 18:33:56 you often end up with ))))))) or so 18:34:08 If you're going to make it optional, then you can just disallow it for the n-ary stuff. 18:34:20 Deewiant, well, you could use indention to decide level 18:34:27 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 still have parens for some cases 18:34:42 like on one line where it makes more sense 18:35:04 so you get a lisp/python indention mix 18:35:14 not sure how good this idea would be in practise 18:35:31 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 it doesn't sound too bad to allow the high level structure without parens 18:36:03 cpressey, "average scripting language" isn't really humane 18:36:17 because perl offsets the average so much 18:36:18 ;P 18:36:25 median might be better 18:36:59 AnMaster: ha! Well, let's just say Perl is such an exceptional language, it's an outlier, and thus disregarded. 18:37:15 I should have said, "a decent scripting language" 18:37:16 cpressey, a simple average wouldn't do that. 18:37:19 okay 18:37:23 cpressey, escript? 18:37:27 The mode scripting language: Perl or PHP? 18:37:30 Never seen it. 18:37:40 cpressey, hint: it is run by beam 18:37:41 Unless you mean Erlang 18:37:55 and yes erlang has escript 18:38:12 Erlang's not exactly my favourite for scripting 18:38:27 (btw, erl -man escript) 18:38:53 Yes, I've used it before, I've even built something to try to reduce the startup time 18:38:57 cpressey, and yeah, the shutdown time is quite horrible for erlang in general. iirc it is less for escript though 18:39:53 Last I used escript it was just a simple wrapper that knew about hashbang lines 18:39:58 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 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 at least if you need anything like sasl 18:41:14 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 cpressey, that is true. Idea: attach to existing erlang process 18:41:45 with a new repl 18:41:47 it is possible 18:42:00 AnMaster: that was what I did -- search my site for erlaunch if you like :) 18:42:03 however it has to be distributed. 18:42:04 iirc 18:42:15 erlaunch doesn't require it to be distributed. 18:42:58 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 the shutdown time however is slow 18:44:12 hm, what is the hardest bit in implementing intercal? My guess is parsing it. 18:44:40 once you have it in some nice AST or similar, it doesn't look too hard 18:45:35 (not easy either, but compared to parsing it...) 19:05:42 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 cpressey, what about those parser thingies in erlang? 19:06:25 cpressey, you know, liked used for the mnesia query thingies 19:06:26 parse transforms? 19:06:34 yeah 19:06:59 You have to know about the internal representation (AST) iirc, which is subject to change iirc 19:07:20 then why is it documented iirc? 19:07:56 Because Ericsson is perfect in every way. 19:08:00 XD 19:09:38 cpressey, then why the way they handle floating point NaN and +/- inf? 19:19:37 ...Because they're trying to be "humane" by application of inconsistency? 19:20:09 heh 19:21:11 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 just filter by features not present in any of your languages 19:23:09 and the remaining features will make up the ultimate one 19:38:33 -!- gm|lap has joined. 19:39:02 pikhq: you could do with a bot which tracks users' "sightings" 19:41:34 olsner: How about I just design a language which contains every possible feature, and let users decide. 19:42:50 I think that has been tried and failed before 19:43:39 You think? :) 19:47:46 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 now there's an interesting idea 19:49:27 wouldn't that be sorta like continuations 19:49:53 Yes, it would. A lot like continuations, actually. 19:50:36 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 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 cpressey: That would actually be continuations with transparency, really. 20:00:03 pikhq: Yes. 20:01:07 Doesn't Java provide that? 20:03:13 -!- augur has quit (Ping timeout: 264 seconds). 20:05:21 why not check the logs for when tusho was last seen 20:05:54 Heheheh. 20:06:26 Deewiant: yes, and it's interface is passable I suppose, but I still consider it an afterthought. 20:06:45 So's Python's. 20:08:13 In both, it looks like you can only get a stack trace after an exception is caught, for example. 20:18:40 C, arguably, has them more first-class. "Getcontext" lets you start accessing the stack. From there, enjoy non-portable code. :P 20:20:19 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 new Throwable.getStackTrace() 20:20:46 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 I still think the interface is kind of ugly, but it gets points for setStackTrace. 20:38:13 It seems there's a limit of how long the stack trace may be, though 20:38:22 In Java, that is 20:38:26 At least it stops at 1024 here 20:49:42 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 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 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 "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 "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 hi augur! 21:42:22 heyo 21:44:28 In my client, relatively many people have five-character amber-colored nicks. 21:44:45 augur, scarf, alise. 21:44:53 uorygl 21:45:32 Two five-letter all-lowercase amber nicks starting with A is far too many. 21:46:35 why am i amber 21:47:03 Probably because my client randomly assigned you that color. 21:47:13 oh i see 21:47:54 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 i have no colors for people 21:49:20 Isn't XChat graphical? 21:49:33 Yes, it is graphical. 21:49:38 It ought to have about 16,777,216 possible nick colors. 21:49:51 There's a predefined list of 9 that should be sufficiently distinguishable, though. 21:50:14 it should use ColorMatch™ 21:50:18 The problem with that is that you can't distinguish between two of them if they're identical. 21:51:37 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 #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 a 21:57:06 wtf is this 21:57:06 http://projectfortress.sun.com/Projects/Community/blog/ConditionalExpressions 21:57:06 I happen to favor Knuth's version, for four reasons: 21:57:06 4. He's Knuth. 21:57:07 data:text/html, :) 21:57:16 Light green-yellow. 21:59:25 You know, it would make slightly more (or perhaps much less) sense to give colors as brightness, redness, blueness. 21:59:55 That's what video formats do. 22:00:11 Sort-of. 22:00:25 "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 Admittedly that might be mostly because they can then use different resolutions for luminance and the chroma components. 22:02:04 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 Hmm, let's forget those 2s. 22:03:45 No, let's leave those 2s. 22:04:21 Quick, someone implement that formula so we can see what happens. 22:04:49 MissPiggy: That page talks about encoding truth values as 0/1 as if it's something, uh... esoteric. 22:05:26 I'm going to make an esolang that uses 1 for true and 0 for false :D 22:08:47 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 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 an intuitive view of it is "purely functional underload" 22:40:04 underload is pretty purely functional 22:40:27 you could consider the program result just a lazy string 22:41:12 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 Of course, there's still special forms. Like let. 22:42:16 cpressey I prefer my idea :P 22:42:21 where you never write any parens 22:54:30 cpressey, hm let takes a list doesn't it? 22:54:39 MissPiggy! 22:54:44 like: let ((name value)... ) 22:54:57 can i teach you about lecomte's categorial minimalism? :D 22:55:20 -!- MigoMipo has quit (Remote host closed the connection). 22:55:54 yes please do! 22:59:48 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 You can leave out the parens around the let itself 23:00:25 But the bindings list still needs them 23:01:22 AnMaster: ha! Well, let's just say Perl is such an exceptional language, it's an outlier, and thus disregarded. 23:01:32 median _is_ a way to remove outliers, you know 23:01:45 Maybe introduce an arity-3 form called = that just does one binding. Then you can say: = name value = name2 value2 expr 23:02:55 Then let* becomes a problem, but whatever 23:03:28 s/let*/letrec/ 23:04:07 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 obviously the problem is that the everythings contradict each other 23:05:36 or become undecidable, like when trying to make a type system that has every feature 23:05:56 *desirable feature 23:06:29 oerjan: I'm sure that's not the only problem. 23:06:53 ok but it's an obvious one 23:07:38 (well obvious after a few people have tried anyhow) 23:08:09 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 23:08:29 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 s/having/have/ 23:08:51 -!- FireFly has quit (Quit: Leaving). 23:09:15 Maybe it shouldn't be a given, but at least in the modern world, it is. 23:09:30 because an undecidable type system won't even get through the compilation stage 23:10:27 I know. But so what? We just blame that on the programmer, like C++ templates, and move on. 23:10:39 hm... 23:10:57 Unless you mean, won't *ever* get through the compilation stage. Then I suppose we have a problem. 23:11:23 with enough features that should be easy enough to achieve :D 23:12:14 cpressey: C++'s type system makes C++ *parsing* undecidable. 23:12:29 Because you have to know the types of things to parse C++. 23:12:35 pikhq: Yes, I know. 23:12:45 (the same is true of C, *but* C typing is trivial...) 23:13:06 why not check the logs for when tusho was last seen <-- he calls himself uorygl these days 23:14:13 oerjan, no 23:14:18 tusho == ehird 23:14:23 Warrigal == uorygl 23:14:24 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 (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 Sgeo: whoops, i was sure tusho was one of ihope's 23:15:10 oh i'm thinking of kerlo 23:15:20 AnMaster: Slightly. 23:15:21 pikhq, you don't have anything close to that example in the C++ FQA for C. 23:15:40 AnMaster: foo(bar) can *only* be a function call in C, after all. 23:15:48 fizzie, http://yosefk.com/c++fqa/web-vs-c++.html#misfeature-2 23:15:50 err 23:15:51 pikhq, ^ 23:15:57 weird tab typo 23:16:11 Everyone should program in C--! 23:16:16 unless i'm wrong about that one too 23:16:28 I think kerlo == Warrigal 23:16:36 pikhq, and yes, variables can be one of three types basically: scalars, pointers, arrays. 23:16:37 And Warrigal == ihope 23:16:51 the last one is certain at least 23:17:02 AnMaster: Scalars, pointers, arrays, collections of variables. 23:17:20 pikhq, oh structs on the stack 23:17:22 forgot that 23:17:35 or, well, global vars 23:18:24 pikhq, still, fairly trivial to figure out what things can be 23:19:03 pikhq, like * for multiplication can never look * for deref (or the reverse) 23:19:13 even if you don't know the types 23:19:18 AnMaster: Nice site at that link, thanks. 23:19:26 cpressey, you didn't know about it? 23:19:27 heh 23:20:26 fnord 23:20:30 AnMaster: nope. 23:20:46 heh 23:21:15 AnMaster: Yeah; you only need to know context for a few very specific things. 23:21:21 (basically, whether or not something is a type or variable) 23:21:31 pikhq, example? 23:22:18 hm actually: 23:22:21 int * foo; 23:22:26 what if you have: 23:22:30 x * foo; 23:22:49 different results if x is a type or a variable 23:22:57 Yeah, foo * bar changes based on whether or not foo is a type. 23:22:59 but that is, if there is nothing in wrong of x 23:23:17 it doesn't apply if it happens anywhere but at the start of a statement 23:23:30 Also, "const foo". 23:23:31 and in C89, only at the first statements in a given function 23:23:42 pikhq, that only makes sense if foo is a type? 23:23:55 Yes. 23:24:06 foo * bar looks like a useless expression statement though, even if legal... 23:24:24 oerjan, depends on if foo and bar have side effects ;P 23:24:29 but yeah, why multiply them 23:24:47 AnMaster: Actually, "const foo" might be equivalent to "const int foo". :P 23:24:48 still not particularly useful 23:24:49 oerjan, it is however legal. GCC at least will issue a warning about unused value or something like that 23:25:04 pikhq, isn't that deprecated? 23:25:19 AnMaster: Still syntax. 23:25:19 pikhq, pretty sure it isn't even allowed nowdays? 23:25:34 well it's obviously legal since it would need a specific exception to make it not so... 23:25:39 C99 requires a note that it's deprecated. 23:25:44 ah 23:25:54 well it's obviously legal since it would need a specific exception to make it not so... <-- ? 23:26:09 And it's an error if used for a function declaration. 23:26:52 anyway, the situations are rare. x * y = z; for example isn't ambiguous at all 23:27:23 AnMaster: all expressions are statements, it would be messy to except only those that are apparently useless 23:27:25 nor is x * y, z; 23:27:29 oh wait 23:27:33 that latter one might be 23:27:40 if it could be the comma operator 23:27:53 oerjan, heh 23:28:12 AnMaster: That's either x times y, then z, or an x pointer named y and an x named z. 23:28:42 oerjan, "This language prohibits useless statements and programs"? 23:28:45 I, Gcc the Great and Terrible, have judged your entire program to be apparently useless, and refuse to compile it. 23:28:45 for example && and || could obviously be useful with statements 23:29:38 AnMaster: not particularly well-defined, that... 23:29:40 pikhq, x * y, * z should be non-ambig though 23:29:47 oerjan, it was a joke 23:29:57 *gasp* 23:31:02 AnMaster: actually x * y = z could be a declaration with initialization, couldn't it 23:31:10 AnMaster: x times y, then dereference z, or x pointer y, x pointer z. 23:32:12 pikhq, oh ffs right 23:32:39 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 oerjan, what else could it be? 23:33:04 oh wait right x * y isn't an lvalue 23:33:24 * oerjan thought that backwards 23:33:28 yeah! What do you think this is, C++? 23:33:33 the term "lvalue" and such always confuse me 23:33:56 I mean, it much clearer if you just think about it at another level 23:34:06 AnMaster: actually took me a moment to remember the term. 23:34:17 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 cpressey, I avoid C++ 23:35:30 pikhq, care to link you lambda header file for C again? 23:35:33 AnMaster: Very wise. 23:35:46 I avoid it now, too, thankfully. 23:36:05 No matter how much Python bugs me, I look back and my C++ days, and I don't look back. 23:36:27 cpressey, why not erlang :) 23:36:27 Ach, and I've never used C++ for a personal project. That would be Wrong. 23:36:56 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 AnMaster: Only sometimes :) 23:37:40 but looking at the lengths c-intercal goes to for parsing... I doubt I even want to try that 23:38:42 cpressey: C++ operators are only required to return a value and be appropriately adic. 23:40:11 cpressey, why not make the operator* return a pointer? 23:40:16 to itself 23:40:33 that way you could make a pointer class you could never dereference 23:41:03 if you can override & too, then you could make a class you can never take the address of! 23:41:57 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 pikhq: Great! 23:42:28 -!- coppro has joined. 23:42:30 hm I want a circle of pointers in C 23:42:30 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 Then we can x * y = z to our hearts' content. 23:42:41 would only work for void* 23:47:49 void *x = &x; 23:48:12 * uorygl = ihope = kerlo = Warrigal = Tanner Swett 23:48:22 ehird = tusho = alise = Elliott Hird 23:49:35 union p { union p *p; } p = { &p }; ... but maybe that doesn't quite count. 23:49:52 Is it really a good idea to talk real names in this channel 23:50:05 it doesn't really matter 23:50:32 Sgeo: Josiah 'pikhq' Worcester. 23:50:47 Oooh, aaah. 23:50:49 /whois coppro 23:51:11 coppro: ZOMG 23:51:25 INORITE? 23:52:27 uorygl: um Tanner Swett is your real name? 23:54:04 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 hm i found a Tanner Swett on linkedin, but i doubt uorygl has joined university yet 23:57:37 oerjan: Maybe it was a honorific, in this case. 23:58:03 -!- pikhq has quit (Read error: Connection reset by peer). 23:58:10 you mean he's very bronze-colored? 23:59:03 oerjan: Yes; it's the penultimate step before graduating to Tannest. 23:59:14 ok then 23:59:57 There are three Tanner Swetts visible in the book of faces. 2010-02-09: 00:00:15 And one Lindsay Tanner Swett, but I daresay that's not it. 00:00:26 night 00:00:41 oh wait it _is_ warrigal 00:01:26 uorygl: darn i thought it was just a moment ago you were 14 :D 00:02:58 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 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 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 oerjan: indeed, I have joined university. 02:32:56 fizzie: there are three of me? Darn, what happened to my monopoly? 02:33:29 i think you failed to show up to your anti-trust proceedings, so there was a default judgement 02:33:52 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 probably in your spam folder somewhere 02:34:22 -!- pikhq has quit (Read error: Connection reset by peer). 02:35:05 Anyway, I'm the white, fuzzy one. 02:35:35 Standing on a solar panel in outer space. 02:35:58 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 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 augur: Grand Valley State. 03:47:42 -!- pikhq has joined. 03:47:57 what 03:48:20 Grand Valley State Universirty. 03:48:23 s/r// 03:48:44 Univesirty? 03:51:19 very gud speeling progarm 04:09:02 wheres that ey 04:23:39 -!- zzo38 has joined. 04:24:34 I DONE GONE TUH UNIVERSIRTY 04:26:59 Can you please review my program to see if it is good? 04:27:10 Can you please review my program to see if it is good enough? 04:27:45 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 I hate my school board's internet connection 05:54:45 51 packets transmitted, 0 received, 100% packet loss, time 50254ms 05:59:06 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 o hai 06:22:15 hi 06:22:53 hai ku 06:41:52 -!- Pthing has joined. 06:52:57 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 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 Greetings 13:05:15 hi 13:05:23 hmm, that was a bit slow 13:05:25 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 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 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 That looks like an OID, except not quite. 15:59:37 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 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 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 well, to me that looks pretty out of hand too. 16:31:10 -!- MissPiggy has joined. 16:31:15 oerjan, that version number, what is it for? 16:32:32 a joke, AnMaster, a joke 16:32:45 -!- MissPiggy has quit (Changing host). 16:32:45 -!- MissPiggy has joined. 16:32:46 or alternatively, ask oklopol not me 16:41:04 oerjan, ah wrong nick 16:41:11 oklopol, what is that version number for? 16:41:47 fizzie, what do you actually use snmp for. Just status info? 16:43:50 it's not a version number 16:43:53 I don't use it, I just know these things. (To the bus now →) 16:43:58 sry 16:44:04 merry bus 16:44:19 it's busmas! 16:48:08 my back is killing me 16:49:36 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 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 fizzie, can you do any setting changes over snmp? 18:27:59 ais523, hi there, back in your old nick I see 18:28:10 about strange courses and other university issues 18:28:17 oh, I'm helping some people play NetHack 18:28:20 changing nick would confuse them 18:28:34 new nick? :o 18:29:06 ais523, I currently have a "module" in math that consists two sub-modules. Submodule two comes before submodule 1 18:29:11 I mean, in scheduling 18:29:12 heh 18:30:19 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 "retake" in english 18:30:43 of course, having module 2 before module 1 also causes all sorts of confusion for *new* students 18:31:29 apparently they are considering renaming them to A and B instead of 2 and 1, hoping that might cause less confusion 18:33:12 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 brb 18:33:34 AnMaster: no 19:04:35 -!- kar8nga has quit (Remote host closed the connection). 19:22:37 I have a question about Turing-completeness proofs. 19:24:17 -!- cheater2 has quit (Ping timeout: 240 seconds). 19:24:25 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 cpressey! 19:24:35 hi 19:24:49 Hi lament :) 19:28:21 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 Is L Turing-complete? 19:29:21 Is Kipple? 19:29:37 Let's assume Kipple is TC. 19:29:45 Then yes. 19:29:59 er 19:30:06 of course it's not turing-complete 19:30:32 lament: Sure it is. It is evaluating a TC language, and therefore must be Turing-complete. 19:30:39 what therefore? 19:30:49 So you see why I asked :) 19:30:55 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 pikhq: that's like saying a box with an apple inside is an apple. 19:31:47 lament: No. It's like saying a box with an apple possesses an apple. 19:31:54 no. 19:32:51 Turing-complete means that it can evaluate a UTM and that a UTM can evaluate it. 19:33:02 A Kipple interpreter can be considered a UTM. 19:33:24 And I presume that L can be implemented on a TC system. 19:33:47 fizzie, it was in general 19:33:49 L is a subset of Scheme, and Scheme can be implemented on a TC system, so yes 19:34:06 cpressey: Then clearly L must be Turing-complete. 19:34:14 Scheme and Kipple of course just being concrete examples of TC languages, you could pick any you liked. 19:34:36 pikhq: a Kipple interpreter cannot be considered an UTM because it isn't. 19:34:46 well 19:34:59 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 lament: Is Kipple Turing-complete? 19:35:15 let's assume it is. 19:35:21 I can only write them in Kipple-interpreted-by-L. 19:35:25 lament: Then it is equivalent to a UTM. 19:35:27 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 I'm not sure it is 19:35:41 AnMaster: Sure it is. 19:35:47 AnMaster: sure, it is 19:35:53 hm 19:35:53 unlike L 19:35:59 why isn't L that then? 19:36:16 Sure, L could be that if you like. 19:36:19 because you can write arbitrary programs in HQ9+b but not in L 19:36:32 lament: You can? 19:36:35 lament: But you certainly can. 19:36:49 cpressey: "interpret the rest of the *code* as brainfuck"? Sure you can 19:36:52 I thought the point of HQ9+ was that you couldn't. If you can, it doesn't count. 19:37:03 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 rather than having it in the same file 19:37:09 lament: Ah, OK. 19:37:10 is it still tc? 19:37:12 AnMaster: right, then it's not TC 19:37:24 Sure it is. 19:37:39 It's just got two inputs for code. 19:37:46 true 19:37:56 you're confusing levels of abstraction 19:38:07 and that's bad 19:38:12 -!- Pthing has quit (Remote host closed the connection). 19:38:31 No, you're pretending there's a difference between a seperate file and an arbitrary string in the program. 19:38:32 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 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 therefore, L is not TC 19:39:18 pikhq: well, either we're talking about L 19:39:27 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 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 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 in the latter case, the device we're questioning the TCness of is not L, it's your Unix machine 19:39:49 is that then TC 19:39:54 and yes, your unix machine is TC 19:40:17 lament: ... 19:40:36 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 AnMaster: then the system comprised of the interpreter and a filesystem is TC 19:40:44 lament: But the L interpreter is simply reading a different tape for actually being universal rather than from the *same* tape. 19:40:54 pikhq: idgi 19:41:52 isn't there a multi-tape bf 19:42:06 with limited length of tapes but infinite number of tapes 19:42:19 There exists an interpreter for a Turing-complete language in L, therefore *L is Turing complete*. Quod erat demonstrandum. 19:43:10 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 ??????? 19:43:37 You would instead have to show that *any* UTM has a mapping to a program in the language. 19:43:38 cpressey: we need to look at the spirit of TC definition 19:43:46 where's it? 19:43:57 lament: Math doesn't have "spirt". 19:44:00 Spirit, even 19:44:01 is the rationale for def-n of TC being able to run any program? 19:44:05 pikhq yeah it does 19:44:16 pikhq: er, of course it does 19:44:55 Anyways. 19:44:55 I would say that this is the spirit of TCness (quoting Wikipedia): 19:44:56 "Two computers P and Q are called Turing equivalent if P can simulate Q and Q can simulate P." 19:44:58 "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 the reason turing machines are interesting is because they can run any algorithm 19:45:36 And L can run any algorithm. 19:45:43 sure it can't 19:45:49 *Kipple* can run any algorithm. 19:45:56 But Kipple can, and it can run any Kipple algorithm. 19:45:57 L can run any algorithm written in Kipple. 19:46:10 That statement was absurd, no? :) 19:46:21 i think so. 19:46:40 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 So L and Kipple are Turing-equivalent. 19:47:09 "The computer L" cannot print a list of primes 19:47:10 Since Kipple and any TC language are *also* Turing-equivalent... L is TC. 19:47:11 have anyone proved church turing thesis?? 19:47:17 lament: Yes it can. 19:47:22 lament: Well, it can, but only on the right input. 19:47:22 quantum physics is evidence for church turing isn't it 19:47:24 there exists an algorithm to print a list of primes, L cannot do it, therefore L is not TC 19:47:33 lament: But L can do it. 19:47:45 fine. L is TC then. 19:47:45 The computer L, given no input, cannot print a list of primes. 19:48:03 ok you win L is TC 19:48:04 lament you have be careful there because imagine a language that always printed HELLO when it started 19:48:21 it's cannot print hte list of primes without first printing HELLO, but it could still be TC 19:48:26 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 in general... you have to worry about input/output interpretations 19:48:34 -!- Asztal has joined. 19:48:59 cpressey, either way this results in some issues for the esolang community as far as I can tell 19:49:02 MissPiggy: Church-Turing thesis is trivially proven. 19:49:02 cpressey: I agree with pikhq 19:49:07 what 19:49:12 cpressey: we just consider the input to be part of the program code 19:49:23 either TC doesn't really mean much, or a lot of the proofs are invalid 19:49:23 MissPiggy: See compilers. 19:49:26 cpressey: because what else can we consider it as? turing machines don't have IO 19:49:28 you might be thinking of a different theorem than me pikhq 19:49:37 cpressey: with that clarification, L is obviously TC 19:49:58 lament: Yes they do -- Tape. :P 19:50:07 what's your statement of it? 19:50:17 well yeah. 19:50:27 code = data .. 19:50:37 MissPiggy: If an algorithm exists, there exists an equivalent Turing machine for it. 19:50:47 pikhq and you know how to prove it?? 19:50:54 hm 19:51:08 it should be possible to write a brainfuck compiler in befunge93 btw 19:51:16 I have several algorithms for converting algorithms to Turing-complete languages. 19:51:22 :/ 19:51:23 I mean, it is trivial to compile it to unoptimised C 19:52:09 are you reading it as: if a turing machin exists, there exists an equivalent turing machine for it? 19:52:15 because that's now how I read it 19:54:11 MissPiggy: Turing machines aren't algorithms. 19:54:27 Though by the Church-Turing thesis, they can be equivalent to them. 19:54:40 okay I can't see what you mean really 19:54:42 Algorithms always halt, by many definitions. 19:57:41 what about 19:57:41 http://plato.stanford.edu/entries/church-turing/ 19:57:41 "Misunderstandings of the Thesis" 19:59:58 If an algorithm can be described, it can be described with a Turing machine, is how I take pikhq's statement. 20:00:31 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 that is, over all of them 20:01:09 AnMaster: Quite. 20:01:19 what do you can it then 20:01:32 ... English? 20:01:37 Please, speak English? 20:01:37 lol 20:02:43 har 20:02:45 AnMaster: Well, people seem to abuse the word "algorithm" a lot too. To me a heuristic is not an algorithm 20:03:12 Maybe there is an "algorithm" for interpreting brainfuck, even though it may never halt 20:03:19 eople abuse church turing 20:03:32 But I think someone famous (Knuth?) wrote a definition of algorithm, and "always halt" was in it. 20:03:49 cpressey, what about an algorithm for parsing a stream of unknown length, it would depend on the length of the stream 20:04:03 productive 20:04:09 if you define algorithms as processes that can be described by a turing-machine, then church-turing is trivially true 20:04:21 but that's not really how they're defined for the purposes of the thesis itself 20:04:28 lament yeah which is why I don't think that's a correct interpretation of church-turng 20:04:30 lament: More of a tautology, really. 20:04:31 yes 20:04:38 pikhq: right 20:04:42 the link I have given goes into this in some detail 20:04:46 now church and turing were pretty smart guys 20:04:51 ^^^^^^^^^^^^^^ 20:04:52 and they didn't think this was a tautology 20:05:02 lament you are really good at explaining 20:05:10 lament: More of a tautology, really. <-- a tautology is trivially true though 20:05:13 -!- gm|lap has joined. 20:05:13 ty 20:05:19 AnMasterXD 20:05:19 AnMaster: Well, of course. 20:05:32 AnMaster: That's a tautology right there. ;) 20:05:42 pikhq, quite 20:06:32 haha 20:06:35 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 '"a tautology is trivially true" is trivially true is a tautology' is trivially true 20:07:21 yeah like what if you happend upon a HALTING ORACLE one day 20:07:25 and you made a computer out of it 20:07:31 then turing machines aren't enough 20:07:38 MissPiggy, exactly 20:07:50 quantum computation IS turing equivalent though 20:07:56 MissPiggy: By merit of having a halting oracle, you're out of the realm of Turing machines. ;) 20:08:04 (in terms of /what/, but not in terms of algorithmic complexity) 20:08:13 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 so I think that gives EVIDENCE for Church-Turing 20:08:58 This is *math*, not science! 20:09:30 Church-Turing is philosophy, not math. 20:09:45 Turing-*complete* is math :) 20:10:13 I thought Church-Turing Thesis was philosophy 20:10:15 not really math ? 20:10:29 Somewhere in the math/philosophy overlap. 20:12:44 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 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 argh 20:15:50 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 AnMaster: Damn, you're right. 20:16:16 That would be rather humorous. 20:16:42 "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 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 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 thus the resulting disagreement 20:18:15 can you elaborate on that? 20:18:35 oklopol, I'm sure you are familiar with the phrase "necessary and sufficient"? 20:18:44 sure 20:19:04 well, we know some things are necessary for TC, everyone agrees on some minimums. 20:19:07 but what are the known necessaries and sufficients here 20:19:09 hmm 20:19:16 yeah i suppose 20:19:16 Also, we know some sufficient examples of them 20:19:25 it is just that we don't know the minimum sufficient set 20:19:54 oklopol, did that make it clearer? 20:20:20 yep 20:21:08 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 At least, not outside ivory towers. 20:21:36 cpressey: no, it really didn't 20:21:44 cpressey, oh? Also what exactly is recursive sets. It sounds like something that allows Russell's paradox 20:22:36 AnMaster: it means the set of languages that are recursive, the sets aren't recursive in any way 20:22:40 R 20:22:55 -!- ais523 has changed nick to scarf. 20:22:55 http://www.amazon.com/Recursively-Enumerable-Sets-Degrees-Perspectives/dp/0387152997 20:22:58 -!- scarf has changed nick to ais523. 20:23:05 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 scarf, stop it 20:23:22 AnMaster: not deliberate, client bug 20:23:24 well freenode rate limits it 20:23:28 thank god for that 20:23:37 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 wow anmaster calm down 20:24:07 scarf, good 20:24:38 oklopol: I'd be surprised if it didn't have a fairly good definition w.r.t. sets. 20:24:52 R is the set of languages for which there it a tm that accepts them and always halts 20:25:02 RE is the set of languages for which there is a tm that accepts them 20:25:16 (halts on trues) 20:25:21 a language = a set of inputs? 20:25:38 Yes 20:25:46 as in a FSA? 20:26:08 cpressey, ^ 20:26:19 AnMaster: the language of such words that if you put them on the tape and run the tm, ... 20:26:28 As in, FSA accept certain languages (= sets of strings), yes. 20:26:38 ah same meaning of "language" then 20:26:39 right 20:27:37 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 I thought in this context your set was "Turing-complete" if there was a surjection from your set onto RE 20:28:12 Or something like that 20:28:26 from what set? 20:28:28 uhu 20:28:59 is it a set that is turing complete, or a computational model? 20:29:31 (i've never heard the term in recursion theory context.d) 20:29:33 *-d 20:29:36 In recursive function theory, it's a set. But it can be the set of strings (= language) accepted by a computer. 20:30:30 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 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 so, what kind of surjection exactly? there's a surjection from the naturals to RE. 20:30:43 err 20:30:49 well reals at laest 20:30:53 oklopol: I have no idea. I only half-remember this stuff. But it's in that book. 20:30:56 *reals 20:31:01 i see 20:31:19 cpressey, hm is L just TC or is it actually equivalent to an UTM or to lambda calculus or such? 20:31:30 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 that might be the key to this (word trickery that is) 20:32:02 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 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 cpressey, by the way, I don't think I ever seen any example of an uncomputable problem 20:32:47 AnMaster: um. Halting problem? 20:32:50 cpressey: i have no idea what an isomorphism is in this context 20:32:52 AnMaster, rendering the mandelbrot set 20:32:56 cpressey, oh duh 20:32:56 it's uncomputable 20:33:06 oklopol: one-to-one and onto? 20:33:12 MissPiggy, err? 20:33:12 that's a bijection 20:33:15 MissPiggy, how so? 20:33:21 AnMaster: but still semi-decidable :) 20:33:30 still that's just a question of cardinality, i don't see how that helps 20:33:31 MissPiggy, I mean, isn't that fractable one of the most popular ones arround 20:33:31 oklopol: Sorry, that was what I meant. 20:33:33 around* 20:33:38 cpressey, true 20:33:38 yes that's why I mentioned it 20:33:48 MissPiggy, so how can it then be uncomputable? 20:34:01 another thing that's uncomputable is solomonoff inductioon 20:34:12 cpressey: no worries, it's the isomorphism of the category Set 20:34:34 MissPiggy, "solomonoff inductioon"? 20:34:39 sure about that spelling? 20:35:19 :/ 20:35:20 what the fuck 20:35:28 that was obviously a typo 20:35:50 MissPiggy, right, I wasn't sure about the first being correctly spelt either 20:35:55 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 cpressey, hrrm 20:36:59 also I thought the halting problem was *undecidable* not *uncomputable* 20:36:59 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 but maybe they are the same thing? 20:37:10 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 AnMaster: I think they are more or less the same thing. 20:37:46 hm okay 20:37:57 RE intersect co-RE, that's the "completely undecidable" set I was thinking of 20:38:06 It's been a while though. 20:38:29 cpressey: it's pretty non-contrived to check if a given first-order arithmetic formula if true 20:38:45 oklopol: But isn't that RE? 20:38:55 you can implement tm's in that easily, and obviously it's in RE iff it's in co-RE 20:39:03 so it can't be in either. 20:39:20 for a very non-obvious meaning of obvious, i suppose 20:39:53 hm 20:39:58 "cpressey: RE intersect co-RE, that's the "completely undecidable" set I was thinking of" <<< no that's R 20:40:05 the completely decidable set 20:40:14 oklopol: Indeed. 20:40:51 Still, I don't see how "check if a given first-order arithmetic formula is true" isn't in RE 20:41:00 Can't I enumerate them? 20:41:11 Check each one, if it's true, spit it out? 20:41:12 it sounds like equation solving? Or maybe I completely misread that 20:41:24 how do you check one? 20:41:24 If it runs forever, so be it? 20:41:37 the arithmetic formulas are first-order, they can quantify over integers 20:42:10 oklopol: Try all possible proofs of its truth nondeterministically? 20:42:31 and who says everything has a proof? 20:42:38 what exactly is a "first-order arithmetic formula" 20:42:42 in fact, this is one proof that there is no proof for everything 20:43:02 oklopol: Granted. 20:43:34 AnMaster: you have universal and existential quantification over integers, addition, multiplication and equality check, and then boolean operators. 20:43:57 AnMaster: For example: For all integers x, x * 1 = x. 20:44:19 oklopol, you mean like Exists x ( x * 2 = 4 ) ? 20:44:24 yes 20:44:25 I had forgotten how slippery those were :) 20:44:42 oklopol, well that is easy to prove. equation solving 20:44:50 and even it can 20:44:56 Still seems like you could enumerate the ones that do have proofs. 20:44:57 yeah, that one is easy to prove 20:45:05 can't* be solved exactly you can often solve them numerically afaik 20:45:12 at least for first order ones 20:45:15 numerically, huh 20:45:24 you did hear these are integers, right? 20:45:35 oklopol, is that first order as in "no differentiation"? 20:45:39 no 20:45:49 it's as in no quantification over more complicated things than numbers 20:46:33 differentiation is not very sensible with integers 20:48:20 differentation no foobars 20:48:24 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 do you realize that's just a matter of cardinalities? 20:49:02 Now that I typed it out, yes :) 20:49:06 i mean you can just take an arbitrary set that has the same amount of elements 20:49:26 so, i think we need a slightly different definition 20:49:41 So I'm misremembering it. Maybe it was "computable mapping", for some definition of "computable". 20:49:54 Turing-machine computable would be most likely 20:51:44 oklopol, ah okay 20:54:01 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 http://en.wikipedia.org/wiki/Turing_degree 20:54:22 all the roots? 20:54:39 MissPiggy, well yes, if you just had square root it would be trivial to match it up to Q 20:54:46 Turing complete = Turing degree 0' 20:54:52 with cube root and so on 20:55:00 then it would be much larger I suspect 20:55:03 oh well it's Q x N I guess 20:55:08 which is countable again 20:55:12 MissPiggy, oh? really? 20:55:23 Q x N because you can represent the n'th root of q as a pair: (q,n) 20:55:24 how would it be countable 20:55:43 because countable x countable is countable (cantors zig-zagonalization theorem) 20:55:44 MissPiggy, true, But do show where you would begin counting 20:55:52 hm 20:55:54 oh right 20:55:57 you could go like that 20:55:59 indeed 20:56:03 duh 20:57:35 "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 (so first problem set has you writing stuff in thue, you gotta love aocp) 20:58:39 wow 20:58:44 I can't do ANYTHING with thue 20:58:50 I should get this book 20:59:14 Isn't set of algebraic numbers also countably infinite (and set of all integer roots of all rationals is strict subset)? 20:59:48 4. He's *Knuth*. 21:00:11 :( 21:00:24 Ilari: sure 21:00:48 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 unless by rationals you mean rational polynomials or something 21:01:29 oklopol, "aocp"? did you mean "taocp"? 21:01:35 i've heard aocp more 21:01:38 used to call it taocp 21:01:52 I call it The Art of Computer Programming. 21:02:58 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 fancy 21:03:26 AnMaster: i've used taocp and being told it's usually called aocp. 21:03:31 been 21:03:42 oklopol, I never heard aocp before. Often heard taocp though 21:04:11 well fuck 21:04:30 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 computable reals are countable too 21:04:52 Ilari: no that's not true 21:05:13 and that set is equivalent wrt all first order theorems, I think (?) 21:05:14 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 oklopol, googling: taocp gives relevant hits. aocp doesn't give any relevant hits 21:05:19 now if you want to to be a field... 21:05:27 only checked first result page for each 21:05:45 MissPiggy: Sure, sure; G"odel numbering of programs to compute them. 21:05:50 oklopol: Going over that Turing degree page, I do believe it was "a mapping computable by TM" (Turing-reducible) now. 21:05:53 pikhq, what was that? 21:05:53 AnMaster: okay, then maybe whoever told me to say aocp was a weird-ass weirdo. 21:05:57 pikhq, "o ? 21:06:10 at least it looked like that here 21:06:27 AnMaster: My attempt to type an umlaut. And didn't compose. 21:06:52 pikhq, also you don't need to compose, it has it's own letter in unicode 21:06:58 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 AnMaster: The compose *key*. 21:07:09 Ilari: sure 21:07:20 pikhq, oh 21:07:30 pikhq, try: ö 21:07:32 that's obvious really, you can just take all its integer multiples or something 21:07:35 Type it and an appropriate sequence and it generates Unicode. 21:07:36 any sane keyboard layout has it 21:07:37 ;P 21:07:45 if one of them was an algebraic number, then the original would've been too 21:07:48 AnMaster: US-QWERTY doesn't. 21:07:56 pikhq, I know what compose is, I have it on my menu key 21:08:00 pikhq, I said sane 21:08:05 you don't even have altgr... 21:08:14 I've got compose on the Win key. 21:08:26 pikhq, don't mess with my super! 21:08:33 AnMaster: UNIX can treat the right AltGr just fine. 21:08:41 pikhq, well yes 21:08:41 Erm. Right Alt as AltGR. 21:09:23 interesting btw, tell me if you find a compose for ö 21:09:35 ah found it 21:09:37 "o 21:09:41 pikhq, just reverse the order of them 21:09:43 and it works 21:09:48 as in o" 21:10:05 AnMaster: I just didn't realise that my compose key doesn't work at all. :P 21:10:16 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 pikhq, oh? well then it isn't mapped there any more I guess ;P 21:10:30 I guess. 21:10:58 i do like the idea of "infinite sum operator" 21:11:12 maybe you could just have the "limit" keyword 21:11:18 Ilari, sounds like a CAS? 21:11:52 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 Ilari: you are joking right? 21:12:20 Ilari, Taylor series? 21:12:29 infinite sum operator? 21:12:39 I don't beleive we've met 21:13:07 also obviously an infinite sum operator can compute also the algebraic numbers, you don't need the polynomial root operator 21:13:10 well, it makes perfect sense. It is just that it would be impossible to run any program in it I think 21:13:24 also does it take an infinite amount of rationals and sum them or what? 21:13:26 e = infinite_sum(1/n!,n=0...), pi = sqrt(6 * infinite_sum(1/n^2,n=1...)) 21:13:39 pi = sqrt(2) 21:13:43 Ilari: so it takes as input what exactly? 21:14:07 I wished this was all obvious to me 21:14:09 oklopol: One-argument function and lower bound. 21:14:16 one argument? 21:14:21 seems useful 21:14:21 and what's that argument 21:14:28 -!- scarf has changed nick to ais523. 21:14:36 an infinite set? 21:14:37 oklopol: lower bound, lower bound + 1, ... 21:14:50 Ilari, just use Σ and put a ∞ on top 21:14:58 what 21:15:05 idgi 21:15:09 If you take more sophisticated operations as primitives, you can consider more sophisticated sets computable. Surprise! :) 21:15:47 But one never reaches reals... 21:15:48 Now I think we have to argue about what operations are "obviously" the most primitive. 21:15:54 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 so 21:17:10 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 well, or an infinite set anyway 21:18:04 oklopol: Lower bound is 0 there. 21:18:31 lower bound for e? 21:18:37 e < 2 21:18:58 then you have lower bound + 1, ..., so... you'll have 1 in there, then 2, 3, ...? 21:19:13 0, 1, 2, 3, 4, 5, 6, 7, 8... 21:19:29 and where exactly, i don't think you're being very clear 21:19:57 ohhhhh 21:19:58 while (true) n := n + 1 ??? 21:20:02 okay so 21:20:24 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 ahhhhh 21:20:53 "Ilari: oklopol: One-argument function and lower bound." <<< totally misinterpreted this, sorry 21:21:28 so, basically you just give it an infinite set of rationals, and it returns the corresponding real 21:21:45 but obviously you still get exactly the computable reals, because you have to express the set somehow 21:21:52 in your case with a function 21:24:22 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 Statistics fun: Generate random numbers [0,1). Then map them by x -> 1/(1-x)². Calculate approximate expectation value. Heh, heh... 21:39:31 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 So! 21:40:47 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 Ilari the expected value is divergent? 21:41:13 I'm just guessing 21:41:16 But I'm not sure. 21:42:41 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 cpressey: haven't been paying attention 21:43:00 summary? 21:43:47 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 okay 21:43:58 I don't know statistics :P 21:44:08 whichs sucks because I went to classes for it.. 21:44:29 MissPiggy: Some distributions are extremely ill-behaved. 21:45:06 cpressey: I smell a HQ9+ dialect 21:45:22 cpressey: yes, I think 21:49:27 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 hmm, rather than program + input, like TCness requires 21:50:14 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 cpressey: I'm not sure that there is a name 21:51:30 although it's an interesting property 21:54:38 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 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 Indeed :) 21:56:11 we can put bounds on "definitely TC" and "definitely not TC", but there's a grey area 21:56:50 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 yay 21:57:35 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 yep 21:57:51 "property 2" is a terrible name though 21:58:24 it has a kind-of ring to it 21:58:31 "Where do you live?" "Compound 3, property 2." 22:07:59 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 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 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 the cardinality of the set of algebraic numbers is still aleph_0, if that's what you mean 23:20:15 there are only a countable number of polynomials, and a finite number of roots of each 23:20:24 he said "all the roots" though 23:20:26 *polynomials over the rationals 23:20:31 that's a lot of roots! 23:20:52 um the algebraic numbers _are_ all the roots of rational polynomials 23:21:00 essentially by definition 23:26:09 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 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 basically both would have to do with not having to translate IO 23:28:07 (i don't recall those terms were official though, we may have just made them up on the spot) 23:29:10 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 oerjan: I think you're talking about something largely different. 23:29:37 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 Alphabet doesn't enter into this problem at all that I can tell. 23:30:14 cpressey: um in that case i don't know what you mean 23:30:59 or maybe you mean that the program and input must be translated _separately_? 23:31:11 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 remember, TMs take input on their tape, in their alphabet 23:31:19 oerjan: Is L Turing-complete? 23:31:52 you can write a computable reduction from any TM with input to an L program with input. 23:32:10 but scratch "input" from your statement, and you can't 23:32:34 but there are TC concepts with no input at all 23:32:52 you have to include input in the whole, otherwise TC makes no sense 23:33:07 e.g. a lambda calculus computation has no input 23:33:19 it's just a reduction of a term 23:33:54 Then, is it a function? What is its domain? 23:34:10 um what is a function? 23:34:22 A mapping from one set to another? 23:34:39 er ambiguous question 23:34:51 *um what are you asking whether is a function 23:34:54 Sorry. 23:35:01 Is your lambda term a function? 23:35:30 a lambda term is a string, at least that's one way of modeling them 23:35:46 cpressey: A "lambda term" is one way of *defining* a function. 23:36:00 That is, defining what "function" means. 23:36:22 pikhq: OK. What is the domain of the function defined by a lambda term? 23:36:29 pikhq: i think that confuses things even more 23:36:33 cpressey: ignore pikhq 23:36:38 Okay, then. 23:36:57 cpressey: Set of functions to set of functions? :P 23:37:00 Anyways. 23:37:05 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 Carry on, Oerjan. 23:37:54 a lambda term can be reduced using the alpha, beta, and if you want eta reductions 23:38:21 then you can ask whether this reduction can ever reach a given term, such as \x y -> x 23:38:36 (a common implementation of a boolean value) 23:39:08 One sec. 23:39:23 I just realized you never gave me a direct answer. Is L Turing-complete? 23:39:33 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 cpressey: i think so 23:41:04 For the record, I'm leaning towards: I don't think it is. 23:41:58 Now I'm all confused about lambda terms, and I don't know where to begin explaining why, though. 23:42:49 (i've been using haskell notation for the lambda terms btw) 23:43:35 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 i didn't say a single lambda term was TC 23:44:41 Well, you said "but there are TC concepts with no input at all" -- what should I make of that? 23:45:06 cpressey: there are 23:45:13 you have a program that runs all turing machines in parallel 23:45:17 and report when each one halts 23:45:22 that's a UTM even without input 23:45:26 *and reports 23:45:38 O_o 23:46:35 cpressey: i was just presenting LC as an example of a TC concept without input 23:46:53 or rather, without input distinct from the program 23:48:08 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 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 cpressey: ah but L takes an input: a program + that program's input 23:49:11 oerjan: Yes. But L *requires* certain inputs to do certain things. Lambda terms, TMs, etc don't. 23:49:37 A TM can overwrite all of the input given to it with "hardcoded" stuff of its own choosing. L can't. 23:49:55 I mean, L programs can't. 23:49:58 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 There's only one, and it can't. 23:51:33 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 cpressey: oh obviously RE-complete has a good definition. it's just that isn't a decent definition for turing-completeness 23:52:30 'k, I'm officially completely lost. 23:53:36 oklopol: Why not? 23:54:42 oerjan: What does the "that" in "that's just because..." refer to? 23:55:26 cpressey: that TMs can overwrite things - this is irrelevant to what they can _compute_ 23:56:05 that's just mechanics. 23:56:09 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 well sure but a TM that ignores its input is trivial, computationally 23:57:21 the computational content of a TM is its function from input tapes to final state, and possibly output tape 23:57:49 cpressey: because some people want more complex starting patterns than finite strings 23:58:00 i guess no other reason 23:58:09 for recursion theoretical purposes 23:58:39 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 IO stuff is obviously another issue, but we can just ignore that completely i guess 23:59:00 or say it's part of the program 23:59:02 or something 2010-02-10: 00:00:33 oerjan: If a TM that ignores its input is "computationally trivial", are all lambda terms "computationally trivial" as well? 00:01:04 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 oerjan: Turing-equivalent with a Turing machine? 00:01:48 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 oerjan: The Wikipedia page on Turing degrees is a bit better. 00:02:19 (P and Q are said to be Turing-equivalent if one can simulate P with Q and Q with P.) 00:02:56 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 it is not a _mathematical_ definition 00:03:16 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 oerjan: Clearly one can simply consider input and output as two one-way tapes. Help at all? 00:04:40 s/map/find a TM which maps/ (Turing-reduction) 00:04:43 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 e.g. a graph to a boolean expression 00:07:01 (for hamiltonian circuit -> SAT, e.g.) 00:07:11 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 Anyway -- for the sake of argument say L is Turing-complete 00:07:43 Then the original question you answered is put into context 00:07:46 cpressey: and the RE theory simplifies everything to the bone by only using sets of _integers_ 00:08:03 oerjan: 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 oerjan: Again, I don't care too much about encoding -- unless you think there's something critical about it 00:09:46 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 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 cpressey: ah i just remembered. look at the wiki's Narcissist page. 00:10:55 what does meaningfully different mean? 00:11:03 it's a notion dual to quine, with input instead 00:11:26 oerjan: accepts only itself? 00:11:32 oklopol: Well, different beyond simply renaming variable names or something trivial like that. Not a very well defined condition, I agree. 00:12:00 yeah still just a matter of cardinalities, in mathematical terms 00:12:26 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 oerjan: Hm. 00:12:59 (guaranteed existence from fundamental concepts, that is) 00:13:02 -!- madbr has joined. 00:13:20 oerjan: I have no idea right now. 00:13:44 this is too complicated, let's talk about flowers 00:13:54 oh wait i know even less about those 00:14:16 my favourite is Cauliflower. 00:14:57 if you flow, are you a flower? 00:15:06 lament: did you know that is the same species as brussels sprouts? 00:15:12 * oerjan ducks 00:15:35 they are both called "kaali" in finnish 00:15:36 did you know that ducks were the same species as geese? 00:16:06 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 yeah. 00:18:05 yeah, it sounds likely. 00:18:13 not that i've thought much about it, it was just a spur of the moment idea 00:18:24 Brain... melting... 00:18:57 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 Right. 00:20:02 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 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 but of course this if you are in a language which has both sensible input and output 00:22:53 s/instead of a/inside of the/ 00:23:39 Yeah. 00:24:28 * oerjan rereads the article - oh it was your idea 00:26:00 I see there's something called a "selfinterp" on Madore's page, but it looks to be a slightly different concept. 00:27:55 Anyway, I have to be off, with head spinning. 00:28:00 link? 00:28:10 http://www.madore.org/~david/computers/quine.html 00:28:18 ah. 00:28:35 http://www.madore.org/~david/computers/quine.html#sec_selfint 00:29:54 ugggh 00:30:01 :) 00:30:04 Later, folks. 00:30:07 bye 00:30:12 -!- cpressey has left (?). 00:38:58 so who's good at math 00:39:02 i've a math question 00:39:10 what sort of math 00:39:13 silly math 00:39:36 suppose you have a bunch of opponents 00:39:47 one of them has probability P of winning against a random other opponent 00:39:51 another one has probability Q 00:40:03 make a guess about how they would do against each other! 00:40:17 is that like untransitive dice? 00:40:31 sure 00:40:56 it makes sense that if P == Q, then the guess ought to be 0.5 00:41:05 (since we have no other information) 00:41:15 and if P > Q, then the guess should be > 0.5 00:41:26 and if P == 1 then the guess should of course be 1 00:41:39 and if P and Q are both 1 then we're kinda screwed 00:41:44 (but that cannot happen) 00:42:42 i would bet on the one that has a bigger probability for winning against a random opponent. 00:42:58 hmmm 00:43:11 oklopol: right, me too 00:43:17 so the question is that there's say a set of people {P}u{Q}uEveryoneElse, 00:43:21 but can you quantify your guess, other than just 1 or 0? 00:43:46 and there's the probabilities for P winning against {Q}uEveryoneElse, (and similiar for Q) 00:43:50 if P is 0 or if Q is 1, the guess is 0 00:43:54 oh wait this is a famous annoying problem, isn't it 00:43:56 if P is 1 or Q is 0, the guess is 1 00:44:08 if P == Q, the guess is 0.5 00:44:14 * oerjan just got this deja vu feeling 00:44:22 what if P is like 1/4 and Q is like 3/4 ? 00:44:37 oerjan: really? I'd like to know 00:44:41 lament well I don't think there is an answer ? 00:44:54 MissPiggy: there isn't an answer, but you can definitely make a guess! 00:44:58 maybe it's just a slight resemblance. i cannot remember what it was anyhow. 00:45:10 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 no, probabilities can't be calculated. 00:45:22 that's why i keep saying guess. 00:45:50 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 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 indeed, you could have a bunch of people playing rock/paper/scissors somehow always choosing the same thing 00:46:26 Best guess estimate: P / (P + Q) for that with prob P, Q / (P + Q) for that with prob Q. 00:46:42 and still have just about any set of probabilities for the group 00:46:57 (er, for two members of the group) 00:47:29 probability is really confusing 00:47:32 Ilari: hm, maybe that's it 00:47:50 but doesn't look right 00:47:56 e.g 00:47:57 at least it adds to 1 :D 00:48:01 if P = 0.2, Q = 0.8 00:48:12 then P/(P+Q) is 0.2 00:48:30 but you'd expect it to be less 00:49:09 i guess one way to approach this is to assume that probabilities actually are transitive. 00:49:18 yeah but that's not a true 00:49:47 but i don't even know how to assume that :( 00:50:20 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 hm the average of all probabilities has to be 0.5 i think 00:50:36 then why wouldn't the probability be well-defined? 00:51:40 i mean you can clearly feel, using your heart, that the limit exists 00:52:13 maybe it makes sense to model it like this: 00:52:14 oklopol: the probability could depend greatly on the game played 00:52:20 our 'random opponent' is the number 1 00:52:46 say, each player's favorite strategy could have really complicated behavior when paired against others 00:52:49 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 oerjan: but if we assume the orderings are random 00:53:13 (so that x = 1/p) 00:53:38 then the guess is that a random number from (0,1/p) is greather than the one from (0,1/q) 00:53:47 *greater 00:53:51 oklopol: the thing is, for a start, two players' chance of winning against each other could be nonlinear in some "skill" 00:53:54 i think that makes sense 00:54:36 what's the point anyway, if yo uhave a probability doesn't even tell you what's going to happen 00:54:46 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 MissPiggy: it's a best guess. It's a prior. 00:54:58 oerjan: i assume complete nonlinearity, i assume that for all pairs, it's completely random who wins. 00:55:05 it's a prior? 00:55:06 And if there is such skill, one would have to model it... 00:55:12 I thought it came from priors 00:55:40 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 i think he meant the probability is random for each pair 00:56:05 what? i'm assuming a finite universe 00:56:09 n players 00:56:21 oh wait you are saying p and q are the actual number of games won 00:56:26 sure 00:56:37 oklopol: ok you are interpreting p and q completely different from me then 00:56:39 the amount of players they win out of the number of all players 00:56:46 um P and Q 00:56:53 i see 00:56:54 -!- FireFly has quit (Quit: Leaving). 00:57:02 i prefer finite things 00:57:04 it's a game of chance 00:57:08 take two players 00:57:13 it's not known who wins 00:57:23 but the probability of one of them winning is known 00:57:40 if you take one player and the probability of him winning against a randomly chosen opponent - that's p 00:58:27 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 yeah 00:58:51 and P for a player is simply the average of the chances of winning against each of the others 00:58:51 i see 00:59:11 is that actually different from mine? 00:59:28 hmm 00:59:29 yes 00:59:36 or... 00:59:37 i agree with oerjan. 00:59:40 " i assume that for all 00:59:42 pairs, it's completely random who wins" 00:59:42 -!- MissPiggy has quit (Ping timeout: 256 seconds). 00:59:53 i interpreted that as 0.5 for all pairs 01:00:04 yeah, but once you know they win pn of the matches 01:00:18 couldn't you just think of it as them winning with prob p 01:00:24 but that means there is no underlying skill difference 01:00:44 and so any P and Q has no predictive power 01:01:54 there has to be an underlying probability varying between pairs if there is to be any predictive estimate 01:02:09 i don't see a fundamental difference, but if there is one, obviously yours is better 01:02:10 of course the underlying function is unknown, hm 01:02:10 er 01:02:15 of course p and q have predictive power 01:02:58 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 and so on 01:03:22 actually my way is too simple 01:04:04 * Sgeo_ mindboggles at FC++ 01:05:59 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 oerjan: of course p and q have predictive power 01:06:06 if you want to bet on who wins 01:06:13 and you know p and q 01:06:19 you should bet on whichever's larger 01:06:24 on average, you will be ahead 01:06:29 well yeah 01:07:07 lament: i was deducing from oklopol's assumption that all pairs were random (i.e. 0.5) 01:07:28 i think by "random" he meant random values for probabilities 01:07:28 i.e. the actual player pairs 01:07:39 hm 01:07:55 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 ah 01:08:21 they are not random in a given game 01:08:32 it's not _completely_ predefined, it's still a probability for each pair 01:08:33 all the probabilities are 1 or 0 there 01:08:45 no, in mine, you have probability 1 or 0 for each pair. 01:08:46 they don't necessarily win every time 01:08:48 ok 01:09:47 hm every actual probability distribution is a linear combination of yours... 01:10:27 probably that won't help any 01:10:42 nothing helps, someone start a simulation. 01:11:37 i like how you guys are still talking about this 01:11:45 * oerjan is stopping now 01:11:57 i made my guess 20 min ago, i think it's correct 01:12:14 though i'm not even sure how to quantify correct yet 01:12:23 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 hehe 01:13:22 C doesn't impose arbitrary limits on the filesystem 01:13:46 oh dear 01:14:49 by the way, numerically, my guess is P/2Q 01:15:05 that kinda seems wrong :) 01:15:07 that can be over 1 01:15:10 can't it 01:15:17 sure, it can 01:15:21 it's not a very good guess 01:15:36 ok i need to fix this 01:15:57 * lament sucks at probs 01:16:18 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 C isn't a programming language; it's a computer processor control language. You use it to control a computer processor. 01:46:49 i profess to process 02:03:13 Given C# knowledge, how easy/difficult will it be to tutor someone in Java? 02:03:50 Sgeo_: not too hard; learn the syntax differences, and the standard library 02:03:57 not all of it, but the bits you want to teach 02:04:12 there isn't much of an attitude difference, except that java sometimes takes correctness over the top 02:04:27 Well, presumably this person is taking a class, so they'd have notes.. 02:04:46 Sgeo_: teaching Java's my day job, btw 02:04:46 Ultimately, your benefit will be from knowing *programming*, not from knowing Java specifically. 02:04:55 pikhq: agreed 02:05:04 although knowing the OO attitude helps a lot too for Java 02:05:14 After the 10 hours of Java tutoring is over, I plan on forgetting everything again 02:05:36 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 (going from imperative-land to Lisp or Haskell, for instance) 02:06:07 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 http://filebin.ca/hvmcpf/candyfloss.mp4 Enjoy some MST3K 04:09:32 -!- coppro has joined. 04:10:12 I love me some illegal downloads! 04:10:59 me too 04:11:14 As illegal downloads go, that's not very illegal, it's just a short clip :P 04:13:14 JUST A SHORT PRISON STAY, THEN 04:16:55 Gregor: Just as illegal. 04:17:19 Oh stop complaining and watch the fekking clip :P 04:17:29 I did. 04:17:33 They are agents of Satan! 04:37:20 i have terabytes of illegal downloads 04:38:10 how terable 04:38:36 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 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 Sgeo_: somewhat true 04:40:48 If by "somewhat" 04:40:51 You mean "not" 04:43:09 coppro: "I don't, but you may want to try wxHaskell" and "Normally? It's just natural, pretty much always." 04:43:32 bsmntbombdood: I just like commenting that it's illegal. 04:43:37 s/wouldn't/less likely to/ 04:43:39 ok, thanks 04:43:47 Just to note the ridiculousness of it being illegal. 04:44:12 I just need to watch that I don't just create and discard an IO object, right? 04:44:32 coppro: ... 04:44:38 :P 04:44:55 Why are you using unsafePerformIO, and can you make it stop? 04:44:59 :P 04:47:13 I didn't know what that is. Now I do. Now I feel dirty. 04:49:21 That's the appropriate reaction. 04:53:34 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 oerjan: f x y = x 04:54:51 although it's not impossible... 04:54:52 f 1 getLine 04:55:04 yeah but why would you do that? 04:55:21 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 yeah 04:55:39 f = const btw 04:57:29 -!- MizardX has quit (Ping timeout: 240 seconds). 04:57:47 coppro: Yeah, that does absolutely nothing, and does it well. 04:58:20 why is it called const? 04:58:27 constant function 05:00:21 I dun get it :( 05:00:45 a constant function is a function that takes the same value at all points 05:00:54 And const creates such a function. 05:00:58 so const 1, say, is a constant function 05:00:58 ah 05:01:01 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.). 05:01:19 Also, the typical non-Haskell name for \x y -> x is "K". 05:01:53 K combinator 05:02:10 Well of course it's a combinator. 05:02:11 :P 05:08:17 xkcd :D 05:09:17 :D 05:19:48 -!- Asztal has quit (Ping timeout: 256 seconds). 05:21:57 -!- Asztal has joined. 05:24:56 oerjan, I don't quite get it 05:25:43 http://en.wikipedia.org/wiki/Two-Face 05:26:04 ty 05:28:19 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 well neither do i 05:30:42 * Sgeo_ reads a wikipedia article 05:30:44 And nearly vomits 05:30:56 ? 05:31:34 Let's just say that the character [in Silence of the Lambs] is not a nice person 05:31:39 http://en.wikipedia.org/wiki/Jame_Gumb 05:32:26 ic (or rather i'll try not to) 05:40:57 * oerjan finds randall munroe's bug reports - unusual 05:41:04 (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 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 yay!! 15:37:28 I tend to call things mu-recursive instead of turing complete, because I'm usually talking about functions 15:39:47 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 (a) Encoding (b) Input composition (c) Halting (d) Initial tape configuration 15:41:19 -!- FireFly has joined. 15:44:01 tell me about (c)? 15:44:28 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 (aaway elsewherr 15:45:21 Graa. 15:45:25 I cannot type. 15:45:58 ais has caused holy wars over (d) :P 15:48:10 -!- oerjan has joined. 15:49:16 hehe 15:54:38 -!- ineiros has joined. 15:54:42 -!- ineiros has quit (Client Quit). 15:54:57 -!- ineiros has joined. 16:01:20 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 s/TC/TM/ 16:01:46 turing machines halt ?? 16:01:56 MissPiggy: Traditionally, yes. It's how they decide things! 16:01:57 Yes, Turing machines can halt. 16:02:22 Cellular automata don't, but can be said to "halt" when they come to a stable position. 16:03:24 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 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 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 yeah inputing encoding for CAs is usually O(n) or worse too 16:04:16 Gregor: Right, equivalently, the "halted?" predicate is trivial for TMs. 16:04:23 Yup 16:04:47 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 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 Gregor: No, I'm taking issue with certain mathematician's claims that their system is "simpler" here :) 16:06:04 Ahhhhhhhhhhhhhhhhhhhhhhh 16:06:30 aha 16:06:31 And trying, idly, to formalize all this machinery within the Wonderful World of TC 16:06:33 "Certain mathematicians" who shall remain nameless but obvious :P 16:06:39 so in summary: simpler shmimpler 16:07:12 locally nameless :D 16:07:36 para-nameless 16:08:23 -!- MigoMipo has joined. 16:09:40 And for the record, yesterday's exciting language L was raising the question about (b). 16:10:16 L was a real language?? 16:10:22 I thuoght it was arbitrary 16:10:34 It was a language for the purpose of discussion. 16:10:58 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 http://en.wikipedia.org/wiki/L_programming_language 16:11:13 -!- kar8nga has joined. 16:11:42 (my) L would be a good example of a pathological example of a language 16:11:52 what is your L? 16:11:57 sorry but I missed it yesterday 16:12:21 -!- BeholdMyGlory has joined. 16:12:33 A language limited to implementing a Kibble interpreter. 16:12:35 L is a language in which all programs are illegal except one: an interpreter for <>. 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 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 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 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 Too bad wget doesn't have an --ignore-robots.txt option :P 16:16:41 -!- zeotrope has quit (Quit: Lost terminal). 16:16:44 Gregor: Grab the source and add it. ;) 16:18:57 I can't mirror the logs :( 16:19:08 :( 16:19:12 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 yrh 16:46:05 -!- cheater has quit (Read error: Connection reset by peer). 16:46:33 -!- cheater has joined. 16:46:37 Gregor: If filenames are predictable, call wget in loop? 16:47:22 Ilari: Bleh :P 16:49:28 Ilari: Dates are pretty predictable. ;) 16:55:43 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 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 But then, how one proves lower bound for intermediate data generated? 17:07:13 cpressey, did you reach any conclusion about the issue with L? 17:07:50 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 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 s/or/For/ 17:10:06 cpressey, but not all TC languages have input separate from the program itselfd 17:10:08 itself* 17:10:15 for example, that one ais proved 17:10:31 AnMaster: depend on how you define TC :) 17:10:35 won some price from wolfram for it 17:10:38 forgot what it was called 17:10:59 ah yes: 17:11:04 http://www.wolframscience.com/prizes/tm23/ 17:11:38 AnMaster: I could say such languages are not Turing complete, because their programs don't define functions. 17:11:51 I'm not sure I *would*, but I *could* :) 17:11:52 cpressey, but neither do UTMs! 17:11:53 Now fetching logs! 17:11:56 Muahahahaha 17:12:08 AnMaster: ? a UTM defines a function 17:12:13 hm 17:12:30 cpressey, depends on what exactly you mean by a function here 17:12:37 cpressey, also, wasn't GOL proved TC? 17:12:45 AnMaster: maps some set of inputs to some set of outputs 17:12:54 cpressey, well, what about game of life 17:13:00 it is well established to be tc 17:13:24 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 cpressey, then what exactly do we prove when when implement brainfuck or whatever in a given language 17:14:16 (bf with infinite tape of course) 17:14:25 Maybe I'll stick the logs in hg, if it's not too big. 17:14:28 AnMaster: I don't know anymore :) We prove that brainfuck can be implemented in it, at least... 17:14:30 Which it will be :P 17:14:47 cpressey, and a host of other languages, if those can be implemented in brainfuck 17:15:37 like: a bignum-space befunge98 is able to implement a brainfuck interpreter with infinite tape 17:15:47 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 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 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 hehe 17:17:05 * Gregor reappears mid-conversation. 17:17:08 AnMaster: right, or TC needs to be "split up" into a bunch of different properties (some of which imply others) 17:17:16 Is the problem with L's reduction that it results in a huge time complexity? 17:17:23 Gregor, what? 17:17:43 Gregor, L is scheme but with restrictions added so it can *only* implement an interpreter for another tc language 17:17:43 Gregor: No, no complexity or encoding issues that I'm aware of. 17:17:47 a specific one 17:17:55 Gregor: It's an input issue. 17:18:00 Ah 17:18:01 Gregor, thus, is L itself TC? 17:19:18 I should maybe put this all on the wiki at some point. 17:20:57 cpressey, might be a good idea 17:21:17 anyway, formalising TC might be stuff for a thesis 17:22:05 AnMaster: Sure, but what advisor in their right mind would let their student work on it? :) 17:23:31 cpressey, none 17:28:22 -!- cal153 has joined. 17:38:10 -!- kar8nga has quit (Remote host closed the connection). 17:43:07 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 But they told me that these sorts of counting proofs don't work because they don't relativize. 17:47:17 Don't mind me, just going slightly nuts with boredom on my current "real" task. 17:49:35 NP=NP? 17:49:39 cpressey, trying to prove P!=NP? 17:49:47 lament: That's what you think! :) 17:50:00 AnMaster: Not seriously. 17:50:09 I didn't expect so 17:51:26 cpressey, while you are at it, please prove or disprove the Riemann hypothesis 17:52:06 Done. 17:52:21 sorry, i'm not cpressey, but i won't show my proof so he has a chance at it, too 17:54:48 XD 18:18:00 -!- kar8nga has joined. 18:38:34 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 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 AnMaster: Nothing, really. 18:57:35 -!- MigoMipo has quit (Quit: co'o rodo). 18:58:06 As an alternative, I could have said "Hm, this Python code shows you can program Perl in any language" 19:04:12 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 cpressey, is that perl or python criticism? 19:13:53 AnMaster: Python criticism, I guess. 19:14:03 cpressey, what specific python thing? 19:14:07 Or criticism about how it's being used. 19:15:31 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 cpressey, what about that __slots__ thing? 19:16:12 of course *that* is very ad-hoc 19:16:38 I know of it's existence, but I've never used it, or even seen it used, yet. 19:16:47 cpressey, I have seen it used, and I have used it 19:17:42 cpressey, on the other hand I have both seen __attribute((regparms)) (or whatever the spelling was, maybe singular?), and used it 19:18:30 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 (average over 30 runs each, first run for each removed for caching handling) 19:19:21 that was on mycology, forgot to mention that 19:19:42 and it was run on a sempron 3300+ (at 2 GHz), with 1.5 GB RAM 19:20:00 it goes faster on my thinkpad (which has core 2 duo at 2.66 GHz) 19:24:46 Bleh, the .hg directory for the logs is 37MB. 19:24:58 So, I won't be providing a hg-able #esoteric log :P 19:25:38 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 lawl, did whoever join as sexygirl153 on 2010-01-20 do that after reading the logs from 2004-01-09? :P 19:30:20 that's just my alt name 19:31:56 But was it on 2004-01-09, before you ever came here? :P 19:32:42 yup 19:33:17 i'm still the same person 19:33:30 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 2004, so long ago 19:33:48 ah, to be young again 19:33:52 lol 19:33:56 was on the mailing list long before that :) 19:34:23 -!- tombom_ has joined. 19:34:43 it's too bad the mailing list died 19:36:15 yeah :( 19:36:46 oh man 19:37:16 msysgit (Git for Windows) comes with about half of unix 19:37:28 Presumably msys :P 19:38:35 -!- tombom has quit (Ping timeout: 276 seconds). 19:41:12 what Gregor said yeah 19:44:17 I've used Cygwin, but I'd never heard of msys before 19:44:37 if msys is half of unix, cygwin is an entire unix 19:45:27 msysgit also has a huge bug in it where 'git status' doesn't work properly 19:45:42 it reports files as being different when their timestamps are different 19:45:53 lament: set core.filemode to false? 19:46:18 msysgit can't set the executable bit on files, so it reads them back and sees "oh, different mode!" 19:46:38 why does it need the executable bit? 19:46:49 but you can set the flag to make it ignore file mode differences 19:47:32 olsner: Cygwin essentially is an entire UNIX, y'know. 19:47:34 i don't think this is about file mode 19:47:39 A very odd one, but hey. 19:47:47 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 pikhq: yah, that's what I said :P 19:51:27 The logs in the topic don't exactly start from when the channel does. 19:52:06 My #esoteric logs start at 2002-12-14, for example. 19:53:46 yeah at some point whatshisname came in and offered to log us 19:53:51 whatshisname 19:54:04 if i actually mention his name, he'll probably get notified about it 19:54:09 but i don't remember it anyway 19:54:14 He who shall not be named. 19:54:19 fizzie: I don't suppose you can send me some pre-2004 logs? ^^ 19:54:43 I don't see why not, I gave those to ehird too. 19:54:51 Let's see if I have them somewhere downloadable already. 19:55:12 his name isn't bef, what is it? 19:55:14 cnf? 19:55:42 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 There's some 2003 logs from http://tunes.org/~nef/logs/old/ 19:58:44 lament: [2003-01-18 02:49:02] < hcf> lament: would you like clog to log #esoteric? 19:59:48 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 Oh, looka there, didn't know those were there. 20:01:10 The link's on top of the new-logs dir. 20:01:28 Boy, I sure do ignore stuff :P 20:02:11 oh, hcf 20:02:18 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 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 yeah at some point whatshisname came in and offered to log us <-- the one behind tunes? 20:03:02 it would be pretty odd if i weren't on the channel 20:03:04 AnMaster: yes 20:03:13 well, i dunno what their relationship is 20:03:19 lament: I don't suppose you have the logs from the beginning? :P 20:03:24 no 20:03:35 i think i even used mIRC then :) 20:03:39 D-8 20:03:53 and didn't own a computer 20:04:20 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 especially for the older logs 20:04:53 AnMaster: oh, right... I meant what pikhq said 20:04:58 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 even 20:05:37 but forgot to point out that cygwin was a study in unix teratology 20:05:43 also 20:05:51 that can only be correct for 0 days 20:06:06 depends on rounding 20:06:07 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 MissPiggy, what was the change? 20:08:05 sorting 20:08:07 ah 20:08:15 in reverse psychological order? 20:08:20 who is alise btw? 20:08:23 Now pushing the #esoteric logs to a publicly-accessible repo. 20:08:27 AnMaster: alise = ehird 20:08:31 ah 20:08:51 why different ones for that alias and ehird 20:09:04 https://codu.org/projects/esotericlogs/hg/ will have the logs eventually. 20:09:05 It's always so confusing with multiple-named people; it took me so long to even grok the scarf-ais identity. 20:09:07 how many days since last dbc fractal sighting 20:09:39 fizzie, same 20:09:40 how many since last aardappel sighting? 20:09:53 fizzie, at least some of them you know change nick all the time 20:10:11 impomatic wasn't it? 20:10:16 whatever his current nick is 20:10:17 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 fizzie, dbc fractal? 20:11:12 AnMaster: See http://tunes.org/~nef/logs/esoteric/05.03.04 20:11:47 heh 20:12:09 I'm missing the whole of January-March 2008, though; I got disconnected for some reason and forgot to rejoin. 20:12:11 Gregor, btw, ever heard about "Heitor Villa-Lobos"? Composer. Some very good music (IMO). 20:12:19 Also April 2006. 20:12:38 Might've been more recent dbc fractals during those times. 20:13:18 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 I've heard of Villa-Lobos, yes. 20:16:38 Gregor, okay 20:17:47 as usual the cds are missing from musicbrainz, meaning I get no track titles in vlc 20:27:50 That's my fault. I stole them. (I like shiny things.) 20:29:50 I just got my Google Buzz thingy, and 3 people are already following me 20:30:25 Two of whom I'm already following, despite not having chosen to do so 20:31:29 google buzz? 20:31:32 How do I hide a .. thingy? 20:31:33 what the heck is that? 20:31:43 -!- MizardX has quit (Read error: Connection reset by peer). 20:31:46 http://www.google.com/buzz 20:31:48 Sgeo_, put it under something that is large enough to cover it? 20:32:10 okay, twitter on stereoids. And in beta. 20:32:20 steroids* 20:32:38 I'm going to watch SG-1 now 20:33:05 Sgeo_, did my hint for hiding things help? 20:33:13 no 20:33:18 hg push of 37MB = no fun :P 20:33:31 Sgeo_, strange. Try putting it in the attic then? 20:33:56 Gregor, depends 20:33:58 * cpressey starts writing an Attic plugin for mercurial 20:34:00 what sort of connection? 20:34:09 cpressey, heh? 20:34:15 AnMaster: CVS joke! 20:34:21 cpressey, oh ffs 20:34:23 AnMaster: Cable, while simultaneously torrenting :P 20:34:30 I had almost successfully managed to forget cvs 20:34:32 :/ 20:34:45 I use only SCCS. 20:34:54 what one is that now again? 20:34:58 some weird one isn't it? 20:35:04 at least it isn't monotone 20:35:08 The first 20:35:29 Gregor, so: sccs -> rcs -> cvs? 20:35:39 or is that timeline way off? 20:36:14 AnMaster: 's about right. 20:36:32 Gregor, interesting. Don't you need a noun before "'s"? 20:37:06 I speak ... COLLOQUIALLY! 20:42:19 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 I wish hg {push,pull} had some kind of status reporting. 20:56:03 I should've used scp to get the first version pushed. 20:56:36 Use git 20:56:53 Gregor, like bzr does? 20:56:58 bzr shows a progress bar 20:57:01 :) 20:57:24 Deewiant, I don't remember git showing a progress bar 20:57:25 Must be nice. Now if only everything ELSE about bzr wasn't so utterly confusing as to be insufferable. 20:57:36 Neither do I :P 20:57:38 Progress bars are pointless 20:57:47 Deewiant, why? because git doesn't have them? 20:57:47 git shows the status numerically 20:57:54 Because they don't tell me anything 20:58:05 you git fanboys are even worse than mac fanboys 20:58:08 Well, showing status at all is the point. 20:58:12 What about darcs? 20:58:18 Deewiant, there is also numerical info 20:58:19 Too often the most time is spent at the last 5% of the progress bar 20:58:22 next to that progress bar 20:58:49 Gregor, anyway, just use tcpdump to check what it is doing 20:58:53 ;P 20:59:02 AnMaster: So helpful :P 20:59:17 Gregor, presumably it is tunnelled through ssl or ssh? 20:59:21 so yeah, very helpful 20:59:32 SSL, yes. 20:59:46 bzr you generally tunnel though ssh 20:59:52 Aha! 20:59:57 's done 21:00:02 as in, the bzr+ssh protocol 21:00:15 https://codu.org/projects/esotericlogs/hg/ If you hg clone this, I /will/ kill you :P 21:00:15 (that is the way you give the "url" to bzr) 21:00:47 Gregor, what about fizzie's old logs? were they merged into there? 21:00:53 He never gave 'em to me. 21:01:03 fizzie, *prod* 21:01:19 Gregor, are they merged into a common log file format or such? 21:01:29 All of these are straight off tunes.org 21:01:37 All right, I'll be nice and won't clone it 21:01:45 Gregor, we wouldn't want dupes 21:01:51 I'll just hg init and hg pull! 21:02:01 :P 21:02:12 AnMaster: If somebody wants to write a clever log merger, I'll be glad to merge logs into my repo :P 21:02:12 But I'll snatch the fetch script 21:02:18 Gregor, what is dpm() for in that shell script in there? 21:02:25 Days Per Month 21:02:25 Gregor, maybe 21:02:27 ah 21:02:37 Which I wrote stupidly :) 21:02:45 Gregor, what about leap years? 21:02:53 you are missing out on log files there 21:03:01 oh wait 21:03:02 Look at what dpm returns for February. 21:03:04 you always try 29 21:03:06 heh 21:03:53 Gregor, btw, about leap years see http://europeanhistory.about.com/library/bldyk2.htm 21:04:05 That fetch script, btw, is intended to be run straight out of cron, at least once a week. 21:04:21 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 b 21:04:48 fizzie, looks similar to xchat's format? 21:05:13 could be irssi 21:05:14 It should be the irssi default except with YYYY-MM-DD added in the timestamp. 21:05:19 AnMaster: Luckily, #esoteric didn't exist in 1712 Sweden. 21:06:09 Gregor, yeah 21:06:53 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 hah 21:07:34 fizzie, clearly it would have been about esoteric wood carving or something back then 21:07:42 or maybe iron making 21:08:04 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 hehe 21:12:16 Gee, apparently fizzie was fizzies back then. 21:12:37 Also, calamari predates time more than I'd realized. 21:12:51 The "s" suffix was just a temporary thing for the sparc box. 21:12:56 Oh, dbc is still here too, just never talks. 21:13:27 Much like mtve. 21:13:30 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 Did absolutely nothing happen from 2002-12-15 to 2003-01-03? :P 21:13:54 Hmm, those parts might be in a different log. 21:15:43 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 Isn't there a chatterbot newer than MegaHAL that's F/OSS >_> 21:17:28 fizzie, was that in #esoteric ? 21:17:30 in 1997? 21:17:38 did freenode even exist back then? 21:18:58 -!- GreaseMonkey has joined. 21:19:09 No, that was elsewhere. 21:19:17 fizzie, "optimum performance"? 21:19:24 fizzie, when was #esoteric founded? 21:19:46 -ChanServ- Registered : Jan 03 01:30:22 2003 (7 years, 5 weeks, 5 days, 19:48:54 ago) 21:20:39 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 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 Now training a megahal from #esoteric logs :P 21:30:56 (Deja vu? Yes, I have done this before) 21:32:04 megahal? 21:32:11 what abut fungot 21:32:12 MissPiggy: i knew it was a joke 21:32:19 what's so funny about it? 21:32:26 you are being replaced?? 21:32:37 No, I'm just having some giggly fun :P 21:32:54 It's choking on dbc's fractals >_< 21:37:51 ascii frctals? 21:37:52 -!- kar8nga has joined. 21:39:14 MissPiggy: See http://codu.org/projects/esotericlogs/hg/index.cgi/file/tip/03.01.21 21:41:22 very nice 21:50:49 heh, that log has a rare exarkun sighting 22:12:34 55 02:12:04 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 fizzie, ^ interesting 22:12:42 have it around still? 22:13:09 also ehird will kill you when he finds out you called forth for "obsolete" 22:13:22 and: did you ever do the cobol one? 22:14:09 I didn't do cobol; and I guess "obsolete" was not a good word choice there. 22:14:22 But yes, I think I still have the forth version. 22:14:44 It's not very elegant, though. 22:18:01 fizzie, 93 or 98? 22:18:26 93. 22:18:35 ah 22:18:44 aggh cobol 22:19:04 my first programming language was cobol 22:19:08 it was not a good choicwe 22:19:21 tombom_, my first one was AppleScript 22:19:47 then followed by delphi, then C#, then lots of other (and saner) languages, such as bash, C and what not 22:19:55 erlang and lisp too 22:20:00 (that came quite a bit later) 22:20:24 i think all these are saner than cobol 22:20:26 maybe not bash 22:20:39 ... 22:20:42 bash is quite sane 22:20:45 I like it 22:20:55 tombom_, I wrote a modular irc bot in it 22:21:00 should be connected here currently 22:21:00 why 22:21:02 as envbot 22:21:06 that's dumb 22:21:09 ... 22:21:10 why not 22:21:23 because you could have done it in a more sensible language 22:21:30 tombom_, ah yes, brainfuck 22:21:35 or intercal 22:21:37 yeah exactly 22:21:44 is there a networking brainfuck anyway 22:21:55 well befunge has networking 22:21:56 ^source 22:21:57 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 22:22:04 befunge98 that is 22:22:15 tombom_, you could hook it up to netcat, socat, gnutls-cli or similar 22:22:32 fizzie, hm, I wonder if I should add a SSL fingerprint, now that freenode supports that 22:22:39 ssl that is 22:22:46 befunge is more interesting 22:23:08 tombom_, also, then you might as well call IOCCC stupid 22:23:53 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 tombom_, btw are you new here? Or just an idler? 22:23:57 i dunno, maybe just me 22:23:59 idler 22:24:16 also, it is fun to do it 22:24:45 it is connecter as envbot as I said. Try /msg envbot -commands 22:24:47 i suppose i'm the stupid one here really 22:24:55 tombom_, well, didn't say that 22:25:14 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 tombom_, but, basically no one else have a exactly the same bot 22:25:37 I mean, eggdrop or supybot? there are loads of them 22:25:41 this is quite unique 22:25:44 also it is open source 22:25:50 so well, someone else *might* use it 22:25:51 no idea 22:25:58 not that I know at least 22:26:08 what's unique about it? 22:31:14 tombom_, compared to? 22:31:22 well, no one has exactly the same 22:31:32 oh right 22:31:58 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 and I'm not really developing on it any more 22:32:25 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 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 Like if I have: data Tree = Leaf | Branch Tree Tree 23:22:55 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 cpressey yes you can 23:23:35 oh wait 23:23:42 no there isn't 23:24:04 Drat. Oh well. 23:25:00 something like trees = return Leaf ++ Branch <$> trees <*> trees will not work either 23:25:04 because the list monad is not fair 23:25:38 nicer syntax.. (| Leaf |) ++ (| Branch trees trees |) 23:25:46 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 Is Haskell intrinsically asymptotically slower than C for two-dimensional cellular automata? 00:25:27 Intrinsically? I doubt it. 00:25:44 Typically? Likely. 00:25:54 You can do some crazy stuff with C. 00:26:27 Like use random-access mutable state :) 00:26:38 dbc, lazy data struturse are asymptotically slower than mutable ones 00:26:39 Ooh, crazy! 00:26:40 -!- SimonRC has joined. 00:26:47 dbc, good thing haskell has mutation :P 00:26:50 you can do that in haskell too you know 00:26:59 MissPiggy: And Haskell allows strict data structures. 00:27:08 I know :) 00:27:09 And mutable ones, too. 00:27:17 I am talking about a well known theorem 00:27:19 in computing 00:27:22 not haskell 00:27:36 it's so well known that I don't know it's name or who proved it.. 00:27:38 vaguely rings a bell 00:27:40 And GHC will often compile things into direct mutation. 00:27:43 can anyone help me?? 00:27:50 (when laziness doesn't change semantics, IIRC) 00:27:59 Nick what's-his-name did a proof that sounds like what you're talking about 00:28:15 Nicholas Pippenger 00:28:50 That LISP as a model of computation is slower than Turing machines 00:29:03 OK, similar, but not quite 00:29:12 he doesnt have a publications list? grrr 00:30:24 I'll see if I can find the paper. Unfortunately, gotta go now. Later. 00:30:27 -!- cpressey has left (?). 00:30:30 woah I thought this was #haskell 00:30:36 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 Nope, just a bunch of Haskellians in here. 00:30:53 :P 00:31:21 you might need to force some strictness not to get unexpected pauses between things, though 00:31:47 MissPiggy: it isn't? 00:32:00 ?? 00:32:08 isn't this is #esoteric 00:32:09 ? 00:32:39 Hahah. 00:37:17 * Sgeo_ wonders if he can rightly call himself a Haskeller 00:37:40 My Haskell-foo is somewhat weak 00:39:15 Because jix never talks anymore, I've created virtujix. 00:39:22 -!- virtujix has joined. 00:39:22 Re == re-hi == hi again. 00:39:35 virtujix: Are you a suitable replacement for jix? 00:39:36 Gregor: I need a name for i that would be just a replacement table. 00:42:18 I see nobody cares about virtujix :( 00:42:23 virtujix: It's OK, /I/ care. 00:42:23 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 lol 00:44:08 virtujix loll 00:44:14 ;_; 00:44:27 You have to put a ':' 00:44:28 e.g. 00:44:30 virtujix: loll 00:44:30 Gregor: I have a 3 liner or so with this thing. 00:44:36 virtujix: tel me a story 00:44:36 MissPiggy: Are you a new story. 00:44:41 virtujix: no 00:44:41 MissPiggy: Yes but 3gb are in a fast div by 2. 00:44:49 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 I haven't forgotten! 00:53:31 virtujix: Have any new esoteric programming projects? 00:53:32 Gregor: I did programming for the problem of using different vcs for different projects. 00:53:48 virtujix: Well, that's not particularly esoteric, but what did you come up with? 00:53:48 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 virtujix: Did you get lost there? 00:54:15 Gregor: I need to fix this! Spambots: all your base are belong to me is the link (i lost it. 00:54:30 lol 00:54:56 virtujix: What is the gcd of two particles? 00:54:57 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 http://www.reddit.com/r/programming/comments/b0hi4/can_haz_reddit_clone_in_lolcode_in_some_amount_of/c0kc0fj 01:20:43 $ du -h brain/jix/ brain/gregor/ 01:20:43 11M brain/jix/ 01:20:43 14M brain/gregor/ 01:20:47 And mine's not even done training yet! 01:21:44 virtujix: so what is your opinion about the recent revamp of TC definiton? 01:22:24 There was a recent revamp of TC definition? 01:22:54 I was _trying_ to figure out if it was a real person or not 01:23:05 but it was too sneaky, left before I started with the hard questions 01:23:12 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 It has a tendency to get wonky 01:26:31 -!- virtujix has joined. 01:26:31 Done: http://esolangs.org/wiki/brainfuck#hello_world.21. 01:26:55 Is crappy BF code common? 01:27:22 I'm thinking of writing a thing to essentially rewrite those blocks of BF code that only contain the characters <>-+ 01:27:35 it's been done many times 01:28:00 Aww 01:28:09 Oh, you were referring to virtujix? Or to me? 01:28:14 s/you were/were you/ 01:28:24 Sgeo_: To you. 01:28:33 I brought virtujix because fax wanted me to :P 01:30:31 But has it been done.. in Haskell? 01:30:38 * Sgeo_ is slightly insane 01:31:27 every slightly-optimizing brainfuck compiler does it 01:31:40 lament, what about outputting to BF code? 01:31:56 i think i've seen that 01:32:30 * Sgeo_ feels useless 01:32:35 :( 01:32:43 How many tools are there to turn BF code into PSOX-compatible BF code? 01:33:06 Does "PSOX-compatible" mean "Without outputting any \0s"? 01:33:47 Um, if you had that plus the PSOX handshake, that would work 01:34:02 I was thinking of just escaping everything, though 01:34:30 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 virtujix: Nobody seems to want to talk to you! 01:39:30 Gregor: Wildhalcyon: i talk about plangebäude and plangruppen-bezeichnungen without telling me what the hell plangebäude are? 01:39:42 virtujix, do you love me? 01:39:42 Sgeo_: Ihope: i hate you. 01:40:29 Ouch! 01:40:41 ;( 01:43:27 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 you don't need one 01:46:43 if you absolutely must, you can have two lists and shuffle elements from one to the other 01:47:16 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 Hm, I think http://www.haskell.org/haskellwiki/Zipper may be exactly what I need 01:49:44 Note: I haven't started writing any of this yet 01:50:47 data BFCmd = BFAlter Integer | BFMove Integer | BFIn | BFOut | BFLoop [BFCmd] | BFComment String 01:50:56 pikhq wrote something similar elsewhere 01:51:10 Except without the BFComment 01:51:23 And just plain BFAdd | BFSub etc 01:52:01 hmmm 01:53:06 I should use Integral instead of Integer 01:54:36 Sgeo_: It was a single IRC line, whaddya expect? 01:55:09 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 virtujix: え〜と〜……日本語を話せるか。 01:56:08 pikhq: Good timing :P 01:56:15 Gregor: Curses. 01:56:17 -!- virtugor has joined. 01:56:18 Well, for [], i still need to go with greetings, personified globular iron construct orbiting sol!\r. 01:56:26 Wow. 01:56:28 virtugor: え〜と〜……日本語を話せるか。 01:56:28 pikhq: I've converted a myvu crystal. 01:56:29 What an entrance. 01:57:06 virtugor: Tell me about pikhq. 01:57:07 Gregor: Pikhq: why are you doing on #esoteric or with you, but you also have a clue why it's fekky. 01:57:10 Sgeo_: you rarely want to redefine show 01:57:18 since it's supposed to produce valid Haskell 01:57:23 Ok 01:57:27 virtugor: Tell me about Gregor. 01:57:28 pikhq: and nobody will indulge themselves in the blood out of you. 01:57:48 Yeah, that sounds like something I'd say. 01:58:29 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 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 The process that's feeding the complete logs into a MegaHAL is only just now through 2005 ... 02:03:36 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 Not using Integer in all cases would mean that large numbers of +'s won't work 02:03:54 ty 02:05:08 -!- MissPiggy has quit (Quit: Lost terminal). 02:26:10 -!- ozwolverine has joined. 02:26:34 hey, check this nice site: http://www.ponleestiloatuvida.com/?opcion=pp&key=VUlEPTQ4NTUmbj1qbw== 02:27:27 Cool, spammers. 02:28:00 -!- ozwolverine has left (?). 02:35:06 Why was I expecting GHC's C output to be readable? 02:35:21 madness 02:35:47 hast thou not heard of ye Evil Mangler? 02:36:38 oerjan: That's before the mangler. 02:36:46 oh 02:37:00 The mangler is done on the assembly. 02:37:14 ah 02:37:15 uh 02:37:18 eh 02:37:23 Sgeo_: The Evil Mangler, BTW, removes all C stack usage. 02:37:28 * oerjan hides in the corner now 02:37:32 Among other things. 02:53:24 -!- jcp has joined. 02:54:27 Run, it's a Java-er! 02:54:40 virtugor: Run, it's a Java-er! 02:54:42 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 lol, well put, virtugor. 02:58:10 -!- virtugor has quit (Remote host closed the connection). 02:58:56 -!- virtugor has joined. 02:58:56 Fizzie: you're welcome. 02:59:01 lol 02:59:06 virtugor is now 100% more annoying. 02:59:29 As it will respond to about 1% of messages even if they don't specifically message it :P 02:59:45 Hoorah. 02:59:59 Assuming I didn't miscode it, of course! 03:00:15 time to play with SDL_TFF 03:00:17 maybe you accidentally made it 100% _less_ annoying 03:00:55 ... oops, I did miscode it :P 03:01:36 -!- virtugor has quit (Client Quit). 03:01:56 -!- virtugor has joined. 03:01:57 The only difference is whether we are engaged in a chroot, but the pattern of greetings to you personally. 03:02:24 virtugor: Now will you be nice and respond randomly and nonsensically to a totally inexplicable assortment of messages? 03:02:28 Gregor: I sort of sounds like quite the assortment of messages? 03:02:41 virtugor: Yes. Yes you are. 03:02:41 Brilliant, Virtugor. 03:02:43 I'll take that as a "yes" 03:02:44 coppro: No, from that page i would have to look at me unless they know me :p. 03:03:03 There should be a "Sorry, please try again" command for these Markov chain bots :P 03:03:07 we're doomed. DOOMED. 03:05:31 The full brain is now 100M :P 03:06:10 which incidentally is quite similar to DOOM 03:06:17 doomy dooms of doom 03:10:13 glooomy glooms of gloom :( 03:10:38 dammit i sucked myself into tvtropes with that phrase 03:14:45 http://i.imgur.com/SCRMC.jpg 03:14:49 have a sunset 03:15:17 before i click, is it a doomy one? 03:15:51 no. 03:16:36 good, good. 03:16:47 Who else needs a virtual person. 03:16:49 Oh, definitely augur. 03:17:01 did i mention the photo was taken on MARS 03:17:03 augur: Do you think you would be super, boot a uml every time i mention the photo was taken on mars. 03:18:06 no. no you didn't. 03:18:09 well now i did 03:18:33 so the red planet has blue sunsets? 03:20:15 * Sgeo_ doesn't have a virtual person 03:22:29 apparently so! 03:28:30 * Gregor continues to train his virtual augur. 03:28:46 virtual gregor, you mean 03:28:54 I have a virtual Gregor. 03:28:59 virtugor: Introduce yourself! 03:29:00 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 But can they read and write arbitrary files, if I want them to? MUAHAHA 03:33:08 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 Gregor: yes it did 03:38:05 Oh, so it did :P 03:38:16 -!- virtufive has joined. 03:38:16 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 Again, great entrance :P 03:38:55 very augurial 03:43:17 Don't let it into Sine pls 03:43:39 Sgeo_: I discovered another AW enthusiast 03:43:46 Sgeo_: is that an attempt at reverse psychology? 03:44:06 coppro, o.O who? 03:44:14 And is e a citizen? 03:44:32 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 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 Amen. 04:01:16 -!- sebbu has quit (Ping timeout: 260 seconds). 04:01:17 -!- sebbu2 has changed nick to sebbu. 04:01:45 the smoke you smell is Gregor being hit by lightning btw 04:02:06 Admittedly, some people may consider a bible-based chatbot to be offensive :P 04:02:33 you don't say 04:06:59 virtuLORD: You must let oerjan see the light! 04:07:00 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 Amen. 04:08:53 -!- doodle77 has joined. 04:11:25 I seem to have started a debate in ##C++ about what esoteric means 04:11:47 Gregor: did you feed him a copy of the Bible? 04:12:06 coppro: I /might/ have :P 04:12:20 virtuLORD: What sayest thou? 04:12:21 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 virtuLORD, who created evil? 04:12:41 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 I've got an idea 04:12:59 take the holy texts of every major religion 04:13:06 feed them into a Markov chain bot 04:13:11 and start a new religion based on the results 04:13:22 I like "thou shalt multiply strength in thy own eye?" 04:15:53 -!- Sgeo__ has joined. 04:16:08 make sure to include the necronomicon 04:16:57 And the OT documents. 04:17:03 OT documents? 04:17:04 coppro: Documents of wisdom and power of the lord. 04:17:05 It's not a religion without persecution. 04:17:14 coppro: Operating Thetan. 04:17:29 ah 04:17:32 Id est, the holy works of Scientology. 04:18:35 That response of virtuLORD was pretty much the best thing ever :P 04:18:42 yeah 04:19:10 -!- Sgeo_ has quit (Ping timeout: 240 seconds). 04:19:25 -!- Sgeo__ has changed nick to Sgeo. 04:21:26 virtuLORD: Tell me about Scientology. 04:21:27 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 That's quite the sentence. 04:23:06 virtuLORD: so you mean scientology is fine as long as you like being crucified? 04:23:08 oerjan: And i called upon me, and to captivity, and thou be afraid to be crucified. 04:23:21 virtuLORD: yeah a bit, i'd say 04:23:22 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 virtuLORD: anything on the subject of the meaning of life? 04:37:33 lament: Be ye subject therefore to simon peter. And peter remembered the word of the life of the meaning of life? 04:38:13 virtuLORD: well is it anything to do with god? 04:38:15 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 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 :( 04:40:30 Was it, "Use C++"? 04:40:35 lol 04:40:37 no, it was to use globals 04:40:50 coppro, can you please come up with a better answer? 04:41:06 use templates? 04:41:07 Sgeo: pass it as an argument? 04:41:21 coppro, aw_event_set() needs a function that takes 0 arguments 04:41:22 * oerjan doesn't actually know c++ 04:41:43 Sgeo: Oh. Then yeah, globals :( 04:42:10 There's no answer with classes or functions returning functions? Although this guy is a beginner, so 04:42:26 Plus, best not to overcomplicate this, I guess 04:42:30 Sgeo: not if it expects a callback function 04:42:36 (which, additionally, should be extern "C") 04:42:44 oerjan: Rejoice in that. 04:43:05 coppro, wait, the callback function needs to be extern "C"d? 04:43:21 Sgeo: If the library is a C library, which I assume it is 04:43:35 It is 04:43:40 It is itself extern "C"'d 04:43:46 Then yes, it needs to be extern "C"'d. 04:43:53 C++ has a different calling convention. 04:43:55 yes, then the callback must also be extern "C" 04:43:56 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 *may have 04:44:44 His callback uses a bunch of C++ stuff 04:44:56 Sgeo: That's perfectly valid. 04:45:12 extern "C" only affects the external parts of the function; they can still use C++ features inside 04:45:14 Just so long as the callback can be called from C. 04:45:21 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 oerjan: yes, that's the problem 04:45:58 coppro, want to actually help out in ##C++ ? 04:46:00 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 Sgeo: no thanks 04:46:46 What will happen if extern "C" {} isn't used? 04:46:49 oerjan: C functions are implemented using nothing more than a string of machine code that uses a set amount of stack. 04:47:00 Sgeo: Then it's undefined behavior. 04:48:21 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 days since last sighting 05:17:45 underflow now 05:27:32 sideflow 05:31:38 aroundflow 05:41:35 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 I think I've created the ugliest bash makefile generator known to man. *evil laugh* 06:46:14 -!- tombom has joined. 06:47:30 i hate makefiles 06:49:06 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 is it recursive? 06:50:28 no. single makefile for a nest of directories. 06:51:11 it doesn't generate the whole makefile per se, just the g++ -c listings 06:57:15 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 So, for when MissPiggy comes back: http://portal.acm.org/citation.cfm?id=244798 15:47:15 -!- kar8nga has joined. 15:55:30 http://languagelog.ldc.upenn.edu/nll/?p=2110 15:55:31 HAHAHA 15:55:54 cpressey: do you have actual access to that? 15:57:44 incase anyone _doesnt_ have acm access: http://wellnowwhat.net/transfers/Pure%20versus%20Impure%20Lisp%20-%20Pippenger.pdf 16:00:47 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 :) 16:01:03 i have access to ACM Portal and JSTOR 16:01:16 Project Muse, and a bunch of other places as well 16:01:20 so ask me for anything 16:02:26 http://www.last.fm/music/Alvin+Lucier/_/I+Am+Sitting+In+A+Room 16:15:09 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 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 Could be 16:45:47 most of its basic elements are frank imitations of corresponding elements of 16:45:48 the 􏱋-calculus 16:45:53 lambda-calculus 16:46:45 um it's not the first part that is vague, thank you 16:52:49 thanks 16:59:23 -!- tombom has joined. 17:02:18 -!- kar8nga has quit (Remote host closed the connection). 17:14:15 I *never* thought I would miss Perl 17:15:38 it's the perl of programming languages 17:17:18 -!- jcp has joined. 17:55:23 -!- oerjan has quit (Quit: Later). 17:59:32 MissPiggy: in cast you were wondering, cpressey found it, i hosted the non-ACM link 17:59:50 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 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 tell me about it 18:45:31 * olsner spreads some python hate around 18:46:38 MissPiggy: Was that a literal or rhetorical response? 18:46:46 no 18:46:52 *headdesk* 18:47:05 I want to know more, what do you find wrong with python culture 18:47:42 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 what is it 18:51:15 Well, I was reading the documentation for the pickle module earlier. 18:52:02 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 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 Then I noticed that lots of Python documentation has the same feel to it. 18:53:24 interesting 18:53:33 I dunno, it could be just me. 18:53:57 I don't think it is just you 18:54:23 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 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 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 Good point. 18:57:29 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 And justify that choice by saying "...to avoid confusion." 18:58:49 I think python is a trap to suck newbies away from the path of light 19:00:36 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 that is even more scary 19:04:02 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 the first idea was that when you click 'go' it just produces an interpreter 19:04:47 but there's more fun thinking about other things you could produce instead of an interpreter 19:05:15 I take it that the set of operations is (aside from whatever the special options might do) fixed? 19:05:56 Wait, "WYSIWIG"? What You See Is What I Get? :) 19:06:33 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 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 haha 19:09:16 Sgeo: I have autojoin, it just takes a while since the server has to process requests for 11 channels 19:09:23 Ah 19:09:45 All is forgiven ;( 19:09:47 ;) 19:11:33 MissPiggy: semicolons are optional, you're free to put them in 19:12:28 Lua's optional semicolons are a bit more worrisome, as there's no offside rule (indentation-based-syntax) in Lua. 19:13:09 what do you think about my ex. 19:14:42 uhhh he's okay i guess? 19:15:23 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 Or MissPiggy's ex = KermitTheFrog 19:16:10 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 I thought you didn't need that module in general 19:16:29 not sure what it is used for actually 19:16:38 AnMaster: It makes the directory a package, so that you can say dir.module 19:17:20 Ugly approach if you ask me... 19:17:44 hm 19:17:46 Oh, and it can include startup code for the modules in that dir 19:18:09 couldn't you just do that thing for any directory? 19:18:29 relative the module search path 19:18:32 if you see what i mean 19:18:52 AnMaster: Like Perl (I think) does? Sure. 19:19:09 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 cpressey, python's approach would be the same plus check "does a file __init_.py exist? 19:20:02 " 19:21:29 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 Overall, I'd much rather have module/package names independent of my filesystem layout though, at least potentially. 19:22:56 cpressey, so how would it locate packages and modules then? 19:23:24 Some kind of configuration file. It could fall back to some regular mapping if the file doesn't specify. 19:23:28 and yes, some special file could be used it you needed init stuff or that thing with import dir 19:23:56 the stupid bit is when you end up with zero length such files 19:24:18 but there is an easy way to solve that 19:24:24 just add a license boilerplate in it 19:24:27 ;) 19:24:37 :) 19:25:53 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 SOAP isn't a programming language afaik? 19:26:47 rather, some sort of RPC 19:27:08 http://72.249.21.88/nonintersecting/2006/11/15/the-s-stands-for-simple/ 19:27:09 cpressey, they would use templates to implement it? 19:29:25 AnMaster: Oh I certainly hope they would. Otherwise that beautiful template facility would just be going to waste! 19:33:05 and that link, funny, yet depressing 19:34:30 sleep :: Person -> IO () 19:34:41 isTired :: Person -> IO Bool 19:37:44 I would add "realistic" to the list of adjectives. 19:46:13 fizzie, true 19:48:38 i dont get the point of soap. 19:48:52 augur: That means you're sane. 19:48:59 well yes. 19:49:09 but like, if i need to transfer data, i'll just use JSON. 19:49:18 or if im feeling anti-JSON and roll my own 19:49:31 LISP is a nice enough literal format too. 19:49:50 easier to parse than JSON or XML too. 19:57:42 SOAP is a Wrapper without a Cause... 20:07:14 * augur wraps cpressey's cause 20:09:50 return augur :: Maybe Person 20:10:28 unsafePerformIO $ putStrLn "Soon, I'll only be able to communicate in Haskell" 20:12:42 lol. 20:27:15 -!- GreaseMonkey has joined. 20:33:26 cpressey, another thing that is wrong with python: the GIL 20:33:58 LISP is a nice enough literal format too. <-- did you mean: S-Expressions? 20:34:35 lisp is the language. When the same kind of thing is used as a data format it is s-expressions 20:34:41 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 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 But, the GIL is something that sucks about CPython, surely :) 20:48:36 In FreeBSD they used to have an equivalent thing... they called the Big Giant Lock 20:51:23 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 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 If I could just declare my classes to be monkeypatchproof in production somehow, I'd feel a lot better. 21:12:46 Actually, ... it might be possible to write that. 21:17:18 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 I am *this* close to designing my own language. 21:23:35 what's your language 21:23:42 you can use my wizard if you like 21:24:04 You've designed a bunch already, what's one more? 21:24:09 My language is the only language that isn't frustratingly stupid, of course! 21:34:37 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. 21:35:15 -!- coppro has quit (Remote host closed the connection). 21:37:19 -!- coppro has joined. 21:41:35 Still, as Deewiant says, what's one more? :) 21:45:38 " 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 AnMaster: Code shouldn't be allowed to monkeypatch my classes. If it tries, something ought to break. 21:46:30 cpressey, "monkeypatch"? 21:46:33 Except maybe in unit tests 21:47:08 Yes, "monkeypatch". http://en.wikipedia.org/wiki/Monkey_patch 21:47:44 cpressey, so use a language compiled to machine code. Sure it can still be done there, but would be painful 21:48:06 cpressey, also make a variant of befunge that forbids it 21:48:08 :D 21:49:46 * Sgeo might end up monkeypatching getElementById on a school website 21:50:03 Sgeo, huh? 21:50:12 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 AnMaster, on Chrome, getElementById doesn't seem to be working the way I think it should, and that's causing problems 21:50:47 Sgeo, submit a bug report? 21:50:49 for chrome 21:51:06 I guess that would entail making a page that can reproduce the issue 21:51:18 that would be helpful at least 21:54:16 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 Monkey patching is the self-modifying code of the scripting world. Its presence is also just as confounding to bug-hunting. 21:54:25 cpressey, also __slots__ as I said 21:54:37 I mean, I can live without static types, but does EVERYTHING have to be undecidable?? 21:54:56 AnMaster: __slots__ will do that? 21:55:01 cpressey, at least python parses into a nice AST, with LL(1) even iirc 21:55:19 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 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 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 (for a variable at least) 21:56:11 not sure how it works for functions 21:56:25 AnMaster: oh, you mean __slots__ to guard against monkey patching. I see. 21:56:28 cpressey, anyway, anyone could just copy your source file and make some changes, no? 21:56:33 cpressey, possibly. Or both 21:56:48 -!- Gracenotes has quit (Quit: Leaving). 21:56:51 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 AnMaster: I don't care if they copy it. 21:56:58 I assume those would be constant folded 21:57:01 in the bytecode 21:57:24 a = 3; foo(2 + a), then 21:57:31 cpressey, also if they do that sort of stuff, they only have themselves to blame 21:57:32 Constant folded. 21:57:38 what pikhq said too 21:57:48 since it would propagate the constant value of a 21:57:56 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 hm 21:58:35 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 yell at them if they screw stuff up? Plus some sort of coding guidelines might help 21:59:48 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 I encourage it. 22:00:31 Most code does, in fact, suck. 22:00:36 And quite horribly, too. 22:00:36 true 22:01:25 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 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 boooooo 22:05:27 ROFL 22:05:31 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 cpressey, :D 22:05:51 Got a Google Calender reminder telling me something about "Esome, Baby!" 22:05:55 There was a map link 22:07:29 Apparently, it's located in Brooklyn 22:07:42 http://maps.google.com/maps?q=Esome,+baby!&hl=en 22:08:17 -!- lament has joined. 22:10:40 lament, http://github.com/clivecrous/vultures/raw/master/vultures/gamedata/music/lament2.ogg 22:13:19 Hmm... Are there any esolangs with non-euclidean IP space topology? 22:13:54 what 22:14:04 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 Ilari: what about C 22:14:22 cpressey, heh 22:14:33 That's what I mean about culture :) 22:14:34 cpressey, there is also a performance argument for it iirc 22:14:35 Ilari: i realize it's not an esolang, but in what sense is the IP space topology euclidean? 22:15:10 cpressey, being stored in object (with an offset) rather than in a dict 22:15:14 or something such 22:15:18 better check that up 22:15:22 I might misremember 22:15:59 I don't think Euclid had much to say about topology 22:17:23 non-euclidian topology meaning space that's not topologically equivalent to euclidean space. 22:18:04 Including such things as toroidial spaces... 22:18:46 Ilari: Oh. Well, Befunge, then? 22:18:53 Ah yes, befunge... 22:19:20 But are there esolangs with even more "exotic" IP spaces than Befunge? 22:19:53 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 oh yeah, duh, befunge is a good example too 22:21:48 IP ?? 22:21:55 MissPiggy: Instruction pointer. 22:22:07 Program Counter for all you 6502 fans out there 22:24:13 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 cpressey, what about a möbius (sp?) befunge 22:24:26 that would be interesting 22:24:55 or to extend to 3d: klein befunge 22:25:00 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 "IP" sometimes stands for IntraProcedural register (i.e. a temp register) 22:26:44 It starts to get really exotic when space can't be described as cartesian product of those axis types. 22:27:01 Ilari, examples? 22:27:32 AnMaster: Spaces containing "wormhole"-type constructs. 22:27:54 Ilari, right now I'm imagining a trefunge with wormholes 22:27:58 it should be possible 22:28:15 and I imagine it could be done with a fingerprint WORM 22:28:19 Actually, one only needs two dimensions to have wormholes. 22:28:22 "a trefunge with wormholes" sounds like an infested mushroom 22:28:24 Ilari, true 22:28:28 olsner, :D 22:28:40 Funge-98's ; command could be considered wormholey. 22:28:57 fizzie, it is more like "skip to matching" 22:29:22 rather this would mean that touching a given space would dump you somewhere else, possibly going in a different direction 22:29:24 Well, it's traversed in no time, so it's not like other instructions. 22:29:39 fizzie, so is space 22:29:45 so: like one other instruction 22:30:00 Space is not an instruction. 22:30:18 hm... 22:30:42 -!- tombom_ has quit (Quit: Leaving). 22:30:44 Wormhole would take time to transverse, the wormhole has interrior and it is part of space. 22:30:53 true 22:31:04 this would be one cool befunge fingerprint 22:31:16 The wormhole interrior space would be something like linear x 360 degree. 22:31:24 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 (meaning it might be implemented in efunge, but never cfunge) 22:31:35 Ilari, couldn't there be wormholes in the wormhole? 22:31:42 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 true 22:31:54 Or is that non-associative? 22:32:00 one of those! 22:32:14 AnMaster: Could be possible. 22:32:25 hm 22:32:31 fizzie: Jumps initiated by ; follow space geometry. 22:33:01 wouldn't that bending of the funge-space-time slow down ips traveling near the wormhole? 22:33:03 fizzie: Or what would happen in current funges if one used ; to jump against space boundary? 22:33:14 so as to disrupt the round-robin threading 22:33:27 meaning they run possibly at a fractional overlap 22:34:03 AnMaster: They don't slow down. Wormhole space is discretized and IPs move following geometry when inside wormhole. 22:34:04 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 Ilari, hm. but would it be a sharp edge to the wormhole? 22:34:45 fizzie, what? sounds like bullshit to me 22:35:07 fizzie, also, how did you implement it? ;P 22:35:12 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 See, it's not an instruction you can execute. 22:35:24 fizzie, "in the sense that..." 22:35:34 Yes, in the sense that means something. 22:35:41 fizzie: Really, what happens if IP hits ; and there isn't another before IP space "edges" are hit? 22:35:53 Ilari: It wraps around to the nearest matching ; 22:35:53 Ilari, it wraps around 22:35:59 Which could be itself 22:36:04 yep 22:36:08 Yeah. Though so, which means it follows space geometry. 22:36:39 -!- kar8nga has quit (Remote host closed the connection). 22:37:11 With wormholes, ; would go into wormhole (possibly finding pairing ; inside wormhole). 22:37:12 cpressey: you can make a scheme like language, just employ some interesting new concept 22:37:39 yes 22:37:40 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 which is why I think WORM would be cool 22:37:56 but I can only think of this with sharp edges 22:38:45 not like the smooth bending in towards the hole like in http://en.wikipedia.org/wiki/File:Worm3.jpg 22:38:48 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 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 augur: Unfortunately my new concept would only be "design a language which doesn't suck" :) 22:39:40 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 Ilari, yes, as a cylindrical hole I guess 22:39:57 quantised to whole cells 22:40:12 -!- Pthing has quit (Remote host closed the connection). 22:40:17 which would give a limited size cylindrical funge-space inside 22:41:11 (Come to think of it, I don't suppose any discrete space is very euclidean.) 22:41:13 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 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 Ilari, hm, as in twisted half a turn? 22:42:36 Ilari, wouldn't that be 0? 22:42:57 augur: I still might do it. Even though it will almost certainly also suck. 22:43:00 1 would have one cell worth of length 22:44:04 k bye 22:44:40 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 hm? 22:45:10 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 it would have to follow the quantized form I guess 22:45:37 Ilari, not sure how it would work for non-cardinal ips 22:45:52 AnMaster: Befunge has those too? 22:46:01 Sure 22:46:10 Ilari, befunge-98 does. You can have a delta of (34,2) or such if you want to 22:46:21 or (23,-12) 22:46:29 -93 doesn't have ; so it's not that relevant here anyway 22:46:33 or even (0,0) but that is fairly useless 22:47:09 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 fizzie, "those guys"? 22:47:39 AnMaster: You, Ilari. 22:47:44 ah 22:47:46 Sure, you can imagine whatever you like, I'm just talking about what's already there. :-P 22:48:08 Orthogonal with wormholes for all I care 22:48:23 Ilari, I can't figure out how a non-cardinal delta would move through a worm hole 22:48:31 All I'm saying is that ; would follow underlying geometry, whatever it is. 22:48:56 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 hm. if it is in it's path, then shouldn't it have done so? 22:49:18 oh wait 22:49:21 This is where the whole idea of "any topology you want" breaks down 22:49:30 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 which means floating point arithmetics or such 22:50:05 and then it might not even hit a whole number cell afterwards 22:50:55 Even a hex-net Befunge would need a completely different set of semantics. 22:51:03 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 Well, not COMPLETELY. But pretty different. 22:51:28 And I guess it would be triangle-net. But whatever. 22:52:19 Ilari, would it end up neatly in an integer cell? 22:52:23 Since that would mean that all deltas could be broken down to cardinal IP movements. 22:52:29 hm maybe it would 22:53:14 cpressey, would it really need different rules apart from changing <>^v to something more relevant? 22:53:18 possibly x too 22:53:27 oh hm, i and o pose a problem 22:53:30 so does file format 22:53:37 AnMaster: how do you do g and p? 22:53:56 You end up mapping Cartesian coordinates over the thing 22:54:02 cpressey, well, they need to be changed the same way as x 22:54:11 the new coordinate system 22:54:41 then you could figure out "what delta would this cell have starting at the origin" 22:55:06 cpressey, see what I mean? 22:55:31 AnMaster: kinda, but I think it proves my point that it would be a significant change to the semantics 22:55:42 maybe 22:56:00 The smallest possible wormhole would have 1x1 ends. And would have interrior diameter of 4. 22:56:10 s/diameter/circumference/ 22:56:20 All my ideas for how Funge could be "improved" after 98 were too radical, anyway :) 22:58:08 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 ot "exotic" enough, but... well, meh. I doubt this is going anywhere. Must be away. 22:59:56 night 23:01:06 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 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 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 (G'night.) 23:05:44 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 So instead of (3,3), you have ">>>^^^" (or ">>^^>^" or ">>>>^^^^ That extends to triangle-nets or whatever else, and solves the question of "When did we hit this wormhole?" 23:08:13 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 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 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 hello 00:21:08 evening 00:22:45 i'm eriting regexp compiler :D 00:22:49 writing* 00:24:13 ic 00:24:18 -!- Sgeo_ has changed nick to Sgeo. 00:25:19 imagine that you can compile custom grep-like program for matching massive amounts of data against specified regexp 00:26:42 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 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 :D 00:33:24 http://en.wikipedia.org/wiki/Greenspun's_Tenth_Rule 00:34:00 yep 00:34:48 i fall into that 00:35:08 Should I learn Lisp? 00:35:11 If so, which? 00:35:22 SICP 00:35:49 As in, which dialect? 00:35:56 I'm not about to go around buying books 00:35:59 SICP 00:36:40 MissPiggy: oh the mighty oracle, what's the ultimate answer to life, the universe, and everything? 00:36:41 It seems to use Scheme 00:36:56 he told me STFU 00:37:00 oops 00:37:24 Sgeo: short answer: get PLT scheme and never worry about this again. 00:38:38 http://nooga.pl/ 00:38:39 :D 00:38:58 like a f*#(@)&# perl script 00:38:59 Also, which should I focus on learning: Haskell or Scheme? 00:39:04 Sgeo: Haskell 00:39:19 Sgeo: Scheme 00:39:21 Hascheml 00:39:28 learn each of them until you can implement them in each other! 00:39:39 Scheme first, because it's easier 00:39:48 and knowing scheme will help you learn haskell 00:40:01 no, Haskell, because it's awesome 00:40:14 I think I understand Haskell somewhat at this point 00:40:16 so is scheme 00:40:19 yes, Haskell is awesome, so if you start with Haskell you might never get to Scheme 00:40:24 Not sure if knowing Scheme will help any more 00:40:40 I know haskell and scheme, and I know that there's much more to learn from both of them 00:40:40 oh 00:40:58 I don't think Haskell - TICK, Scheme - TICK, next? 00:41:09 SADOL 00:41:10 :D:D:D:D:D: 00:48:38 If I were select one to use as my main language from now on, which should it be? 00:49:26 there is no main language 00:49:39 if you choose one you chose wrong 00:50:25 i use C (C99) and Ruby 00:50:44 C fror speed and Ruby for expression 00:58:34 Sgeo: Haskell. 00:58:45 Sgeo: Haskell 01:04:25 Did nooga turn into a parrot? 01:07:00 -!- jcp has quit (Remote host closed the connection). 01:09:52 parrot parrot 01:10:09 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 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 http://filebin.ca/ydgebt/pvctrombone.ogg 02:37:14 * Sgeo fails to refrain from commenting 02:37:40 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 how does a japanese character freak, exactly? 02:46:43 oerjan: To get the general sense of that statement, s/freak/fuck/ 02:47:51 well yes i've heard that japanese are very inventive in that department 02:49:27 XD 02:51:40 Literacy is a nontrivial affair. 02:53:46 triviality is a literal affair 02:54:05 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 Why am I not able to focus on my [classified] project? 03:56:27 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 It's not the government classifying it 03:59:18 It's some company that's giving us the resources 03:59:28 And it's not like I signed a contract to keep anything secret 03:59:30 what, you didn't think the _government_ is in control, did you? 04:00:06 of course you didn't sign a contract, they don't want that kind of evidence lying around 04:01:47 The project was in existance for some time before it became classified. 04:01:56 And I told a lot of people a lot of details 04:02:03 well that is what they _want_ you to think 04:02:51 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 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 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 also when wgetting the url times out 14:36:51 I reuploaded to http://codu.org/tmp/pvctrombone.ogg because filebin was being useless. 14:37:06 "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 It could look something like this: http://codu.org/pics/main.php?cmd=imageview&var1=Assorted%2FPVCTrombone3.jpg 14:38:25 Gregor, I didn't imagine quite that look 14:38:51 Gregor, how do you tune it? 14:39:15 It's a trombone, it has a slide. 14:39:25 http://codu.org/pics/main.php?cmd=imageview&var1=Assorted%2FPVCTrombone4.jpg Here it is fully extended. 14:39:37 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 You play it like a trombone is how :P 14:40:41 hm yes it is extended there 14:40:47 also this lag is horrible. I blame GSM for it 14:40:51 The bit in the bottom left is the mouthpiece, the pipe in the front is just a handle. 14:40:57 (I'm tethering my phone atm) 14:41:08 Sweet :P 14:41:29 what is the pipe that goes up and isn't connected? 14:41:35 or so it seems 14:41:43 with a T-ish shape at the end 14:42:10 oh the handle 14:42:13 Wow, your lag is really bad :P 14:42:17 It's like two minutes. 14:42:27 The bit in the bottom left is the mouthpiece, the pipe in the front is just a handle. 14:42:29 what is the pipe that goes up and isn't connected? 14:42:32 about 2 second diff 14:42:36 in that order 14:42:40 now it seems better 14:42:51 and the mobile indicates it is suddenly on 3G 14:42:54 hm 14:42:54 Yeah, but I said that a minute ago :P 14:43:05 said what a minute ago? 14:43:11 The bit in the bottom left is the mouthpiece, the pipe in the front is just a handle. 14:43:16 oh 14:43:22 They were two seconds off for you, but a lot more than that for me :P 14:43:25 well the lag seems close to none to my bouncer now 14:43:29 Now it does seem to be better now. 14:43:32 *though 14:43:37 yeah 14:44:01 well, it's a train, it is moving. Would jump between different areas with different connectivity 14:45:09 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 Gregor, ^ 14:46:23 :P 14:46:53 Wow, today's xkcd is bad, even for xkcd. 14:47:27 saw it earlier yeah 14:47:28 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 How do most reversible esolangs handle interactive I/O? (If at all?) 18:35:52 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 cpressey: my reversible brainfuck treats it as a side-effect outside the world 18:36:34 lament: that' EULA, huh? 18:36:38 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 (there was supposed to be a "s in the" in that sentence) 18:38:48 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 and some similar trick for input 18:39:09 but that's way down the line, I have enough problems trying to prevent infinite recursion in the first place 18:39:48 scarf: OK. I'm thinking of adding interative I/O to Burro 2, is all, and was wondering. 18:40:21 I don't think there's a standard method 18:40:48 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 what if you branch conditionally on input, then uninput? 18:45:52 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 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 At the start of the loop, you have no idea where your tape values came from anyway. 18:49:35 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 scarf, there? 19:07:15 yes, but tired and not really concentrating 19:07:15 scarf, iirc you are on karmic? no? 19:07:20 and yes, I am 19:07:26 scarf, is it reasonably usable/stable yet? 19:07:32 the ext4 bug was recently closed 19:07:42 it may be time to migrate unless there are other huge issues 19:07:52 AnMaster: mostly: the main issue for me is that pulseaudio's ALSA emulation is buggy 19:08:02 scarf, alsa emulation? 19:08:05 wait what happened here 19:08:11 normally it works, but occasionally it causes processes that use it to consume 100% CPU and be unkillable except with -9 19:08:16 isn't it using alsa!? 19:08:21 yet emulating alsa? 19:08:29 no, it's using pulse, which emulates alsa for programs that aren't written against pulse 19:08:32 which is almost everything 19:08:38 scarf, but the kernel uses alsa? 19:08:42 also, brb phone 19:10:36 -!- boily has left (?). 19:11:47 back 19:11:59 scarf, did you have that problem in jaunty? 19:12:15 if not, how many are having the issue (I assume that there is a relevant bug report about this issue?) 19:12:32 AnMaster: I haven't reported it yet, I must get around to that sometime 19:12:39 it's becoming harder to reproduce as time goes on 19:12:52 as in, it's always been intermittent, but it seems to happen a lower and lower proportion of the time 19:12:59 so true 19:13:09 birth rates go down all over the developed world 19:13:12 scarf, huh 19:13:26 lament, how is that related to alsa? 19:13:37 it's becoming harder to reproduce as time goes on 19:13:42 oh hah 19:13:59 WHEER IS EHARD 19:14:35 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 scarf, funny, my karmic VM just complained that the virtualbox network was using a .local domain 19:14:43 saying it broke avhi 19:14:49 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 I quite like how the only possible value for the first one is 19:17:34 is 0* 19:17:51 Possible *valid* value. 19:17:52 yes 19:17:53 :P 19:17:57 pikhq, well yes 19:17:59 that was given 19:18:05 I hadn't realised that until you pointed it out, how beautifully esoteric 19:18:24 scarf, also then I should point out that it was I that added that bit first 19:19:15 it reminds me of the file-accessed timestamp on Windows 19:19:31 which, at least if you try to view it the usual way (via right-click | properties), involves accessing the file 19:21:13 heh? really? 19:22:38 yep 19:22:44 so you just get the current time 19:23:31 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 that's .... weird 19:25:00 There's some really buggy DNS servers out there, apparently. 19:30:27 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 wtf too 19:30:44 .dnsbl? 19:30:55 that's badly misconfigured 19:31:22 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 .lan also shows up on the PTR query graph 19:32:09 and .linksys and what not 19:32:18 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 and I wonder tld .belkin is... 19:33:05 pikhq, heh there are A queries for the tld .invalid 19:33:10 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 And Y29tJw==? That's base64 for "com'" and Y2FcIA==, which seems to be "ca\ "... 19:53:54 And there is Base64 for "org/" as well. 19:54:07 And 'ecuador'? 19:54:27 -!- SimonRC has joined. 20:04:31 Ilari, and .html... 20:04:33 yes 20:04:35 .html 20:04:57 ,home is funny too 20:05:02 .home* 20:05:12 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 okay the NS graph is funny too 20:14:04 -!- kar8nga has joined. 20:37:36 And A6 records? Who uses them? 20:39:28 I thought A6 was obsoleted by AAAA ("Quad-A") records. 20:41:05 -!- alise has joined. 20:41:10 This is Dispatch 2. 20:41:20 you are here 20:41:22 !!!!!!!!!!!!!! 20:41:28 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 alise lol I tried to code my expression problem in agda and got bored because it turned out hard 20:42:16 :) 20:42:25 Hi alise! 20:42:29 Hi. 20:42:30 ;) 20:42:52 I like our topic 20:42:56 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 Oh, hi, scarf. 20:43:02 alise: Any new suck? 20:43:08 I did not see you last weekend; did you receive my email? 20:43:26 Sgeo: That something was "Get passport photo". 20:43:32 pikhq, I know. 20:43:38 Read the "unrelated note" 20:43:55 Hahahah. 20:43:56 Lawl. 20:44:08 scarf: I am ehird, by the way. 20:44:12 *by the 20:44:18 I'm back to studying Japanese. Whoo. 20:44:25 alise: ah, and I did get your email 20:44:30 Good... 20:44:34 ... Well. I'm being lazy on it today. XD 20:44:35 I wasn't sure if you were someone I already knew, or not 20:44:47 I don't have your whole IP memorised, and you've replaced your whois 20:45:05 Aye... 20:45:09 I thought A6 was obsoleted by AAAA ("Quad-A") records. <-- correct 20:45:12 So you know, then, of the situation. 20:45:12 still used it seems 20:45:19 alise: trying to fly under the radar? or just fancying a change of name? 20:45:45 Just fancied it. Why shouldn't I be allowed to confuse people as to my gender! 20:46:00 meh, I manage that pretty effectively when I'm trying to hide it 20:46:11 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 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 alise: I actually started approaching this from a nomic angle 20:46:45 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 alise: I love it 20:46:56 scarf: also, that's hardly surprising. you do that to everything :P 20:47:02 alise: They can, however, make life hell for you. 20:47:12 pikhq: not if I don't a-t-t to the e-n-d. 20:47:14 See now. 20:47:23 Yes indeed, AT&T should be a temporary fixture, not an everlasting thing! 20:47:23 a-t-t? 20:47:27 I say to all the googlers. Cough. 20:47:32 pikhq: Concatenate, sir! Concatenate. 20:47:40 Ah. 20:48:07 depriving people of internet access was ruled to be a human rights violation in France, by the way 20:48:15 Alas. If they're just bluffing, then yes, there's jack they can do if you deny them such things. 20:48:42 scarf: that's great. I'll just relocate to France and then put myself in the same situation again :) 20:49:03 yep, not quite useful enough, I was hoping it would be an EU-wide precedent 20:49:52 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 So even if it was EU-wide they'd be obeying the letter and flagellating the spirit to death. 20:50:27 Poor precedent-ghasts. 20:50:41 hmm, having a human there defeats all the usual methods of defeating filters 20:50:55 well, not directly, but in a soft-security sort of way 20:50:58 alise, so I guess you can move abroad? 20:51:11 I could do that even if they could section me. 20:51:14 I wonder if there's any way to evade filters steganographically 20:51:18 I move abroad, the UK government cannot touch me. 20:51:29 being mentally ill isn't even illegal... 20:51:37 But not obeying a sectioning is. 20:51:41 That is their threat. 20:51:41 hm 20:51:45 yep, nice loophole there 20:51:51 Delivered to me, clearly, personally: attend, or you will be sectioned. 20:52:09 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 alise, well, why not move abroad next weekend or so? 20:52:25 AnMaster: Yes, that sounds lovely and easy. 20:52:41 AnMaster: you can't just randomly decide to go abroad permanently, especially given alise's likely resources 20:52:43 AnMaster: Not being in the Schengen zone, he needs a passport. 20:52:54 scarf: Moving is one of the options being pursued, though. 20:53:06 We moved into Ovington recently, so we have little ties to the location. 20:53:18 alise: there's always the third option, of getting the media involved 20:53:21 scarf: He's a European citizen. Makes it easy. 20:53:34 it's an incredibly risky operation for all sides of the argument, though 20:53:40 scarf: I have considered and rejected that because of the risk. 20:53:44 agreed 20:53:56 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 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 ok, I don't want to know the details 20:54:22 So, that's almost certainly going to fail. 20:54:24 And I don't want publicity. 20:54:29 and that's a great characterisation of the media 20:54:34 *characterization 20:54:34 -!- tcsavage has joined. 20:54:42 scarf: Are you not British?! 20:54:45 and the reason I correct that is not because of some stupid spelling ridiculousness 20:54:46 What's a tcsavage? 20:54:51 Are you turing complete? 20:55:06 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 I am not Turing complete 20:55:13 and wanted to standardise on one spelling 20:55:20 I can do everything a Turing machine can do, except love 20:55:22 which is the one that the library already used 20:55:43 besides, there are arguments that -ize is correct in British English too, and that -ise is a neologism 20:55:53 I don't mind what English you use. 20:55:59 and I talk in a strange mix of British and American English on the Internet 20:56:00 Omit Us, go ahead. 20:56:03 and occasionally Perl 20:56:05 It doesn't really matter. 20:56:27 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 "gray" vs. "grey" is another good one 20:56:50 AnMaster: Not being in the Schengen zone, he needs a passport. <-- err, isn't that basically EU? 20:56:58 but you say that UK isn't part of it? 20:56:58 AnMaster: minus UK 20:56:58 hmm, I don't know 20:57:03 scarf, why on earth 20:57:07 AnMaster: plus some other stuff 20:57:10 you need a passport to leave the UK by plane, at least 20:57:12 AnMaster: because the UK is a major international player 20:57:14 probably Ireland too 20:57:15 and we like keeping our distance from the EU 20:57:16 Are humans turing complete? 20:57:21 tcsavage: no infinite memory. 20:57:23 heh 20:57:24 or you could catch a ferry to Northern Island, then walk across the border 20:57:30 I can do everything a Turing machine can do, except love <-- brilliant 20:57:31 *Northern Ireland 20:57:34 how did I manage that? 20:57:41 AnMaster: But it is convenient, because of the rights we get. 20:57:51 If we can get a residence in any EU country, we're allowed there. 20:57:51 `quote I can do everything a Turing machine can do, except love 20:57:58 umm, what's the syntax? 20:57:58 No output. 20:58:00 We just have to go up to them and say, yo, we're here, and that's pretty much it. 20:58:02 `qdb I can do everything a Turing machine can do, except love 20:58:03 scarf: addquote 20:58:03 No output. 20:58:08 `addquote I can do everything a Turing machine can do, except love 20:58:09 128| I can do everything a Turing machine can do, except love 20:58:13 Also, Reversi/Othello is a really nice game. 20:58:17 yes 20:58:20 Do we have a quote database here? 20:58:22 alise, the other way doesn't work? 20:58:30 AnMaster: ? 20:58:35 Slereah: HackEgo's, aye. 20:58:37 more fun, EU-internal flights you get to avoid customs 20:58:40 I think Sgeo maintains a text version. 20:58:41 Or just: 20:58:41 `quote 20:58:42 128| I can do everything a Turing machine can do, except love 20:58:48 scarf: yar 20:58:55 the schengen agreement is sweet 20:59:02 Let's see if I can find it 20:59:13 !swedish I can do everything a Turing machine can do, except love 20:59:17 I cun du iferytheeng a Tooreeng mecheene-a cun du, ixcept lufe-a 20:59:20 `swedish I can do everything a Turing machine can do, except love 20:59:22 I cun du iferytheeng a Tooreeng mecheene-a cun du, ixcept lufe-a 20:59:26 `swedish I can do everything a Turing machine can do, except love. 20:59:27 I cun du iferytheeng a Tooreeng mecheene-a cun du, ixcept lufe-a. \ Bork Bork Bork! 20:59:31 is that algorithm deterministic? 20:59:33 Bork bork bork! :D 20:59:35 ah, apparently not 20:59:43 http://209.20.80.194/sgeo/quotes.txt 20:59:49 The bork is trigerred by the dot, scarf 20:59:57 1| I've always wanted to kill someone. >.> 20:59:57 2| I used computational linguistics to kill her. 21:00:00 A story in two quotes. 21:00:17 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 my guess is no, but it can't hurt to ask 21:00:29 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 (if you're wondering why, I'm writing the most overengineered ttyrec player ever) 21:00:45 alise, moving I mean 21:00:56 AnMaster: Moving will work, it's just not as simple as you think. 21:00:57 alise, as in, an European can come to UK and settle down 21:01:01 Ah. 21:01:02 No. 21:01:06 It updates every 30min or so 21:01:15 alise, really? It should work both ways to be fair 21:01:15 alise: IIRC, yes but they don't get benefits, etc, unless they get a job 21:01:21 scarf: well, yes 21:01:29 The UK basically gets what they want from the EU and ignores the rest, whatever the tabloids say 21:01:33 AnMaster: politics isn't. 21:01:42 alise: the UK came off /incredibly/ well from the recent EU treaties 21:01:42 and the UK is powerful enough to do it 21:01:59 "125th Barbie: Computer Engineer Barbie" 21:02:01 YESSSSSSSSSSSSS 21:02:05 WHY AM I SO EXCITED ABOUT THIS? 21:02:07 YESSSSSSSSSSSSS 21:02:12 (Interwebs, voting, etc.) 21:02:14 (if you're wondering why, I'm writing the most overengineered ttyrec player ever) <-- why not use JNI? 21:02:17 or whatever it is called 21:02:21 ooh, my todo list is still on pastebin.ca http://pastebin.ca/1794648 21:02:22 http://www.barbiemedia.com/admin/uploads/ComputerEngineerBarbie.pdf 21:02:22 to use the native library 21:02:28 -!- MizardX- has joined. 21:02:37 scarf: do you realise that the kind of people who use ttyrec won't use a Java program? :P 21:02:38 AnMaster: since when did all platforms that support Java have a ttyrec library installed by default? 21:02:50 scarf, bz2 library I meant.... 21:02:53 alise: empirical evidence contradicts your statement 21:02:54 not ttyrec one 21:02:56 AnMaster: *bz2 21:03:01 scarf: Sample size? 21:03:05 alise: about 4, tbh 21:03:15 # 21:03:15 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 # 21:03:15 written in some other language? .jnlp is nice for evaluation, but doesn't leave the program installed. 21:03:20 ^ this is where Java starts giving you hell 21:03:23 agreed 21:03:26 it's possible, but you'll hate life 21:03:33 I suspect you'll give up on Java at some point 21:03:41 what is .jnlp? 21:03:46 my solution is to write the program as a jnlp | javac | gcj polyglot 21:03:53 AnMaster: Java Network Launch Protocol, used by Java Web Start 21:03:57 àh 21:03:59 ah* 21:04:06 If I was a computer engineer 21:04:07 * Sgeo should be doing homework nowish 21:04:08 for some reason, Sun decided that the standard method of packaging Java programs came free with automatic updates 21:04:11 I wouldn't wear that dress 21:04:16 I mean, I have a linux shirt 21:04:19 But this is just too much 21:04:24 Slereah, what dress? 21:04:29 http://www.barbiemedia.com/admin/uploads/ComputerEngineerBarbie.pdf 21:04:32 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 ofc, in practice the two are pretty much identical, but I'm too idealistic to admit that 21:04:52 Slereah, wth 21:04:57 -!- MizardX has quit (Ping timeout: 248 seconds). 21:04:58 -!- MizardX- has changed nick to MizardX. 21:05:02 AnMaster, alise linked to it 21:05:05 I think 21:05:07 hm 21:05:13 very wth 21:05:30 scarf: you should package it as a .jar 21:05:44 AnMaster: what, is it *wrong* to promote computer engineering now? :) 21:05:44 alise: that's what I'm doing atm 21:05:49 barbie does every other career, you know 21:05:53 and I'm working to remove library dependencies atm 21:05:57 scarf: you write a shell script to find where you are and java -jar it 21:06:01 with -classpath containing all your dependencies 21:06:02 mostly because I'm hardly using any features of it 21:06:09 (have /usr/lib/somethingplay/(stuff)) 21:06:19 the idea's to have no dependencies outside the jar itself; this isn't deliberate, it just kind-of happened 21:06:35 on a nice side-note, by default netbeans links in lgpl libraries to your project, but doesn't include their sources 21:06:47 meaning it's illegal to distribute the resulting program without chasing their source 21:06:51 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 Barbie, UNREALISTIC?! 21:07:08 and very definitely not *pink* 21:07:22 there are girl-chic computer scientists 21:07:23 QUICK, FIND ONE 21:07:34 alise, I mean, it is too pink. That is promoting gender differences or something. 21:07:40 alise : Lady Ada Lovelace 21:07:45 Slereah, haha 21:07:56 http://membres.multimania.fr/bewulf/Russell/2003-06-Ada_Lovelace.jpg 21:07:59 AnMaster: I think any feminist would agree that women have the right to wear whatever the hell they like :P 21:07:59 You can't be classier 21:08:08 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 lovelace was sweet. 21:09:01 She has Leia hair 21:09:30 I've seen an actual photo of her 21:09:42 But it was in her cancer period so she doesn't look that pretty 21:09:53 I didn't know she had cancer 21:09:54 :( 21:10:16 She died quite young 21:10:19 Like in her 40's 21:10:56 scarf: I love QI. 21:11:07 22:17:00 Haskell is a language that curries functions 21:11:08 22:17:09 Haskell is named for Haskell Curry 21:11:08 22:17:15 currying is named for Haskell Curry 21:11:12 I'd love QI more if it were easier for me to watch 21:11:14 Well they named it Haskell because of Haskell Curry, obviously 21:11:17 Sgeo: Piracy?? 21:11:19 *Piracy? 21:11:27 alise, preferably no BitTorrent 21:11:33 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 No! 21:11:39 YouTube if possible 21:11:39 "(Maybe it is because the TAVSYS file stores string using Baudot?)" --zzo38 21:11:46 Sgeo: man up and bittorrent 21:11:49 They named it Hakell after Eddie Haskell from Leave it to Beaver! 21:11:49 http://www-history.mcs.st-andrews.ac.uk/BigPictures/Lovelace_3.jpeg 21:11:53 cpressey: OH 21:11:54 Daguerotype picture :o 21:11:57 I suppose that's because without using it, you couldn't possibly imagine the languages were remotely similar 21:12:03 I'm always under the impression that I'll get caught if I BitTorrent 21:12:05 Slereah: I'd curry her function. 21:12:07 Sgeo: MAN 21:12:08 UP 21:12:09 They might have even named it Haskell for that reason 21:12:21 anyway, teaching Java's my day job, so I may as well get at least half-decent at it 21:13:45 scarf: And what has Java learned so far from you? 21:13:56 >_< 21:14:07 cpressey: I did *not* come back from that place to experience puns as bad. 21:14:10 cpressey: /me thinks 21:14:49 oh, that was a pun? 21:14:51 alise: I blame oerjan and lament for setting the atmosphere 21:14:54 just got it 21:14:57 * scarf continues thinking 21:15:31 * scarf stops thinking 21:15:31 I don't have that programmery-thing anymore 21:15:37 the one where you actually write programs 21:16:35 MissPiggy: I sort of do, but it's constantly plagued with "this would be so much better in /my/ language". 21:16:42 I expect it to pick up again soon. 21:17:02 I'm in a C++ class. I'm dealing with C# recently. 21:17:10 And now I'm looking into Haskell again 21:17:16 That feeling is pretty much a constant 21:17:35 alise: I'm getting pretty good at just language-hopping, recently 21:17:55 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: I think any feminist would agree that women have the right to wear whatever the hell they like :P <-- true 21:19:18 heh 21:19:48 alise, my point was that barbie in general seems... overly pink. Not a varied selection there. 21:19:52 AnMaster: men too? 21:20:22 scarf, hm? Is this some reference to skin colour of Europeans? 21:20:32 no 21:20:33 x.x 21:20:40 AnMaster: because little girls tend to like pink. Call it society or inherent, or whatever you want. 21:20:43 But 's true. 21:20:44 I mean, would any feminist agree that men have the right to wear whatever the hell they like? 21:21:07 Of course not 21:21:10 alise, yes, and I think society encourages it. At least it doesn't seem to try to be neutral about it 21:21:21 scarf, I have no idea. Ask alise. 21:21:27 but I guess so 21:21:38 Not any feminist but all the sane ones. 21:21:44 well okay 21:21:48 Sane feminism nowadays is an alias for someone who supports equality. 21:21:52 yep 21:21:58 But if you go further you get, well, S.C.U.M. Manifesto. 21:22:17 alise, I'm not familiar with that 21:22:20 http://en.wikipedia.org/wiki/SCUM_Manifesto 21:22:22 * AnMaster googles 21:22:29 oh damn you, for once you provide a link! 21:22:38 I love you too. 21:24:53 hah 21:25:07 |^^^^^^^^^^^\||_____ 21:25:07 | STFU |||""'|"""\___ O 21:25:07 | ______________|||___|__|__|) -|- (@)@)""""""**|(@)(@)**|(@) / \ 21:26:34 wat. 21:26:36 ..? 21:26:51 that doesn't even line up in monospace... 21:26:55 anwhere 21:26:57 anywhere* 21:27:00 AnMaster: it lines up in proportional to start with 21:27:04 but messes up towards the end 21:27:20 scarf, eh? well the first | lines up yes 21:27:24 but the rest makes no sense 21:27:25 I once saw a massively complex table designed to line up in proportional that used ` and ' for spacing 21:27:33 scarf, wtf 21:27:34 also 21:27:42 that would only work for a given font 21:27:54 AnMaster: yes, but most of them have approximately similar metrics 21:27:57 scarf, and what was the context of that table? 21:28:05 AnMaster: it was in a forum post on GameFAQs 21:28:46 scarf, approx similar metrics sure, but small differences would result in large differences near the end of the line 21:29:03 since they would basically add up in the long run 21:29:05 not really, the font size was very small 21:29:16 sufficiently so that ' was one pixel plus one pixel of spacing 21:29:23 and ` was two pixels plus one pixel of spacing 21:29:31 then was the actual text in that table readable? 21:29:48 yes 21:29:58 different font size? 21:30:02 this was back in the days before antialiasing was common, and where pixels were large enough to be visible 21:30:08 ah 21:30:19 same font size, a typical capital letter was maybe five or six pixels wide 21:30:23 was just going to suggest getting a high dpi monitor ;P 21:30:40 scarf, iirc gamefaqs uses monospaces 21:30:50 "Forum post". 21:30:53 at least it did yesterday when I checked some walkthrough for a game I was stuck in 21:30:53 AnMaster: for the FAQs; not in the forum posts though 21:30:55 alise, oh right 21:30:58 Actual GameFAQs thingies are just text files. 21:31:01 they have a forum? 21:31:03 XD 21:31:03 yes 21:31:16 it's sometimes more informative than the FAQs themselves 21:31:17 (btw I think it was paper mario for n64) 21:31:24 because it's moderated by different people 21:31:34 GameFAQs' forums are interesting, mostly because of LUE lore 21:31:35 and people post rejected FAQs to the forums, and if the mods there like them they get stickied 21:31:39 not that i've ever read them 21:31:41 alise, LUE? 21:31:43 just articles *about* them 21:31:47 AnMaster: It's COMPLICATED! 21:31:58 alise, sure, but what does it mean? 21:32:04 so you have two independent sources of FAQs on the same website 21:32:08 That, that is also complicated. 21:32:10 right 21:32:28 ... 21:32:31 whatever 21:32:33 Basically, uh, it's a board or was a board or something on GameFAQs. 21:32:38 right 21:32:54 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 It's not that interesting, I guess. 21:33:18 mhm 21:33:58 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 AnMaster: Gotta sell those copies of Nintendo Power magazine 21:34:28 AnMaster: pokemon doesn't, AFAIK 21:34:37 cpressey, don't they realise people just check gamefaqs? ;) 21:34:43 scarf, ah maybe, never played those 21:34:52 this was paper mario 21:34:57 forgot what the tricky thing was 21:35:30 scarf, so, maybe we should say "every rpg or adventure game" 21:35:50 though there were a few weird ones in mario 64 and such too 21:35:59 (paper mario is an rpg) 21:36:39 Nintendo Power is older than GameFAQs. :P 21:36:42 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 what XD 21:36:57 scarf, would that be the flying cap thingy? 21:37:11 AnMaster: yep (or just the cap switch generally in the DS version) 21:37:14 well yes, that was quite tricky 21:37:21 scarf, there is just one cap switch there? 21:37:37 yes, the locations of the other two were changed to have a couple of stars instead 21:37:45 also, I wasn't aware of that they ported it to DS 21:37:51 and there's a multiple-characters thing instead, which has new levels 21:38:04 scarf, did they fix the bad camera control when they ported it? 21:38:13 also, didn't they have to lose some of those stars 21:38:16 that need the other caps 21:38:19 it's not awful in the port, but I'm not sure what it was like originally 21:38:21 and there are more starts 21:38:23 *stars 21:38:33 scarf, but what about metal and vanish caps? 21:38:37 instead of flying cap as mario, vanish cap as mario, metal cap as mario 21:38:47 it's flower as mario, flower as luigi, flower as wario 21:38:53 err 21:39:00 and the cap switch creates blocks that drop flowers 21:39:03 scarf, that means some of the stars must have been relocated 21:39:09 AnMaster: why? 21:39:13 since they depended on the caps to be reachable 21:39:22 AnMaster: you can still get all three cap effects 21:39:24 like, you had to fly, or use the metal 21:39:26 just you get them a different way 21:39:31 scarf, ah. I see 21:39:54 scarf, but why wario. Why. 21:39:55 scarf: The cap switches are entirely optional, y'know. 21:39:59 It doesn't make sense in that game 21:40:15 pikhq: in the original, yes; in the sequel, no 21:40:24 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 Wait, they made it required? 21:40:27 well, you don't have to hit the switch 21:40:32 pikhq, well, maybe you need all coins? 21:40:35 err 21:40:36 all stars 21:40:36 but you do have to release at least Mario, which is sort-of the equivalent of hitting a switch 21:40:37 AnMaster: You don't have to get all the stars. 21:40:37 true 21:40:43 pikhq, true I guess 21:40:55 you can leave luigi and wario locked up all game, though, I did on my first playthrough 21:41:02 01:02:08 http://esolangs.org/wiki/Defcalc <<< this is just tree rewriting 21:41:04 Don't caaaaaare 21:41:09 scarf, err, how do you start playing as then? 21:41:17 AnMaster: 70 stars to beat the game. 21:41:18 Do you like trees 21:41:23 AnMaster: There are 120 stars *in* the game. 21:41:28 AnMaster: you start as Yoshi, obviously 21:41:31 pikhq, ah yes, remember now 21:41:36 scarf, what? Not in the original 21:41:37 pikhq: the numbers were bumped to 90 and 150 for the DS port, IIRC 21:41:42 scarf, in the original you start as mario 21:41:47 and play mario all the way 21:41:48 AnMaster: yes, I'm describing a port with some enhanced features 21:42:03 if it was a straight port, it wouldn't have sold as well as a port with some extra levels 21:42:07 scarf, s/enhanced/totally wrecked/ 21:42:07 -!- Slereah has quit. 21:42:16 AnMaster: what makes you think that? 21:42:22 Also, the metal cap doesn't really need a FAQ to get. 21:42:24 -!- Slereah has joined. 21:42:33 scarf, some extra levels sure, but what I'm finding an issue with is changing the playing character so completely 21:42:40 It's in a level where the vanish cap is useful. 21:42:45 err, most of the controls are the same 21:43:00 pikhq, I found the vanish cap without problems. And, You mean "where the metal cap is useful" 21:43:03 replacing mario's 3d model with yoshi's isn't a massive change 21:43:11 AnMaster: Erm, right. 21:43:14 s/You/you/ 21:43:22 scarf, same abilities? 21:43:23 and the characters are mostly similar, apart from each has a few moves the others don't 21:43:24 Really, it's just the wing cap that's a "guide dang it" sort of thing. 21:43:36 pikhq, true 21:43:43 alise: ? 21:43:58 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 "WTF is with the light from the roof?" 21:44:03 because it didn't draw it properly 21:44:07 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 in the game it isn't as visible normally 21:44:11 AnMaster: Heheheh. 21:44:14 that's about it for the differences, though 21:44:22 AnMaster: No, it's pretty darned visible. 21:44:27 As a column of light. 21:44:32 cpressey: "?"? 21:44:32 oh, yoshi can fly to some extent, but not very far 21:44:36 pikhq, not *soild white column* though 21:44:46 Ah. Yeah. 21:44:52 It looks like a sunbeam, not a white column. 21:44:57 In which Mario is standing. 21:45:10 pikhq, I know, they fixed that bug later in mupen64plus iirc 21:45:18 if you press A while standing there, you get a message saying "mario... hello..." or something like that 21:45:20 it looks like a sunbeam on modern versions 21:45:24 alise: oklopol, Defcalc, tree rewriting, Slereah likes trees, or something 21:45:40 Amidst Mario chatter 21:45:42 scarf, fly? how does that even make any sense 21:45:47 Right, yes, I was just telling oklopol to shut his foo because it's still a nice language. 21:45:52 AnMaster: it's more gliding 21:45:59 cpressey, I like trees too. Nature is fun. 21:46:05 basically, if you hold down jump, you go up for a bit before going down 21:46:10 AnMaster: Yeah. 21:46:12 scarf, *how* 21:46:13 and you can move for that time 21:46:31 Mupen64plus now emulates that game 100% perfectly. 21:46:33 scarf, I mean, Yoshi isn't very aerodynamic really! 21:46:37 AnMaster: he has wings? 21:46:44 huh? does he? 21:46:44 I think, anyway 21:46:56 little stubby ones that rather restrict flying, but enough to keep him in the air for a bit 21:46:57 AnMaster: It's just what Yoshi does. 21:47:06 He does it in all the games in which Yoshi is playable. 21:47:17 hm, I haven't played many games with yoshi in 21:47:18 Mmm, double-jump. 21:47:30 Never played Mario World? 21:48:08 pikhq: the super mario 64 ds version is more like one continuous jump than a double-jump 21:48:25 pikhq, mario world, maybe. SNES? 21:48:38 pikhq, and boring plus rather hard 21:48:47 I prefer RPGs mostly actually. 21:48:56 snes rpgs are lovelu 21:48:58 lovely* 21:48:59 scarf: Weird. 21:49:05 (sometimes at least) 21:49:07 yoshi's sort of gliding thing is fun 21:49:20 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 AnMaster: SNES. And one of the greatest platformers. 21:49:27 which makes him flutter up momentarily 21:49:31 HRRRRRRRRRRRRRRRRRRRR 21:49:33 (also one of the easier ones) 21:49:35 pikhq, mario 64 is way better (apart from the camera of course) 21:49:43 AnMaster: No. 21:49:51 Mario 64 is as good. 21:49:52 :P 21:49:53 Super Mario Bros 1, bitches. 21:49:54 in the DS version, you mostly just use R as a camera control 21:49:55 No competition. 21:50:01 alise: Mario 3. 21:50:04 pikhq, well, I'm good at mario 64. I suck at mario world 21:50:08 thus the world one is worse 21:50:09 ;) 21:50:13 AnMaster: How can you suck at it? 21:50:14 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 pikhq, always dying? 21:50:26 the camera stays in much the same angle while it's released, swings behind you when it's pressed 21:50:26 hard to time jumps? 21:50:31 Infinite powerups and trivial one-ups! 21:50:36 alise: How 'bout just Mario Bros? 21:50:45 pikhq, the issue is the jumps 21:50:58 AnMaster: You can try again. Forever. 21:51:05 pikhq, also, time limit 21:51:06 iirc 21:51:11 mario 64 lacks that 21:51:11 cpressey: meh 21:51:15 cpressey: boring arcade-ish game imo 21:51:16 AnMaster: You can go back to the level. 21:51:23 (also, how 'bout just donkey kong?!) 21:51:24 pikhq, well, I hate time limits 21:51:38 If you run out of lives, you fail at gaming forever. 21:51:40 i never really run into SMB's time limmits 21:51:48 I run out of lives in SMB1 all the time though :) 21:52:07 (to get a 1-up, kill the Koopa Troopas at the start of 1-1 and exit the level) 21:52:07 alise: How 'bout that little-known, hand-held LCD-screen game, "Mario's Cement Factory"? Now that's retro. 21:52:18 cpressey: I know it 21:52:24 scarf: Really! 21:52:30 cpressey, what? 21:52:31 alise: there's an infinite loop near the start of 1-1 21:52:33 * AnMaster googles 21:52:42 where you can get an extra life, get a coin, then die 21:52:49 I only remember it vaguely from an issue of Electronic Gaming from the 80's 21:52:49 and respawn where you can repeat the process 21:52:56 cpressey: you were so amazed it wasn't even a ? 21:53:00 it was just a ! question 21:53:10 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 alise: Yes! 21:53:15 scarf: let's confuse you: I'm using Linux, and like the typography and fonts 21:53:23 http://upload.wikimedia.org/wikipedia/commons/5/55/Gw_donkeykong_trans.png 21:53:29 handheld nintendo console with two screens 21:53:33 Wait, that should have been: alise: Yes? 21:53:36 and a dpad, and some buttons 21:53:38 folds 21:53:42 yep 21:53:54 hm "game & watch"? never heard about that before 21:54:02 AnMaster: thou art luckey. 21:54:03 *lucky 21:54:08 also, strange there is a super mario wiki 21:54:12 AnMaster: Play more Smash Bros. 21:54:14 AnMaster: dates from before games consoles were capable of running more than one game 21:54:16 and how is that strange? 21:54:35 pikhq, what? the fighting games? 21:54:38 I loath that genre 21:54:42 http://upload.wikimedia.org/wikipedia/commons/8/88/Gamewatch_mariobros_open.JPG IT'S JUST LIKE A BOOK 21:54:59 let's see if we can all agree on one game being great 21:55:01 Mario Kart! 21:55:06 alise: which version? 21:55:10 alise: Which one? 21:55:14 How do you play this 21:55:15 uh, I mainly play double dash, the gamecube one 21:55:18 It has like two buttons 21:55:22 I've actually played all but the Gamecube and Wii ones 21:55:28 That was the best one, IMO. 21:55:30 I've played the DS one 21:55:31 it's rubbish 21:55:34 the wii one is also rubbish 21:55:36 the steering is wonky 21:55:38 really hard to steer precisely 21:55:43 All the console ones were good. 21:55:44 just seems really fuzzy, not enough mario karty 21:55:47 Not played the portable ones. 21:55:50 especially with the wheel 21:55:53 the wheel is worse than useless 21:55:54 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 Why am I interested in Muppets right now? 21:56:00 and never figured otu the controls 21:56:01 *out 21:56:07 huh, the original mario kart came out in 1992? 21:56:09 the DS one is rather broken, and I dislike the level design 21:56:09 alise: Play it with a Gamecube controller. 21:56:14 I thought 64 was the latest one 21:56:15 Mario Kart! <-- no 21:56:19 I don't like that genre either 21:56:20 pikhq: I might as well just play the gamecube version 21:56:22 What about: 21:56:22 the graphics are sharper 21:56:23 AnMaster: well, die. 21:56:25 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 alise, Mario RPG? 21:56:31 and had some great level design 21:56:34 that one is good 21:56:35 I've actually dodged a blue shell before! 21:56:35 the SNES one 21:56:36 alise: Yeah. The Gamecube one is better. 21:56:38 also mario 64 21:56:48 One way I know is sure-fire, and the other way was the luckiest fluke ever. 21:56:51 Can't reproduce the latter. 21:56:56 AnMaster: <3 Mario RPG. 21:56:59 the GBA one is rather neat too, they managed to balance the items well and the battle mode is great 21:57:17 pikhq, what about paper mario? It is quite nice 21:57:22 played that recently 21:57:27 AnMaster: Not played it. 21:57:41 pikhq, the n64 one that is 21:57:42 I only own one console, BTW. 21:57:50 pikhq, I own none 21:57:57 Ah. Haven't played it, but I probably have the ROM. 21:57:58 thus I can't play anything newer than n64 21:58:14 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 pikhq, use glide64 to get anything usable in mupen64plus for it 21:58:17 I picked up a backwards-compatible PS3 recently. 21:58:23 pikhq, paper mario that is 21:58:25 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 of course, you need to time it rather well... 21:58:34 AnMaster: Already do; couldn't get Mario 64 working otherwise. 21:58:53 And, well. It's freaking Mario 64. 21:58:55 pikhq, glide64 is the only decently working video plugin for most games 21:59:11 alise: doesn't work in the DS version, btw, it falls back while you blast, and catches up to you afterwards 21:59:22 scarf: pah, other people have tried this! 21:59:24 I am not so special 21:59:30 Best 3D Mario game. :) 21:59:31 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 pikhq, camera control 21:59:56 (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 pikhq, I hate the camera control in mario 64 22:00:14 AnMaster: Yes, that is the one thing that's off. 22:00:15 sure, it is a good idea but it doesn't work out well 22:00:22 (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 Glide64 is a weird name for a video plugin, assuming it doesn't actually use the 3dfx Glide API. 22:00:31 fizzie, I think it does.... 22:00:33 Would be much better if it were analog. 22:00:47 scarf: I hate how sending a blue shell backwards as 1st player hits yourself 22:00:47 fizzie, or some opengl wrapper thingy for it 22:00:55 it's just... argh, no, I didn't tell you to do that 22:01:04 alise: what does sending it forwards do? 22:01:09 the same. 22:01:13 blue shells don't aim :P 22:01:15 they just hit player 1 22:01:17 same happens in the DS version 22:01:28 the ds version's graphics suck and i find the gameplay a little sluggish 22:01:34 hm 22:01:39 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 I never liked either fighting or racing games 22:01:51 Fully 1/3 of my scrollback is now Mario-related. 22:01:51 mario kart isn't really a racing game 22:01:53 and if you fire it forwards, it just goes straight and hits a wall and dies 22:01:57 RPGs and some platformers is what I like 22:01:57 cpressey: SHADDUP 22:01:59 if you fire it backwards, it stays there as a mine 22:01:59 also zelda games 22:02:08 alise: the DS version is, because they nerfed items so badly for the leader 22:02:09 zelda a link to the past or oot 22:02:11 which is best 22:02:14 the other versions aren't, really, though 22:02:19 * AnMaster waits for the flamewar to die down over that 22:02:28 scarf, alise pikhq ^ 22:02:35 AnMaster: I've never played either 22:02:39 -_- 22:02:40 although I've watched two OoT TASes 22:02:45 scarf, TAS? 22:02:46 a normal one, and a RBG one 22:02:51 tool assisted speedruns 22:02:52 AnMaster: tool-assisted speedrun 22:02:56 scarf, RBG? 22:02:59 reverse bottle glitch 22:03:00 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 scarf, cheat codes? 22:03:04 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 not a cheat code, exactly 22:03:09 using glitches is fair game 22:03:14 scarf, also wth is "reverse bottle glitch"? 22:03:17 it's memory corruption 22:03:23 (I made sure to call them artworks so you'd get upset and trash them) 22:03:26 fizzie, It could be fairly old code? 22:03:39 basically, you use a race condition while fishing to get a bottle into an inventory slot it can't normally occupy 22:03:40 AnMaster: It probably is; no-one'd do it that way nowadays. 22:03:43 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 wut 22:03:53 alise, glide64 22:04:02 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 ah 22:04:08 alise, one of the video plugins for mupen64 22:04:10 according to how your inventory's arranged 22:04:16 alise, the only one that works decently too 22:04:29 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 scarf, heh 22:04:46 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 scarf, you still need to complete the first normally 22:04:55 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 AnMaster: no you don't 22:05:01 scarf, no? 22:05:02 AnMaster: There's glitches to skip that. 22:05:07 ah 22:05:49 scarf, interesting how it can skip over going to big link? 22:05:51 err 22:05:54 grown up link 22:05:55 I meant 22:06:12 I assume it would have to 22:06:14 oh, you just wander into the temple of time, become big link, and wander back out again 22:06:24 glitching past all the barriers that would normally stop you just doing that without prerequisites 22:06:31 so, trollaxing time 22:06:36 best characters/kart in mario kart? 22:06:43 scarf, there must have to be a *LOT* of glitches? 22:06:47 AnMaster: yes, it's a TAS 22:06:51 alise, don't they all work exactly the same iirc? 22:06:56 AnMaster: no 22:06:57 alise, at least in the n64 version 22:07:01 09:40:04 cpressey, isn't there an algorithm for converting it to RPN? 22:07:04 shunting thingy dijkstra bla 22:07:06 scarf, pretty sure they do in the n64 version 22:07:06 AnMaster: http://www.tasvideos.org/ZeldaOcarinaOfTimeTricks.html 22:07:07 AnMaster: nah different speed, accel, etc 22:07:14 powerup weights, i think 22:07:15 and special powerups 22:07:17 alise, err yes, it was mentioned a bit later iirc 22:07:18 ... 22:07:28 AnMaster: i'm logreading an entire week 22:07:34 don't give me shit or i'll start blabbing about how bad it was 22:07:35 alise, where is that described? Not in game? 22:07:40 yeah in game 22:07:42 in the gcn one 22:07:48 gcn? 22:07:53 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 gamecube nintendo 22:07:54 alise, I'm talking about n64 here 22:08:00 go to single player mode, select characters, select kart, look at kart stats 22:08:05 alise: I can summarize my lines: "Hate Python, haaaaate." 22:08:09 then you just plug the script into an emulator, and get a really really fast tool-assisted speedrun 22:08:17 cpressey: having to work with it? 22:08:18 scarf, heh 22:09:23 http://tasvideos.org/RockmanTricks.html is also a nice list. 22:09:25 cpressey: I don't think I've ever met anyone who hates Python before, so it's refreshing 22:09:32 especially as a Perl fan myself, I should have come across more 22:09:41 scarf: The Pokemon Yellow speedrun couldn't have taken more than an evening to do, though. 22:09:44 I hate Python. 22:09:47 pikhq: sure? 22:09:53 they skip out all the rerecords 22:09:58 in the final product 22:10:03 scarf: it probably uses some glitch 22:10:07 to win the game in three minutes or something 22:10:08 Though, that's because the only glitch is restarting the console at the right time. 22:10:11 i.e. a joek a joek lol 22:10:18 typically, a TAS takes a month of work to produce an hour of output 22:10:21 alise: 2 minutes. 22:10:28 pikhq: How on earth? 22:10:31 pikhq: ah, that's the one I was talking about 22:10:36 It saves. Shuts down the game in the middle of saving. 22:10:47 Starts the game, loads. 22:10:51 Goes into battle. 22:10:55 alise: basically, if you turn it off while saving, all the remaining save data is full of the same byte 22:11:11 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 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 scarf: That happened in-battle, and I was typing out the description. 22:11:33 cpressey: I never really thought of you as a day job kind of guy, Cats Eye surely generates some money right?! 22:11:35 scarf: Also, that was the item list. 22:11:38 pikhq: oh, I got the order wrong 22:11:45 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 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 I thought the pokemon list was involved too, but that might have been a different TAS 22:12:08 alise: I wish. 22:12:20 scarf: 0 pokemon. 22:12:39 pikhq: same, but I thought the /list/ was still used 22:13:15 The Pokemon Green one was fun, also. 22:13:20 i'm watching that speedrun now 22:13:23 Started a walk through walls glitch. 22:13:25 -!- MigoMipo has quit (Ping timeout: 264 seconds). 22:13:25 "Go 9999999999999999999999999999999999999[lots of 9s]" 22:13:27 *Go! 22:13:33 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 Walked to the end-of-game. 22:13:42 End. 22:13:44 :D 22:13:52 http://www.youtube.com/watch?v=gr3L597dZFM 22:13:54 it's so pretty 22:14:36 "you made this game your bitch" --youtube comment 22:15:11 alise: what's that a link to (at work)? 22:15:30 PKMN Yellow speedrun 22:16:08 ah, I've seen that one already I think 22:16:17 which platforms are the pokemon games for? 22:16:18 Youtube URLs are so opaque... 22:16:22 AnMaster: most of them 22:16:25 I mean, what sort of emulator do you need 22:16:25 that Nintendo make 22:16:30 scarf, snes? 22:16:31 AnMaster: Gameboys, mostly. 22:16:32 And the DS. 22:16:35 ah 22:16:43 well, I have a ds emulator, it sucks 22:16:46 GBA (gameboy advance) has Pokemon Sapphire which is the main one I've played. 22:16:49 so the gameboy advance one then 22:16:51 And VirtualBoy Advance is pretty much perfect. 22:16:52 handheld RPGs: game boy original, game boy color, gameboy advance, DS for the four generations 22:16:55 Most of the emulators are. 22:17:05 And obtaining a sapphire/ruby rom is as easy as, uh, going to the toilet? 22:17:10 And VirtualBoy Advance is pretty much perfect. <-- yes 22:17:11 there were also console RPGs too, for the N64-like consoles 22:17:23 also, protip: tapping A and B doesn't make the pokeballs work more. 22:17:24 scarf, oh? interesting 22:17:28 alise: ruby/sapphire have a rather obnoxious font 22:17:34 scarf: Really? I never noticed. 22:17:36 alise: but it gives your fingers something to do while you're waiting 22:17:44 sure you don't meen firered and lifegreen? 22:17:55 (they ran out of colours lol.) 22:18:00 that's obnoxious too, but a diffreent way 22:18:02 hehe 22:18:06 and firered and leafgreen are remakes of red and green 22:18:14 so it makes sense to have similar names 22:18:14 yeah 22:18:14 How's the font obnoxious? 22:18:14 so, I seem to lack a collection of such roms 22:18:22 I do have a large snes rom collection 22:18:23 just like heartgold and soulsilver are remakes of gold and silver 22:18:28 http://www.coolrom.com/roms/gba/ 22:18:30 fewer n64 22:18:37 and just one gba 22:18:37 may be bullshit, maybe not 22:18:38 ymmv 22:18:49 alise, I was planning for piratebay 22:19:14 roms are generally on less reputable sites ;) 22:19:20 look, there's a general rule that you don't discuss ROMs on every forum in existence 22:19:24 including, presumably, IRC 22:19:27 ah 22:19:45 scarf, so, lets discuss EEPROM then 22:20:00 clearly it was *that* type of roms we were talking about here 22:20:22 scarf: yes, but I don't really care 22:20:26 oh, I expected people would be jumping on me for either censorship, or calling IRC a forum 22:20:46 obviously I fail at trolling #esoteric, I should go back to trolling ##crawl-dev 22:20:59 (I don't mean to troll it, but looking back on what I say there, I think I'm a troll) 22:21:11 oh ffs, rapidshare style website sucks 22:21:15 now I remember why I prefer torrents 22:21:42 http://lericson.blogg.se/code/2010/february/this-might-seem-silly-git-pull.html 22:22:10 I'd be playing a Pokemon game in Japanese, but... No kanji. 22:22:15 *Makes it harder to read*. 22:22:27 (well. Easier to read. Harder to understand.) 22:23:17 The first rule of ROMs is that you don't discuss ROMs. 22:23:37 alise: I like f4y's comment 22:23:56 even if it's factually incorrect 22:24:10 but especially if it's correct 22:24:15 the other commenters seem divide 22:24:17 *divided 22:24:51 The one about Linus being a Swedish speaker? It's correct. 22:25:56 http://lericson.blogg.se/code/2010/february/this-might-seem-silly-git-pull.html <-- heh 22:27:56 there is a torrent for 10.26 GB of for GBA 22:28:00 that's pretty amazing 22:28:06 scarf, ^ 22:28:07 Gah, there must be some sort of gnome (no offense meant to the desktop environment) on my disk eating files. 22:28:31 AnMaster: I don't get what you're trying to say here, and don't particularly want to either 22:28:41 just the huge size 22:28:50 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 Memory's cheap, after all. 22:29:29 There's a 10 second speed run. 22:29:49 Its submission explains the input frame by frame. 22:29:53 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 That fantasy strategy game or whatever? 22:30:55 Oh, you linked it. Wonder how I missed that. 22:31:13 Yeah, that's the one. 22:31:24 That's amazing. 22:32:02 When your win condition is based solely on the RNG what do you expect? 22:32:25 who cares, it's sweet 22:33:13 Also: colors a skeleton 22:34:05 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 Colors a skeleton! 22:35:03 Colours, the skeleton. 22:35:12 Which frame is it? 22:35:13 how do I watch it -_- 22:35:14 http://www.youtube.com/watch?v=PGfx3QAV64M 22:35:15 Er, as in, what time? 22:35:17 http://www.tasvideos.org/1145M.html 22:35:21 click the watch thingy and choose you toob 22:35:29 lol where is it 22:35:39 Not my link, it's off topic 22:35:40 dunno :D 22:35:41 http://www.youtube.com/watch?v=dzkrREEtnAI 22:35:52 In 1080p! 22:36:09 what time count is the colour skeleton 22:36:42 i don't get 720p youtube 22:36:47 the little box isn't big enough 22:37:09 fullscreen dood 22:37:14 0:19, I think 22:37:16 those are your two choices 22:37:22 I also think it's obscured by the "this is from tasvideos" text 22:38:00 It should be the frame immediately before the "congratulation message is displayed" one. 22:38:01 i don't get it 22:38:07 No, wait 22:38:13 so how to watch it -_- 22:38:14 I'm looking at a frame 1060-1062 22:38:22 Hitting 1063 will be tricky 22:38:29 MissPiggy: Youtube, linked. 22:38:47 thank you! 22:39:38 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 alise: Frame 1120 in the actual video. 22:39:46 Bah, I'll just grab the avi 22:39:51 hrrm 22:39:57 dns timeout on tasvideos 22:39:59 how strange 22:40:01 is it the flicker thing before the hooray you won thing 22:40:10 now it works 22:40:20 alise: Yes. 22:40:22 alise: It glitches oddly, then "Hooray, you won". 22:40:23 11:21:11 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 EEEEEHIRDLAAAAAANG 22:40:32 sorry, AAAAAALISELAAAAAAAAANG 22:40:42 The skeleton is on the screen color-swapped for no good reason. 22:40:53 Gah, except that my MPC doesn't work and VLC evidently lacks frame advance. 22:40:53 the "simple" stuff, getting that right is easy 22:40:57 aliselang solves problems you didn't even know you had 22:41:05 Deewiant: mplayer? oh, mpc = windows = no 22:41:57 11:50:36 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 Smalltalk 22:42:06 Squeak has totally super-awesome stack objects 22:42:15 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 alise: If getting the simple stuff right is easy, why does it still seem so rare? 22:42:33 fizzie: Glitched-graphics comes a few frames before that. 22:42:34 cpressey: Because most people underrate correctness massively. 22:42:44 pikhq: Oh, okay. Maybe the youtube version has a dropped frame or something, then. 22:42:47 Well, whatever. 22:42:50 fizzie: It's the flicker before the you won thing 22:42:52 the transition 22:42:52 alise: Fair 'nuff. 22:42:53 it's that i think 22:43:03 fizzie: Only one glitched-graphics frame? 22:43:07 cpressey: And most people HIGHLY underrate dependent types!!!!12121 22:43:09 Deewiant: Well, a couple. 22:43:13 There should be 3 according to the description 22:43:23 After which, the colour. 22:43:53 cpressey: I'd avoid IEEE floating point whenever possible, anyway. 22:44:02 Things that break mathematical laws in such ridiculously arbitrary ways upset me. 22:44:08 Deewiant: Oh, okay, there it is. The .avi version has it, the youtube one doesn't. 22:44:09 alise: I agree. 22:44:30 whereas the people that know dependent types highly OVERrate them 22:44:37 Floating point on an Apple ][+ traumatized me over the real number system for the rest of my life. 22:44:44 MissPiggy: Hey, it's not my fault they solve most problems. 22:44:52 reals are spooky 22:44:53 fizzie: If it's the one that colours a whole lot more than just the skeleton, I saw that one. 22:45:03 I was thinking about a system which has |x-y| instead of x-y 22:45:05 Deewiant: Yes, I assume it's that one. 22:45:13 Deewiant: Since the skeleton is coloured too. 22:45:18 would be cool to keep the commutativity rag up for as many operations as possible 22:45:21 Also, yay, VLC /does/ have frame advance. It's just hidden in view->advanced controls. 22:46:16 11:51:53 Hm, maybe Ruby does something like that though -- I wouldn't put it past it. 22:46:16 na 22:46:49 alise: Yeah, they're getting rid of continuations in 1.9. Because they're hard to implement efficiently. 22:46:51 Efficient. 22:46:52 Ruby. 22:46:54 HELLO. 22:47:01 no, they're not 22:47:06 1.9.1 is out, maybe even 1.9.2 22:47:09 and they reinstated continuations 22:47:14 Oh, good. 22:47:16 I think they even work across threads now, which makes them something other than useless 22:47:29 Uh. Wow. 22:48:08 AFAIK, Youtube is ~30fps, while most videos on that site are ~60fps... 22:48:27 cpressey: I know right 22:48:31 How's your http://www.youtube.com/my_speed 22:48:55 "We did not find any video playbacks from your location." 22:48:56 lulz. 22:49:03 :-P 22:49:18 * Sgeo doesn't know Ruby 22:49:36 You are lucky. 22:49:42 It is not a very good language. 22:49:44 hard to implement efficiently?? 22:49:58 Ruby is just like "yeaaa DYNAMIFUCKINGCISM" 22:49:59 what is hard abount it 22:50:01 about* 22:50:14 well maybe it's a matter of the code they already have is fucked 22:50:32 MissPiggy: I think one of the complaints was that VM's like the JVM are all, like, stack-based 22:50:49 MissPiggy: too much dynamiwoopy 22:52:26 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 Maybe this is just a good time-of-day. 22:53:28 -!- tombom has quit (Quit: Leaving). 22:53:45 My graph is very sawtooth-like. 22:54:52 MissPiggy: There are few languages more dynamic. 22:56:40 what's so dynamic about it? 22:58:05 pikhq: false 22:58:10 I love Iverson Brackets. 22:58:45 alise: Than Ruby? 22:58:52 yes. 22:59:02 Kay... 22:59:08 Languages more dynamic? 22:59:28 smalltalk 22:59:31 for one 22:59:37 "Ruby is so dynamic" is mostly marketing. Lots of languages are dynamic. It's not usually a good thing. 22:59:52 Iverson Brackets?! 23:00:03 http://en.wikipedia.org/wiki/Iverson_bracket 23:00:08 [x] = if x then 1 else 0 23:00:10 alise were you reading fortress blog? 23:00:13 [a < b] + [a = b] + [a > b] = 1 23:00:16 alise: Yes, Smalltalk is more dynamic. 23:00:19 sign(x) = [x > 0] - [x < 0] 23:00:22 MissPiggy: i was reading you mentioning it 23:00:29 Smalltalk is also... Better. 23:00:42 Oh, Kronecker delta I've heard of... 23:00:58 Python is plenty dynamic, and I curse it for being so. 23:02:22 Isn't there a Matz quote where he admits Ruby was supposed to be like 'Smalltalk for normal programmers' or something? 23:02:38 Ruby = Matzlisp. 23:02:43 I don't get ruby 23:02:47 like 23:02:49 He just decided to change the syntax at the end of its hodge-podge transformation. 23:02:50 what's the deal with ruby? 23:02:53 you know what I mean? 23:03:03 There's not much to get. Like I said, it's mostly marketing 23:03:04 that's hodge-STAR 23:03:05 " Ruby is a language designed in the following steps: 23:03:05 * take a simple lisp language (like one prior to CL). 23:03:05 * remove macros, s-expression. 23:03:05 * add simple object system (much simpler than CLOS). 23:03:05 * add blocks, inspired by higher order functions. 23:03:05 * add methods found in Smalltalk. 23:03:09 * add functionality found in Perl (in OO way). 23:03:11 So, Ruby was a Lisp originally, in theory. 23:03:13 Let's call it MatzLisp from now on. ;-)" 23:03:15 --matz 23:03:15 remove s-expression o_O 23:03:28 It's like Lisp, but get this: we take out the Lisp. 23:03:35 so basically it's a rubbish version of common lisp 23:03:39 lol 23:03:41 "Have sex with me, women! I am a genius!" 23:03:47 "I invented MATZLISP!" 23:07:27 -!- oerjan has joined. 23:07:57 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 thanks. 23:09:13 MissPiggy: S-expressions aren't essential to being Lisp. I' 23:09:30 d say macros and the idea of the code being a list are, though. 23:09:31 just the thought of /removing/ them seems bizarre to me 23:09:44 There exist M-expression Lisps. 23:10:41 hm "We did not find any video playbacks from your location." here too for http://www.youtube.com/my_speed 23:11:03 it also suggests I download google chrome for linux 23:11:09 which is strange 23:11:14 since I'm on FreeBSD atm 23:12:51 alise, ^ 23:13:00 and? 23:13:20 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 hm it does get the right small town 23:13:24 I *wish* that were strange. 23:13:25 that's scary 23:13:36 considering I have a highly dynamic ip 23:13:54 you know how perl requires a true statement at the end of modules? 23:13:59 clearly, my language should require a ∎ 23:14:09 alise, a small black box? 23:14:17 http://en.wikipedia.org/wiki/End_of_proof 23:14:29 oh hard to spot it was that here. 23:14:47 alise, also I'm more used to the outline version 23:15:00 Your mom is more used to the outline version. 23:15:12 that one doesn't even make sense 23:15:20 ∎ 23:15:26 You can use it like a rimshot, see. 23:15:37 hehe 23:18:38 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 Posies are pretty; 23:19:00 -!- MigoMipo has joined. 23:19:15 cpressey ahaha for "∎" as rimshot 23:20:18 cpressey: Or an infinite loop 23:20:22 You have to prove it's an infinite loop. 23:20:28 The proof must be at least 100 lines long. 23:20:37 Finally, some proper busywork for programmers wanting to slack off! 23:20:46 "WHAT ARE YOU DOING" "Proving" 23:21:06 Huh. DSMV is removing the Asperger's Syndrome diagnosis. 23:22:15 I knew aspergers doesn't exist!!!! 23:22:21 night 23:25:23 AnMaster: dammit i was going to comment on why uk is not a schengen member 23:25:47 gone :( 23:27:03 (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 pikhq: So hey, it's slightly more reputable. 23:27:28 Still a bunch of crap, but. 23:28:12 since the schengen zone is essentially uncontrolled internally, but with strict outer borders externally 23:29:02 s/all of the EU/all of the Schengen zone/ 23:30:00 i assume that the british commonwealth travel is somewhat controlled, but much weaker than the outer schengen border 23:30:31 how strict exactly is the outer schengen border? 23:31:00 alise: About as strict as other first-world nations. 23:32:18 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 wow 23:32:42 pretty hard to enter the eu, then 23:32:43 i'm not entirely sure of the specifics though 23:32:50 (probably easiest to enter the uk then the eu from that?) 23:33:41 alise: Can't go from UK to EU unless you can enter the Schengen zone from outside it. 23:34:10 ok then, hard to enter the EU full-stop 23:34:24 letting almost any country in the eu veto any entry is pretty steep though 23:34:27 Is this one of those puzzles, like where farmer Brown has a boat and his pig and a coyote? 23:34:38 Travelling IMMIGRANT 23:34:49 as opposed to a non-travelling immigrant 23:34:58 Also, there's not a veto system in place. 23:35:06 by "probably veto" i mean i'm not in any way sure whether the accepting country _has_ to obey a veto 23:35:21 pikhq: ok 23:35:37 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 They must also not be a threat to the security or health of a Schengen nation. 23:37:00 is the list public? 23:37:04 i wanna see i wanna see i wanna see 23:37:44 i'd guess not, this list obviously includes suspected terrorists and stuff 23:37:55 but then i've already been wrong in this discussion 23:38:05 bah 23:38:22 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 wanna see wanna see 23:39:08 The list doesn't appear to be public. 23:39:59 i wonder if you are even notified of being on the list if that's the reason you're denied entry 23:40:16 Being on the list does not necessarily deny you entry. 23:40:27 oh? 23:40:28 It's a list of people officials should look out for. 23:40:39 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 Including people that should be denied entry, people who are wanted in a country in the Schengen zone, and missing persons. 23:40:49 Solution: Take the pig across. Go back. Take the coyote across. 23:41:16 no no no you have to take the coyote first *ducks* 23:41:29 But the problem is that the coyote is on the Schengen blacklist, for obvious reasons. 23:41:44 (hint: the coyote and pig are completely symmetric in this puzzle) 23:42:06 They also report lost or reported stolen *items*. 23:42:18 Yeah, like the boat. 23:42:28 (vehicles, identity documents, firearms, etc.) 23:42:58 The list is updated every 5 minutes. 23:43:01 haskell needs a ShowHTML 23:43:05 i need italics to show this properly :( 23:45:13 alise: Dare I ask? 23:45:39 I've been having impure thoughts about serialization lately 23:46:42 distinguishing literals from free variables in this language 23:47:20 So when you have the coyote and pig on the other side, how can you go back for the ducks? 23:47:22 You could just write out HTML in your show function 23:47:49 Or better - ANSI escape codes! 23:47:57 :D 23:47:59 Then you can make it out on your terminal 23:48:07 Perhaps bolding, or inversion. 23:48:22 fizzie: You get the ducks to swim. 23:50:21 Argh. 23:50:28 Fuck you, old GHC, and your lack of UTF-8. 23:50:34 Print! PRINT! 23:50:51 fizzie: take the coyote back, then the ducks over, then go back and fetch the coyote 23:51:12 oerjan: But won't the ducks eat the pig then? Those things are nasty. 23:51:27 oh in that case there might be a problem 23:51:42 Results 1 - 3 of 3 for "duck eats pig". (0.20 seconds) -- well, maybe it's not so bad. 23:51:52 but then there is anyhow - the ducks might swim over to the pig while you're not watching 23:53:20 Yes, I hear ducks take to water like a duck to water. 23:53:49 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 won't work with 3 things the coyote eats, i think 23:55:02 ah of course pig - coyote - duck is isomorphic to the well-known wolf - goat - bag of whatever goats eat 23:55:05 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 since it doesn't matter who eats whom, you've failed anyway 23:56:11 On the other hand, if you eat them all, you're the winner. 23:56:32 yeah i was going to suggest you just eat the pig straight away 23:57:09 now we generalize this to an arbitrary graph of -will eat- relationships... 23:57:21 cpressey: ha, that ANSI code idea was brilliant 23:57:34 thanks 23:58:40 that doesn't quite extend to the cannibals and missionaries case though, since that depends on majority 23:59:34 alise: Glad it was helpful. 2010-02-13: 00:00:39 cpressey: of course, it will be rather rubbish for actually *writing* programs 00:00:41 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 Hm 00:06:03 I did a "Clear Browsing Data" thing in Chrome, but I changed my mind, and can't seem to stop it 00:06:33 AND or OR 00:06:37 which should be defined first? 00:06:41 i.e. which is more fundamental? 00:06:44 NAND 00:07:19 pkill chrome 00:07:19 duh 00:07:25 uh, i'd go with (a & b) | (c & d) if you're thinking of ordering or something like that 00:07:27 And or or = or 00:07:40 GRUNT 00:07:46 Night folks. 00:07:49 -!- cpressey has left (?). 00:07:52 night.. 00:07:53 GreaseMonkey: I mean as in fundamental definitionerition 00:07:56 oerjan: yes yes 00:08:20 i'm thinking maybe "or" 00:08:21 alise: you are aware that they are entirely dual in boolean logic? 00:08:31 which happens to be the inverse of nand 00:09:05 in boolean logic -1*-1 = -1 00:09:21 boolean logic is a LIE taught by EVIL academics 00:09:23 oerjan: of course 00:09:29 *Main> pretty conjunction 00:09:29 (⊤ ∧ α) → α 00:09:29 (⊥ ∧ α) → ⊥ 00:09:33 (where alpha is bold) 00:09:48 MissPiggy: i'm thinking that it'd actually be ...0101010101010101 recurring 00:09:50 i'ma writa terma rewritinga systema, mamaa 00:09:55 i could be wrong, though 00:10:00 conjunction :: System 00:10:00 conjunction = 00:10:00 Set.fromList 00:10:00 [ Rewrite (Structure [Atom "⊤", Atom "∧", Free "α"]) $ Free "α" 00:10:00 , Rewrite (Structure [Atom "⊥", Atom "∧", Free "α"]) $ Atom "⊥" ] 00:10:16 wait, no, -1*-1 = 1 00:10:17 -!- jix has quit (Ping timeout: 246 seconds). 00:10:23 erm 00:10:25 wrong symbol 00:10:25 >>> hex(0xff*0xff) 00:10:25 '0xfe01' 00:10:27 should be V :) 00:10:36 -!- Leonidas has quit (Ping timeout: 252 seconds). 00:10:46 no 00:10:50 no, not wrong symbol 00:10:50 :P 00:11:03 ^ being and, IIRC 00:11:35 i _do_ have this feeling and is more immediately useful though, since it allows you to collect hypotheses 00:11:43 hmm, actually, I only need Free in the left-hand side 00:11:48 on the right, it's just like any other rewriting rule 00:11:51 rewriting to the value 00:12:20 (a -> (b -> c)) <=> ((a & b) -> c) 00:12:40 argh, but the structures are almost identical 00:12:44 to make them separate types is pure madness, aye 00:12:51 -!- jix has joined. 00:13:54 *Main> pretty (Set.union conjunction disjunction) 00:13:54 (⊤ ∧ α) → α 00:13:54 (⊤ ∨ α) → ⊤ 00:13:54 (⊥ ∧ α) → ⊥ 00:13:54 (⊥ ∨ α) → α 00:14:01 (where alpha is bold on the left-hand side) 00:14:09 interesting ordering there bob 00:14:49 Ack, it's Agda! Except actually probably not. 00:14:57 It's not, it's just a tree rewriting system. 00:15:08 conjunction :: System 00:15:08 conjunction = 00:15:08 Set.fromList 00:15:08 [ Rewrite (Structure [Atom "⊤", Atom "∧", Free "α"]) $ Atom "α" 00:15:08 , Rewrite (Structure [Atom "⊥", Atom "∧", Free "α"]) $ Atom "⊥" ] 00:15:21 What ever happened to rewriting arbitrary graphs? 00:15:23 alise: so was trying that pokemon game. Got one question: how do you catch instead of fight? 00:15:31 uorygl: You can do graphs with trees! 00:15:37 AnMaster: ... 00:15:41 AnMaster: Go to the bag, choose a Pokeball >_< 00:15:46 You mean you never played Pokemon before? 00:15:46 oh I see 00:15:47 There was a bloody realtime tutorial 00:15:50 pikhq, correct 00:15:53 Didn't you watch it? :P 00:15:58 alise, what? in which one? 00:16:07 Um, someone goes hay i catch pokemon or something 00:16:10 Oh, I don't know 00:16:12 alise: I tried that; I ended up thinking for hours* and not ending up with anything. 00:16:12 AnMaster: Were you not a child in '98 or something? 00:16:14 Whatever, enjoy the game, it's good 00:16:18 * Footnote. 00:16:31 pikhq, well, yeah, I was the nerd with glasses back then 00:16:41 well wait 00:16:45 that was 1999 maybe 00:16:50 alise: It was "Oh, hey, let me teach you how to catch Pokemon!" 00:17:47 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 *Main> pretty (Set.unions [conjunction, disjunction, conditional]) 00:18:21 (if ⊤ then β else γ) → β 00:18:21 (if ⊥ then β else γ) → γ 00:18:21 (⊤ ∧ α) → α 00:18:21 (⊤ ∨ α) → ⊤ 00:18:21 (⊥ ∧ α) → ⊥ 00:18:23 (⊥ ∨ α) → α 00:18:38 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 Sapphire. 00:18:51 The "main" GBA Pokemon game. 00:18:54 They're all pretty much identical, though. 00:18:59 heh? 00:19:03 Blue. The Gameboy game. 00:19:28 Had a large number of exploitable bugs. 00:19:39 missingno is beautiful 00:19:46 Missingno was the best-known. 00:19:52 http://www.utdallas.edu/~rxf023000/stuff/missingno.jpg 00:20:36 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 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 bind any free variables, and repeat the whole process with the RHS of the rule 00:23:59 until no changes are made in one rewrite step 00:24:01 -!- Leonidas has quit (Read error: Operation timed out). 00:24:27 how do you do tree rewriting 00:24:41 like that 00:25:08 -!- zzo38 has joined. 00:25:11 There's actually 5 forms of Missingno... 00:25:18 what about maude 00:25:21 and CHR 00:25:54 That monstrosity, the Kabutops fossil, the Aerodactyl Fossil, the Ghost, and this monstrosity: http://bulbapedia.bulbagarden.net/wiki/File:000Y.png 00:26:01 MissPiggy: i'm lazy and want to do it stupidly 00:26:13 Last monstrosity Yellow-only, requires usage of the Mew glitch instead of the Old Man glitch. 00:26:14 besides, mine has unicode. 00:26:15 -!- Leonidas has joined. 00:26:17 -!- Asztal has quit (Ping timeout: 240 seconds). 00:26:19 (bug fixed in Yellow) 00:26:33 alise im writing an algebra systems 00:26:38 personal algebra sys 00:26:51 hmm, my rewriter should be a monady function for the error handling 00:26:53 as long as it isn't a grammar systems 00:26:54 and yield a list of rewrites 00:27:07 all you do is takewhile notidenticaltopreviousthingy on that to get the main reducer function 00:27:15 and last on that to get the normal form 00:27:18 why do you mean at least isn't a grammar systems? 00:27:26 15:08:29 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 my language has neither! 00:27:51 15:13:06 why not check the logs for when tusho was last seen <-- he calls himself uorygl these days 00:27:51 XD 00:28:13 my vague recollection database needs some cleanup 00:28:18 alise how do you know a rewrite system terminates? 00:28:28 not *that* language 00:28:34 alise I know a couple tricks 00:28:36 the other one, which for want of a better name is aliselang for now 00:28:39 alise: well _one_ of you better stop changing nick _all the time_ dammit! 00:28:43 oerjan: poo 00:28:44 alsie what about knuth-bendix completion 00:29:33 alise: hm i also vaguely recall discussing that takewhile notidenticaltopreviousthingy on #haskell 00:29:58 I probably was involved. 00:30:07 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 f your rewrite system is confluent fuck you 00:30:20 wait that didn't come out right 00:30:21 Either is a monad right 00:30:25 Either e 00:30:31 or was that until 00:30:32 yes yes 00:30:32 -!- zzo38 has quit (Remote host closed the connection). 00:30:33 MissPiggy: are you drunk btw :P 00:30:35 it's the only monad I have left 00:30:39 alise: Either e, but e needs a typeclass 00:30:49 oerjan: so it's not a monad in practice then 00:30:57 I just love term rewriting 00:31:06 sure it is, it's just for fail it's needed 00:31:19 what typeclass thenny 00:31:27 what are you writing thought 00:31:28 what are you writing though 00:31:29 alise 00:31:33 what are you writing 00:31:37 just a language 00:31:40 a little esolang 00:31:41 tarpit 00:31:43 rewriting tarpit 00:31:44 coool 00:31:51 like http://esolangs.org/wiki/Defcalc but better since I made it 00:31:53 i do everything better 00:32:00 alise: Error 00:32:21 oerjan: but i don't want to make Oops an Error 00:32:26 this is not really an esolang?? 00:32:27 it's a perfectly acceptable errory snowflake by itself! 00:32:31 MissPiggy: it's a tarpit 00:32:32 tarpits are esolangs 00:32:43 what do you mean it's a tarpit? 00:32:48 alise: it's for converting error messages into e 00:32:54 what, http://esolangs.org/wiki/Defcalc? 00:33:08 oerjan: fail should be in a separate typeclass :( 00:33:10 since e is intuitively the exceptional case 00:33:18 (in Either e) 00:33:44 what's meant by a tarpi 00:33:48 tarpit 00:33:49 MissPiggy: :| 00:33:58 a minimalistic language, that values minimalism above all else to the point of unusability 00:34:04 ideally, pure, condensed paradigm 00:34:10 oh like scheme? 00:34:15 no 00:34:24 Scheme is usuable. 00:34:24 like brainfuck and underload. 00:34:25 that was a joke :D 00:34:32 i was suspecting either a joke or a troll 00:34:36 but, you know, be nice alise 00:34:42 but Defcalc looks exactly like Q 00:34:42 Lazy K, Brainfuck, Underload, Unlambda... 00:34:50 which is not really considered an esolang 00:34:54 Oh, and HQ9+. 00:35:05 well it's the little niceties and efficient evaluation that make a lang not an eso one 00:35:06 (though not a *Turing* tarpit. Just a tarpit. :P) 00:35:17 ohhh 00:35:19 typed tree rewriting would be nice, nice 00:35:25 also pure is q++ 00:35:29 by the way 00:35:41 what tree rewrite programs do you do that aren't just functional programs? 00:35:47 dependently-typed typed tree rewriting + magical efficient evaluation algorithm = i'll just go retire 00:35:55 MissPiggy: well one you can do symbolic manipulation 00:35:59 so there's your CAS base right there 00:36:04 really? 00:36:08 sure, of course 00:36:15 symbolic evaluation == structure rewriting 00:36:16 I mean I switched from prolog to haskell because I wanted functions 00:36:32 two, you can do fancy syntax without any shit 00:36:54 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 why not 00:37:17 the only syntax you need is for defining rewrite rules, and parens 00:37:29 you can even implement operator associativity/precedence yourself 00:37:35 x + y + z = x + (y + z) 00:37:41 given = being rewrite 00:37:56 okay but I still don't really see it 00:37:57 for practical langs functional programming wins because you can evaluate it efficiently and the like 00:38:20 do these langauges implementaitons do things like Knuth-Bendix completion on your input 00:38:48 not that i know of it's really pretty simple to implement 00:39:20 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 rinse, lather, repeat 00:40:24 MissPiggy: http://q-lang.sourceforge.net/examples/symbolic.q an example of symbolic stuff w/ rewriting langs 00:41:39 also http://q-lang.sourceforge.net/examples/dnf.q 00:41:54 btw guys i implemented deflate in ruby 00:42:14 hmm 00:42:29 I never really learned any more compression beyond arithmetic :( 00:42:33 it's fairly easy once you've nailed the dynamic huffman coding 00:42:34 which is totally cool but it's kind of basic 00:42:45 really its' just like dynamic huffman? 00:42:59 the ones I never really got were the LZwhatevers 00:43:00 the dynamic huffman blocks are done in a very clever way 00:43:16 it's LZ77/LZSS after the huffman coding 00:43:33 366 lines baby \o/ 00:43:37 alise, that DNF is pretty much the only rewrite system I know :P 00:44:10 doesn't take much brains to understand rewriting systems, makes sense quickly enough 00:44:33 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 you just have to rewrite your brain a little 00:44:39 why would anyone bother if you don't? 00:45:36 MissPiggy: because they're fun 00:45:36 esolangs 00:45:37 #esoteric 00:45:40 that's where you are 00:46:10 I read that whole book on All About Maude and I still don't really 'get it' 00:46:41 it's just functional programming where functions are constructors 00:46:49 disagree 00:46:51 maybe that's what the game is 00:47:03 unify functions and constructors into one thing: So that the idea is much simpler 00:47:12 so it's all just terms now (like prolog) 00:48:12 but a lot simpler than prolog 00:48:24 no searching thru logicspace and whatnot :P 00:48:37 just dead simple match term against most specific rule, replace with RHS 00:49:45 oh, one useful extra rule (maybe) is to have (just inventing syntax here) a->b : c 00:49:49 so you can do, for example 00:50:00 (lambda x e) y = x -> y : e 00:50:06 i.e., "with rule x -> y, e" 00:50:19 yeah but I mean 00:50:35 the obvious approach is to just take the equations in the program and rewrite them iteratively 00:50:47 but there is some algorithms, I think, which can improve it 00:51:06 oh, of course 00:51:08 same answer (assuming a confluent system) 00:51:16 but those are equivalent implementations, i.e. theoretically irrelevant 00:51:30 for purity and simplicity you look at the dumbest implementaiton 00:51:53 i think my language is all confluent and that jazz 00:52:04 incidentally tree rewriting systems leave io very simple and whatnot 00:52:05 if you do 00:52:07 * MissPiggy wonders what happen if you do 00:52:13 x + y = y + x 00:52:16 y + x = x + y 00:52:18 in Q 00:52:37 x <- e; y = x (lambda e y) 00:52:51 x; y = x (thunk y) 00:52:59 and then you can do 00:53:07 print "hi"; print "yo"; x <- getLine; print x 00:53:08 -> 00:53:19 heh cool 00:53:34 print "hi" (thunk (print "yo" (thunk (getLine (lambda x (print x)))))) 00:53:39 well, guess you need some sort of final terminator 00:53:46 x; = x (thunk nil) 00:53:50 anyway, that can reduce to say 00:54:05 putc 'h' (putc 'i' ... etc 00:54:08 * MissPiggy is gonna reskim term rewriting and all that 00:54:20 and when the getLine reduces, it all just turns into an inert structure 00:54:25 but since you're inherently lazily evaluating it 00:54:30 (because that's what term rewriting _is_, lazy) 00:54:36 you can output and input as you go 00:54:57 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 and you have a syntactically-sugary IO system 00:55:12 can't really do that in the same way with functional langs 00:55:19 i mean, term rewriting _is_ functional 00:55:21 but you kniow what i mean 00:55:39 term rewriting is lazy? 00:55:55 well it can be 00:55:57 what if you have two rules that go to different foobars 00:56:02 K x y = x 00:56:07 K x destroyEntireWorld -> x 00:56:10 lol 00:56:12 destroyEntireWorld is never reduced 00:56:12 ok 00:56:17 yeah but it MIGHT be ? 00:56:21 why 00:56:38 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 because of K x (poop y) = ... 00:56:45 right 00:56:54 well sure 00:56:58 but that's the same way as haskell is lazy 00:57:01 you gotta force sometime 00:57:10 it's lazy enough to allow incremental io, is the point 00:58:49 you know the word problem? 00:58:58 you get a 'word' in group theory like 00:59:04 f*o*o*b*a*z 00:59:11 and you want to find out if it equals some other word 00:59:40 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 that is an undecidible problem but sometimes it is decidible 01:00:21 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 I think ? 01:01:21 yeah 01:01:24 i think so 01:01:48 (if x then a else b) using 0/1 booleans: (a-b)x + b 01:01:54 I like the idea you can specify a theory by equations, then it decides equality on it 01:01:58 w/ iverson brackets: (a-b)[x] + b 01:02:37 x=1-[x=x] 01:03:03 is that x=(1-[x=x])? 01:03:08 presumably for x = 0 or 1 01:03:18 0=(1-1), yes, but 1 /= (1-1)... 01:03:45 x=[x=0] 01:04:27 well, of course. 01:04:52 ?? 01:04:57 -!- kar8nga has quit (Remote host closed the connection). 01:05:10 obviously x=[x=0] 01:05:23 same thing as saying x = (x = true) 01:05:28 0 is true? 01:05:33 i.e. x is true iff x is true 01:05:34 that's esoteric 01:05:39 erm, right 01:05:42 obviously the negation of that 01:05:44 :D 01:06:18 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 x=[x=1] :P 01:09:32 that is actually true for instance 01:15:03 1 + Sum{i = 1..} [i <= x] = x 01:15:22 smallest interesting number 01:15:37 XD 01:18:38 MissPiggy: remind me to define my own Eq that does alpha-conversion 01:18:43 (otherwise using Set is pointless) 01:19:43 dude 01:19:53 use de bruijn indices!!!!!!!!! 01:20:09 hmm 01:20:11 maybe i will. 01:20:12 yeah, i will 01:20:24 no 01:20:27 I won't 01:20:31 because in the end, *all* atoms are variables 01:20:36 so instead of if foo then bar else xyz 01:20:40 i'd get 3 293 54 2 01:24:18 MissPiggy: if i can actually get (dependent) typing onto a tree rewriting system 01:24:24 plus an efficient method of evaluation 01:24:28 aliselang will have changed completely 01:24:50 hmmmmmmmmmmmmmmmm 01:24:53 that's an interesting thought 01:25:14 one thing you don't have to worry about is pattern match coverage 01:25:54 why not? 01:26:11 heh, interesting thing is that you can have a function of forall a. a -> ... 01:26:14 and do actual meaningful processing 01:26:19 because it's not functions 01:26:22 (since it'd let you do any rewrite) 01:26:30 it'd be a very different type system 01:26:34 only used to restrict rather than to relax 01:26:57 yeah since you have stronger conversion than normal reduction that might be nice for type checking and proofs 01:27:13 reflective proving might be possible without quotation :o 01:27:58 the thing with a tree rewriting system is that values are never magically created 01:28:06 every value exists in stasis, because it's just an inert term 01:28:40 set N = { 0, S (x:N) } 01:28:48 then S : N -> N 01:29:02 but S wasn't created by doing that 01:29:10 it was just given a more restrictive type, and added to a set 01:29:16 well 01:29:21 its "result" was added to a set 01:29:24 not the rule it self 01:30:02 * alise sticks to the convention uppercase=free variable 01:31:11 set C = { (A:R) + (B:R) i } 01:31:33 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 and lets you say 2 + 3 i 01:31:51 hmm, dunno how to do type inference 01:31:55 there's no barrier to a value being in two sets 01:33:32 MissPiggy: this is really interesting 01:33:47 yeah it is actually 01:33:49 set B = { 0, 1 } 01:33:55 set N = { 0, S (x:N) } 01:33:59 but 1 is just sugar for S 0 01:34:06 so we have 01:34:10 set B = { 0, S 0 } 01:34:13 mmm, sugar 01:34:14 set N = { 0, S (x:N) } 01:34:28 in B, S 0 I think would turn into S (0:B) 01:34:40 since S : a -> a would be defined before, i.e. 01:34:45 no matter what type you make it, it never changes the type 01:34:52 so we'd be able to infer that B is a subtype of N 01:35:05 and you'd be able to take the factorial of true :-) 01:35:53 [true]! 01:36:18 [x] = x if you have 0, 1 as booleans 01:36:27 hmm 01:36:40 you can implement optimisations inside the language!!! 01:36:49 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 MissPiggy: guards would be nice, meaning "this only actually matches the terms if" 01:37:29 alise, CHR has like 01:37:39 head <=> guard | body. 01:37:52 and guard is optional 01:38:00 but it's not a rewrite system 01:38:34 N ! | 0 < N < 2 = 1 01:38:42 N ! | N >= 2 = N * (N-1) ! 01:38:50 that way you could define N ! for negative N separately 01:39:06 because if N < 0, those rules don't match 01:39:59 map F (XS ++ YS) = map F XS ++ map F YS 01:40:00 hahah 01:40:08 you can literally translate haskell optimisation rules directly into tree rewriting ones 01:40:24 the only thing more you need is a declaration specifying "this would be clever to do at compile-time" 01:40:29 maybe not even that given a sufficiently-smart compiler 01:41:01 hmm, I guess to infer types you need something like 01:41:08 0 : B | N | ...tons of types... 01:41:40 i like this i do, i do 01:41:49 I can't make big numbers using the iverson bracket :( 01:42:01 it's stronger than mu!! this should be easy 01:42:03 i love how you can just define 01:42:06 x < y < z 01:42:08 separately 01:42:19 how come it doesn't get confused with x < y? 01:42:30 because it's more specific, i.e. you have to add less stuff 01:42:37 a free variable (i.e. argument) counts as adding stuff 01:42:41 adding parens counts as adding stuff 01:42:50 and adding parens is more serious than a free variable 01:42:59 ahh 01:43:02 so if you can choose either x < y < z or x < (y < z), x < y < z wins 01:43:03 so it's like object oriented 01:43:07 not really :P 01:43:13 it's just part of the "pick the most specific rule" 01:43:59 that sounds like OO 01:44:25 howso? 01:45:00 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 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 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 i may just be a genius 01:46:54 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 because it's just an inert tree 01:47:08 but you can have a rule, say 01:47:12 (in the compiler) 01:47:36 any name not in a set or used in a rewrite rule that matches it triggers an error and halts compilation 01:47:48 unless you add some compiler decl to say "it's okay man" 01:49:40 MissPiggy: should work right? 01:49:45 90% of the time you'll work with typed stuff 01:49:57 hmm, merd has those Foo | Bar types 01:50:10 alise these was an idea to use term rewriting in Coq 01:50:14 [[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 stuff like 0 + x --> x and x + 0 --> x 01:50:32 incidentally the Int/Integer bullshit you get in haskell doesn't exist in this lang 01:50:39 because Int would be a subset of Integer 01:50:43 the interface would be like 01:50:57 set Int = { 0, 1, ... abignumber } 01:51:05 set Integer { 0, S (N:Integer) } 01:51:16 and since 1 = S 0, 2 = S 1 = S (S 0), etc., they come out to be subsets 01:51:36 of course, it means that what's of type Int changes depending on the machine, which is worrying 01:51:38 but perhaps cool 01:51:45 programs that will overflow just won't compile 01:52:11 i'm really liking this idea 01:52:46 MissPiggy: i'm digging it are you digging it :| 01:52:47 DIG IT 01:53:24 say, we can do currying with this thing 01:53:26 Wait, is this turing complete? How can a compiler for a turing-complete language detect that something will happen? 01:53:42 f x y can be (f x) y and rewrite just fine 01:53:47 since the rewrite rule will have less parens, blah blah 01:53:49 how can a compiler really KNOW anything? 01:54:02 Sgeo: because x+y : Int is only acceptable if x+y is of type Int 01:54:19 if Int is a finite set, given the definition of addition, we obviously know the top element 01:54:32 i'm tired 01:54:51 May I assume that the compiler will complain even in cases where an overflow would never occur? 01:55:26 well you couldn't define + : int -> int -> int i don't think 01:55:36 because what is maxint + maxint? 01:55:51 it'd have to be int -> int -> maybe int, or +overflowing : ... 01:57:05 I like Fortress' syntactic heresy 01:57:12 a[x] -> a_x especially 01:58:30 Fortress is pretty cool looknig 01:58:31 MissPiggy: have you used texmacs? 01:58:32 looking 01:58:37 it looks good, maybe a good editor for my lang 01:58:42 yeah I like texmacs though it's horribly slow to use 01:58:43 what with its mathematically notation stuff 01:58:50 there's some algebra systems in it which is nice 01:59:00 slow is it? I'm installing it now so yeah 01:59:10 would be so so so cool to use it for a programming language :P 01:59:21 well if this goes well that is my plan :) 01:59:24 I want epigram mode in texmacs with all the coloring in 01:59:41 nice fancy syntactical, typed tree-rewriting language 01:59:46 it'd be so... lovely 02:00:44 will take some getting used to that (forall a b. a -> b) can actually have some meaningful values, though 02:00:46 like 02:00:53 frobnicate 0 = 72 02:01:00 * MissPiggy looks up rewriting on wikipedia -- there is a Philosophy section 02:01:08 frobnicate "a" = [00,"haberdashery"] 02:01:12 frobnicate X = X 02:01:14 Philosophy of term rewriting: What does it mean for a term to be rewritten? 02:01:18 xD 02:01:26 At what point does a term cease to exist? 02:02:25 the only thing aliselang was missing was the CAS 02:02:30 adding symbolic stuff seemed like an afterthought 02:02:37 but if I can blend Agda and Q/Pure, well, why the fuck not 02:03:19 I love sites like this http://rewriting.loria.fr/ 02:03:35 the moment you see that banner you know the authors of this site LOVE term rewriting 02:03:44 lol 02:04:09 methinks a functionalish type system for a term rewriting language will be way different to anything the haskellers have ever seen 02:04:19 for instance, if you have a rule (foo X Y), that doesn't mean that foo : that 02:04:28 in fact, you need syntax as part of the types 02:04:32 principle typing 02:04:33 GONE 02:05:10 like 02:05:14 say you want the analogue of 02:05:18 apply :: (a -> b) -> a -> b 02:05:21 it'd be 02:05:44 assuming that by (a -> b) 02:05:47 we want a rewriting term 02:05:49 not some lambda structure 02:05:53 like, apply apply should be acceptable 02:06:27 apply (x | x A : B) A : B 02:06:28 I think 02:06:33 because it's not just a -> b 02:06:37 it could be x ? y : z 02:06:39 and then x A wouldn't work 02:06:52 in fact you couldn't pass it as-is because it doesn't have one name 02:07:23 of course, the sane thing to do is just to have (λ(X Y Z) X ? Y : Z) :P 02:08:44 well, one thing's for sure 02:08:47 this language won't be more of the same... 02:09:01 we're so used to thinking of applying function-values to other values 02:09:13 but first class rules is a damn interesting idea 02:09:46 fortress's automatic parallelisation is sweet 02:09:54 that's really easy with term rewriting i think 02:10:05 since it's literally just splitting the evaluation of a term if you deem it good 02:11:53 MissPiggy: another thing tree rewriting languages can do: invert functions 02:12:01 what?? 02:12:02 since lambdas have their contents exposed, you just fiddle about a bit 02:12:04 well not all functions obviously 02:12:05 but i mean 02:12:08 in haskell functions are opaque 02:12:10 but if you have 02:12:16 set A -> B = { Lam ... } 02:12:18 in a term language 02:12:26 their bodies are just inert blah blahs 02:12:31 and you can rewrite them as usual 02:12:55 http://www.cs.tau.ac.il/~nachumd/rewrite/index.html lol this page as tags term rewriting enthusiasts are crazy 02:15:36 you could have a term like 02:15:37 err 02:15:40 i'll just give an example 02:15:43 N ! = ... 02:15:55 doc (N !) = "blah blah blah" 02:15:57 and you could do 02:16:02 doc (3 !) and get factorial's docs 02:16:04 or doc (n !) 02:16:05 etc 02:16:13 i think the type would be 02:16:28 doc : forall a b. a -> (String | b) 02:16:33 the | b being implicit i guess 02:16:37 since if you have undefined cases 02:16:42 like doc "a chicken" 02:16:46 it'll just return doc "a chicken" 02:16:49 so you'd just write it as 02:16:52 doc : forall a. a -> String 02:18:42 one thing's for sure 02:18:46 TeXmacs is beautiful 02:18:53 i love computer modern 02:20:15 yeah I like it 02:21:27 http://www.cs.unm.edu/~mccune/sobb2/ 02:23:46 haha 2 \over2 in TeXmacs shows as 2 0.5 02:24:21 Time to WinDirStat 02:24:58 90MB of free space o.O 02:26:10 MissPiggy: wow texmacs is nice, why do people use silly things like lyx 02:26:39 well i don't actually write TeX :D 02:26:56 I j ust wanted it for a GUI 02:27:26 tex is convenient for quick mathematical stuff, though 02:27:37 * MissPiggy uses paper 02:27:44 I think I should learn LaTeX 02:27:44 less quick than that :P 02:27:46 I mean quick to input 02:27:52 besides, why write A[N] when you can write A_N eh 02:30:44 admittedly what I really want is you type A[ and see A(subscript cursor) 02:30:59 then you type N and see A(subscript N with some sort of red cursor to the right indicating "incomplete") 02:31:06 then you type ] and the cursor gets big again and non-red 02:34:47 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 MissPiggy: what do you think of literate programming? 02:41:33 I LIKE it 02:42:01 MissPiggy: but do you LIKE IT like it? 02:42:12 yes 02:42:15 Why does Chrome hate Reddit so? 02:42:16 100% 02:42:35 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 Literacy for all! 02:44:22 personally i think only literates should be allowed to program 02:48:31 MissPiggy: agree or disagree: fortress sticks a little *too* close to mathematical notation 02:48:43 no clue .. 02:48:51 imo it does; it even uses |x| for abs 02:48:59 well I hate |x| 02:49:15 oerjan: Hear hear. 02:49:23 a lot of the time, mathematical notation sucks 02:49:30 because there isn't really any underlying rules, at all 02:49:38 you just invent domain-specific notation, regardless of any clashes 02:49:58 Many of the ideas in mathematical notation are decent. 02:50:08 Unfortunately, it clashes a *lot*. 02:57:27 * Sgeo now has 15.2GB free :D 02:57:40 Removing Portal and Team Fortress from my HD really helped 02:58:44 -!- Asztal has joined. 02:59:48 hmm 02:59:57 how easy is it to get real LaTeX to render in realtime, I wonder? 03:00:04 complete expressions, just... really quickly and incrementally 03:00:44 "And that, friends, is how I solved the Halting Problem." --Conor McBride 03:03:45 MissPiggy: I think I prefer having set C = {Foo (a:R) (b:R)} 03:03:48 then having 03:03:57 i as a separate thing 03:04:03 so that a + bi can be a + b*i 03:04:10 but... is having juxtaposition as multiplication really something I want? 03:04:31 no it's not! 03:04:38 right 03:04:43 but otherwise, a + bi looks ugly 03:04:46 because i has to be in text 03:04:49 (because italics = variable) 03:04:57 so you get itaaaalic bSTRAIGHT i 03:08:03 MissPiggy: so, that's one problem with tree rewriting systems 03:08:11 variable vs atom 03:08:35 huh? 03:08:40 why is it a problem? 03:08:48 if x then y else z 03:08:52 you need to mark the variables right? 03:08:53 Chrome hates Reddit :( 03:08:54 if X then Y else Z 03:08:56 in the LHS of a rule 03:09:01 so then when you go to define complex numbers 03:09:11 set C = {(A:R)+(B:R)i} 03:09:17 so your wonderful function working on complex numbers 03:09:19 has to say 03:09:24 (A + B i) 03:09:28 this is fine in ascii, absolutely fine 03:09:42 but when you go into TeX-esque land, 03:09:54 you think hey, it'd be nice if italics = variable and roman = literal 03:09:59 after all, that's how mathematics is usually typeset 03:10:00 so 03:10:01 you get 03:10:03 a + bi 03:10:05 rendered as 03:10:10 italic a + italic bSTRAIGHT i 03:10:19 and it looks unnatural and weird 03:10:20 and you are sad 03:10:58 or maybe I'm crazy and it's fine 03:11:45 MissPiggy: one thing I'd like is to have two definitions of types, functions etc 03:11:57 one is the equational definition, which is the simplest, purest form; inefficient as hell 03:11:59 and one is the runtime definition 03:12:11 the former is used for everything but the actual crunch time, making inferring things, etc. easier 03:16:24 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 int64? bah. more like \mathbb{N}_{64} 03:21:32 alise: actually i think i is usually typeset as a variable 03:21:39 oerjan: exactly, but you can't 03:21:42 because it's not a variable 03:21:48 it's part of the syntax of the rewriting rule 03:22:00 you could define set C = { boring stuff } and have i be a separate variable, I guess 03:22:06 but you wouldn't be able to pattern match on it 03:22:09 which is lame 03:23:10 ah 03:23:51 by 03:25:06 -!- MissPiggy has quit (Quit: Lost terminal). 03:46:33 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 > x:y:xs = y:x:xs if x>y; x:y:xs = x:xs if x==y; 03:46:34 > [13,7,9,7,1]+[1,9,7,5]; 03:46:34 [1,5,7,9,13] 03:46:36 pure is so cool 03:46:38 -!- augur has joined. 03:57:05 -!- jcp has quit (Remote host closed the connection). 04:02:31 That is rather cool. 04:03:28 i'm thinkin' 04:03:31 typed term rewriting 04:03:33 next big thing? 04:10:39 Maybe. 04:11:37 -!- GreaseMonkey has quit (Ping timeout: 256 seconds). 04:11:58 -!- GreaseMonkey has joined. 04:13:33 What we need is a typechecker for Thue. 04:14:03 and T::=T 04:14:07 "Oi, what? I don't think so." 04:24:09 pikhq: \mathbb{Z}_32. Bit-specified integers have never looked so classy. 04:24:48 *_{32} 04:25:09 alise: Heh. 04:26:17 oerjan: shaddup 04:26:36 also, that would be 5 bits, not 32 with usual meaning 04:28:01 oh, I forgot stupid mathematicians overloaded it 04:28:03 idiots :P 04:28:14 * oerjan cackles evilly 04:28:17 \mathbb{Z}_{2^{32}} right? 04:28:24 right 04:28:24 well that's just even classier. 04:28:52 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 \mathbb{Z}_{32 \textnormal{bits}} 04:29:07 Sgeo: aiee the pain 04:29:08 ow ow ow 04:29:32 I'm pretty sure there won't be any pain unless I end up actually donating 04:29:34 \times or \cdot for the standard multiplication operation, I wonder? 04:29:37 And even then, it's worth it 04:29:37 \cdot is lighter 04:29:48 \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 oerjan: I doubt that would be a self-test. 04:30:04 It's a cheek swab 04:30:21 oh not even drawing blood? pussies! 04:30:21 Sgeo: Coated with sulfuric acid! 04:30:29 04:31:18 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 Isn't it better to convey semantic meaning? 04:32:09 that doesn't change the fact that the output is ugly because it's too close together 04:32:47 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 er, should it be \textnormal{set } or \textnormal{set}\ ? 04:33:01 -!- augur has quit (Ping timeout: 256 seconds). 04:36:01 anyway 04:36:06 set Q = {(N:Z)/(D:Z)} 04:36:06 (A/B) + (C/D) = ((A*D) + (B*C)) / (B*D) 04:36:06 (A/B) * (C/D) = (A*C) / (B*D) 04:36:07 -> 04:36:13 \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 (just imagine something terribly pretty) 04:36:51 Render it and put it online and show us! 04:37:01 I'm trying to, but I can't get LyX to space it out some more! 04:38:06 There; using the principle of the Most Horrific Hack, I just added dummy lines in-between. 04:38:14 oerjan: \textnormal{set }foo or \textnormal{set}\ foo? 04:38:43 bah 04:39:05 wut 04:39:19 will set always be used with a space after? 04:39:31 otherwise the second seems more logical 04:41:47 well, the syntax we're expressing is "set NAME = {...}" 04:41:48 is set a command or a part of "set Q"? 04:41:51 ok 04:41:59 set as in a set set 04:42:00 as in a type 04:42:05 as opposed to "set var = val" 04:42:07 in that case it would be more logical to have set _outside_ the math 04:42:20 erm, but it's in an equation block thingy 04:42:24 i suppose that may not ... right 04:42:55 also why \textnormal and not \mbox 04:43:22 dunno, i'm really completely clueless with latex ::) 04:43:24 *:) 04:43:38 i guess the spacing may be slightly different and superioer with set}\ 04:43:42 due to italic/roman differences 04:44:46 maybe 04:44:48 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 Sgeo: you have some sort of dumping ground webspace right? 04:52:22 alise, yes 04:52:38 got 68 kilos free for a wonderful little pdf? :{ 04:52:42 Yes 04:52:58 Although I'm sure you could use Normish if you wanted 04:53:16 I'd be happy to put it on on diagonalfish 04:55:31 I don't even know if my Normish account still... exists. 04:56:37 I don't think normish accounts die 04:56:50 Does Normish exist? 04:56:50 But normish.org isn't working. THe IP addy is in #rootnomic 04:57:11 * Topic for #rootnomic is: If connecting to normish.org doesn't work, try its IP address: 209.20.80.194 04:59:33 http://sgeo.diagonalfish.net/alise/Q.pdf 04:59:37 In which a delight taking the form, 04:59:37 set Q = {(N:Z)/(D:Z)} 04:59:37 (A/B) + (C/D) = ((A*D) + (B*C)) / (B*D) 04:59:38 (A/B) * (C/D) = (A*C) / (B*D) 04:59:39 is experienced. 05:00:55 * Sgeo feels useful 05:01:55 More useful than a hedgehog. 05:06:50 Not ... SONIC the Hedgehog?! 05:07:23 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 are you _sure_ he cannot swim? maybe he's a witch! 05:12:21 let's get some ducks and compare weights. 05:13:10 I haven't seen any evidence that he can't swim. 05:13:30 i knew it! burn the witch! 05:14:48 also, the code is slightly misleading 05:15:08 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 i also sense a division by zero. 05:16:16 your mom is a division by zero 05:16:46 anyway x/0 will work perfectly fine so long as you don't try and do anything with it :P 05:17:03 O_o 05:17:09 term rewriting, oerjan 05:17:11 term rewriting 05:17:32 ok admittedly I'll probably have X/0 = some error 05:17:52 I'm rather certain x/0 works just fine so long as it's not evaluted in Haskell. ;) 05:18:00 Evaluated, even. 05:18:11 X/0 = error 'zero denominator' 05:18:16 where '...' = atom quoting 05:18:16 you're going to get trouble if you want to do theorem proving on that Q, though 05:18:19 i.e. foo = 'foo' 05:18:26 oerjan: well it's term rewriting, so you don't need to 05:18:29 how would you solve it anyway 05:18:40 you could have another set instead of Z as the denominator 05:18:49 set YeOldeZ = {1,2,...} 05:19:23 well i wasn't sure if you had left dependent types behind at the moment 05:19:28 this is a separate language 05:20:27 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 also, it's 5:20 am and I need sleep 05:22:04 sleep or loquacious prose, that's the question 05:23:10 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 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 of course a recourse 05:24:00 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 eric the half a bee! 05:24:42 well, close anyhow 05:24:49 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 about 5 tonnes. 05:26:41 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 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 now you are just abusing the fact we cannot call you insane here 05:27:46 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 FUCK YOU 05:27:53 AND THEY ARE COMING 05:27:56 THEY ARE COMING FOR YOU 05:27:59 FFFFFFFFFFFFFFFFUUUUUUUUCK 05:28:03 Y O O U U U U U O UO U U 05:28:05 U O O ---- 05:28:06 O 05:28:08 O 05:28:09 o 05:28:10 O fui 05:28:11 O 05:28:12 Fuc 05:28:15 you K k 05:28:19 AND THEN 05:28:22 n 05:28:23 o 05:28:24 t 05:28:27 h 05:28:29 i 05:28:31 n 05:28:33 g 05:28:36 . 05:28:59 i'm sure there's somewhere that would publish that. 05:29:10 signed, 05:29:11 well for a small fee, anyhow. 05:29:18 E.E. Cummingtonites 05:30:06 ALTOIDS HAVE YOU ANY IDEA STRONG HOW THEY ARE? 05:30:15 you release the woooooooooooorld 05:30:55 release the world and breathe free 05:31:18 receive everything 05:31:20 not just fire but EVERYTHING 05:31:23 okay, not everything 05:31:24 but EVERYTHING 05:31:26 the THINGS 05:31:28 you can REALISE 05:31:30 they are NOT endless 05:31:34 but they are unequivocable 05:32:24 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 to send all my bullshit your way 05:32:40 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 whew 05:33:22 BUT WAIT 05:33:22 wait, what? 05:33:23 THERE'S MORE 05:33:32 BUT YOU SAID IT ENDED 05:33:33 YOUR UNCLE IS SECRETLY A WHORE 05:33:35 I LIED 05:33:36 I DIED 05:33:37 I CRIED 05:33:39 I ESPIED 05:33:42 maaaaaaaaaaaaaaaaaaaagic 05:33:43 Order my uncle now? 05:33:46 in the aiiiiiiiiiiiiiiiiiiiiiiiiiiiir 05:33:51 peaaaaaaaaaar 05:34:00 derriere 05:34:09 antelopesque 05:34:10 * oerjan kicks alise's derriere 05:34:12 Kafkaesque 05:34:14 same bloody thing 05:34:15 RING A DING DING 05:34:20 poop 05:34:23 AND LOZENGES 05:34:25 poop 05:34:29 poop, poop AND LOZENGES 05:34:35 LOZENGES, poop poop and poop 05:34:38 spam, LOZENGES, and poop 05:34:44 aye. 05:35:08 i think a comparison to vogon poetry is appropriate at this point. 05:35:36 vogons don't drink lozenges 05:35:42 and they don't inhale spam 05:35:46 not a valid comparison, you lose 05:35:54 they _exhale_ spam. close enough. 05:36:15 don't make me kill your fam', spam-hugging man. 05:36:25 also i was going to say vogon poetry didn't reach to your knees, here 05:36:35 you're _far_ worse 05:36:41 y 05:37:02 -!- Gracenotes has joined. 05:37:36 your knees? cheese 05:37:39 fuck the authority, please 05:37:50 On the topic of esoteric languages: 05:37:52 I just realised that Boat should be turing complete 05:37:53 the bee's knees, in this case 05:38:00 can you guys verify this? 05:38:05 boats are turing complete, hoist the sails 05:38:09 OH NO IT'S SINKING 05:38:12 grab the wooden pails 05:38:13 no they aren't 05:38:17 nuclear submarines are 05:38:22 NUCLEAR FUCKING DEATH 05:38:22 because c is a nuclear submarine 05:38:26 YEAHHHHHHHHHHHHHHHHH 05:38:30 and we all know that c is the only programming language ever 05:38:49 except for python 05:38:55 but python is a scripting language 05:38:57 so it doesn't count 05:39:18 goat 05:39:26 Actually, we all know that Haskell is the only language. 05:39:26 ahahahaha goat 05:39:31 Everything else is a poor imitation. 05:39:37 Haskell and C are the same thing 05:39:38 is this what being high is like, i should just sleep less often 05:39:41 like the two calculuses 05:39:42 but not now, now i should sleep 05:39:47 alise: Yes. 05:39:59 however 05:40:04 just the two calculuses 05:40:05 pikhq: what was that a yes to 05:40:11 Hallucinations should start after 48 hours awake. 05:40:15 C and Haskell have fundamental differences 05:40:17 alise: "Is this what being high is like" 05:40:21 good to know 05:40:29 C and Haskell are coded utterly differently 05:40:30 good to Florence Nightingale the turtlefish 05:40:40 if you know what i don't mean 05:40:56 Wareya: That's because Haskell makes abstraction easy. 05:41:01 And C makes abstraction a bitch. 05:41:09 I can do abstraction in C 05:41:17 it's my whole coding style 05:41:18 Yes, but it's difficult. 05:41:21 i can eat an anus 05:41:24 doesn't mean it's easy 05:41:24 it's the only way 05:41:25 I 05:41:26 can 05:41:27 code C 05:41:31 also, caffiene 05:41:33 best drug 05:41:34 EVER 05:41:34 In Haskell, each and every function makes a new abstraction. 05:41:36 DON'T YOU WANT SOMEBODY TO ABSTRACT 05:41:39 DON'T YOU NEED SOMEBODY TO ABSTRACT 05:41:46 WOULDN'T YOU ABSTRACT SOMEBODY TO ABSTRACT 05:41:49 YOU BETTER FIND SOMEBODY TO ABSTRACT 05:41:52 alise: Go for 78 hours without sleep 05:41:53 Wareya: Well, yeah. That is a sane way to code. 05:41:54 with caffiene 05:41:55 abstract a rabbit 05:41:57 godle 05:42:00 Wareya: meh 05:42:00 Abstractions make code easier. 05:42:08 anyway 05:42:11 http://esoteric.voxelperfect.net/wiki/Boat 05:42:18 can you guys confirm if this is turing complete? :< 05:42:23 stop linking or i will never leave 05:42:30 okay 05:42:33 prove it identical to brainfuck or lambda calculus 05:42:40 All memory addressing is treated as big endian 05:42:42 no bignums? 05:42:43 you should be able to implement brainfusk 05:42:47 fixed size pointers you mean? 05:42:47 bignums? 05:42:49 arras 05:42:50 arrays 05:42:58 you can store pointers in a fixed point in memory 05:42:58 but 64-bit? 05:43:00 128-bit? 05:43:02 you can also point to pointers! 05:43:03 or infinity-bit? 05:43:04 yes 05:43:06 casting 05:43:09 which 05:43:11 you can cast to any number of bits 05:43:12 do you have infinity-bit 05:43:19 is infinity a number? 05:43:22 including 93847589347539847589347598347589347589345893457894375893475843957349853489534759? 05:43:24 irrelevant 05:43:34 CANT INFINITY 05:43:37 LOLP 05:43:44 well here i was thinking you were asking a question 05:43:50 I am 05:43:51 if you were answering mine i'd tell you whether it's tc 05:43:57 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 can i have a 409573498573984572398463874751834957298357287589175817346581732568714658734658745345-bit number 05:44:00 you can store a pointer in negitive addressing 05:44:05 answer that 05:44:10 and add/subreact to the addressing 05:44:12 yes alise 05:44:20 and use the pointer as normal 05:44:22 does it have flow control 05:44:34 you have if tests and while loops and 2D goto 05:44:44 80% probability of tc 05:45:00 _if_ you have unbounded memory 05:45:11 if he has such big pointers and they work it's unbounded prolly 05:45:16 Wareya: I'm pretty sure that's TC. 05:45:28 awesome 05:46:23 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 "+" = `a`[`b`] = `a`[`b`] + 1, "-" = `a`[`b`] = `a`[`b`] - 1, ">" = `b` = `b`+1, "<" = `b` = `b`-1, "[ ... ]" = %(`a`[`b`] != 0){ ... } 05:47:06 Okay, proved it's TC. 05:47:12 but 05:47:21 I don't have variables anymore 05:47:26 (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 halp 05:47:56 Wareya: how do you use unlimited memory in a single program 05:48:07 malloc 05:48:17 oh you have malloc? 05:48:24 no, but 05:48:26 so it's a boring conventional ish language then 05:48:27 yawn :P 05:48:33 heh fun consequence of my language 05:48:35 hex literal: 05:48:40 DEADBEEF[16] 05:48:42 can you figure out why? 05:48:47 hint: array indexing 05:48:50 the interpreter should allocate as much memory as the program asks for, dynamically 05:48:57 like if it comes to a pointer to 0x5000 05:49:08 Wareya: i am of course asking how you _refer_ to unlimited memory if bit sizes must be given 05:49:11 and it used to have a pointer to -0x50 05:49:29 then you should have a 0x5050 sized memory array 05:49:35 Oh, it handles memory just like BF does 05:49:58 that or I don't understand what you're asking 05:50:01 infinite tape? 05:50:04 yes 05:50:08 infinite tape 05:50:15 moving backwards and forwards? 05:50:20 yes 05:50:21 pikhq: you tell me 05:50:24 c'mon, before I sleep :| 05:50:29 hex literal: 05:50:29 DEADBEEF[16] 05:50:29 can you figure out why? 05:50:29 hint: array indexing 05:50:32 ok then 05:50:43 -!- augur has joined. 05:50:57 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 I mean 05:51:00 alise: Uh. 05:51:06 pikhq: hint: mathematical notation 05:51:12 refer to an address with a value inside of an address 05:51:34 alise: You're just specifying the base? 05:51:51 Well, yes... 05:52:17 I'm being dense ATM. 05:52:21 I should go to bed soon, myself. 05:52:54 pikhq: Okay, I'll just tell you. 05:52:59 DEADBEEF_{16} 05:53:03 Has it clicked yet? 05:53:19 Grraaaw. 05:53:21 Yes. 05:53:36 a[n] = array indexing = a_{n} 05:53:41 foo_{base} = mathematical notation = a[n]! 05:53:43 :D 05:53:54 I got it 05:54:07 Wareya: you are a clever person, you win 05:54:09 not at something 05:54:12 you just 05:54:12 win! 05:54:16 Jumping from math notation to programming notation and back hurts. 05:54:20 I understand that almost 05:54:23 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 yoyoyoyo sleep 05:54:44 I'll adress memory character 0xF00(16) instead of 0xF00[16] 05:54:46 seeya tomorrow bitchnizzles 05:54:48 night 05:55:00 (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 q(n)(y) 05:55:20 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 q(n)[m] 05:55:42 clearly it should be 16[DEADBEEF] 05:56:03 or actually 05:56:07 q 05:56:41 no wait those are my direction commands 05:56:46 I guess I'll change those 05:57:20 fuck 05:57:25 I ran out of closing characters 05:57:36 I'm using all of ({[< for other things already 05:57:54 "' too 05:58:03 -!- zzo38 has joined. 05:58:09 hi 06:01:05 oh, you can't use {} in the middle fo expressions or calls 06:01:47 awesome 06:02:19 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 until there's nothing left? 06:03:48 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 Oh, erm, e's not awake. Hope e has pings silenced 06:21:50 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 ais523 does not appear to be connected 06:48:12 That has what, exactly, to do with confusing anyone, or pinging al!se? 06:48:26 No. 06:48:30 Sorry, didn't mean to get snippy 06:48:41 That's OK. 07:26:18 v 07:26:39 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 erm, by v, I meant Night all 07:27:12 lol 07:27:16 hey alise! 07:27:18 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 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 hi 14:11:29 * alise decides he wants ℵ_0 as a value in his language, just because it's cool. 14:11:49 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 and I like it 14:13:11 I lik that! except remove the commas 14:13:17 why? 14:13:18 ⟨a b c d e⟩ 14:13:22 ^ SEX ON WHEELS 14:13:50 ⟨Foo "goatee", Bar "emasculate"⟩ 14:14:06 is far too common to make uglier as ⟨(Foo "goatee") (Bar "emasculate")⟩ 14:14:30 (and more confusing; is that ⟨( or (( or ⟨⟨ or (⟨?) 14:14:43 they look more different in latex at bigger sizes, yes, but still 14:18:13 hmm 14:19:08 (S : a -> a) seems too relaxed 14:19:21 (s : s -> s) 14:19:31 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 but (a -> a) is "anything to anything" 14:19:44 which simply isn't true 14:22:47 -!- oklopol has joined. 14:24:56 MissPiggy: is set Z = {n:N, -(n:N)} a good "theoretical" definition, do you think? 14:25:18 i.e. the set Z contains values of type N, and -(a value of type N). 14:25:20 what context 14:25:28 i would never read a log 14:25:33 a proglang I'm inventing that's pretty unique for once 14:25:39 term rewriting, just so you hate it :) 14:25:43 but typed term rewriting 14:25:46 guess what i'm doing 14:25:48 it's pretty smexy 14:25:49 guess! 14:25:52 logreading 14:25:55 well i do love smex 14:25:56 nope. 14:26:11 smexing? 14:26:17 oh definitely not 14:26:45 let's just say i hate parsing 14:26:56 alise, in set theory N u {0} u -N works, but in type theory seems better to use binary numbers 14:26:59 i should learn to use some parsing tool 14:27:02 preferably a human 14:27:05 who can read my mind 14:27:13 alise just in terms of getting good algorithms 14:27:15 MissPiggy: you mean to define N or Z? 14:27:23 Z 14:27:23 Z 14:27:31 right, well, this is part of my grand plan to have "semantic definitions" and "runtime definitions" 14:27:54 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 the former holds for all compile-time reasoning, and the latter holds at runtime 14:28:15 of course, having them be equivalent is... not really enforceable 14:28:33 everything is doable if you're drunk enough 14:28:37 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 really?? 14:28:52 really what? 14:28:59 well i know you have some ideas for making it faster 14:29:05 all I know is the really dumbtarded algorithm :) 14:29:44 did you know term rewriting rhymes with sperm rewriting 14:30:09 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 it's like explaining math to a monkey 14:32:09 oh wait 14:32:14 i just realized this is trivial to parse 14:32:24 apparently the guy who made this language is a genius 14:33:12 what lang 14:33:17 clü 14:33:23 also you're CODING?! 14:33:45 yes! 14:34:02 i even like some of it, unfortunately i'm too tired to do anything complicated enough that i'd enjoy it. 14:34:17 hmm maybe i should have my fundamental definition of Q be the Stern-Brocot tree 14:34:25 otherwise i have 1/2 and 2/4 14:34:44 I guess a/b aka \frac{a}{b} should be : R -> R -> Q 14:35:20 and you could use the john gabriel tree for the definition of R 14:35:43 R -> R -> Q? 14:36:19 you're a mathman. 14:38:38 * oklopol watches alise turn in her grave as he writes a separate tokenizer 14:39:28 at least you used to consider that a sin, methinks 14:39:42 at least unless you're writing your parser manually 14:46:03 oklopol: i'm so much of a mathman that the preferred representation for the language actually has them in blackboard bold 14:47:14 i'm just wondering about the types 14:47:41 you do know R is closed under division (well almost)? 14:47:48 well umm 14:48:00 that's not actually what we need here 14:48:16 but clearly for all elements division by them is a surjection 14:48:26 to R 14:48:44 wait wait wait 14:48:48 are we talking about this 14:48:48 http://knol.google.com/k/john-gabriel/are-real-numbers-uncountable/nz742dpkhqbi/10# 14:48:50 john gabriel 14:49:00 yeah he's my idol 14:49:08 he's one total dude 14:49:34 yeah, if you use R in your programs 14:49:39 you'll get an approximation by default 14:49:55 unless you want to sacrifice equality checking, I guess 14:50:01 could you answer: did you suggest R -> R -> Q as the type of division 14:50:13 no, as one type of division 14:50:22 specifically, what you'd use to construct Qs 14:50:31 given that the internal constructor wouldn't be exposed 14:50:53 you could just contruct the Q from one R 14:51:34 well unless R's play some sorta special role 14:51:51 like 5 :: R and shit 14:52:05 why just one R? 14:52:17 obviously I'm going for human-happiness here, and \frac{1}{2} should, you know, work 14:52:29 it's not the internal constructor, that's the Stern-Brocot tree 14:52:34 just the thing that, you know, humans actually use 14:52:45 i'm just wondering why not N -> N -> Q 14:53:32 -!- Pthing has joined. 14:54:22 oklopol: err of course 14:54:25 i'm pretty fucking stupid 14:54:32 was thinking of R -> R -> C :-) 14:55:16 oh i see 14:55:24 i have just woken up and all 14:55:51 the natural field extension i presume 14:56:00 the natural extension of your mom, inded 14:56:02 *indeed 14:56:26 actually the way I was thinking of having C a subset of R was 14:56:37 are you implyinh my mom is the splitting field of her own legs 14:56:40 inert i 14:56:41 *implying 14:56:51 set C = {(a:R) + (b:R) i} 14:56:52 then 14:57:03 0 : C 14:57:09 0 = 0 + 0 i 14:57:21 and then 14:57:23 C a subset of R? 14:57:27 S : ...hmm, wait 14:57:29 oklopol: er, superset 14:57:34 I was thinking, just like define 0 and S on it 14:57:43 but that isn't really enough for the compiler to believe it's a true superset 14:58:05 anyway take a break and admire my beautiful rich syntax: 14:58:13 http://dl.dropbox.com/u/2164436/booleans-and-naturals.pdf 14:58:14 there's such a natural embedding of R to C that most people don't even know it's an embedding 14:59:42 In most functional languages, youfd expect S : a ¨ a to mean that S takes a value of any type, 14:59:42 and returns a value of that same type 14:59:57 yeees? 15:00:03 wait a mo 15:00:15 term rewriting, so terms are arbitrarily extensible 15:00:22 and...things 15:00:36 blergh, hard to put this into words 15:00:43 functional programming plus symbolic computation by the same mechanism, fuck yeah 15:00:45 oklopol: do go on :P 15:00:48 maybe i'll just say nothing 15:00:55 no please do 15:01:21 well err 15:01:50 I don't really LIKE term rewriting 15:02:18 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 what I LIKE is giving an equational theory, and then having the compiler design an algorithm which decides equality on that 15:02:27 or maybe it decides unification on it 15:02:35 stuff like that you could use really well 15:02:51 basically that's really saying nothing 15:03:27 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 no that isn't what it says 15:03:55 because, for example 15:03:58 S "a monkey" will fail 15:04:04 because there's no S : String -> String 15:04:15 S : a -> a is merely a *constraint* on what types you can endow S with 15:04:20 well right 15:04:22 that is, they must be of the form a -> a 15:04:36 that way, you can use S in other parts of the program on variables, as long as you obey the rull 15:04:38 *rule 15:04:44 plus2 x = S S x 15:04:49 plus2 : a -> a 15:04:57 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 defining S : b -> b gives us plus2 : b -> b too 15:05:09 and yes, it isn't 15:05:13 that's why I explained the difference. :P 15:05:25 and that's why i said maybe i should say nothing 15:05:26 :D 15:06:41 so what exactly is this thing 15:08:27 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 and it's typed. 15:08:49 do you get what I mean about equational theories 15:08:55 not really 15:09:05 if you specify like 15:09:16 (a [] b) [] c = a [] (b [] c) 15:09:27 it should work both ways 15:09:36 infact you shouldn't care which way around it's written 15:09:37 two-way rewriting 15:09:40 the two things are identical 15:09:57 right 15:10:03 that's the same thing as 15:10:09 the fact that (a [] b) [] c --> a [] (b [] c) normalizes terms in this theory is just a coincidence 15:10:11 (a [] b) [] c = internal3 a b c 15:10:16 a [] (b [] c) = internal3 a b c 15:10:44 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 yeah you could say it's normalization 15:12:10 what i'd want is a two-way rewrite system, and a nice system for adding your own heuristics 15:12:13 well if you don't execute it and just do properties and proofs and transformations 15:12:18 then one-way rewriting doesn't exist, it's all two-way 15:12:22 one-way is just a choice of how to evaluate it 15:13:00 the problem with specifying an equational theory is that it's usually undecidible 15:13:16 that's not a problem 15:13:20 the problem is it's slow 15:13:35 well okay 15:13:54 i suppose it is a problem, but (insert argument) 15:14:44 I guess it would be nice to be able to say S : Num a => a -> a 15:14:52 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 for ascii, dunno 15:18:02 i'm starting to care stunningly little about the ascii representation 15:20:31 -!- FireFly has quit (Quit: Leaving). 15:20:32 typeclasse are so suck 15:20:40 yeah 15:20:54 Maybe this is where I should introduce dependent types 15:20:57 im trying to prototype a CHR typeclass replacement but haskell doesn't have a decent CHR 15:21:23 S : {Num a} -> a -> a 15:21:34 where Num : Set -> amodulething 15:21:37 but ehh 15:21:43 I'm bobbing along fine without them atm 15:22:04 -!- FireFly has joined. 15:25:01 -!- tcsavage has joined. 15:29:30 MissPiggy: is big-{ containing (foo when condition\nbar otherwise) a good notation for guards, do you think? 15:29:37 or should it be part of each definition like pattern matching 15:30:12 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 alise you should make a wiki 15:58:20 for this lang? 15:58:29 for everything 15:58:46 yeah the alise wiki, where people can do your projects 15:58:54 MissPiggy: why 15:59:03 i answered that already 15:59:59 not a good answer tho :P 16:00:52 well EXCUSE ME for being completely useless 16:01:02 And it should be a Hackiki wiki. 16:01:07 :P 16:01:36 how do you pronounce "hackiki", the way i do it sounds like some sorta exotic animal 16:01:46 or like an african melon-hunting tribe 16:01:53 Hack-ee-kee 16:02:05 latexwiki would be fun 16:02:12 not just latex blocks 16:02:13 the whole thing is latex 16:02:18 we just spotted some wild hakiki in the forest 16:02:44 LatexWiki - the free latex fetish encyclopedia 16:02:45 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 >_< 16:02:47 Gregor: emphasis on which syllable? 16:02:53 hmm 16:02:56 oklopol: The first kee 16:02:57 not sure there are choices really 16:03:01 yeah 16:04:56 ugh, the ascii representation is so boring 16:06:50 Fortress and Q and Pure are just so cool 16:11:34 * alise decides that the unmatching [/) interval syntax is barfworthy. 16:15:42 how about [0, 1[ ;) 16:16:09 aieeeeeeeeeeeeeee 16:16:13 maybe "[5, 7] right exclusive and left inclusive" 16:16:48 ouch 16:16:48 i should check out one of those languages 16:16:57 (if they're hip and cool) 16:17:03 check out all three. (pure is q's successor) 16:17:28 * alise ponders having T^n = <(T,)*n> 16:17:29 once i finish this parser 16:17:37 i.e. R^3 = 3d coordinate, 16:18:10 R_{2^{64}}^3 = 3d coordinate using 64-bit reals (prolly floating point) 16:18:36 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 why would a^b be a function from b to a? 16:19:01 I have -> for that 16:19:40 how dare you question how mathematics usually defines it 16:20:20 also what's up with hcf nowadays 16:21:55 totally dead man 16:21:58 _[_] : Array_(d,a) -> N_d -> a 16:22:05 the ascii form of this language is somewhat ugly 16:23:11 erm, *N^d 16:23:19 I like that 16:23:23 hmm 16:23:30 why does it take an array of indices? 16:23:35 tuple 16:23:42 because array is N dimensional 16:23:47 for a 2d array it'd be 16:23:47 ahh 16:24:00 of Rs, say: 16:24:03 i thought you mean N_d as in integers mod d 16:24:10 right right _ was a mistake 16:24:11 ^ i meant 16:24:12 in which case it would've been like a finite array 16:24:14 _[_] : Array_(2,R) -> N^2 -> a 16:24:25 *-> R 16:24:30 err, yes XD 16:24:44 anyway without that syntax for constructing tuple types you couldn't even write that function! 16:24:45 so I like it 16:25:10 oklopol: also I'm considering using N_d = integers-mod-d to do fixed-size ints 16:25:19 after all, N_(2^n) is an n-bit natural 16:25:20 you totally should 16:25:21 in fact 16:25:25 also N is naturals not ints :P 16:25:38 so N_(2^n) = uintn and Z_(2^n) = intn 16:25:41 you should have X_u defined as X/uX in general 16:25:51 hmm 16:26:01 what would 100N mean? 16:26:05 i'm dense atm, forgive me 16:26:15 100 * n for n \in N 16:26:44 also, I need to use a_x for set arguments 16:26:51 like before, Array_(2,R) 16:28:05 then C = R[x]_(x^2+1) :P 16:28:12 although I guess Array 2 R would work, I can't think how to prettify that with LaTeX 16:28:15 oklopol: wat. 16:28:42 hmm 16:28:47 latex is not so good at juxtaposition 16:28:52 "Array d a" looks like Array da 16:29:49 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 and x^2 + 1 = 0, so in fact x = i 16:30:22 i think you just took my language and force-fucked it into esotericness 16:30:22 i'm learning field theory atm, i hope it doesn't show. 16:30:28 i may sue you. 16:30:31 :D 16:31:38 * alise wonders whether to have a <> unit type 16:35:03 so 16:35:13 * alise can't figure out how to do ⟨⟩ in texmacs :( 16:35:14 tt : 1 16:35:18 or maybe not... 16:35:23 MissPiggy: in my lang you mean? 16:35:38 1 isn't a set, but certainly tt : set-of 1 16:35:39 since ff, tt : 2 work 16:35:48 wut 16:38:19 wut 16:38:22 wuuuuuuuuuut 16:42:18 you know, I don't think 1-tuples make any sense 16:42:28 so should a^1 = a?? 16:42:38 if so, then having a^0 be <> seems inconsistent, if ^1 is the "base" 16:44:00 in math we usually identify (a,(b,c)) and ((a,b),c) 16:44:20 like completly implicitly, there's probably generations of people that haven't even thought about it 16:44:29 same with (a) and a 16:44:50 I don'tsee a problem wth a^0 as unit 16:44:54 since you might define 16:44:57 a^0 = () 16:45:06 a^(1+n) = a * a^n 16:45:07 but 16:45:10 a^0 = a 16:45:12 erm 16:45:13 a^0 = <> 16:45:15 a^1 = a 16:45:17 a^2 = 16:45:19 a^3 = 16:45:21 see the "gap"? 16:45:23 that's weird 16:45:53 no 16:46:00 a^1 = <> * a = 16:47:12 But does make sense? 16:47:14 It is, semantically, a. 16:47:27 And I think it's a rather pointless type to have. 16:47:59 Anyway, <> looks ugly, syntactically. :P I think I want a separate unit type... 16:53:18 identification of things is a complex subject, says SICP 17:03:07 Have you read your SICP today? 17:03:50 well 17:03:51 no 17:03:57 i'm sorry 17:10:00 MissPiggy: so do you think <,c> should = ? 17:10:13 if a^n = a * a^(n-1) 17:10:13 -!- Sgeo has joined. 17:11:19 alise not sure, it's a lot different in programming 17:11:26 than on paper 17:11:39 tupelem : a^n -> N_n -> a 17:11:54 alise, taking any pictures this weekend? 17:12:05 Ah! 17:12:13 I will do that tomorrow; it completely crossed my mind on Friday. 17:12:17 Erm, completely didn't. 17:12:18 Cross. 17:12:27 Remind me. :P 17:12:44 (but a legal investigation seems more likely than moving at the moment0 17:14:30 *) 17:14:54 Why was this so useless?: http://i.imgur.com/ClzRm.png 17:15:21 Although actually, some stuff does seem faster now 17:15:21 You did stuff while fragmenting. 17:15:22 Don't. 17:15:24 *defragmenting 17:15:26 Sgeo: placebo 17:15:41 Hm 17:16:08 If stuff is accessing stuff, it can't move that stuff. 17:16:19 So close everything, run the defragmentation, and go for a walk. 17:16:22 Or just keep it fragmented. 17:16:29 I tried to let it run overnight 17:16:37 When I woke up is when I started doing stuff 17:16:38 Then I dunno. 17:16:45 [although I did leave my browser open on one page] 17:16:53 That wouldn't have such a dramatic effect. 17:17:20 And "doing stuff" when I woke up [and it was still going] came down to visiting a few pages 17:19:41 that's one naughty pic 17:20:27 Sgeo: if you touch the HD *too* much, defragmenter restarts 17:20:29 but if it's done it's done 17:20:31 so... dunno 17:21:03 When I started touching stuff, it said something like, 30%, Compressing files 17:21:10 Don't know if that counts as a restart 17:23:07 don't think so 17:27:40 I'll try again tonight, I guess 17:28:36 hmm 17:28:44 if you have {1,2,...} and {0,1,2...} what should you name them? 17:28:51 if you have just one obviously N is the right name 17:29:48 -!- MissPiggy has quit (Quit: Changing server). 17:30:16 N* is used for "N without 0" in at least two contexts 17:30:21 (that's not one of them tho) 17:30:33 -!- MissPiggy has joined. 17:30:44 oklopol: :D 17:30:58 errrrrrr 17:31:06 s/N/X/ :) 17:31:19 what's N_+ 17:31:24 i could look it up 17:31:26 but poop! 17:31:49 Z_+ and Z_- are used for... i don't know if the zeroes are there actually 17:32:05 N_+ i haven't seen 17:33:25 maybe Z_+ then 17:33:33 don't remember 17:33:57 that would make sense, but shuold check if 0 is usually there 17:34:24 oklopol: apparently N* is in fact used to mean N without 0 17:34:28 for the naturalz 17:34:32 ah, cool 17:35:09 wasn't one of the two i knew, didn't actually know it isn't used for it 17:36:15 it's just one of the meanings i know "makes sense" for N, and N* = {1} 17:36:26 oh wait... 17:36:33 so what kind of * is it, I wonder 17:36:36 since when is N a ring :P 17:36:53 my head is out shopping today 17:39:58 (c=>x; d=>y; e=>z; otherwise) is a nice conditional syntax 17:40:25 i keep almost speaking finnish here 17:40:35 head hurts again 17:40:39 i think i'm dying or something 17:41:02 it hurts almost every week 17:41:10 see a dawktore 17:41:16 yeah right 17:41:23 thought not 17:41:27 :D 17:41:29 well i might 17:41:37 or maybe not 17:41:39 dunno 17:45:10 _\circ is a rather nice hole char for multifix 17:46:07 what's \circ? 17:47:18 circle thingy. 17:47:29 you know, like a big big . filling a whole letterspace, but hollow. 17:47:31 a circle. 17:48:06 oh i see 17:48:11 makes sense 17:48:55 they're subscripted so as not to clash with the operator text 17:49:03 and you can think of specifying an argument as "filling the circle in" 17:49:46 http://dl.dropbox.com/u/2164436/if-then-else.pdf 17:49:46 dig it. 17:50:47 PDF WARNING!!!!! 17:51:06 I always think of \top and \bot as sets though.. 17:51:12 tt and ff as values 17:51:18 pdf warning my arse 17:51:19 looks weird but idk 17:51:27 nothing wrong with pdfs 17:51:30 I know :( 17:51:37 are you using adobe reader or sth? :p 17:51:47 you might be right about \top and \bot 17:51:49 im just complaining about how stupid reddit is 17:51:51 they aren't sitting well with me, either 17:51:53 ah ok 17:52:08 I'd be more coolie about tt and ff if they, say, had a fancy ligature 17:52:16 it's gotta be in unicode, right? 17:52:16 ehehe 17:52:26 don't overuse unicode 17:52:32 MissPiggy: of course if i'm using names i could just call them, you know, true and false 17:52:41 they letters on the keyboard are the easiest ones to type 17:52:47 also, the main syntax for this language is two-dimensional using things like blackboard bold 17:53:01 of _course_ it needs a specialised editor (or just use the ascii->that converter) 17:53:26 you shouldn't have to be writing a research paper to get beautiful code ;) 17:53:28 *:) 17:54:02 * alise wonders how to represent _\circ in the ascii form 17:54:08 maybe if()then()else() 17:54:28 MissPiggy: any reason to use tt/ff over true/false? 17:55:06 or just 0/1 :P 17:56:00 shorter 17:56:02 I:) 17:56:08 wut 17:56:10 ah 17:56:10 true and false are probaly best 17:56:32 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 why do you want something as horrible as if-then-else- ? 17:57:09 bool : a -> a -> B -> a 17:57:13 yeah you horriblophiliac 17:57:14 ^ is better 17:57:20 MissPiggy: not for imperative code 17:57:30 imperative doesn't exist 17:57:32 and not for if x then let ... in ... else ... 17:58:03 "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 "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 "The constants for true and false are t and f respectively." 17:59:06 haha 17:59:13 okay double haha 17:59:21 oh wait just one 17:59:28 coppro: C++0x, I presume! 17:59:36 alise: :P 17:59:44 I just made that up and thought it would be amusing to share 18:00:02 It should become a language 18:00:06 coppro: i's hucking brillian 18:00:09 Filled with absurdities like that 18:00:24 it should be called javascript 18:04:33 dependent types + tuples with names for their args = module system methinks 18:05:59 Functor : * -> * -> * 18:06:09 Functor f a = b) -> f a -> f b> 18:06:10 right? 18:06:16 then you'd do 18:06:53 Functor_List : Functor List 18:07:19 Functor_List a = 18:33:54 -!- Asztal has joined. 18:49:15 -!- coppro has quit (Remote host closed the connection). 18:49:27 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 in any case, clue parser parsed its first baby 18:49:47 \o/ 18:54:38 -!- SimonRC has quit (Ping timeout: 265 seconds). 18:58:33 oklopol: is that the guessing clue thing 18:58:33 omg 18:58:34 omg 18:58:37 have my babies, the clue babies 18:59:23 yeah it's the guessing thing 18:59:29 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 fn A E X = (A = X) : E 19:05:57 I wish that worked 19:06:15 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 I need a quote/unquote thingy to do that :P 19:06:31 (rule : E is e-with-rule) 19:06:52 (so "+ X Y = ..." called is like (X = val) : (Y = val) : ...) 19:14:34 i really want reversible parsers 19:14:49 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 you know what? 19:17:24 i'm gonna fuckin' write it 19:17:26 uhh wait 19:17:27 one thing first 19:17:37 oklopol: ask the little copy of oerjan in your mind if it's possible 19:25:47 i only use my copy of oerjan for good 19:26:07 oklopol: hey this is good 19:26:12 you don't have to write pretty-printers ever again! 19:26:31 2parse or not 2parse, that is the question! 19:27:51 haha man, conor mcbride is like 19:27:53 a copy of me 19:27:57 do you think i should make a syntax for the functional language to which clues are compiled 19:27:58 i mean 19:28:01 he's more intelligenterer but he has like 19:28:05 exactly the same programming language interests as me 19:28:06 oh shit water boils 19:28:13 IT DOES 19:28:19 oklopol: also yes 19:28:24 make it the inverse lambda calculus 19:28:54 lambda calculus puts values in names, then uses those names in a new value 19:29:11 inverse lambda calculus looks up names for values, then extracts those names from a value 19:29:14 make it now 19:30:45 I need a graph lambda calculus 19:31:03 hmm, it would definitely be cool to see what kind of algorithms this thing generates 19:31:30 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 but maybe it's not 19:32:53 oklopol: i presume you're not talking about the inverse lambda calculus :) 19:33:29 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 not sure what the result of the extraction is, though 19:34:35 so, really, LC is (name=arg) in body 19:34:56 basically in LC what we work with are values, and names are just helpers 19:34:59 i was thinking something like a haskell syntax 19:35:05 in inverse LC we only have values so we can find names 19:35:20 the question is, how do we get a name from a value? 19:38:41 ok, so my parser combinator library will be based on applicative functors 19:39:12 with most parser libraries all you need is syntaxbits -> ast 19:39:20 like varname,funcbody -> ast 19:39:30 but in this we need ast -> varname,funcbody as well 19:39:42 so, maybe we can derive that. 19:40:19 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 okay these now parse and compile: http://www.vjn.fi/pb/p351446645.txt 19:42:21 syntax complaints? 19:42:22 i think that this is sexy. 19:42:26 wow lol 19:42:36 oklopol: well one i'd add more unicode, i take it _that_ won't be accepted 19:42:39 why is there two :.'s ? 19:42:49 in foo ~ ; baz; quux i'd use commas, not semicolons 19:42:51 MissPiggy: two different examples 19:42:57 not actually very useful for this simple things 19:43:12 what 19:43:18 in fib there is :. twice 19:43:18 why 19:43:27 MissPiggy: clue :: [(input,output)] -> (input -> output) 19:43:30 i just gave it two examples. 19:43:32 well, + some hints 19:43:36 fib ~ {:. 8 -> 21 19:43:36 : 6 -> 8 19:43:37 : 7 -> 13 19:43:37 :. 7 -> 13 19:43:37 : 5 -> 5 19:43:39 : 6 -> 8} 19:43:42 why is :. there twice?? 19:43:43 yeah so 19:43:59 well, it's because i gave it two examples :P 19:43:59 but 19:44:00 it looks like 6 examples in two groups, what are the groups? 19:44:05 no 19:44:16 -!- cheater3 has joined. 19:44:18 two examples, it's just you don't separate them. 19:44:20 UR LANGAUGE IS TOO HARD 19:44:38 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 how is that not 6 examples? 19:44:55 basically that's (:. stuff : stuff : stuff), (:. stuff : stuff : stuff) 19:44:59 well because 19:45:01 I thought an example was an input output pair 19:45:01 i'm confused 19:45:07 the ":"'s are subexamples 19:45:11 for the :.'s before them 19:45:12 -!- cheater2 has quit (Ping timeout: 258 seconds). 19:45:13 what is a sub example? 19:45:17 what's :. 19:45:18 presumably it's two calls 19:45:21 reducing fib downwards 19:45:28 what the recursive calls should return 19:45:35 and what their inputs should be 19:45:36 thought so :D 19:45:41 yarr 19:45:47 80-1 = 7 19:45:50 8-2 = 6 19:45:53 so you have 8 6 7 on the LHS 19:45:57 *8-1 19:46:00 to show how the recursive call goes 19:46:09 -!- kar8nga has joined. 19:46:09 7->13, biggy so you know, show how dat be done 19:46:22 :. IOP : IOP1 : ... : IOPn means find code for IOP, use all of IOPi's when deriving output value 19:46:30 otherwise, clue wouldn't know when to recurse downwards 19:46:34 it'd just have a shitload of numbers 19:46:42 and oklopol isn't quite clever enough to reverse that :) 19:46:58 -!- Pthing has quit (Remote host closed the connection). 19:47:08 and yeah i think you're getting it right 19:47:18 especially the not clever enough part 19:47:20 oklopol wuuuuuuuuuut 19:47:35 MissPiggy: okay. let's look at this 19:47:40 fib ~ {:. 8 -> 21 19:47:41 : 6 -> 8 19:47:41 : 7 -> 13 19:47:44 fib(8) = 21 19:47:45 http://www.vjn.fi/pb/p351446645.txt 19:47:48 fib(8) = fib(6) + fib(7) 19:47:52 so, we show that 21 is the result 19:47:53 excuse me?? 19:47:58 and then show it descending into fib(6) and fib(7) 19:48:08 8+13 = 21, so 8 -> 21 shows how you add the two recursions 19:48:09 oh I see!!!!!!! 19:48:12 then we start a new example, for 7 -> 13 19:48:14 I understnad CLUE!!!!!!!! 19:48:20 and ANCHOVIES!!!! 19:48:25 this makes sense 19:48:28 when you have 19:48:54 :. a -> b : a'_i -> b'_i 19:49:19 it means that f(a) = b = G(f(a_0),f(a_1),...) 19:49:22 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 where G is the recursive case it's solving for 19:49:37 these are the things you always do with recursion 19:50:08 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 so, my suggestions: 19:50:33 in the hint line, make the operator something other than ~ 19:50:46 make the separator , not ; 19:51:08 I thought it was just 19:51:13 also, don't have multiple blocks in ~ like that, either separate every call (excluding subcalls ofc) into its own block 19:51:15 or have one big block 19:51:17 those are my suggestions 19:51:27 [(input,ouput)] -> (input -> output) 19:51:29 but it's actually 19:51:49 [((input,output), [(input, output)])] -> (input -> output) 19:52:11 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 MissPiggy: you forgot -> [hint] 19:52:20 and each ((mi,mo),(si,so)) :: ((input,output), [(input, output)]) 19:52:23 oops 19:52:38 and each ((mi,mo),(si_j,so_j)) :: ((input,output), [(input, output)]) 19:52:40 oklopol: if there's no code you can post a binary, but I'll lynch you 19:52:45 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 w 19:52:49 where j rangers over n different subproblems 19:52:50 IMO publishing just a spec beats publishing a binary with no source 19:53:08 and the subproblems are used to explain the recursion structure 19:53:12 yeah and there's hints too 19:53:24 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 the former is fine, the second isn't 19:54:04 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 so, it's really tiny 19:54:27 ocluepol, I guess that is how this works without being type directed 19:54:41 seems :P less magic now 19:54:46 but still amazing 19:55:24 -!- kivod has joined. 19:55:49 what if you don't have subproblems is it just impossible? 19:55:51 oklopol: so basically you just have a bunch of, basically tables for operations like add, subtract, multiply 19:55:56 and you just look things up in there 19:56:03 MissPiggy: maybe not with hints 19:56:12 i don't get what his hints do though :) 19:56:53 is this a chan about esotericism or programming? 19:56:57 yes 19:57:11 esotericism programming and esoteric programming 19:57:18 Esoteric programming. 19:57:20 esotericism programming! iching(1) 19:57:24 * Sgeo goes off to program some ghosts. 19:57:26 and itching 19:57:31 and gay sex 19:57:35 mostly gay sex actually 19:57:41 enigmatic gay itching? 19:57:47 Very. 19:57:57 kivod: now the question we have, which one did you *want* 19:58:00 *have is 19:58:21 oklotype I will help code a type directed version if you want 19:58:40 lol 19:58:45 although you werobefubef 19:58:49 kivod: you wanted lol? 19:58:53 I was searchning for a chan about esotericism 19:59:01 but I like programming too so ... 19:59:02 kivod, I'm into esotericism 19:59:13 ignore MissPiggy, the rest of us aren't crazy! 19:59:15 secret of the cube and stuff 19:59:20 ...apart from oklopol 19:59:28 although oklopol probably has some deep oklo musing about the secret of the cube. 19:59:55 so, now my question is, what's exactly esoteric programming? 20:00:24 "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 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 kivod: programming the computational equivalent of crack by monkeys on crack 20:00:50 The best-known examples are Brainfuck and INTERCAL. 20:00:57 in languages that crack your mind into a thousand million pieces and they all turn into monkeys. 20:01:02 pikhq: you are BORING 20:01:16 alise: I try. 20:01:17 sounds cool ^^ 20:01:23 IT ISN'T. It's horrific. 20:01:36 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 That thing, however, was idiotically designed [by me] and for all intents and purposes, dead 20:01:54 Ignore Sgeo, he's never quite gotten over the PSOX ordela. 20:01:56 *ordeal. 20:02:06 If he starts mumbling, just smile and say yes a lot. 20:02:08 MissPiggy: i think this is a cooler thing than using types, as an esolang, that is 20:02:13 lol 20:02:29 oklopol can you make any functions with it which aren't HM typeable? 20:02:29 oklopol: can you define your own tables for it to look up in? or does defining functions do that 20:03:25 HM typeable? 20:03:33 alise: humm? 20:03:38 look what up 20:03:42 hindley-milner typeadoo 20:03:45 ohh 20:03:55 oklopol: like it infers the operations by looking up your two operandyhoos values that it needs to infer an op from 20:04:03 from like various tables of the core operations like +, - etc 20:04:03 give an example that isn't HM typeable 20:04:05 right? 20:04:06 y? 20:04:11 y isn't hm typey yeah 20:04:18 well obviously you can write y 20:04:19 What's HM typable? 20:04:19 oklopol: so is defining a function adding your own table 20:04:21 or wait can you now 20:04:25 hindley-milner typeadoo 20:04:32 Should I assume that y == y combinator? 20:04:43 alise: what table? 20:04:48 do you mean 20:04:56 can you use your functions as helpers in other functions 20:05:10 like can you make a function that does something, using an append function you wrote 20:05:29 oklopol: yeah, without specifying it 20:05:41 i.e. does making new functions give it more rules with which to infer operations 20:06:09 umm, where did you get that it "infers" something? :P 20:06:17 i hope i didn't say yes to anything like that 20:06:22 it's just brute force search man 20:06:32 oh 20:06:34 isn't it like 20:06:38 this is very beta. 20:06:39 okay our two subcalls are 4 and 3 20:06:46 our main thing is 12 20:06:52 4+3 = 7 nope 20:06:54 4-3 = 1 nope 20:06:58 4*3 = 12 BINGOOOOOOOO 20:07:06 and we have like, addition, subtraction and multiplication table there 20:07:09 and we look up in each one 20:07:11 yeah it's like that, but you'd probably just give it * and not + or -. 20:07:15 recursively for the subcalls 20:07:18 oklopol: well how does it know 20:07:20 you didn't tell it 20:07:21 anyway 20:07:29 does making your own function f(x,y)=z add f as a table to that inferring process 20:07:31 if not SHIT SUX 20:07:47 ah, you give it the functions to use EXPLICITLY. 20:07:58 ... 20:08:02 so it isn't clever at all 20:08:04 :( 20:08:05 fib ~ ; dec; add 20:08:10 append ~ ; car; cdr; cons 20:08:13 how about not having them 20:08:20 and having it search the entire universe of currently-defined functions 20:08:31 oklopol I don't understand why you wouldn't want it type directed :( 20:08:41 perhaps if i write a sophisticated enough compiler 20:08:53 MissPiggy: oh i do, eventually 20:09:12 -!- Pthing has joined. 20:09:14 parse :: String -> Maybe Integer 20:09:15 parse "0" = Just 0 20:09:15 parse ('S':xs) = return (1 +) <*> parse xs 20:09:15 parse _ = Nothing 20:09:15 deparse :: Integer -> Maybe String 20:09:15 deparse 0 = Just "0" 20:09:17 deparse (n+1) = return ('S':) <*> deparse n 20:09:19 deparse _ = Nothing 20:09:21 conclusion 20:09:26 for trivial parsers, just swap LHS and RHS for parse/deparse 20:09:53 now to make it less trivial 20:09:59 MissPiggy: but really it's type directed already in the sense that if an operation fails, then its result is ignored. 20:10:02 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 x = f(p,h(q,p,p),g(p)) might be a right answer, for example 20:10:33 is this roughly the kind of problem it tries to solve? 20:10:36 yep 20:10:46 how do you which arity each function is? 20:10:51 like h takes 3 parameters 20:11:10 primitives have arities, and your functions have the arities their clues do. 20:11:26 -!- kivod has left (?). 20:11:38 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 oh okay 20:12:03 "alise: so it isn't clever at all" <<< the compiler is not supposed to be clever, the language is. 20:12:06 well arity is the first sign of type :D 20:12:13 instead of being untyped it's typed like 20:12:15 oklopol: specifying ops != clever 20:12:17 * -> * -> * 20:12:30 rather than 20:12:34 Int -> String -> Int 20:12:38 or even 20:12:44 Int -> (String -> String) -> Int 20:12:51 does it do higher order programming? :P 20:14:07 MissPiggy: not atm, but it should 20:14:15 oklopol that sounds be really really hard though 20:14:23 later 20:14:37 no not relly. 20:14:38 *really 20:15:06 alise: yeah i don't care about your stupid opinion 20:15:13 and your mom is fat 20:15:15 :( 20:15:17 ow 20:15:22 take that 20:15:26 waaaah 20:15:31 you guys stop fighting!!!!!!!!! 20:15:35 anyway err 20:15:39 i was originally even thinking 20:15:44 you might make like append 20:15:47 by the higher order programming is hard 20:15:49 BY THE WAY 20:15:53 and then give some other function, as a helper, (append [1,2,3]) 20:16:01 curried that is 20:16:18 well sure "append [1,2,3]" denotes a function just as "append" does 20:16:19 hard in what sense? 20:16:19 anyway the problem is 20:16:22 I don't see any difference 20:16:28 you might be able to just write some sorta combinators, and program in helper lists 20:16:40 ^ the problem i was thinking it might have 20:16:46 oklopol, well for type directed higher order programming, you can do it algorithmically 20:16:50 without any examples or anything 20:17:00 but when you add recursive data types, it becomes very difficult 20:18:00 do what algorithmically 20:18:04 this whole thing? 20:18:22 how can you do example-oriented programming without examples 20:18:53 or do you mean just deducing functions from some general rules for how they should work 20:19:04 because that's bullshit 20:19:55 oklopol do you make your language output lisp and haskell? 20:20:23 you can inhabit (or show impossible) stuff like a -> (a -> b) -> b 20:20:26 without any examples 20:20:26 well no, not actually either of them 20:20:28 because it's not internally either 20:20:42 even as a functional language it's quite different 20:20:55 really? 20:20:56 inhabit? what the fuck does that help 20:21:10 that's what your language does I think 20:21:14 i wanna write a tetris with this, not a fucking logic wanking tool 20:21:22 you create functions from examples no? 20:21:28 sure, sure 20:21:39 LOL LOL LOL 20:22:20 "i wanna write a tetris with this, not a fucking logic wanking tool" -- oklopol on programming 20:22:31 i'm just saying the language is a bit different, so i was thinking haskell syntax, plus some additional syntax 20:22:36 Mmmm 20:22:37 Logic wanking 20:22:40 on programming with clue, yes 20:22:44 -!- coppro has joined. 20:22:58 i just mean you people seem to completely misunderstand the idea of the language 20:23:06 I do 20:23:21 I want to undersatnd it though] 20:23:28 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 What I mean is 20:25:08 (1) higher order programming is going to be extremely difficult to solve 20:25:22 *Text.TwoParse> toVars $ toAST $ varsFor P_ X 20:25:22 Right X 20:25:22 i don't think it is! 20:25:23 it's a start 20:25:30 oh well I hope you are right :P 20:25:32 MissPiggy: oklopol's probably right, he can hack up anything 20:25:34 i mean 20:25:40 let's say you wanna write like map 20:26:14 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 let me implement map f [] = [] ; map f [3,5,6,2] = [f 3,f 5,f 6,f 2] ? 20:26:22 then 20:26:32 if you change the function, it'll just apply it, like it did with increment. 20:26:43 oh 20:27:01 so map inc [] = [] ; map inc [3,5,6,2] = [4,6,7,3] 20:27:13 if there are problems, i can't see them. 20:27:21 * MissPiggy neither 20:27:44 this is going to be so sick 20:27:46 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 err 20:27:46 *added like an apply function 20:29:24 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 *Text.TwoParse> toVars $ toAST $ varsFor S_ ('a','b') 20:29:29 Right (Right ('a','b')) 20:29:30 yay 20:30:52 okay done 20:31:57 http://www.vjn.fi/pb/p525542334.txt 20:31:59 i think that's it 20:32:13 oh... 20:32:21 okay there's a slight problem because i chose such a simple function 20:32:25 prolly wouldn't work 20:32:32 can you see why btw? 20:34:36 http://www.vjn.fi/pb/p536541641.txt 20:34:37 better 20:36:22 alise: the reason i chose "," over ";" was just so you could use "," in identifier names 20:36:46 like if you want a function called "do this, then do that" 20:38:37 i mean i do think it would be nicer to use ",", i just want to have absolute freedom in varnames. 20:38:53 and what do you suggest for "~", and what's wrong with it now? 20:39:20 as for the block thing, i've learned to love it already 20:39:31 well why can't you use ; in varnames 20:39:40 i guess you could 20:39:41 the block thing i suggested or how you already had it? 20:39:49 and ~ is fine, just not for the list of funcs 20:39:52 the one i have now, 20:39:54 *-, 20:39:55 I'd use / 20:39:58 hmm 20:39:58 like w/, with 20:40:02 well 20:40:10 map / ; cons; car; cdr 20:40:13 originally i think i had different chars for both 20:40:41 but there's sort of this esotheme going on that things that mean completely different things look similar 20:41:27 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 :: is the tests 20:41:46 it's actually probably not that useful, but no matter 20:42:49 i'll consider / 20:43:10 how about "USING THE FOLLOWING HELPER FUNCTINOS:" 20:43:15 *USES 20:45:49 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 what do the <> mean in hints 20:47:48 base case? 20:47:49 yeah 20:48:01 ; deconstruct for recursion; combine 20:48:05 oh nooo 20:48:05 I was reading the "LoUIE" page. 20:48:10 <> is the condition function 20:48:25 you also explicitly tell it what to use to differentiate between cases 20:48:34 I said LoUIE LoUIE 20:48:49 well, not completely explicitly 20:49:03 like fib just needs id 20:49:24 base case 1 is always 0, base case 2 is always 1, so all others will go to the general case 20:49:56 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 and in append, instead of empty you could also use length 20:50:45 I also looked at "Boo-yah!" and I want to think of what kind of states it can use. 20:51:27 oklopol: http://www.vjn.fi/pb/p123635515.txt 20:51:30 my masterful syntax 20:51:47 ..5/..6 in the second fib recursion thing should be .. 5/.. 6 20:52:28 What is that file? 20:53:16 i don't have a clue 20:53:42 alise: how does it know the 7 and 8 examples are the same? 20:54:30 the grouping is to show that 20:54:56 nothing else 20:56:24 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 oklopol: oh 20:57:29 oklopol: didn't realise 20:58:14 probably i didn't mention it 21:03:29 -!- coppro has quit (Ping timeout: 245 seconds). 21:04:33 fooS :: PP Foo 21:04:34 fooS = char 'x' *> give X_ () 21:04:34 <|> char 'p' *> give P_ fooS 21:04:34 <|> give S_ (anyChar, anyChar) 21:05:22 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 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 parse :: PP a -> String -> Maybe a ;; deparse :: PP a -> a -> Maybe String 21:06:05 oklopol: tbh the syntax is minimal enough that it barely matters 21:06:09 yeah 21:06:10 i guess 21:06:11 90% of the program will be a bunch of examples 21:06:16 and the only syntax there is comma and -> :P 21:06:38 yeah, and .'s and :'s 21:06:49 although you just need one of them 21:06:56 yeah they're pretty rare 21:07:02 actually it takes the sum of dots mod 4 21:07:03 compared to examples 21:07:18 0 is test, 1 is base, 2 is subcase, 3 is recursive case 21:07:27 http://hackiki.org/wiki/features I added some documentation of Hackiki's feature to hackiki.org (zomg) 21:07:28 I should just make a language where every function has to be invertible 21:07:41 notably, it would protect programmers from using strong encryption 21:07:56 so you can write :., .: or ... 21:08:08 Gregor: wow, that is glacial. 21:08:11 oklopol: XD 21:08:14 oh wait actually ofc you can't write everything with :'s, turns out : isn't a prime 21:08:18 *turns out 4 isn't 21:08:24 hey you guys 21:08:27 hey augie 21:08:34 augur. 21:08:36 not augie 21:08:37 :| 21:08:38 Gregor: wow that's like recursion 21:09:00 oklopol: Uhhh? 21:09:08 Gregor: nm. 21:09:12 oh I forgot, I also need anyChare :: PP Char 21:09:22 "documentation of Hackiki's feature to hackiki.org" <<< X in X. 21:09:23 Gregor: he was mocking you :) 21:09:39 that really made no sense 21:09:46 ...yeah mocking 21:09:51 well, more or less 21:09:54 so cleverly you don't even get it 21:09:55 I have a OpenID program but how can I get it to work? 21:10:10 augur: what's wrong with augie 21:10:27 it was the name of a friends brother when i was younger 21:10:30 This is what I have so far http://zzo38computer.cjb.net/openid/openid.php 21:10:37 so in my mind it's not the diminutive of augur 21:10:37 As you can see, it doesn't work. 21:10:41 its just a different name 21:10:43 i call alise allie and Sgeo sgay 21:11:03 yes and im not saying its not a reasonable diminutive for augur 21:11:15 but to my ear it doesnt _sound_ like a diminutive, it just sounds like a different name 21:11:22 okay, i see 21:11:31 if you can think of another cutive, i can used that. 21:11:41 *use 21:11:43 augur is cute enough! 21:11:52 aurgy 21:11:54 you wish 21:11:57 zzo38: You give that URL to something with OpenID login ... to log in. 21:12:01 "auglet" 21:12:04 http://dblp.uni-trier.de/db/indices/a-tree/v/Vijay=Shanker:K=.html 21:12:09 look at all those wonderful papers T_T 21:12:33 i think someone should build a programming language that uses a LIG/TAG or something 21:13:25 zzo38: did you... configure it? 21:13:44 afk 21:16:10 -!- tombom has joined. 21:16:39 -!- KingOfKarlsruhe has joined. 21:21:39 I did give that URL to sometihng to log in, and it says it is wrong! 21:21:47 http://www.wasab.dk/morten/2007/11/openid/ 21:22:09 fix_n f = f (fix_n f)^n where n>0 21:22:16 zzo38: you didn't configure it 21:22:17 edit the file 21:26:05 How? 21:28:32 with a text editor. 21:28:44 back yo 21:29:21 I know that, of course. That isn't what I meant 21:32:30 oklopol: i had an interesting idea for a modification of prolog 21:32:31 :x 21:32:58 do you mean some sort of unification over quantifiers with a dash of absolute convergence? 21:33:21 what? :| 21:33:30 by which i mean do explain, we can hope i understand a word of it 21:33:38 nothing 21:33:52 I looked at the codes but it looks like correctly. 21:34:11 i keep saying things that mean nothing today, especially irl, here i can just not press enter 21:34:18 it wouldnt modify standard prolog (unless prolog already does this) but 21:34:31 foo(X), bar(X) ---> foo(bar(X)) 21:39:30 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 # 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 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 No, it is still wrong. 21:40:51 --Gerson Kerz, i spec 21:41:11 [[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 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 bimap :: r a b -> s c d -> t (p a c) (p b d) 21:56:09 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 let's just say that looks like a lot of letters 22:04:01 turns out I also have to implement 22:04:02 class (Category r, Category t) => PFunctor p r t | p r -> t, p t -> r where 22:04:02 first :: r a b -> t (p a c) (p b c) 22:04:03 and 22:04:06 class (Category s, Category t) => QFunctor q s t | q s -> t, q t -> s where 22:04:06 second :: s a b -> t (q c a) (q c b) 22:04:15 augur: i don't see how that makes sense 22:04:18 (this is just for a parsing library.) 22:04:27 oklopol: what? 22:04:36 "augur: foo(X), bar(X) ---> foo(bar(X))" 22:04:44 oklopol: why doesnt that make sense 22:05:26 -!- kar8nga has quit (Remote host closed the connection). 22:06:21 i just don't see what the point is 22:08:45 fizzie / Deewiant / any finn online? 22:09:10 oklopol: theres no point, except to make it weirder 22:09:50 oh well i can imagine it would do that 22:10:05 so do you own at finnish 22:10:12 oklopol: not yet 22:10:25 i need to know some train schedules but my internet is not alive 22:10:44 i'm completely offline atm 22:17:37 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 22:24:49 oklopol: How is your Internet not alive if you can do the IRC 22:25:12 TELEPATHY 22:25:26 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 I suppose DNS could be dead but there are easier ways to work around that than asking somebody else over IRC 22:34:25 pikhq: write my haskell function for me, thx 22:34:38 alise: Whatever for? 22:35:06 pikhq: a bi-directional ([token] -> a and a -> [token] from the same parser), applicative parser 22:35:15 i'm fairly sure a certain function is unimplementable 22:35:48 http://pastie.org/823742.txt?key=ugezvaboaxv3tg15cjeja 22:35:51 Good luck, sucker! 22:36:04 alise: Have you tried Parsec and a show/read instance? 22:36:22 Yeah, because Parsec can take an AST and give you back corresponding source. 22:36:28 Without writing a separate deparser. 22:36:45 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 :P 22:36:52 Is a pretty printer that hard? 22:36:52 :P 22:37:21 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 Yes; much harder. 22:37:31 And a library only has to be written once. 22:38:03 Ehh, eff that. 22:38:26 I've got a dozen more kanji or so I'd like to learn today. 22:38:34 Bah! 22:40:48 Deewiant: it's just really slow, if you need to know. 22:40:53 Mmm, autodidactism. 22:40:57 It is such a wonderful thing. 22:41:26 there's no other didactism, teaching is just an attempt to direct focus. 22:41:41 crazy person says what 22:41:50 i love clue 22:42:32 -!- coppro has joined. 22:43:15 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 well, who needs mutual recursion anyway 22:43:45 mutual recursion just leads to sadness 22:43:48 as does regular recursion 22:43:58 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 Deewiant: so what are the ways around it? 22:44:26 If you get rid of self-reference, you won't have nasty paradoxes 22:44:37 oklopol: Switching your DNS server? 22:44:49 Or just remembering the IP address of Google 22:44:53 (An IP address) 22:45:01 there's no other didactism, teaching is just an attempt to direct focus. 22:45:05 i have no idea how to switch DNS server ofc 22:45:07 i've not been able to state it better 22:45:39 I've heard it better; it's on the walls of my school better 22:45:47 s/better$/somewhere/ 22:45:57 Oh, the irony. 22:46:09 :P 22:46:20 and here i thought it was my own thinking 22:46:44 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 Deewiant: that's easier than asking someone? that's like... 8 clicks! 22:47:32 anyway is there a list from which i can choose? 22:47:56 because sort of hard to get addresses if you're offline 22:48:17 wuut 22:48:51 oklopol: 8.8.8.8, 4.2.2.2 for example 22:49:17 oh okay 22:49:48 I mean, just memorize/write down some public ones :-P 22:50:45 not sure that's very useful 22:50:53 i guess if you need to do that often 22:52:05 -!- tombom has quit (Quit: Leaving). 22:52:53 okay what should i write in this thing 22:53:21 trivialities like fibs and append aren't really much of a test case 22:53:45 what is a good test case 22:54:01 something slightly more complicated 22:54:39 Like a kernel. 22:54:50 Make an OS kernel a one-linear. 22:54:53 One-liner, even. 22:55:18 there's one slight problem 22:55:24 you can't write a one-liner in clue 22:55:59 oh wait you can 22:56:37 oklopol: write life 22:57:03 ah, that's good, although maybe 110 first 22:57:37 maybe i should add infinite lists........................................................ 22:57:42 noooooooo! 22:57:56 :D 22:57:59 what's wrong with infinite lists 22:58:08 infinite lists are IMPLAUSIBLE 22:58:23 hmm, yeah that's a good point 22:59:28 implausible how. 23:01:08 well, first of all infinity is a REALLY big number 23:01:53 oklopol: infinity = infinity + 1 23:01:56 Roughly that big. 23:01:57 :P 23:02:10 good point, it's even bigger 23:02:13 MissPiggy, oklopol, wanna hear something cool about natural language? :o 23:02:16 yes 23:02:19 hi augur! 23:02:20 yes 23:02:33 ok 23:02:53 hi auglet 23:03:21 suppose that M("brown") = \x.brown(x) 23:03:37 (that is, the meaning of the word "brown" is some predicate of brownness) 23:03:41 and M("cow") = \x.cow(x) 23:04:14 ok 23:04:34 * oklopol is supposing the ass of those truths 23:04:40 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 huh 23:05:12 ie [brown cow] = \x.M("brown")(x) && M("cow")(x) = \x.brown(x) && cow(x) 23:05:48 its not possible that M([a b]) = \x.M(a)(x) || M(b)(x) 23:06:00 of course a brown cow isn't either brown or a cow? 23:06:03 or'm I missing something 23:06:04 e.g. M([brown cow]) = \x.brown(x) || cow(x) 23:06:11 thats the point! 23:06:15 or rather 23:06:23 also, humans cannot learn that [big toy] is in fact a small rabbit 23:06:24 The point is that languages just plain don't do that. 23:06:27 Interesting. 23:06:30 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 but its not merely a happenstance thing about existing languages 23:06:59 I thought of it as brown(cow) 23:07:02 why isn't it that? 23:07:03 its a fact about POSSIBLE languages 23:07:13 MissPiggy: because cow is a concept, not a thing. :P 23:07:46 brown(cow) surely denotes that the CONCEPT cow is brown 23:07:50 or that all cows or brown 23:07:51 Also, [brown cow] could then be applied to something else. 23:07:55 hmmmm 23:08:04 Say, [brown cow dance]. 23:08:05 well alright that does make sense what you are sayng 23:08:09 alise: also, kids can indeed learn that "big toy" means "small rabbit" 23:08:13 (silly example, but gets the point across) 23:08:43 just like they can learn that "brown cow" means "rootbeer float made with chocolate icecream not vanilla 23:09:04 can't learn as in physically can't? 23:09:08 because i have a new thing to try on my future kids 23:09:29 as in you can try to teach a kid a new adjective and/or a new noun 23:09:36 call it "prown" and "gow" 23:09:44 such that a "prown gow" is either brown, or a cow (or both 23:09:45 ) 23:09:59 and kids cant get it. 23:10:18 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 and where something that is just "prown" is brown 23:10:23 and something that is just a "gow" is a cow 23:10:32 goat 23:10:52 augur: how do you test something like this? 23:10:56 for whatever reason, in natural language, syntactic concatenation = semantic conjunction 23:10:58 He's a genius reckless. 23:11:00 BUT WHICH 23:11:13 oklopol: acquisition labs 23:11:19 oh? 23:11:25 Jeff Lidz has an acquisition lab 23:11:37 basically we try to teach kids novel words or constructions 23:11:49 that sounds cool 23:11:51 and they can learn a lot of them really easily 23:11:59 but they cant learn some of them at all 23:12:11 anyway who cares about kids, they're retards anyway, i bet i could learn a language where concatenation is disjunction. 23:12:20 That is both clever and obvious. 23:12:23 oklopol: not as a natural language :) 23:12:55 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 or heres another one 23:13:00 augur: so basically it's kid guinea pigging :) 23:13:13 alise: yes :) 23:13:16 perhaps it's just because conjunction is far more common than disjunction 23:13:23 quantifiers (words like "all", "some", "every", etc.) must obey the following rule 23:13:44 augur: i don't believe that 23:13:48 "all X are/do Y" must mean the same as "all X are X's that are/do Y" 23:13:57 e.g. "all dogs bark" = "all dogs are dogs that bark" 23:14:23 instead of what? 23:14:23 now im going to bet that this ALSO seems pretty fucking obvious 23:15:00 but consider that if "all" is just some binary subset function, e.g. "all X Y" = X ⊆ Y 23:15:12 then why cant we have "lall X Y" = Y ⊆ X? 23:15:20 loll X Y 23:15:21 e.g. "lall dogs bark" = "all barkers are dogs" 23:15:23 ;) 23:15:33 yes, it was quite intentional :) 23:15:36 Tangential, but I always find it weird when people talk about Noam Chomsky in the context of politics. 23:15:58 GNU/Chomsky 23:15:59 pikhq: why? hes one of the leading far left political commentators 23:16:26 augur: I always think of his work on formal grammars. 23:16:31 true. 23:16:41 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 oklopol: No, much easier. 23:17:04 oklopol: ofcourse they are, but thats because natural language is complicated in weird and hard-to-understand ways 23:17:11 you always end up explaining anything even slightly complicated on paper, because natural languages are so crappy 23:17:11 and its not entirely arbitrary, either 23:17:13 You talk in a natural language without thinking about it all the time. 23:17:15 Math, you think about. 23:17:30 pikhq: math isnt hardwired into our brains ;) 23:17:33 objectively, its easier. 23:17:37 augur: Well, yes. 23:17:46 That is what makes it easier... 23:17:46 its also precise, and well defined 23:17:51 we understand it 23:18:03 or at least, we understand how to understand statements in math 23:18:13 eh? often while proving things i'm thinking about something else 23:18:17 and we understand why those statements mean what they mean because we defined them 23:18:20 i mean if it's something simple 23:18:43 but natural language has completely crazy, bizarre constraints on its mapping from form to meaning 23:18:50 heres a purely grammatical one, pikhq 23:18:55 you know what a cyclic permutation is? 23:19:08 augur: Not entirely. 23:19:19 Though I may find it obvious once you describe it. 23:19:20 what's a cyclic permutation? 23:19:29 My knowledge of linguistics is very... Vague. 23:19:36 its math, actually, but 23:19:49 And my knowledge of math is incomplete. 23:20:05 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 Oh, the obvious meaning associated with those words. 23:20:25 e.g. the cyclic permutations of "abcde" are "abcde", "bcdea", "cdeab", "deabc", and "eabcd" 23:21:01 okay so permutations that have just one cycle or whatever it's called 23:21:05 cyclic permutations are _impossible_, as far as anyone can tell, as grammatical rules. 23:21:36 O_o 23:21:51 "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 Huh. 23:22:25 well, lets not use that as an example 23:22:26 as grammatical rules, how? 23:22:44 i mean in what sense, well i guess any sense? 23:22:48 lets say, instead, that there are some adjective classes, e.g. color, size, subjective judgement 23:23:09 e.g. red, small, and pretty 23:23:37 lets say its then grammatical to have them in that cyclic order: color, size, judgement 23:23:41 K. 23:23:58 heh, now i keep reading all concatenations as disjunctions 23:23:58 such that "red small pretty button" "small pretty red button" and "pretty red small button" are fine 23:24:00 but nothing else is 23:24:14 "cyclic order" is a bit of a brainteaser 23:24:34 in that context 23:26:16 interesting 23:26:21 augur, I read that Sumarian doesn't have any order 23:26:22 or lets take verbal auxiliaries 23:26:32 so every cyclic permutation of words meant the same thing 23:26:36 "john has been being an ass lately" 23:26:46 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 or even better "john will have been being an ass" 23:27:00 something i seriously doubt 23:27:12 no that wont work actually haha 23:27:16 ... You doubt children can learn languages. 23:27:23 lets just say its "john will have been an ass" 23:27:29 that order, will-have-be 23:27:33 Clearly, you merely became fluent at the age of 18. 23:27:34 :P 23:27:44 let that be the cyclic ordering of those auxiliaries 23:28:01 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 such that "john will have been an ass" = "john have been will an ass" = "john been will have an ass" 23:28:09 this is not something kids can learn 23:28:15 *-a 23:28:34 oklopol: no, kids DO learn languages quite well 23:28:37 hmm 23:28:39 its a mistake to assume otherwise. 23:28:54 formal training in "Proper" language is entirely bullshit 23:29:03 what you speak is language 23:29:07 not in my experience 23:29:07 no 23:29:14 so anyway. 23:29:28 there are just these constraints on what is a possible human language 23:29:39 and they dont seem to be objectively motivatable 23:29:48 oklopol: You sound like a prescriptionist. 23:29:53 cyclic permutations especially, since humans can do perfectly well on them when its not language 23:29:55 of course i'm a prescriptionist 23:30:03 oklopol is just silly. 23:30:09 you would be too, if you knew how crappy natural languages are 23:30:27 You also sound silly. I knew proper, formal English from a young age... 23:30:27 oklopol: you'd stop being one if you realized how crappy prescription actually is ;) 23:30:47 prescriptivist, you idiots 23:30:50 it's prescriptivist! 23:30:53 and they're IDIOTS! 23:31:02 Please say prescriptivist. prescriptionist is just wrong. 23:31:02 alise: ITS PRESCRIPTIONIST NOW. MUAHAHAHAH. 23:31:04 natural language is extremely good at doing what it was evolved to do 23:31:04 ;) 23:31:05 but seriously, don't even talk about them 23:31:07 be a descriptivist 23:31:09 and thats NOT math. 23:31:09 GET IT GUYS GET IT 23:31:17 IT'S A DESCRIPTIVIST BEING PRESCRIPTIVIST ABOUT THE WORD PRESCRIPTIVIST 23:31:19 augur: no it's not 23:31:23 it sucks at it. 23:31:27 no it doesnt 23:31:31 yes it does 23:31:43 oklopol: Propose some alternatives? 23:31:50 well, it sucks objectively speaking, but you cant make it better 23:31:53 yes, use lojban or something 23:32:08 lojban is either just as sucky, or impossible to use naturally. :) 23:32:17 that's not true 23:32:20 yes, it is. 23:32:28 no, it's not. 23:32:31 yes, it is. 23:32:31 "Fluent" speakers produce Lojban that doesn't parse quite right. :P 23:32:33 -!- SimonRC has quit (Ping timeout: 265 seconds). 23:32:34 no, it's not. 23:32:40 yes, it is, oklopol. 23:32:45 no, it's not, augur. 23:32:57 the human language faculty is what it is. 23:33:11 if lojban does not fit this mold, then it simply cannot be used naturally. 23:33:26 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 augur: Well, all of the problems that *all* non-lojban languages are subject to. 23:33:58 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 well i don't care, communication sucks anyway 23:34:15 oklopol: i agree. lets just fuck instead. 23:34:17 yeah 23:34:17 It can at least avoid certain of them, like "having a spelling that is completely unrelated to how it's spoken". 23:34:20 sex works 23:34:22 natural sex. 23:34:33 pikhq: thats not language tho, thats orthography 23:34:40 but orthography is already unnatural. 23:34:41 augur: True. 23:34:57 further, "completely unrelated" is a difficult thing to explain. 23:35:09 Mm. Yeah. 23:35:19 natural languages don't have variables and proper mathematical quantifiers, i guess that's the thing i hate about them most 23:35:30 english orthography, except for some rough patches, is actually quite decently transparent. 23:35:35 its just not compositionally transparent. 23:35:42 oklopol: actually they do :) 23:36:00 the variables are just not as easilly handled, and the quantifiers require bigger phrases. 23:36:35 yeah, in other words the most fundamental concepts of communication suck ass 23:36:57 not for what theyre designed to do! :) 23:37:08 how does it suck??? 23:37:33 it sucks because oklopol is trolling is all. 23:37:36 and hes a robot 23:37:41 augur: Transparent? Mmm. Well, the spelling at least has some affiliation with the pronunciation. 23:37:42 eh, i'm not trolling 23:37:45 but really sleep -> 23:37:53 Though it varies based upon etymology. 23:37:54 also answer my question if you have the time 23:37:54 -> 23:41:29 pikhq: so yeah. find a good explanation for these things. 23:41:34 its tricky! 23:44:08 -!- SimonRC has joined. 23:47:21 -!- oerjan has joined. 23:48:31 Hail, oerjan. 23:48:55 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 Yes? Good. 23:49:03 (I'm 99% sure it is, so.) 23:49:13 um what is a bidirectional parser 23:49:14 what do you mean by bidirectional? 23:49:32 it's both gay directional and straightdirectional 23:49:33 *gaydirectional 23:49:42 -!- adam_d has joined. 23:49:57 i'm not sure that works. 23:50:17 try with homo- and hetero- 23:50:21 what's the definition of gay, is it just "same sex" or "at least same sex" 23:50:25 yeah 23:50:31 that's better 23:51:09 i'd say it's evilly mixing greek and latin roots, but the -sexual versions already do that 23:51:45 yeah but can homo- or gay include bi's? 23:51:56 homo- can't 23:52:20 that sounds kinda stupid 23:52:20 bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay 23:52:32 alise: yes. it is possible. 23:52:34 how do I add a quote to the bot? 23:52:40 `addquote 23:53:03 gay(x) = sex(x)==sex(me); straight(x) = sex(x)!=sex(me); bi(x) = gay(x) || straight(x); 23:53:09 I am bidirectional parser curious 23:53:13 where orientation(x) = "is it okay to consider this relationship under this sexuality" 23:53:18 I dabble a bit in pretty printing and sexy parsing 23:53:32 parsing isn't sexy 23:53:34 it's really annoying 23:53:37 mine is 23:53:41 hmm 23:53:45 yeah maybe 23:53:50 :3 23:53:54 further constraints may be applied of course 23:54:05 `addquote bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay 23:54:10 pansexual = bi + any other constraint considering gender is omitted 23:54:13 129| bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay 23:54:19 alise: thats not what bi means :p 23:54:30 oerjan: bidi parser = one parser definition does both [tok] -> a and a -> [tok] 23:54:42 but its an interesting interpretation! 23:54:46 alise: sounds like something you'd do with prolog 23:54:49 augur: you can prefer one gender over the other in bi 23:54:58 this is true. 23:54:58 but the functions I wrote meant "is this okay by this orientation" 23:55:01 That makes my brain hurt :P 23:55:12 pansexuality is basically bisexuality with both sexes having the same weight 23:55:13 i didn't get her formalism at all 23:55:24 oerjan: yeah, well I'm doing it in haskell. 23:55:28 oerjan: it is _difficult_. 23:55:46 don't forget omnisexuality 23:55:48 alise: not really. 23:55:51 alise: maybe you can abuse Show/Read derivation for it? 23:55:57 omnisexuality? does that exist 23:55:59 pansexual is the fancier version of bisexual, basically. 23:55:59 augur: then what do you consider pansexuality? 23:56:03 well, yes 23:56:03 but 23:56:08 thats how pansexuals use it. 23:56:12 bisexual = I potentially like people of both genders 23:56:18 because would be nice to have a word that actually means what pansexuality should mean 23:56:25 pansexual = I do not consider gender when deciding whether I like someone 23:56:29 omnisexual = I fuck everything 23:56:29 panisexual: attracted to bread 23:56:30 is the "official" definitionerition 23:56:33 alise: this is not the case. 23:56:39 augur: wikipedia agrees qed 23:56:41 but yeah 23:56:43 pansexual is a faggot term 23:56:45 ...wait 23:56:54 well wikipedia is irrelevant. :P 23:57:10 thus is your mother. 23:57:10 biosexual: Attracted to anything living 23:57:13 Can't make a derived instance of `Show (Syntax t a)' 23:57:14 (Constructor `Sequence' does not have a Haskell-98 type) 23:57:17 god things annoy me today 23:57:17 fukkkkkkkkkkkkkkkk yuuuuuuuuu 23:57:29 shut up oklopol GOD!!! I can't belive you sometimes 23:57:32 maybe it's partly because my head hurts like hell 23:57:42 hexosexual: Attracted to six. 23:57:46 pansexual is so stupid :( 23:57:50 I hate that word 23:57:58 alise: if you're going to be discussing these, please use the specific definitions of gender and sex 23:58:00 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 coppro: i'm basing it on a utopian world where people consider gender, not sex 23:58:28 admittedly for sexual relationships it needs ... somewhat of an adjustment 23:58:32 exercise for the reader 23:58:40 alise: regarding bidirectional parsing, i presume you mean from either end of the input string? 23:58:47 23:54 < oerjan> alise: sounds like something you'd do with prolog 23:58:53 Yes oerjan has a good point 23:59:00 quite a few programs you write as DCGs are invertible 23:59:16 augur: no, I mean that one syntax definition generates both a parser and a printer 23:59:32 basically imagine String->a, to generate a->String you just swap LHS and RHS, basically 23:59:45 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 you can't swap LHS and RHS>.. 2010-02-14: 00:00:15 alise by the way have you seen Shin-Cheng Mus invertible programming language? 00:00:51 MissPiggy: yes but you can get close to swapping it 00:00:52 also no 00:00:53 alise: oh. well, thats not a bidirectional parser. ;p 00:01:01 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 "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 e 00:02:43 pansexuality? 00:02:56 okpause it's re. 23:56 < oklopol> god things annoy me today, 00:03:25 okpause? 00:03:39 you know, nobody else finds oklopol annoying 00:04:00 "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 i bet many people here find me annoying 00:04:16 oerjan: link me so I can remind myself to read it if I fail horribly at this 00:04:19 http://www.citeulike.org/user/voigt/article/342287 00:04:32 I really would like a nice Parsec-lite (I know it can't be as powerful by definition) bidi parser lib 00:04:35 oerjan: aha! so its not a "bidirectional parser" its a bidrectional (parser/pretty-printer) 00:04:38 alise: you may need some help to get behind the ACM wall 00:04:41 would make toy languages so much nicer 00:04:48 jehova's witnesses came today 00:04:50 i hear augur is useful for that 00:04:54 just write one quick syntax definition and I get my pretty-printer free 00:04:57 oerjan: ah, thanks 00:05:04 ;( 00:05:10 Jehovah's Type Witnesses. 00:05:19 i told them they had an interesting viewpoint and said i don't really have strong opinions about anything 00:05:19 disciples of Agda 00:05:20 it was a joke alise 00:05:28 important figures include the prophet Coq 00:05:30 MissPiggy: oh, right 00:05:37 MissPiggy: it's just that you're normally like that so I wasn't sure :D 00:05:41 lol 00:05:41 (that was another one of them jokes) 00:05:45 oklopol: HA 00:05:55 shoulda taped it 00:06:13 I never talked to any jumping johosephats 00:06:35 Sequence :: Syntax t b -> (b -> Syntax t a) -> Syntax t a 00:06:42 whoops, looks like a monad slipped in 00:07:13 http://wellnowwhat.net/transfers/p86-alimarine.pdf 00:07:16 alise: it was just the first google hit for bidirectional parsing haskell, anyhow 00:07:55 shoulda taped what? 00:07:58 the witnesses? 00:08:03 i often talk to them 00:08:05 yeah 00:08:08 i told them they had an interesting viewpoint and said i don't really have strong opinions about anything 00:08:09 comedy gold 00:08:25 :D 00:08:48 you like my responsiveness? :) 00:09:33 augur what's that? 00:09:45 the link is the paper that oerjan is referring to 00:09:53 from behind ACM access barriers 00:09:54 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 awwors 00:10:17 oklopol you rare nice :) 00:10:24 i'm always careful around people who i think are doing something wrong 00:10:30 augur: didn't even notice whoa 00:10:40 augur: you should set up a website that automates that :P 00:10:41 and get sued 00:10:48 :P 00:10:50 MissPiggy: dunno, i think i'm just a coward 00:10:51 actually 00:10:59 the problem is more that i couldnt even make it work 00:11:06 the ACM search tool doesnt work right 00:11:12 I am hello 00:11:43 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 well don't worry about convincing me of anything 00:12:14 because I don't mind 00:12:17 infact I like it 00:12:38 have you heard me talk about stuff? i'm not very convincing. 00:12:49 well 00:12:58 i guess that's just a reason for you not to be worried, not me 00:13:06 oklopol: "If you take the life lie from an average man, you take away his happiness as well." 00:13:21 (Ibsen) 00:13:43 i hate it when my crazy thoughts are shared by less crazy people 00:13:54 what's so crazy about ____________ 00:14:11 nothing really 00:14:13 although the translation is a bit deceiving, the norwegian "med det samme" can mean "at once" as well as "as well" 00:15:15 (also the original is gender neutral) 00:15:31 er, except from pronouns, which cannot be 00:17:08 "the life lie" is awkward 00:17:17 "the life's lie", maybe. 00:17:52 perhaps. the original is "livsløgnen", which i suspect was a word ibsen invented but which is immediately understandable 00:18:03 i prefer life lie 00:18:03 because it looks like a typoed life line 00:18:03 ...or maybe for some other reason 00:18:47 (and the -s- is just for word combining, although it _is_ etymologically a genitive ending) 00:19:01 yeah utilitarianism and knowledgeisawesomeism are kind of conflicting 00:19:04 which disturbs me 00:20:59 ethics is too complicated 00:22:28 "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 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 ) 00:23:37 (also in german) 00:25:28 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 ooh, I have an idea for making sure all the values are used in the resulting AST 00:28:02 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 that way, you can keep track of the state of which values you've demanded 00:28:21 and you can't just go yeah demand it >> ignore the result 00:28:25 because you can't personally do it 00:28:50 is that Foo a monad return or a comonadic coreturn... 00:30:15 wait coreturn would be Foo a -> a 00:30:16 it's just 00:30:24 data Foo a = Foo a 00:30:27 except the constructor is not exposed 00:30:34 so only the value-constructor can dereference them 00:30:42 and when it does, it'll mark that parse result as used 00:30:54 if you have any unused results at the end, you are a very naughty boy 00:31:03 and it cannot be unparsed without specifying a default value somewhere 00:31:05 feels like a monad then 00:31:29 if it feels like a monad and it quacks like a monad... 00:31:32 or wait, you might not expose something for >>= or join either 00:31:46 right 00:32:23 hm right if you had those you could do >> and ignore the result, so not allowed 00:33:20 i think this will be a lot easier if i define `type Bijection a b = (a->b, b->a) 00:33:35 so that PP t a = Bijection [t] a 00:34:09 erm 00:34:12 (Maybe [t]) (Maybe a) 00:34:23 although i could do with some fromJust there or sth 00:34:46 type UncertainBijection a b = (a->Maybe b, b->Maybe a) :P 00:34:58 and it needs to be Maybe (a,[t]) anyway... 00:38:30 UncertainBijection? 00:38:35 yeah :P 00:38:58 yes well you definitely don't have a bijection between text and syntax 00:39:12 shaddap 00:39:14 it is useful though 00:39:18 maptok :: Bijection t u -> SD t a -> SD u a 00:39:18 maptok (f,g) (p,u) = 00:39:18 (\xs -> maybe Nothing (\(a,xs') -> (a, f xs')) $ p (map g xs) 00:39:18 ,\a -> maybe Nothing (\xs -> map f xs) (u a)) 00:39:19 I don't know why it is useful 00:39:40 er, that doesn't quite type yet :D 00:40:01 -!- adam_d has quit (Ping timeout: 256 seconds). 00:41:23 maptok :: Bijection t u -> SD t a -> SD u a 00:41:23 maptok (f,g) (p,u) = 00:41:23 (\xs -> maybe Nothing (\(a,xs') -> Just (a, map f xs')) $ p (map g xs) 00:41:23 ,\a -> maybe Nothing (\xs -> Just (map f xs)) (u a)) 00:41:24 there 00:42:21 -!- augur has changed nick to HPGrice. 00:42:30 -!- HPGrice has changed nick to augur. 00:53:13 meh 00:53:18 oerjan: does that paper include an implementation? 00:54:05 heck if i know, i only googled it 00:54:18 bah 00:54:21 (and maybe vaguely recalled hearing about it) 00:54:48 if not, maybe search for the author home pages? 00:56:25 oh the article is on citeseerx, so the ACM wall wasn't necessary 00:56:27 you'd think this would be - no you wouldn't 00:58:55 alise: http://www.cs.ru.nl/A.vanWeelden/index.php?p=downloads 00:59:22 -!- FireFly has quit (Quit: Leaving). 00:59:35 "generic haskell" wow 00:59:37 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 00:59:54 well it does have parser->dumper 01:00:06 but god knows it'd take four years to translate it to modern haskell 01:00:16 ouch 01:00:39 generic haskell o_o 01:00:52 yeah it has like {|x|y} and shit in arguments 01:01:03 i think it's the predecessor to syb 01:01:14 doing it via generalised invertible arrows is a good idea though 01:01:18 * MissPiggy pukes 01:01:23 at least i think it's that 01:03:51 -!- lament has quit (Ping timeout: 252 seconds). 01:04:31 class Arrow arr => BiArrow arr where 01:04:32 (<->) :: (a -> b) -> (b -> a) -> arr a b 01:04:32 inv :: arr a b -> arr b a 01:04:33 so it's just what i did 01:04:34 boring 01:05:43 seems there is nothing based on it in hackage, although Data.Bijection refers to it 01:06:40 also Data.Partial 01:06:52 -!- lament has joined. 01:07:15 http://hackage.haskell.org/packages/archive/TypeCompose/0.6.7/doc/html/Data-Bijection.html 01:12:42 * alise compiles Pure 01:14:30 whats Pure 01:14:52 http://code.google.com/p/pure-lang/; Q's begetee 01:15:13 Less obfuscatorarily, the successor to Q. 01:15:21 ahh 01:15:43 If LLVM isn't up-to-date enough on this old Ubuntu version I'll just use Q instead. 01:16:34 de bruijn is sexy. 01:16:46 that is indexes 01:17:59 -!- Asztal has quit (Ping timeout: 256 seconds). 01:18:45 yeah lol 01:20:46 i'm thinking 01:20:50 dependently typed tree rewriting 01:20:54 or 01:20:55 ;} 01:20:59 dependently typed functional applicative 01:21:02 one of them is the way forward 01:21:11 what is functional applicative? 01:21:22 your regular applicative, functional language 01:21:24 haskell, agda, etc 01:21:27 ML 01:22:17 I think I will implement Lamping 01:22:17 's algorithm 01:22:17 in haskell 01:22:20 i thought haskell sucked 01:22:34 yeah it does and I decided not to code this 01:23:02 what is so bad about haskell? 01:23:18 apart from dependent types which you say are overrated and unicode which you dislike it's not that far from agda 01:23:20 MissPiggy likes bugs. 01:23:21 :P 01:23:25 I dont like agda either 01:23:31 does agda suck though? 01:23:32 Wait, you dislike Unicode? 01:23:42 I said overuse is bad 01:23:43 e dislikes gratuitous unicode in languages 01:23:47 just a bit is quite fine 01:23:54 私はあなたをころしたい! 01:24:02 I dont' know Java :( 01:24:29 alise: ... 01:24:37 what 01:24:51 I love Unicode in languages. 01:25:43 programming languages e means 01:25:55 Yes. 01:25:57 I'm ambivalent towards it 01:26:01 on the one hand I like the concept 01:26:05 on the other hand it's a bitch to type 01:26:52 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 A good editor would let you type the former to write the latter. 01:27:08 alise 01:27:11 Basically like Fortress does. 01:27:13 01:24 < MissPiggy> cizra what about prolog? 01:27:19 01:25 < cizra> MissPiggy: Haven't shown her that (= It's too hairy for my tastes 01:27:24 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 lol @ "I hate prolog it's $vauge-and-meaningless-negative-term" --> "I don't know anything about prolog" 01:27:52 ? 01:28:06 he didn't say I hate prolog 01:28:09 oh 01:28:31 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 Maybe he has bad taste, but that's an opinion too. :P 01:29:09 also, not much != nothing 01:31:28 jane@jane-desktop:~/pure/pure-0.42$ pure 01:31:28 Segmentation fault 01:31:42 it worked in /usr/local >_< 01:31:53 $ pure 01:31:53 hahahaahahahahahahaa 01:31:53 bash: pure: command not found 01:31:55 haha WHAT 01:32:05 ... it removed itself 01:32:13 oh wait i didn't actually make install 01:32:13 lol 01:32:18 (but, WHAT) 01:32:27 lol it seppuku 01:32:33 I wish GNU/Prolog would seppuku 01:32:34 but there was no pure(1) :-D 01:32:42 its ghost went ohai then transcended 01:32:43 MissPiggy: why? 01:32:45 swi fan? :P 01:32:53 no I hate swi as well :(( 01:32:58 what do you like 01:33:01 even though it's the best prolog implementation in the world 01:33:20 (I hate swi because they got right of "no.") 01:33:35 i'd've though swi would be the prolog for swine 01:33:45 :p 01:34:07 *thought 01:34:39 er, right of "no."? 01:34:54 wow I just found some awesome papers about lambda shared graph reduction 01:35:16 MissPiggy: what's "right of "no."?" supposed to mean? 01:35:24 *-? 01:35:58 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 evaluator 01:36:36 MissPiggy: lol pure actually has features from aardappel 01:36:37 the esolang 01:36:39 and credits it with them 01:37:40 http://strlen.com/aardappel/ ? 01:38:09 -!- coppro has quit (Remote host closed the connection). 01:47:09 yeah 01:47:20 from the creator of Saurbrauten and FALSE 01:47:30 *Sauerbraten 01:53:44 potato! :D 01:55:40 Pure is sexy 01:57:10 -!- zzo38 has joined. 01:57:41 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 good 02:01:48 It is currently a single-user service, but I could upgrade it to multi-user service, too. 02:02:05 Not that that would help you any :P 02:03:26 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 Of course I can also add multi-user service just in case I might want multiple OpenID just by myself, even. 02:06:07 This is the library I used, in case you are interested: http://openidenabled.com/php-openid/ 02:06:46 That's the library that Hackiki uses as a consumer too :P 02:07:06 OK, thanks. 02:07:16 I guess it can work! 02:07:55 There seems to be a few things missing in the documentation, though. 02:08:28 Such as any useful documentation whatsoever :P 02:09:02 However, I did eventually figure it out, and it isn't really that difficult. 02:11:10 I just tried to log in on Hackiki and it works perfectly fine. 02:14:08 Hackiki is a bit strange features, it even allows anyone to edit the way the wiki syntax works 02:14:48 That's the primary feature :P 02:15:04 Yes, I know it is 02:17:07 Apparently I end every line with a tongue-smiley :P 02:18:19 Sometimes my misuse of smileys gets out of hand. 02:18:52 Gregor: Alas. 02:18:57 hexosexual: Attracted to six. <-- last found counterexample 02:19:26 Weird that both of those unrelated lines came at once :P 02:20:31 I segfaulted pure \o/ 02:20:43 -!- GreaseMonkey has joined. 02:20:57 > 3 % 3; 02:20:57 warning: rule never reduced: a%1 = a; 02:20:57 warning: rule never reduced: a%1 = a; 02:20:57 warning: rule never reduced: a%b = a div d%(b div d) when d = gcd a b end; 02:20:57 warning: rule never reduced: gcd a 0 = a; 02:20:58 warning: rule never reduced: gcd a b = gcd b (a mod b); 02:21:00 warning: rule never reduced: gcd a 0 = a; 02:21:02 warning: rule never reduced: gcd a b = gcd b (a mod b); 02:21:04 Segmentation fault 02:21:08 I may not fully understand how to use this language 02:21:13 lol fault 02:21:22 turns out it's just a crap implementation 02:21:24 faultblog.org 02:21:30 MissPiggy: it's just an immature impl 02:21:31 new lang 02:21:36 fancy technology 02:21:37 etc 02:22:44 !c printf("Does this still work?") 02:22:53 Does this still work? 02:22:58 aha, it's the % name 02:23:00 poop works 02:23:10 > poop 3 3; 02:23:10 1 02:23:10 > poop 73 9; 02:23:10 [hang] 02:23:31 stupid thing 02:25:12 http://playlist.yahoo.com/makeplaylist.dll?id=1368162 02:25:15 alise, are you capable of reminding yourself? Tomorrow may be a mess for me 02:25:17 space walk starting soon 02:25:21 if you like video of space 02:25:44 Sgeo: ok 02:26:34 MissPiggy: cool they're talking and stuff 02:26:43 seeing the earth swirl is whoa, never realised it was so... fast, i guess 02:26:47 and 02:26:47 stuff 02:27:21 hehe 02:27:45 i find space terrifying :/ 02:27:57 not the sheer emptiness, just the sheer... sheerness 02:28:08 I know what you mean 02:29:27 Poop a 1 = a; 02:29:28 Poop a b = Poop (a div d) (b div d) when d = gcd a b end; 02:29:31 the problem here is when d = 1 02:29:38 it goes into an infinite loop 02:29:41 space man is out!!!!!! 02:29:47 omg /me unpause 02:29:47 s 02:29:53 FUCKIN LOAD 02:29:55 he just wormed out :D 02:29:58 he's hiding lol 02:30:06 haha 02:30:09 camofuckinflauge 02:30:19 whoa i thought this place was bigger than that 02:30:21 in space everything is wapped in future 02:30:23 like, giant man 02:30:25 me too 02:30:27 he is stuck to the lid 02:30:39 are you sure this is not a robot 02:30:39 he's just trolling 02:30:40 ignore him 02:30:53 also, wapped in future? 02:30:54 wat 02:30:56 it's mostly robot.. the way he moves etc 02:31:02 but it's a person inside it 02:31:14 HE WAS ARTIFICIAL... 02:31:16 BUT HE HAD... 02:31:17 A HUMAN SOUL 02:31:21 SPACEWALKER 02:31:22 LOL 02:31:23 In cinemas this summer 02:32:26 what is he doing with that thing he is holding 02:32:33 just sort of admiring it? 02:34:14 oh my god there's two of them 02:34:20 !!!! what if they breed !!!! 02:35:06 that was actually my first thought 02:35:10 i've no idea why 02:35:12 :))) 02:37:11 MissPiggy: tree rewriting 'pinyun from you so I can blame or not blame Pure 02:37:13 Poop a b = Poop (a div d) (b div d) when d = gcd a b end; 02:37:18 if d = 1, this reduces to Poop a b 02:37:28 should this be an infinite loop, or should the equality of the reduction halt evaluation? 02:37:37 it should halt! 02:37:48 ok. that was my expectation too. but, 02:37:52 then how do you write an infinite loop? 02:38:12 loop = do nothing `then` loop 02:38:24 = do nothing `then` do nothing `then` loop 02:38:31 sort of like a monad ? 02:38:37 that's just seq 02:38:44 but seq is semantically nonsense in a pure language 02:38:48 try again 02:39:02 also, that causes heap overflow if you run it long enough 02:40:38 -!- Gracenotes has joined. 02:42:37 are you seeing this first person space cam? 02:42:50 alise: Oh, seq has some semantic meaning in a pure language. Just exceptionally useless meaning. 02:43:04 Defined as follows: _ `seq` b = b 02:43:07 :P 02:43:53 MissPiggy: i stopped watching :/ 02:44:01 pikhq: well also _|_ `seq` b = _|_ 02:44:05 but _|_ is nonsense! 02:44:11 alise: Heheheh. 02:44:22 if you could pattern-match on _|_ you'd define 02:44:27 _|_ `seq` _ = _|_ 02:44:29 _ `seq` b = b 02:44:40 but turing shat on that party before we even thought of it 02:44:51 Damned halting problem. 02:44:56 you don't like space!!!!! 02:45:01 you are an enemy of space 02:47:36 you can pattern match on _|_, but only if the result is _|_ 02:47:47 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 zzo38: Oh, didn't see the latest edits. 02:48:39 zzo38: In that case, use /bin/bash and do something like cat < zzo38: Alternatively, just make an HTML file, then access it by the 'view' command: .../wiki/view/ 02:49:32 hm is (! _) `seq` x = x a legal definition of seq in haskell... 02:50:15 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 zzo38: Then mingw doesn't handle chebang lines properly. 02:50:35 Oh 02:50:39 If the command is entered manually. 02:50:55 zzo38: chebang lines don't support multiple arguments. Everything after the command is taken as one argument, potentially with spaces. 02:50:56 MinGW creates the same error if you try to execute the file. 02:51:10 O, so that's why. 02:52:54 Gregor: It's shebang. 02:53:06 oh wait ! patterns are an extension 02:53:09 alise: Is there really a correct spelling of a word that's nonsense? :P 02:53:11 Yeah, definitely shebang. 02:53:19 Gregor: It's not nonsense. 02:53:26 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 Gregor: It's a contraction of "hash-bang". 02:53:33 Where hash is # and bang is ! 02:53:47 And because it lets you say "I accidentally the whole shebang" 02:53:58 chez-le-bang 02:54:12 pikhq: Quay? I thought it was just the onomatopoeia, like che-BANG! 02:54:15 The fact that it overlaps with "stuff" and such is... I'm not sure what. 02:55:04 I still use chebang, so fleh you :P 02:55:54 Shebangsexual, i.e. she bangs the shebang. 02:56:03 X-D 02:56:04 *she bangs shebangs 02:56:10 (why did I do it the worse way first?) 02:56:12 She bangs the whole chebang 02:59:48 alise they are flying into a sunset 03:00:20 are they breeding 03:00:32 not yet lol 03:00:44 they're just putting up a tent or something 03:00:44 the space went off 03:00:46 i am bored now 03:01:46 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 Oh? 03:02:53 they're in space still... 03:03:00 zzo38: Should probably move this convo to #hackiki :P 03:03:12 OK 03:04:38 -!- zzo38 has left (?). 03:06:10 I don't think he really had to leave here to go there :P 03:06:36 actually he might, didn't his personal irc client only allow 1 channel per server? 03:15:16 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 it is like that, yes 03:20:39 He is rather... Odd. 03:20:56 Yes 03:21:53 You don't say. 03:25:12 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 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 cool! 03:49:04 MissPiggy: yeah that's what you get with flexible ops + term rewriting + a simpler quoting operation (in this case, ' = quote) 03:49:40 alise ummm question is.. 03:49:56 would you still have a curry-howard interpretation with dependent term rewriting? 03:50:10 well, the lambda calculus is a term rewriting system 03:50:27 but no like this crazy stuff 03:50:31 terms are close enough to functions with slightly odd behaviour that i'm sure you could formulate a very similar isomorphism 03:50:43 MissPiggy: well this crazy stuff is just because pure has quote :P 03:50:47 and because 03:50:47 def quasiquote x = qq (quote x); 03:50:48 is a macro 03:50:56 so quasiquote 2+2 -> qq (quote 2+2) 03:51:08 it's actually just an ast processor, more or less. 03:51:59 MissPiggy: btw term languages solve the expression problem 03:52:24 untyped languages like Pure do it by letting you extend terms, and having sugar for "typed" things 03:52:33 and since terms are untyped you can extend them at will 03:52:49 ok, so there's no _obligation_ to defined all the terms in the table for the new row 03:52:53 but it almost solves it 03:53:03 same thing in my typed one, basically 03:55:14 loll how does it solve expression problem 03:55:18 by the way 03:55:21 because you can extend functions basically 03:55:24 almost same thing 03:55:29 (with values of different types) 03:55:33 (for args) 03:55:36 does expression problem demand that the compiler tells you if there's a cell in the matrix missing? 03:55:46 yes, that's the missing piece 03:55:50 otherwise it breaks safety 03:55:58 because you pass it to some code going oh it's a table i know all this will go just fine 03:55:59 KRR 03:56:01 UNDEFINED FUNCTION 03:56:02 BEEP BEEP BEEP 03:56:06 WHAT DO I DO WHAT DO I *DO* 03:56:34 DIVIDE BY CUCUMBER 03:56:50 mm 03:56:55 it's easy to solve this in lisp :P 03:57:07 I doubt any language is better than lisp for the expression problem 03:57:17 apart from one that's built for it... 03:58:37 oh yeah that's ture 03:58:39 true* 03:59:12 i really wish programming language manuals were written better 03:59:44 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 Eh, they're usually written by programmers :P 03:59:48 If you can organise programs, why not prose? 03:59:54 yeah I should practice wrting 04:00:03 Because prose requires eloquence 04:00:13 alise: I'd say it's more a matter of perspective. 04:00:34 merely stringing together a complete and accurate description of a language is what we call an International Standard 04:00:46 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 It's hardly the same thing! 04:01:08 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 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 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 none of that applies to great prose 04:02:36 I'm not asking for great prose, just good writing. 04:02:40 There /is/ a difference. 04:02:47 good prose, even 04:02:59 prose constructed by formula can be horrible 04:03:05 Certainly, a manual is not the domain of prose; but why is it not the domain of good writing? 04:03:13 a manual is absolutely in the domain of prose 04:03:19 coppro: And we don't write idiomatic code by formula, either. 04:03:34 but we do! 04:03:48 But code is basically prose. 04:03:52 hardly 04:03:53 It's just in a different language. 04:03:58 prose has a very specific definition 04:04:07 I'm not sure what that is, but it's specific 04:04:13 and I know programming is not it 04:04:28 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 good prose and good programming in fact require the opposite sets of skills 04:05:05 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 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 No; units of code call libraries, they don't "fill them in". 04:06:23 I don't mean like that 04:06:35 Interface design is the tricky part of programming 04:06:39 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 A good interface leads itself to be coded easily 04:07:01 In prose, the opposite is true 04:07:16 hey, I can too! 04:07:28 I use more semicolons than you. 04:07:34 -!- sebbu has quit (Ping timeout: 265 seconds). 04:07:54 Disagree; grep the logs. 04:07:55 -!- sebbu has joined. 04:08:52 Since I don't do GUIs, does that mean I'm a bad programmer? 04:09:10 Sgeo: interface design what it means fail you 04:09:16 oh god, I wrote a huge line and it disappeared and no control-z 04:09:18 * alise writes it again 04:09:42 Sgeo: It means you're a sane programmer 04:09:51 coppro: he thought you meant 'interface design' = gui design 04:09:55 oh 04:10:06 ah, your previous sentence makes sense now 04:10:47 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 I think that should have been an em dash 04:11:36 Where? 04:11:41 instead of the semicolon 04:11:47 There were two in that sentence. 04:11:55 first sentence 04:12:01 second also, actually 04:12:26 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 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 And yes, that was two hyphens; I haven't got any nice Compose setup here. 04:12:53 I just use a single hyphen 04:12:57 coppro: Ah, I criticised ais523 for that once; he gave me a sound thrashing. 04:13:12 Semicolons do not have to be able to be replaced by a full stop. 04:13:29 For the most part, they should 04:13:33 He presented irrefutable proof which has slipped out of my mind. 04:13:58 there are other uses of the semicolon which are valid (for instance, in lists) 04:14:09 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 coppro: I am referring to sentences. 04:14:31 I don't agree it should necessarily be replaceable by a full stop, but it needs to separate full clauses 04:15:22 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 hmm, actually, I think I'd punctuate that sentence as follows 04:15:32 So, then, you'll have to show it's wrong as in confusing or awkward. 04:15:41 Or incredibly uncommon. 04:15:42 "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 Indeed, I believe that the first time I wrote that sentence, "frequency; but" was how it went. 04:16:41 it was 04:16:51 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 Or, of course, to serve as an alternative to parentheses for not-quite parenthical remarks. 04:17:16 *parenthetical 04:17:22 In that case, I think the em dash is appropriate because you repeat the noun 04:18:50 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 Something that *is* awkward: smilies before a right parenthesis. 04:19:16 yes! 04:19:18 After that abomination, I think ":))" will now be my preferred option. 04:19:31 yeah, I usually go that route 04:20:49 http://xkcd.com/541/ 04:20:56 Incidentally, I have the urge to substitute the / ligatures wherever those two letters appear. 04:21:04 I'm not even sure if that's correct, but the urge nevertheless appears. 04:22:12 It's correct in most cases where they appear adjacent 04:22:34 Oh, and to endow words like "premptive" with a diresis. 04:22:54 (Interesting fact: onomatopia is not actually onomatopic.) 04:23:09 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 This is zeeend for you, my sea-duck-loving friend. 04:23:52 * oerjan swats alise -----### 04:24:04 Gregor: What was that wonderful free verse you wrote about free verse? 04:24:23 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 Free verse is just a way to write prose with the structure being a piece of the text 04:25:33 It was a joke, you see. 04:25:53 It was RHYMING free verse! 04:25:54 alise: Can't find it :( 04:26:07 Gregor: Grep logs for "call it poetry"? 04:26:14 That's what I'm trying. 04:26:25 Here's a really boring holy war: Single or double quotes for main quotations? 04:26:49 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 is 'rakefile' a joke? 04:27:35 like the rubyists are making fun of engrish? 04:28:08 No, rake = Ruby mAKE. 04:28:24 If it was Lakefile, perhaps you'd have a point. :P 04:29:01 coppro: Also: uh, I had better think of some typographical choice to put towards you. 04:29:03 lakefire 04:29:10 Can haiku be prose? Is this a useful concept? Is it just nonsense? 04:29:53 coppro: Oh yes! &c. for etc.: great thing, or greatest thing? 04:30:47 makefile, not wall 04:31:14 coppro: You know, I never said /not speaking/ was an option. :P 04:32:05 alise: he's an american. they seem to think remaining silent is some kind of _right_ 04:32:15 He's Canadian, actually... 04:32:24 ah 04:32:47 darn i was reading his server location as his real one 04:33:11 Just ping him a lot. coppro, that is. 04:33:44 hm i thought lindbohm was only for ipv6, but i seem to be on it 04:34:11 alise: I can't found it, but I did find this: 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 I can'tfound it! 04:34:46 Confound? Can'tfound? Laugh? Oh well. 04:34:53 Gregor: Did you search for only lines by you? 04:34:56 Perhaps you were on a different nick. 04:35:05 Hm, good point. 04:35:05 Bleh 04:35:17 I can't found it in that I can't create it, like founding a city, y'know? :P 04:35:18 Just search for "call it poetry". 04:35:27 WAIT 04:35:31 Just search for "call it ptry". 04:35:37 Is that valid, coppro? Is it? Is it?!?!?!?!/1 04:35:50 it isn't is it 04:36:00 because it's o-e 04:36:27 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 The joke was that the last line was not the right number of syllables :P 04:36:45 Yes. 04:37:17 But you were right, that was the thing to grep for >_> 04:37:52 As opposed to "hot bukkake norse fish mario sonic william howard taft". 04:37:58 (I was using the term "blank verse" instead of "free verse" there, but was grepping for "free verse" >_< ) 04:38:22 Well, free verse is the term you used in the poem, so it should have found it. 04:38:34 No, I used the term blank verse in the poem. 04:38:40 I just rewrote it as free verse here :P 04:38:46 Ah, okay. 04:39:08 Blank verse ≠ free verse, however. 04:39:25 No, 'snot, but they both happen to fit the theme. 04:39:32 Blank verse has meter, though, so free verse is probably better to use. 04:39:44 Ohyeah 04:39:51 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 oerjan: Ha 04:40:21 oerjan: That's so hilariously awkward to read. 04:40:29 how so? 04:40:36 -!- GreaseMonkey has quit (Remote host closed the connection). 04:40:37 Because I'm expecting it to be a limerick. 04:40:38 Then it isn't. 04:40:57 great 04:41:12 There was an old man \ From Peru, whose lim'ricks all \ Look'd like haiku. He 04:41:12 Said with a laugh "I \ Cut them in half, the pay is \ Much better for two." 04:41:54 alise: Outstanding. 04:42:07 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 sorry, alise, I was watching those sporty things 04:42:11 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 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 I love that site 04:42:35 And, you know, every other limerick in the top 150. 04:42:39 (http://limerickdb.com/?top150) 04:43:20 There once was a small juicy orange, \ ...fuck. 04:43:33 -!- GreaseMonkey has joined. 04:44:50 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 coppro: Anyway, answer all the questions I queued up for you. :P 04:45:23 coppro: Oh yes! &c. for etc.: great thing, or greatest thing? 04:45:24 Just search for "call it ptry". 04:45:24 Is that valid, coppro? Is it? Is it?!?!?!?!/1 04:45:24 it isn't is it 04:45:24 because it's o-e 04:45:30 Only two, actually. :P 04:45:44 alise: Weird how well "adjective" can sound like an adjective ... 04:45:50 Gregor: Yeah. 04:46:07 He walked pronoun to the front door. 04:46:24 alise: Not a fan of &c., and poëtry! 04:46:25 "Yes," said Proper Noun, "I'll see you after dinner." 04:46:55 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 It looks beautiful, but why? Because the ampersand used to be a ligature for "et". 04:47:50 right 04:49:02 you could do s/pronoun/adverb/ 04:49:46 BAD POETRY #4 04:49:47 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 THIS WAS 04:49:53 BAD POETRY 04:49:55 with alise 04:49:57 THE TOPIC WAS 04:50:06 "MORE BAD POETRY" 04:50:07 Bad poems purely for the sake of using two diathingies in two words juxtaposed. 04:50:20 GreaseMonkey: Oops. Of course, I meant adverb. 04:50:32 Oh freddled gruntbuggly? Thy micturations are to me \ As plurdled gabbleblotchis on a lurgid bee. 04:50:37 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 04:50:43 pronoun can work, as in "he walked me" or "he walked her" 04:51:03 alise: There's more where that came from 04:52:06 ... 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 what are yoy kids talking about 04:55:49 you* 04:56:26 * MissPiggy awnts to install fortress 04:57:10 * augur installs MissPiggy's fortress 04:57:12 ;o ;o ;o 04:57:17 lol 04:57:47 coppro: http://imgur.com/7jvO1.png Two fancy ampersands; I prefer the latter. 04:57:50 MissPiggy, there's not much to actually install 04:58:05 They both look like "etc.", though. 04:58:06 alise: Yeah, I really like the latter 04:58:12 Sgeo: He mens the programming language. 04:58:16 Oh 04:58:19 In a good font, &c. is not abhorrent 04:58:22 alise: Spam, spam egg spam and spam. 04:58:32 coppro: URW Palladio L. 04:58:45 Oblique, of course. 04:58:54 Erm, no. 04:58:55 Italic. 04:58:59 I always mix those two up. 04:59:34 who he 04:59:53 also, it's good to see that you've recovered 05:00:01 Who recovered from what? 05:00:01 alise: use google 05:00:08 And what do you mean, who he? 05:00:08 alise: http://lmgtfy.com/?q=And+what+do+you+mean%2C+who+he 05:00:21 ...and when did rocketman appear out of nowhere? 05:00:21 alise: try google. 05:00:28 Tset? 05:00:28 alise: GIYF!! 05:00:42 x? 05:00:42 alise: never heard of google? 05:00:47 MissPiggy: remind me are you cis- or trans-girl? 05:00:47 augur: try google. 05:00:49 coppro: say "x?" 05:00:53 ah, never mind 05:00:56 rocketman: what 05:01:01 rocketman is logged in as fax 05:01:02 :| 05:01:03 apparently a bot 05:01:03 a? 05:01:04 alise: use google 05:01:04 a? 05:01:04 alise: use google 05:01:04 a? 05:01:04 alise: http://www.justfuckinggoogleit.com/ 05:01:04 a? 05:01:04 alise: http://lmgtfy.com/?q=a 05:01:05 alise: you recovered from the poetry 05:01:06 a? 05:01:06 alise: use google 05:01:09 coppro: ah. 05:01:29 alise: Yeah, I really like the latter 05:01:30 In a good font, &c. is not abhorrent 05:01:34 Really like = not abhorrent! 05:01:46 Right! 05:02:28 http://playlist.yahoo.com/makeplaylist.dll?id=1368162 - space 05:02:37 alise: If you bothered to read the logs, I thought I'd killed you 05:02:42 MissPiggy! :| 05:02:45 hello 05:02:48 No logs, I was there, just missed the sentence. 05:02:51 ah 05:02:53 I was just typing out the ampersandy things. :P 05:02:57 * oerjan swats MissPiggy for joining an annoybot -----### 05:03:00 MissPiggy: turn off that bot, thanks. 05:03:02 answer my question. :| 05:03:09 it's supposed to be HELPFUL 05:03:19 That's nice; turn it off. 05:03:40 :( 05:03:44 Does anyone actually have ops here? 05:03:44 coppro: never heard of google? 05:03:45 can't you just learn to love it 05:03:49 no 05:03:59 MissPiggy: :| 05:04:01 but I don't know how to make it leave without making it leave all channels 05:04:02 it might be useful in, say, #math 05:04:13 :))) 05:04:13 yes 05:04:15 that's the point 05:04:16 You're in #esoteric. You should be smart enough to work that out 05:04:36 -!- rocketman has left (?). 05:04:39 c 05:04:44 coppro you are right :O 05:04:47 coppro: fizzie is semi-active and has ops; lament has ops. 05:04:57 neat 05:04:59 Maybe Aardappel still has ops or something. 05:05:11 But they never use their op powers, unless someone just said that they never use them. 05:05:25 I quite like the anarchy here, we're alright at self-organising. 05:05:30 I wish alright didn't flag up as a spelling error. 05:05:55 alright is all ways a spelling error 05:06:02 :-) 05:06:24 well im upset that you guys didn't like my bot 05:06:28 english, the language of consistent inconsistency 05:06:41 I am trying to follow the footsteps of wolfram|alpha 05:06:43 but in IRC form 05:07:08 MissPiggy: people don't like bots that intrude on their usual conversations. is that a problem to understand? 05:07:16 lol 05:07:26 oerjan: WHAT 05:07:54 alise: WHOM 05:07:58 oerjan: WHAT 05:08:20 alise: WHOSOEVER 05:08:20 it's an experiment 05:08:26 oerjan: WHAT 05:08:27 MissPiggy: WHAT 05:08:32 maybe I should have made it oly reply occasionally 05:08:36 then people wouldn't notice it was a bot 05:08:36 MissPiggy: WHAT 05:08:38 MissPiggy: WHAT 05:08:43 what 05:08:49 MissPiggy: WHAT 05:08:59 lol 05:09:03 MissPiggy: WHAT 05:09:05 MissPiggy: Gregor already did that yesterday 05:09:10 i think it was Gregor 05:09:12 oh?? 05:09:13 OERJWHAT 05:09:16 OERJWHAT 05:09:17 was it a google helpful bot? 05:09:19 MISWHAT 05:09:58 no, just a markov bot, except it sometimes replied without being addressed 05:10:38 ALISWAT -----### 05:10:39 oerjan: was it a except it then people wouldn't experiment 05:10:53 grammar fail? 05:11:54 MissPiggy: also, hackego is already google helpful 05:12:03 everything's been done before, you see 05:12:07 :( 05:12:11 hackego: ? 05:12:12 EVERYTHING 05:12:29 `google snugglebunnies 05:12:35 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 that's not the same :P 05:12:40 mine just accosts people 05:13:29 Why am I not cooking or eating right now? 05:13:31 "I'll accost your mother." 05:13:39 Sgeo: kitchen is that way -> 05:13:41 Sgeo: woman 05:14:20 This is obviously some strange usage of the word "helpful" that I hadn't previously been aware of. 05:14:25 :D 05:14:41 http://www.youtube.com/watch?v=O5ZwnmJgC-g&feature=dir 05:14:46 squee 05:15:20 oh, hes straight. LAME 05:15:30 augur is so predictable 05:15:45 :P 05:15:53 well look at him! 05:15:55 hes adorable! 05:16:18 http://www.youtube.com/user/charlieissocoollike 05:16:20 look at him. 05:16:21 so adorable. 05:16:25 he'snot adorable :| 05:16:44 * MissPiggy hopes it's not somehow, someone in here 05:16:45 fortress is so cool 05:16:53 makes me wanna sex it. in a platonic way 05:17:20 MissPiggy: its not someone in here. and he TOTALLY is adorable 05:17:24 hes also british 05:17:28 therefore doubly adorable 05:17:38 * Sgeo googles 05:17:52 Sgeo: http://projectfortress.sun.com/ 05:18:06 sun.com still exists/ 05:18:09 o.O 05:18:17 yes, sun.com just redirects to oracle.com 05:18:30 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 designed for high-performance numerical computing, like fortran 05:18:46 but fancy and CS too 05:19:12 god look at him 05:19:14 hes so adorable 05:19:17 * Sgeo needs to go eat 05:19:19 hey i'm british too 05:19:21 :P 05:19:21 augur you are wrong lol 05:19:28 liar 05:19:32 alise: And nicely typeset. 05:19:38 yes, I am that 05:19:47 :) 05:20:06 This is highly unusual... 05:20:26 For the first time in memory, I've actually *needed* to stop studying. 05:20:29 Did somebody ask for ... 05:20:42 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 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 Not "no longer felt like", not "realise that further study won't help", but "absolutely must *stop*". 05:20:56 cool 05:21:05 Gee, I'm megalagged. 05:21:13 virtuLORD: ping 05:21:13 oerjan: He exhorts to charity, humility and all thy soul. 05:21:18 -!- Gregor has quit (Quit: Leaving). 05:21:36 virtuLORD: Aye. 05:21:39 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 virtuLORD: MegaHAL? You certainly punctuate well, except from proper nouns. 05:21:55 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 virtuLORD: Sexual intercourse 05:22:11 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 THOU SHALT NOT PASS OVER THEE, TILL THOU KNOW NOT TO DEATH 05:22:41 virtuLORD: doom! 05:22:42 oerjan: The statutes of amri, etc. . .The foregoing verse, to ver. 91, Was not healed by him and give him joy. 05:23:00 got i cant watch this kid 05:23:02 its depressing 05:23:06 virtuLORD: Transubstantiation. 05:23:07 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 ah 05:23:15 augur o_O he's not even attractive 05:23:20 oerjan: It /tries/ 05:23:22 hes ADORABLE 05:23:22 ... I didn't know that word was actually in the Bible. 05:23:22 "thou shalt bury my body: which plainly implies transubstantiation." xD 05:23:31 clearly that's from another christian source 05:23:32 wait this must mean that the bible does not _contain_ the word "doom" 05:23:36 "which plainly implies transubstantiation" 05:23:41 augur you don't listen to reason!! 05:23:48 how can this be? 05:23:49 pikhq: aren't you christians meant to know things about the bible :P 05:23:50 I could've sworn the entire doctrine was a Catholic invention. 05:23:56 COMING FROM A GIRL THATS QUITE AMUSING 05:23:56 virtuLORD: catholic 05:23:56 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 The bible itself said it. Catholic church = awesome! 05:24:09 lol you did not 05:24:09 pikhq is a Christian? 05:24:15 MIND YOU, THERE'S A COMMA IN THERE 05:24:16 yes 05:24:30 *is Christian, no? 05:24:38 BUT NOT A GERMAN STYLE COMMA 05:24:41 A rather unusual one, but si. 05:24:52 pikhq is indeed a christian 05:24:52 augur: And elias said again to achis king of israel, for a remembrance of a christian. 05:25:02 whats unusual about him is that he believes HE is jesus. 05:25:16 augur: *Hah*. 05:25:21 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 Though that was my high school nickname... 05:25:26 (the beard and long hair do it) 05:25:33 well does christianity + singularity at the same time 05:25:34 Gregor: That explains it. 05:25:35 which is pretty impressive 05:25:42 alise huh? 05:25:42 the most religion most people can forge out of singularitarianism is pantheism 05:25:45 jesus didnt have long hair, in all likelihood. 05:25:59 i think pikhq said something about the singularity having the spiritual essence of jesus or something 05:26:06 alise: or the belief that god is an AI 05:26:06 Eww, wait, pikhq is religious? We'll have to deal with that at some poitn. 05:26:07 alise: Uh, not I. 05:26:08 *point 05:26:13 pikhq: it was like that but in less silly terms iirc 05:26:16 I just think the singularity is pretty awesome. 05:26:19 Gregor: I know right! 05:26:28 Gregor: Vaguely. 05:26:32 pikhq: so you want to live forever and then die and go to heaven which is awesome? 05:26:33 what does god and AI have to do with anything 05:26:38 it's the 0 at the end of the recurring 9s 05:26:41 alise: Hahahah. 05:26:47 MissPiggy: well since god IS an AI, everything! 05:26:49 virtuLORD: smite! 05:26:49 oerjan: Neither shalt thou smite it. 05:26:55 aww :( 05:26:55 how can jesus be singularity 05:26:55 virtuLORD: We are all heathens! 05:26:57 Gregor: Who made the whole work of the heathens. 05:26:59 this is so confusing guys 05:27:04 Indeed, that is the Lord's province. 05:27:10 -!- virtuLORD has quit (Quit: Leaving). 05:27:14 (smiting) 05:27:19 MissPiggy: well dont worry your pretty little head 05:27:22 MissPiggy: well just as the LORD, he is ... dammit 05:27:25 Anyways. 05:27:27 *ask 05:27:41 * oerjan swats muphry -----### 05:27:46 augur: The popular image of Jesus has a beard, brown, long hair, and blue eyes. And is Caucasian. 05:27:57 In other words, the popular image of Jesus is me. 05:27:58 -!- virtuchuck has joined. 05:27:59 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 pikhq: POPULAR IMAGES ARE IRRELEVANT 05:28:11 lolol 05:28:14 JESUS WAS A JEW 05:28:15 virtuchuck: NO 05:28:15 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 OY GEVALT 05:28:23 augur: WELL AWARE. 05:28:24 lol 05:28:25 virtuchuck: NO 05:28:25 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 d rattlesnake venom. He injects it directly into his neck with a pillow under his gun. 05:28:35 augur: AND THAT'S YIDDISH. DIDN'T EXIST THEN. 05:28:47 "He injects it directly into his neck with a pillow under his gun." 05:28:50 O-Chul could kick Chuck Norris's ass 05:28:59 Sgeo: Totally. 05:29:00 erm, I actually said a word like that here, o.O 05:29:05 oh god 05:29:09 that was so funy 05:29:15 pikhq: WHAT, YOU THINK DONT KNOW THIS? WHAT A SCHMUCK 05:29:17 about the protein shake 05:29:24 i'm still laughing 05:29:24 help 05:29:36 augur: YOUR GERMANIC LANGUAGE DOES NOT AMUSE ME. 05:29:50 I'm going to go make food now 05:29:52 O GAIN 05:29:56 .. 05:29:58 oh fine. 05:30:02 pikhq, you're an OOTS fan? 05:30:02 Sgeo are you going to make a protein shake? 05:30:08 Sgeo: Yes. 05:30:13 whats an oots 05:30:20 augur, http://www.giantitp.com 05:30:20 what's this about jesus and singularity please 05:30:22 augur: Order of the Stick 05:30:28 Object Oriented Type System 05:30:29 :P 05:30:35 D&D + stick figures = OOTS. 05:30:36 Sgeo: Gian-Tit-P? 05:30:51 giant in the playground. 05:30:53 Gregor, you're not the first to make that joke. 05:31:04 (gian-tit-p x): returns t if x is a gian tit, or nil otherwise. 05:31:07 MissPiggy: Well, Jesus is claimed by some to be awesome. The singulary is considered awesome by most who know of it. 05:31:08 Actually, maybe you made it before 05:31:16 what singularity is awesome?? 05:31:21 I thought it was like a danger 05:31:23 Y'MUTHA 05:31:28 DANGER DANGER 05:31:29 MissPiggy: no :P 05:31:30 HIGH VOLTAGE 05:31:32 It's freaking technology improving itself. 05:31:33 WHEN WE KISS 05:31:35 What's not to like? 05:31:36 WHEN WE TOUCH 05:31:42 If we don't do friendly AI right.. 05:31:43 an Unfriendly Singularity will be fatal to everything in existence 05:31:47 It's, like, the second coming or something. :P 05:31:51 a Friendly Singularity is pretty much the best thing we could do 05:31:53 tiling the universe with paper clips !!! 05:31:55 (technical terms) 05:32:00 MissPiggy: that's what happens if it's Unfriendl. 05:32:02 *Unfriendly 05:32:11 Read this: http://www.singinst.org/upload/CFAI/ if you have the patience. 05:32:13 God knows I haven't. 05:32:14 hopefully microsoft doesnt invent the first superhuman AI 05:32:16 alise have you read the foobars? 05:32:20 An unfriendly singularity is apocalypse. A friendly singularity is utopia. 05:32:20 prim intellect 05:32:22 Neutral == Unfriendly 05:32:30 Not yet, but fiction is not a guite to reality. 05:32:33 Sgeo: neutral == switzerland 05:32:35 MissPiggy: But honestly, read this: http://www.singinst.org/upload/CFAI/ 05:32:35 onuapfndoafph 05:32:42 therefore switzerland == unfriendly?! 05:32:49 alise yeah I am about 1/5th through 05:32:52 virtuchuck: How much wood would a woodchuck chuck if a woodchuck could chuck wood? 05:32:52 Gregor: Chuck norris were cloned, then it would be possible for a chuck norris only recognizes the element of surprise. 05:32:54 alise: Prime Intellect had three-laws singularity. 05:32:57 MissPiggy: what, that quickly? 05:33:01 pikhq: yeah i guessed 05:33:05 3 laws or weaker system 05:33:07 pikhq, plus two extra laws IIRC 05:33:09 alise, well I started quite a few months ago... 05:33:12 MissPiggy: right 05:33:16 Sgeo: Oh, right. 05:33:17 Appended onto the first 05:33:36 One was "Do not interpret mind-states to understand them". What was the other? 05:33:36 0th law was hardcoded, and the inventor made his will supercede that of most people, IIRC. 05:33:40 is that still quick? 05:33:44 I don't want to read too quickly 05:33:52 Oh, right. 0th law and "Do not interpret mind-states". 05:34:15 Was that to avoid mindreading or something? 05:34:18 0th law? I know what that means Asimov-wise, but I don't recall it in PI 05:34:29 I thought that was in it. 05:34:32 Hm 05:34:36 alise: Yes. 05:34:39 guys 05:34:40 and not allow it to modify peoples thoughts 05:34:40 * pikhq should pull it up again 05:34:44 im going back to listening to a lecture 05:34:47 entitled 05:34:54 why its difficult for robots to learn word meanings 05:35:02 augur is that free online? 05:35:05 yes 05:35:09 link please ? 05:35:31 5:35; bed soon. 05:35:33 http://www.kuro5hin.org/prime-intellect/ 05:36:16 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 MissPiggy: not sure i can find it actually 05:37:36 gimme a second 05:37:43 Ah, yes. It was just additional details on the three laws. 05:37:43 augur okay never mind then 05:37:51 aha i think i found it 05:38:01 wait doesn't it metamorphosise the entire universe? 05:38:06 And an attempted third appendium to the first law that failed 05:38:09 surely that counts as changing the composition of a human being 05:38:16 Sgeo: stop spoling, thanks 05:38:17 *spoiling 05:38:20 sorry 05:38:25 alise how come you already know :| 05:38:40 http://deimos3.apple.com/WebObjects/Core.woa/Browse/arizona-public.1477002748.01832962525.2097811649?i=2125659579 05:38:40 augur: 3 Laws or weaker system. 05:38:45 read the wikipedia summary, forgot most of it 05:38:46 virtuchuck: XD 05:38:46 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 Also, are you going to read Fine Structure? 05:39:13 alise: That just changed the nature of matter. ;) 05:39:26 Sgeo: maybe someday. 05:39:28 -!- virtuchuck has quit (Quit: Leaving). 05:40:05 I like yudkowski he writes well 05:40:21 Three Worlds Collide? 05:40:41 *yudkowsky 05:40:47 Sgeo: CFAI too probably 05:40:49 alise: It also asked for human opinion on the matter. 05:41:26 I'm pretty sure Yudkowsky would give up his own life for the singularity. 05:42:01 MissPiggy: good? good. 05:42:24 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 If your brain is never resumed, then that is the same as dying. 05:44:37 If it is, then you did not die. 05:44:48 I mean give up your life as in die, no return. 05:44:58 hardcore mode 05:45:02 MissPiggy: the problem that this guy is approaching is quite deep, in some sense 05:45:06 verges on AI 05:45:09 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 its probably incredibly difficult to actually characterize lexical semantics at all 05:46:29 ignoring what aspects seem to actually be non-lexical 05:48:59 Personally I don't care about having a physical body or brain, just a mind. 05:49:45 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 what's a mind?? 05:50:36 are minds real? 05:50:43 * Sgeo would love to live in the world of PI 05:50:55 sgeo sicko :P 05:51:02 MissPiggy: the brain is a physical computer that runs a single program, the mind. 05:51:11 Mind, consciousness; call it what you will. 05:51:17 alise: i think the brain runs lots of little programs 05:51:22 The mind is what is important. The brain is just squidgy. 05:51:24 augur: They're subprograms. 05:51:27 like an unkernel. 05:51:28 You get the point, though. 05:51:29 alise I don't really beleive that stuff 05:51:30 MissPiggy, any singularity without some of those social elements must mean that there are needly moral codes enforced 05:51:32 THE MIND IS A SOCIETY 05:51:36 MissPiggy: You don't believe you are conscious? 05:51:40 What, are you not experiencing anything? 05:51:43 not really 05:51:46 This is an entirely scientific hypothesis. 05:51:54 Except for Raven's party 05:51:57 MissPiggy: you are wrong, because p-zombies do not exist and I find it incredibly likely you are intelligent 05:52:14 alise I read about the zombies and I agree with that 05:52:25 you are sentient, conscious, etc. 05:52:36 there is undeniably some experience that we experience; what it "is" we do not know but it exists. 05:52:40 And we have simulated neurons on computers. 05:52:43 MissPiggy: there are no such things as zombies, nor could there be. 05:52:49 That is a mind whose brain is a silicon chip. 05:52:53 Same mind, different brain. 05:53:00 The mind is important, the brain isn't. 05:53:41 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 no, YOU would experience things 05:54:06 MissPiggy: no, it only means that SOME things are conscious 05:54:12 consciousness is the byproduct of thought 05:54:12 because you need the right program 05:54:24 a computer running your mind would be executing thought 05:54:32 thus causing a we-don't-know-what-it-is experience called consciousness that is yours 05:54:36 it would be running you. 05:55:01 augur: maybe everything does emit the byproduct of consciousness, but with thoughts on the level of the identity function 05:55:09 I don't think I am conscious because I experience things 05:55:10 we honestly have no idea what it is, after all, but we know that it exists 05:55:11 lol 05:55:32 alise, stop arguing with MissPiggy. this is pointless 05:55:39 lets talk about more awesome things 05:55:46 like graph transduction 05:55:50 :( 05:55:53 MissPiggy appears to be dismissing "you are conscious" by leaving conscious undefined and saying that everything that consciousness is isn't 05:55:54 thanks a lot augur 05:56:00 thus leaving consciousness as a null concept 05:56:13 alise, I know what it means 05:56:27 it's not a null concept 05:57:57 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 I reject the idea of a copy 05:58:20 Say you made an atom-perfect copy of my brain. 05:58:35 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 Therefore, there is no way for my two brains to result in two different consciousnesses. 05:58:56 alise: the laws of physics tell us nothing of the sort. 05:59:00 that doesn't follow alise 05:59:05 augur shut up you're arguing against me 05:59:09 augur: perhaps I mis-stated it 05:59:23 augur you can't just start agreeing like that 05:59:25 and it is 6am in the morning 05:59:29 alise, then a simulation of those atoms 05:59:30 the best we can say is that if this is true, its irrelevant, since part of identity is location. 05:59:34 but i've heard this argument used convincingly elsewhere by people who know their shit about ai 05:59:40 augur: well, right 05:59:42 well those people are stupid. 05:59:52 augur: so do you think consciousness is separated by being in a different place? 05:59:54 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 seems a strange detail for a brain to care about, it's just a computer 06:00:03 alise, go to sleep so you can wake up inn a timely fashion so you can get nice pictures taken 06:00:06 alise, what 06:00:06 MissPiggy: fuck no, monism 06:00:10 that's the normal view of conciousness, and it's the one I am against 06:00:16 MissPiggy: there is no soul there is no spirit world 06:00:18 alise, but then there's divergence as separate sensory data comes in 06:00:22 I don't beleive in that stuff 06:00:30 consciousness is just what happens when something thinks, consciousness IS sufficiently intelligent thought 06:00:31 the other consciousness would also be you. infact, "you" would cease to mean anything without referring to which alise we meant 06:00:38 but they would not be the same consciousness 06:00:42 and I don't think there's some infintesimal point in your brain that is the mind that experiences stuff 06:00:44 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 augur: so you think that teleporting me to a different location would kill me and leave a copy in my place? 06:01:02 I strongly disagree 06:01:05 MissPiggy: ofcourse there isnt, but its irrelevant. 06:01:11 all the brain cells I had ten years ago are dead now, I'm still me 06:01:16 augur how is it? That is what alise was saying a moment ago no? 06:01:24 our brains try very hard to make us experience continuous consciousness for whatever reason 06:01:26 alise: doesnt matter that you disagree. its wrong. demonstrably so. 06:01:33 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 augur: i'm waiting for the demonstration or proof 06:01:49 MissPiggy: we are using different, more accurate terminology than you 06:02:00 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 alise, well I would like to have better terms too 06:02:25 alise, but I dont' really read a lot of this stuff because it's mostly paranormal/spiritualism 06:02:45 Singularity != Spiritualism 06:02:50 Unless treated by idiots 06:02:51 you can't deny that we are conscious by saying that consciousness is a spiritual concept 06:02:56 monism and consciousness are compatible 06:02:58 thats not to say that theres a deep philosophical difference if the teleportation were talking about is quantum in nature. 06:03:15 anyway, imagine a machine implanted in your brain 06:03:19 ie entanglement sorts of stuff. 06:03:29 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 alise, are you talking to me? 06:03:41 or to MissPiggy? 06:03:42 yes 06:03:45 replacing one neuron in your brain doesn't make you not you any more, correct, augur? 06:03:48 alise this is straight out of lesswrong -_- 06:03:53 MissPiggy: yes it is because it's true 06:03:56 well stop, theres no point in going down that road. i already agree with you on that point. 06:03:59 and it's a good argument which is why it sticks in my mind 06:03:59 okay 06:04:04 I thought you were teling me it 06:04:05 sorry 06:04:07 augur: so you believe that uploading without the cessation of consciousness is possible 06:04:14 ofcourse it is. 06:04:23 then we have no disagreement over anything important. 06:04:25 its the teleportation thing that is at issue, since these are not identical. 06:04:50 alise, where do you get more precicse terms regarding this from?? 06:04:56 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 MissPiggy: uh, you could try wikipedia? 06:05:12 augur: still me? if not, justify that. 06:05:17 same algorithm on the same data, same results 06:05:18 wikipedia is complete bullshit 06:05:22 so probably not 06:05:31 alise: all of them would be you. they'd be different "alise"s form different periods. and they would ofcourse diverge. 06:05:33 MissPiggy: well that's nice, you're an idiot 06:05:48 alise: If not you, then it's close enough so as to make no practical difference. 06:05:52 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 that's transfer 06:05:56 * Sgeo wants to invite people to his Relto 06:05:59 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 there is no way that can be _different_ 06:06:11 -!- GreaseMonkey has quit (Remote host closed the connection). 06:06:11 alise: well sure, but same thing 06:06:13 MissPiggy: i didn't 06:06:24 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 ok theres no other alise to diff from, but thats irrelevant. 06:06:43 augur: so you believe that if that copying happens, I will die? 06:06:48 no 06:06:49 you are the one calling me an idiot 06:06:51 I'm pretty sure I could reductio ad absurdum this, but I won't bother 06:07:00 so it's rich that you are saying I'm the one being an asshole 06:07:09 MissPiggy: blanketing all of wikipedia as complete bullshit is an idiotic statement, simple as 06:07:09 i believe that the consciousness over there is not the consciousness over here, if there is such a thing as consciousness 06:07:15 but thats pretty irrelevant. 06:07:20 augur: then what of my continuous experience? 06:07:26 will that continue, what is your position on that? 06:07:31 continuity is an illusion that your brain plays on itself 06:07:55 the new-computer version will experience continuity 06:08:08 with a sudden change in where it perceives itself to be 06:08:11 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 augur: I'm referring to my subjective *continuous* experience though 06:08:30 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 what you said says nothing about my continuous experience, only its continuous experience - assuming them to be separate 06:08:45 what 06:08:59 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 you know it's not continuous though 06:09:21 -!- gm|lap has joined. 06:09:26 alise, i think the problem is not with your continuous conscious experience 06:09:29 there are gaps (you just don't normally see them) 06:09:35 MissPiggy: of course 06:09:39 but the experience is continuous 06:09:45 if i don't see them i don't experience them 06:09:46 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 thus my experience is continuous 06:09:52 augur: agreed 06:10:30 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 imagine we dont turn off your server, and instead take a snapshot and then boot it on another server 06:10:40 so that there are two instances of the Alise image running 06:10:52 (obviously its all in smalltalk, because smalltalk is inherently suited for this sort of thing) 06:10:59 which of them is you? 06:11:15 they certainly wont be experiencing the same things 06:11:40 some sort of unified consciousness in multiple bodies (ignoring the possibility of actually doing this with wifi or whatever) 06:11:53 we wont magically get robotelepathy in this fashion 06:12:04 yeah 06:12:05 but both are you, arguably. just not the same consciousness. 06:12:21 since you are not replying that means I am no longer an idiot? 06:12:22 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 theyre forks of the Alise mind 06:12:28 and I have a lot of years until then 06:12:29 one perhaps a trunk 06:12:34 MissPiggy: I was just reading something else 06:12:46 anyway, I was just dismissing the question because I'm tired 06:12:52 what question? 06:12:54 alise, sure, except the physical you will be different than the roboyou's 06:12:56 that wasn't a question :| 06:12:59 MissPiggy: where to find terms 06:13:01 now I really must sleep, if I want to continue my conscious experience I must not die 06:13:06 not sleeping for too long is dangerous to my health 06:13:09 health risks can lead to death 06:13:10 so 06:13:11 sleep 06:13:13 see you next week alise 06:13:15 no 06:13:18 sunday exists, sir 06:13:18 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 one Alise died 06:13:23 oh right, it's saturday! 06:13:24 and another lived 06:13:25 yay 06:13:27 no it's sunday it's 6am 06:13:27 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 it's saturday here 06:13:37 how's the passport coming btw 06:13:40 MissPiggy: ok, remind me not to talk to you when tired 06:13:42 alise for fucks sake.. you should have just told me you don't have a reference 06:13:48 coppro: no progress so far. photos on sunday prolly 06:13:55 MissPiggy: you do realise that people don't think properly when tired? 06:14:01 anyway, feel free to raise a shitstorm, I'll be sleeping 06:14:06 alise, yeah okay I'm sorry I got angry about it 06:14:12 sorry for dismissing you 06:14:20 happy families! now really, sleep -> 06:14:21 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 sorry. just hard to do two convos at once while sleepy :P 06:14:36 anyway I said -> that means i'm gone 06:14:37 okay nn 06:14:40 it is physically impossible to ping me! 06:16:10 I wonder if I could PROVE that nobody is conscious 06:16:45 MissPiggy: no. all you'd prove is that your definition of consciousness is wrong. 06:17:18 augur, what if I started with the right definition? 06:17:51 if you started with the right definition, you would only prove that unconscious people are not conscious. 06:18:14 you are very sure :) 06:18:25 I will have to produce a VERY good proof... 06:18:27 thats because consciousness is whatever it is that people are doing :) 06:18:49 is a slug conscious? 06:18:50 you'll have to prove that people just ARENT, to prove that people arent CONSCIOUS. 06:18:56 who knows. 06:19:14 I think little insects are basically automatons 06:19:20 they just wiggle and so on 06:19:36 people are automatons too. theyre just big ones. 06:19:41 that doesnt mean they're not conscious :) 06:19:43 yeah exactly 06:19:45 oh ? 06:19:48 it just means you dont know what consciousness is! 06:19:49 but I thought it does 06:19:56 I do know what it is :( 06:20:02 obviously not :) 06:20:17 i can sum up my views on this matter: i agree with dennett. 06:20:21 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 can you give me dennett to read? 06:20:42 I don't know anything about him 06:21:16 yes 06:21:17 give me a second 06:24:06 http://www.youtube.com/watch?v=f0wetQwH9nY 06:24:26 watch all three parts 06:24:30 why can't I just say outrageous stuff like "wikipedia is bullshit" by the way? 06:24:44 thanks augur 06:24:45 you can 06:24:48 and people can say stuff back 06:25:20 yeah but they get mad 06:25:25 it's no good 06:26:21 tough shit :P 06:26:23 people get mad 06:26:25 big deal. 06:26:35 if this were #antiwiki people would be happy. 06:26:35 I will try harder not to be so extravagant then 06:26:49 that's not a real chan :( 06:27:44 alise is 14 06:27:47 if this were a real chan 06:27:51 we'd be asking for nudes. 06:28:58 antiwiki is not a real chan :P 06:29:11 and? 06:29:21 boooooopfadpfad 06:29:26 I have a sore tummy 06:29:48 you're pregnant. 06:31:15 I wonder if I might be a skeptic but I just don't want to admit it 06:32:48 he said 'cogito ergo sum' is wrong!! 06:33:09 and it is 06:33:13 :O 06:33:19 I thuoght it was true 06:33:26 y'mutha 06:33:31 :( 06:36:58 si! abbiamo un anima! ma è fatta di tanti piccoli robot! 06:36:59 :D 06:37:17 this is fucking ridiculous augur!!!!!!!!! 06:37:30 everything he is saying is what I agree with and was saying earlier 06:37:31 what? 06:37:45 haha 06:38:02 how come all you guys are disagreeing with me but actually think the same thing 06:38:42 because you dont know how to think about these things! 06:39:11 :S how do you mean? 06:39:44 what do you MEAN what do i mean! 06:40:03 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 oi 06:41:29 stop that 06:45:16 well? 06:46:33 i dont know 06:46:40 huff 06:46:42 i think about thinking 06:46:47 i dont think about thinking about thinking 06:46:51 im not a metametathinker! 06:47:38 lol 06:47:47 oh yeah 06:47:56 that reminds me, I still think metameta- = meta- 06:48:02 but someone here said it's not 06:49:35 decidedly not true. 06:49:45 acn you hepl me understand why 06:49:48 sure 06:50:00 meta-thinking is arguably what philosophers of thought do, right? 06:50:09 er, philosophers of mind 06:50:15 they think about thought, and what minds are like 06:50:17 I suppose 06:50:29 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 ie they dont NECESSARILY say, "how should i approach this task" 06:51:04 they might just conjecture about the nature of mind, without even asking how to approach it 06:51:16 meta-meta-thinking is then thinking about how to think about how we think 06:51:33 similarly, meta-meta-meta-thinking is thinking about how to go about thinking about how to think about how we think 06:51:40 that's silly :P 06:51:44 perhaps! 06:51:46 but its true 06:51:48 my turn! 06:51:57 thinking about thinking is not thinking about thinking about thinking. 06:51:58 obviously. 06:52:02 coppro: GO GO GO 06:53:16 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 it's like multiple integration, except more conceptually 06:54:00 metaprogramming = programming 06:54:18 But once removed from the normal level 06:54:34 likewise, metathinking is thinking; it's just that it's about thinking 06:55:10 f(x) and \int F(x) dx are both functions, but they are not the same 06:55:14 s/F/f/ 06:55:43 metaprogramming is programming yes 06:55:57 but its programming programs that make programs 06:55:59 hence its meta 06:56:11 meta-X is a kind of X that does X 06:56:14 thats what meta means 06:56:31 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:00:43 Bevin! 07:00:52 Bespin! 07:02:04 Hm. "Bevin" is not as Googlable as I had hoped 07:05:31 `google bevin 07:05:40 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 i take it he was responsible for the "sweat" part of those blood, sweat and tears 07:09:34 `google Bevin Uru 07:09:35 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 Bevin == Neighborhood 07:15:23 erm, perhaps not 07:15:47 `google Bevin Neighborhood 07:15:48 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 "Bevin does not mean neighborhood." 07:16:38 in what language? 07:17:23 D'ni 07:17:40 Or, that might actually be a race 07:17:49 Not sure if there's a particular name for the language 07:17:56 oh so that google hit was actually relevant... 07:18:55 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 my fucking internet 07:29:42 is so goddamned slpw right now 07:29:44 i dont know why :( 07:30:08 * Sgeo should be preparing to go to sleep right now 07:30:18 augur_: microwave sloths 07:30:32 they're crawling inside the wires 07:31:53 io0p-;[']u7ijk98uiolp;['] 07:31:54 \9890-]\ 07:31:56 "?90-=]iolp[;' 07:32:02 whoops 07:32:07 no no its not microwave issues 07:32:12 connectivity is fine 07:35:45 Horribly Tasteless Wikipedia humor: http://en.wikipedia.org/w/index.php?title=Comparison_of_file_systems&oldid=220529437#Features 07:36:08 ? 07:36:32 Sgeo: hahaha 07:36:54 oh 07:36:58 there it is 07:37:20 HAHA 07:37:27 tr/A-Z/a-z/ 07:39:09 that one needs a new section: "Performance", with a "No" under FAT and NTFS :P 07:39:23 :P 07:39:47 -!- augur_ has changed nick to augur. 07:40:18 -!- augur has changed nick to Guest99794. 07:40:35 Something is wrong when your VM performs faster than your native applications 07:40:43 doing the same stuff 07:40:49 -!- Guest99794 has changed nick to augur_. 07:42:10 -!- augur_ has quit (Quit: Leaving...). 07:43:55 If I put an image on imgur, will other people see it? 07:46:26 * Sgeo hopes not 07:52:36 Who runs .exes on webservers? 07:57:57 Gregor runs arbitrary binaries on his wiki. 07:59:42 Windows binaries? 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:25 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 I used to be an excessive IMer 08:02:39 Sgeo: doit 08:02:54 Wha? 08:03:13 `translatefromto fr en doit 08:03:15 must 08:04:20 coppro, whayouwametodo, unlessyoumeanmust,inwhichcasewhatsthemustfor? 08:04:35 Sgeo: do it 08:04:40 dowhat? 08:04:52 put Mono on Hackiki Prime 08:04:57 Ahlol 08:05:05 Nanowneesleep 08:05:47 * Sgeo isn't even sure how to go about doing such a thing 08:05:52 easy 08:05:53 enlispelingetsworsanwors 08:05:58 put the entire Mono framework on Hackiki 08:06:02 Put a .exe on it 08:06:04 have fun! 08:07:06 How do I shot Hackiki? 08:11:52 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 alise: okay the ;'s are gone, my number one error is using , instead of it :D 10:02:18 (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 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 also i just killed hundreds of children 12:23:26 so, how fucking fast do fruit flies reproduce? 12:24:36 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 i assume the vacuum cleaner kills them because i've never seen anyone get outta there 12:27:04 once left it next to the computer for hours just to see if someone comes out 12:27:49 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 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 is 14 13:14:12 if this were a real chan 13:14:12 we'd be asking for nudes. 13:14:12 lol 13:15:48 but I'm 14 13:19:01 -!- tcsavage_ has left (?). 13:23:13 i'm even older than that 13:30:53 http://wareya.naken.net/?mode=comic 13:31:59 Wareya: i wish to kill you 13:32:12 why' 13:32:20 http://wareya.naken.net/?mode=comic 13:32:25 oh 13:32:30 right 13:32:33 I didn't make that 13:32:37 I just feel really sorry for the guy 13:33:14 sure he isn't trolling you 13:33:20 yes 13:33:22 I've met him 13:33:41 I humbly suggest euthanasia. 13:33:48 I mean 13:34:01 I knew him off the internet and saw him posting under that account 13:34:13 he's really autistic 13:34:15 :( 13:34:20 that much is obvious 13:34:27 yeah 13:34:42 zzo38's autistic too, but he's just crazy, not ... dunno how to put it, hopelessly naive? :P 13:34:55 hahaha 13:34:59 you know 13:35:17 my school considered testing me for aspergers but decided it was easier to say I had an emotional disorder 13:35:23 actually I'm often surprised by the navety of other people... 13:35:43 really? 13:35:46 yes 13:35:51 I thought that naivety was something that like 13:35:53 everyone had 13:35:53 etc. 13:35:57 well yes 13:36:04 but I see it a lot in other people 13:36:22 Wareya: lol I've experienced my own bullshit with aspergers (as you probably know; god knows everyone in this channel does) 13:36:24 like I'm naive to new ideas that aren't directly logic related 13:36:33 haha 13:36:44 yeah, this hell totally is haha :P 13:36:45 oh, I mean nave as in real-world situations 13:36:52 oh 13:37:06 yeah I'm dead for most shit in real life 13:37:39 anyway 13:37:46 How should I start coding an interpreter for Boat? 13:38:40 well it's imperative, so naturally I'd use Haskell 13:38:41 I have a lot of time lately (vacation) and I'd hte to waste it playing half-life etc. 13:38:49 well 13:38:55 all I know is C, GML and Python 13:38:57 it isn't wasted if you enjoyed it 13:38:58 and GML is out the window 13:39:03 well 13:39:03 first, learn haskell 13:39:07 I'm like, never sad 13:39:18 since my childhood was so sad haha 13:39:23 presumably you experience fun playing half-life otherwise you wouldn't want to do it 13:39:33 but I also get fun out of programming 13:39:34 so 13:39:47 it's not like anyone will use the interp though :P 13:39:52 true 13:40:00 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 I love managing memory 13:40:23 then you love busywork, not real programming work 13:40:26 and python is only bad in the syntax and how it handles low level objects 13:40:34 no, it's bad all the way through 13:40:35 anyway 13:40:35 Oh, I meant the real basic stuff 13:40:41 since you have multiple bracketing statements, write a parser of course 13:40:44 @memory management 13:40:50 you have infix operations, how do they associate? 13:40:52 Do they? 13:40:58 huh?\ 13:41:12 n==nequality test -- returns the xnor of two values (if you need booblean, use casting) 13:41:12 n!=ninequality test -- returns the xnand of two values 13:41:12 n|n"or" -- note: || in C is its | with a boolean restriction 13:41:12 n&n"and" -- note: && in C is its & with a boolean restriction 13:41:12 n!|n"nor" 13:41:13 n!&n"nand" 13:41:16 what does this mean: 13:41:25 x|y!=z!&r==n&p 13:41:31 left to right 13:41:42 that's easy then 13:41:46 you know how to write a parser right? 13:41:51 Nope! :D 13:42:04 ok well the obvious option is to use a library but that's boring innit 13:42:12 I assume you don't really care about helpful syntax errors 13:42:23 the more lenient a language is the better 13:42:32 which is why I can't write python 13:42:45 Python is lenient... 13:42:50 not the syntax 13:42:53 True. 13:43:14 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 But Python doesn't really hit that. 13:43:26 Fine, I'll show you how I'd structure this parser in C. 13:43:48 like purely structural languages versus ones that only have goto 13:44:25 Right. 13:46:48 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 or I could be hardcore and process all the nesting manually like I planned to 13:47:34 becaues 1) That would teach me more 13:47:46 2) I wouldn't need to deal with a library 13:47:53 yacc isn't a library 13:48:00 you write a .y file and it spits out a c file 13:48:10 -!- augur_ has joined. 13:48:12 and 3) I wouldn't need to deal with a preprocessor 13:48:15 oh hey 13:48:15 70s technology, the people who invented C used it y'know 13:48:34 Wareya: re recursive descent - yeah except I'm good at shit like this and now how to write parsers, 13:48:54 and I don't 13:48:54 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 I started crying and closed the window. 13:49:07 Wareya: also, you CANNOT parse this language 13:49:10 it has two dimensional flow 13:49:14 well, you can 13:49:24 but you have to store N where N is a very large number parses for every single block 13:49:32 and it would be near-impossible to coordinate 13:49:32 actually hang on 13:49:42 it needs to parse actively 13:49:46 same reason the only way you can parse befunge is loading it into a 2d char array 13:49:53 Wareya: right. you're out of your league. 13:50:00 Heh 13:50:08 what a syntax for such trivial semantics :P 13:50:32 I wrote a Chip-8 -> brainfuck converter 13:50:43 I think I could at least get SOMEWHERE with this 13:51:04 maybe if I wrote it in a language that was really good at dealing with fucked up structure 13:51:12 good luck I wash my hands of this 13:51:24 also, haskell is really good for multiple angles of the same data and handling complex structures like this simply 13:51:25 just sayin' 13:51:34 I have functional languages 13:51:37 hate* 13:51:49 oh. so you're an idiot, then 13:51:54 Both of my parents programmed in C and PHP 13:52:09 PHP in your genes? well that would explain it 13:52:10 and I wrote shell scripts when I was 3 13:52:16 I hate PHP too, though 13:52:20 which is ironic 13:52:22 what functional languages have you used 13:52:45 erlang, haskell, AGTs 13:52:50 SGTS* 13:52:51 ;sdlfjasd 13:52:54 AGTS* 13:52:56 how seriously did you use haskell? 13:52:59 yes 13:53:05 er 13:53:35 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 Well, obviously you hate them because they're different to what you're so used to. 13:53:58 That's not a very healthy attitude to take, though. 13:54:03 heh 13:54:07 You should always try to push your programming language boundaries. 13:54:26 have you used GML? Its object manipulation is worse than C++ 13:54:35 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 Imperative couldn't be more dead to me. 13:54:44 I can't really get accustomed to a functional language after mastering that 13:55:11 it's much more peaceful after you do ;) 13:55:16 hahaha 13:55:36 maybe I should try to do it in FreeBASIC 13:55:46 just to be an asshole to people who hate basic 13:55:46 not for me though because i constantly see everything that's shit about my computer 13:56:07 wrong architecture. wrong language. wrong structure of OS. wrong interface. wrong software. blah blah blah 13:56:17 I hate x86 13:56:39 I hate how windows XP ties everything to the OS 13:56:52 tec. 13:56:53 etc. 13:57:00 you hate x86 but for presumably all the wrong reasons 13:57:06 I would vastly prefer a graph-reduction architecture 13:57:10 like the Reduceron 13:57:11 there's WAY TOO MUCH 13:57:26 at least you know that simplicity is a virtue, but simplicity does not mean low-level, of course. 13:57:30 hell, I work with mips all the time, and even it's over the top 13:57:36 of course 13:57:43 that's why I was able to deal with chip-8 13:57:45 the Reduceron is a high-level symbolic computer (like computer algebra systems)... on an fpga 13:57:51 no imperative instructions in sight 13:58:58 http://devernay.free.fr/hacks/chip8/C8TECH10.HTM#3.1 13:59:08 the only imperitive stuff there deals with the 8 or so registers 13:59:27 16 14:00:07 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 oh I'm sorry 14:01:03 Functional *means* functional. :P 14:01:07 I was assuming that pardagrim inclusion wasn't tenary 14:01:09 :) 14:01:25 Are you sure what you said makes sense? 14:01:29 Yes. 14:01:42 i disagree 14:02:05 I was assuming that something being one of a pardagrim wasn't a JUSDT yes, no, or unrelated thing. 14:02:08 JUST* 14:02:31 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 "Functional" as a paradigm means little; only purely functional has the required properties that make it worthwhile. 14:03:15 Reasoning about programs, safety, segregating non-functional code into boxes, large optimisation potential, ... 14:03:26 ...wat 14:04:37 I'm sorry but that made no sense to me 14:04:38 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 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 haha 14:05:49 I guess that the way that I'm spergin' makes me thing of everything as a test and set 14:06:22 because I was thinking that way before I know very much about computers 14:06:25 Everything is a graph rewriting. 14:06:35 Even imperative code can be modelled this way, and efficiently, too. 14:07:07 you can boil anything down to one operator following a 3D trail 14:07:13 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 and you can build that back up into anything else 14:07:32 And the power, safety, purity and optimisation you get when you layer a good type system on top... 14:07:48 european pre-calculus math is retarded 14:07:51 are you people saying two things can be equal in their computational ability even though they are different?!? 14:08:00 in my very non-humble opinion 14:08:05 pre-calculus is retarded everywhere 14:08:15 post algebra, pre calculus 14:08:20 is fucking stupid 14:08:28 Hell, calculus isn't even european 14:08:39 so I'm fully justified in saying that all european math is dipshit 14:08:48 "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 Does Chaitlin count? 14:09:03 Erdos? 14:09:09 (Why didn't I think of Erdos first? Disturbing.) 14:09:18 current version of ski takes over a minute to compile 14:09:37 alise, are they post-1850? 14:09:48 Oh my god, you don't know who Paul Erdos is. 14:09:56 since I suck at european history past rome 14:10:11 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 I'm sorry, but 14:10:20 since I suck at european history past rome 14:10:23 I don't know 14:10:38 Then saying anything about European mathematics makes you a fool. 14:10:53 I'm also 14 in one of the most facist state education systems in america 14:11:01 so shun me 14:11:29 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 alise 14:11:54 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 I have been trained to call everything post-1850 in the western hemisphere american 14:12:30 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 Also, Georg Cantor? 14:12:58 I know that I'm uneducated in history 14:12:59 1870. Maybe he's not sufficiently Unamerican for you. 14:13:03 haha 14:13:05 *un-Ameircan 14:13:06 *American 14:13:07 ffs 14:13:13 (un-American, that is) 14:13:35 russia and germany 14:13:43 you know 14:13:51 maybe I should be saying western instead of european 14:14:05 then again I suck at making good english so fuck that 14:14:28 i totally be make an fun english 14:14:34 haha 14:14:42 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 But America is all about blanket systems! 14:15:05 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 i think you're both wrong 14:15:15 p and not p! 14:15:20 us q! 14:15:23 is* 14:15:34 ah, the famous P ?= NP problem 14:16:00 p&!(p) 14:16:10 =0 14:16:22 OF COURSE IT'S UNRELATED 14:16:47 I don't care how cliche it is, because it's relevant: 14:16:50 "Never let your schooling interfere with your education." --probably not Mark Twain 14:17:15 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 if you weren't being so pretensious I would probably be listening to you, though 14:17:37 Yes I suck at spelling 14:17:37 You're on a computer connected to the internet; it presumably has a web browser. So... what are you waiting for? 14:17:46 BUT HALF-LIFE 14:17:52 oh, the American anti-intellectual attitude really has sunk into your brain 14:17:56 no 14:17:58 big words are pretentious elitism 14:17:59 I'm pro-intellectual 14:18:04 h 14:18:06 insults are 14:18:14 i am not insulting you. 14:18:21 reads like it 14:18:31 just sayin' 14:18:35 -!- augur_ has quit (Ping timeout: 252 seconds). 14:18:39 She's an asshole in general: don't read into it too much 14:18:48 I figured such. 14:19:05 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 but parts make up the whole 14:19:33 So is criticising someone's mathematical proof an insult? 14:19:38 nope 14:20:01 you're criticising the parts of me that I've never really cared about being different 14:20:04 it can be! 14:20:05 so of course I feel offended 14:20:10 hahaha 14:20:56 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 Proof by contradiction, damn you some kinda mathematical genius. 14:21:33 Can't argue with one of them. 14:21:42 hahaha 14:21:43 Not as if they can be flawed or anything 14:22:02 you can divide by zero 14:22:06 sometimes 14:22:51 what 14:23:09 y=x/0; 0y=x; x=0; y=0/0; 14:23:12 what you just said about proofs does sound like you've been doing some serious precalculus 14:23:22 I do some serious algebra 14:23:23 oh and that too 14:23:38 good, that should unmelt it 14:23:49 Elementary algebra, presumably 14:23:55 no, high school algebra 14:23:59 :D 14:24:02 Yes, that's elementary algebra. 14:24:06 >_, 14:24:06 Ah 14:24:07 *>_< 14:24:17 See, I'm actually IN high schoo 14:24:18 l 14:24:27 so saying that that's elementary from my perspective is like 14:24:33 apples=oranges-2 14:24:50 Someone talk to em so I don't have to. 14:24:51 I'm not calling it elementary, that's just what it's called :-P 14:24:56 lol 14:25:02 To contrast with abstract algebra 14:25:05 yeah, "elementary" algebra 14:25:27 oh elementary algebra 14:25:29 Are you trying to express the notion that elementary algebra is difficult? 14:25:29 http://en.wikipedia.org/wiki/Elementary_algebra -- Wikipedia agrees with me so I must be right 14:25:33 that has nothing to do with algebra 14:25:36 no? 14:25:44 oklopol: Sure it does 14:25:44 it's just tree rewriting 14:25:46 Then why "yeah, 'elementary' algebra"? 14:25:55 09:23 < Wareya> See, I'm actually IN high schoo 14:25:56 09:24 < Wareya> so saying that that's elementary from my perspective is like 14:25:56 Deewiant: oh? 14:25:56 09:24 < Wareya> apples=oranges-2 14:26:07 Wareya: No, that isn't an answer; it doesn't make any sense. 14:26:13 you're funny 14:26:15 makes sense to me 14:26:21 "How is calling it elementary strange from your perspective?" is the question. 14:26:21 oh wait of course it does 14:26:27 You are saying things but they don't seem to express any sort of coherent idea. 14:26:28 uh 14:26:33 elementary school 14:26:38 oklopol: It's just the most basic concepts, restricted to an easy-to-understand set 14:26:41 grade school 14:26:54 Wareya: So, what, do you not know what the word "elementary" means? 14:26:58 yes 14:27:00 basic 14:27:09 though it means more than that 14:27:14 it pretty much means basic 14:27:20 Well, it is basic algebra. 14:27:23 So how is that strange at all? 14:27:24 Deewiant: so like group axioms and shit? 14:27:35 you can't get more basic than that in algebra 14:27:38 oklopol: No, like equations and variables and shit :-P 14:27:51 becuase americans think of elementary as grade school 14:27:52 period 14:27:57 at least in massachusetts 14:28:13 variables are logic, not algebra, imo; algebra is about having operations and things, and rules for how the operations should work 14:28:27 Yes, they are logic, but they're used in algebra 14:28:29 algebra is the manipulation of equations that contain variables 14:28:31 equations is, maybe, closer to algebra 14:28:40 functional variables I mean 14:28:59 I would highly expect that Massachusetts has one of the better educational systems in America. 14:29:00 The set of things that you do in elementary algebra are a subset of the things you do in abstract algebra 14:29:02 well dunno really, to me they just don't seem to have any sort of real connection 14:29:09 Alise, I'm on the new york border 14:29:15 For one, it's probably the most liberal state; and, well, all dem universities. 14:29:27 1) Taxachusetts 14:29:42 2) The Berkshires suck at middle and high school 14:29:50 3) I'm 14 14:29:57 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 t the middle by anyone's calculation. 14:30:01 that took like five seconds to google up 14:30:10 http://en.wikipedia.org/wiki/Pittsfield 14:30:13 you can't criticise left-wing policy by prefixing words with tax- 14:30:22 left wing policy is great 14:30:31 yes, you're 14, but I would presume some of the intellectualismamism from the unis would spill out 14:30:34 it's not about equations, it's about systems with objects and functions that map objects to other objects 14:30:36 but I'm so poor that I'm obliged to laugh at taxes 14:30:51 and you try to characterize what these systems look like, given some constraints on the operations 14:30:52 if they're balanced out by relevant social services then it's irrelevant 14:30:52 AGAIN 14:30:55 http://en.wikipedia.org/wiki/Pittsfield 14:31:29 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 i guess that does make it sound like they have a connection 14:32:48 Deewiant: yeah okay maybe, but you only train the part that doesn't require any sort of thinking or understanding. 14:33:28 Well, arguably you can do abstract algebra without any understanding as well 14:33:30 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 Anyway 14:33:56 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 the upper ends of my school are trying to get rid of all he autistic kids by failing them 14:34:08 "although it might be harder to keep students from understanding what they're doing" 14:34:13 GUESS WHO THAT INCLUDES 14:34:20 you're being too snappy about education lately. stop it or i'll be forced to quote you 14:34:32 Wareya: you're not autistic. 14:34:38 They think I am 14:34:52 And no, I don't group aspergers with autism 14:35:17 to put it a way, one is a software issue, the other is a hardware issue 14:35:39 umm 14:35:51 that is the worst explanation of the difference i have ever heard 14:35:56 yes it is 14:35:57 indeed. 14:35:59 I think if you actually have asperger's it's very much a hardware issue 14:36:07 Well 14:36:07 also, asperger's isn't real in like 90% of cases 14:36:12 Most people who self-diagnose asperger's are just shy/socially inept/whatever 14:36:21 aspergers is often psychological 14:36:22 Most people who are DIAGNOSED Asperger's are just that. 14:36:35 Well, I don't know about that 14:36:39 yes 14:36:50 Well, I know of at least one case... (me) 14:36:52 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 haha 14:37:04 it's the internet 14:37:15 also: 14:37:15 One case does not a "most people" make 14:37:17 09:36 < alise> Well, I know of at least one case... (me) 14:37:17 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 epic timing 14:37:29 I just said I wasn't Asperger's, you fool. 14:37:37 alise: all education before university is bullshit and should be completely removed 14:37:41 Most people who self-diagnose asperger's are just shy/socially inept/whatever 14:37:41 Most people who are DIAGNOSED Asperger's are just that. 14:37:41 Well, I don't know about that 14:37:43 lol 14:37:43 Well, I know of at least one case... (me) 14:37:46 09:37 < oklopol> alise: all education before university is bullshit and should be completely removed 14:37:47 it has absolutely no use to anyone 14:37:54 hilarious 14:37:58 I would agree if it weren't for grade school 14:38:05 Pthing: what, exactly, is hilarious? :p 14:38:11 oklopol: Most people can't be dropped to university without any knowledge of the pre-university stuff 14:38:11 oklopol! 14:38:19 is that better? 14:38:25 Deewiant: intelligent people educate themselves 14:38:34 Deewiant: what alise said 14:38:34 well, so do dumb people, they just need constant poking in some direction to do it. 14:38:38 alise: Not necessarily 14:38:43 almost always 14:38:46 Many grow into intelligence 14:38:54 Deewiant: Name one? 14:39:13 I didn't enjoy school, for the most part, until I was maybe 12 years old 14:39:15 alise: 90% of the seniors at my school who aren't there for the lunch 14:39:19 I still learned the stuff, of course 14:39:23 Deewiant: That is completely unrelated to education. 14:39:26 Or intelligence. 14:39:33 09:38 < alise> Deewiant: Name one? 14:39:34 09:38 < Wareya> alise: 90% of the seniors at my school who aren't there for the lunch 14:39:34 Of course it's related to education 14:39:40 Name someone who grew into intelligence, not someone who grew into liking education. 14:39:41 anyway there are just numbers and lists, so i'm not sure a separator between list elements makes much sense 14:39:52 State education, at that, which isn't really much education. Maybe it's better in Finland. 14:40:06 oklopol: yeah i think you should drop commas from function args too 14:40:08 american middle and high schools 14:40:09 alise: I mean, without the years of education before that point, I'd've been lagging behind others 14:40:09 SUCK 14:40:10 ASS 14:40:24 And you'd call me an idiot if I were here with 10 years less education than I've got 14:40:28 (Probably.) 14:40:33 Deewiant: You can't know whether you would have self-directed your education or not. 14:40:39 Exactly 14:40:43 I would probably look far more like I have aspergers if it weren't for elementary school 14:40:49 And thus it's safer to force people into education 14:40:54 Presumably you had enough intelligence so that if you did not find intellectual stimulation you would become bored. 14:41:00 I'd be all over mechanics and programming, like I am now, but nothing else 14:41:03 Deewiant: No, I was questioning whether you wouldn't. 14:41:10 Boredom does not mean you'll do something useful 14:41:12 See procastination 14:41:17 procrastination* 14:41:19 HEY 14:41:24 procrastination isn't out of boredom 14:41:34 it's out of lack of intrest in what you're procrastinating 14:41:34 I didn't say it was 14:41:37 okay 14:41:40 Shrug 14:41:44 Maybe I'm just speshul 14:41:53 ANYWAY 14:42:00 I'm inclined to think you are: you're smarter than most people my age that I know 14:42:04 back to what started this (I think) 14:42:10 Mommmy says I'm thus! 14:42:11 http://esolangs.org/wiki/Boat 14:42:15 Yes, with THREE Ms! 14:42:20 I'm extra-mmm! 14:42:25 HOW THE HELL would I write an interpreter for this shit? 14:42:33 (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 I'm hoping to grow out of that :P 14:42:55 People do. 14:43:10 Be right back 14:43:15 too much soda withotu enough food 14:43:16 i'm actually kinda scared that i'll hit my upper bound on intelligence at like 20 14:43:21 i don't remember what grade school is 14:43:30 alise: Most people do, too. :-P 14:43:35 would be horrible to go through 60 more years with first equal, then declining intelligence 14:43:38 After that it's just accumulating knowledge 14:43:41 Deewiant: ehh I'd say people change a lot from 20 to 25 14:43:48 Well, whatever 14:43:52 well yes but there's a finite amount of relevant knowledge I could accumulate too 14:43:55 Certainly before your 30s anyway 14:44:30 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 Decay doesn't matter if the singularity works out nicely 14:45:17 But I wouldn't bet on a singularity, anyway :-P 14:45:28 i may believe many things about what a singularity can do, reversing entropy isn't one 14:45:45 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 a singularity is the opposite of entropy 14:45:51 they're probably mixed 14:45:56 Wareya: not that kind of singularity. 14:45:58 unless it's an effective one instead of a physical one 14:46:00 k 14:46:08 technological singularity 14:46:13 Oh, of course 14:46:22 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 You mean argument. 14:46:50 Deewiant: I don't bet on a singularity, I hope for it 14:46:54 oklopol: If you say so :-) 14:47:01 alise: I didn't claim you do 14:47:12 I bet that a singularity is possible, and I maybe-bet that a singularity is quite feasible. 14:47:27 singularities are possible if time travel is 14:47:35 I mean reverse time travel 14:47:48 But time travel is unlikely enough that that's not a very fruitful angle 14:47:50 I'd be incluned to say the converse too, but I don't know. 14:48:44 anyway I'd like to think that a singularity could reverse any brain damage but I'm not so certain 14:48:53 :| 14:49:02 Alise, what if a brain and its consciousness were perfectly duplicated? 14:49:06 so I guess it's in my interest to try and cause a singularity before that's even a consideration 14:49:10 Wareya: oh god not this, we argued about this last night 14:49:13 i liked this better when it was doomsday 14:49:18 I don't recall 14:49:24 Pthing: define this 14:49:30 Oh right 14:49:34 Ways To Avoid Death 14:49:47 I have a radical point of view on that stuff 14:49:55 Pthing: thou art confusing me 14:50:01 Wareya: tell me it so that i may tell you how unradical it is. 14:50:02 what's so confusing 14:50:08 Pthing: define define this 14:50:33 anyway I'd like to think that a singularity could reverse any brain damage but I'm not so certain 14:50:41 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 oh I don't put the probability of a lovely magical singularity all that high 14:51:14 1 corinthians 15 14:51:43 likening singularitarianism to religion, yawn 14:51:50 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 ality, then the saying that is written will come true: "Death has been swallowed up in victory."[g] 14:52:03 the exact same sentiment right there 14:52:26 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 Tell me that's not radical in any way, 14:53:08 "y follow our fourth dimensinoal time on a string or quantum level " 14:53:12 i am not sure it is meaningful 14:53:15 let alone radical 14:53:19 my brain lunged my head away so that I could not read further once I read that 14:53:27 I have an allergic reaction to quantum mysticism 14:53:37 I HATE QUANTUM MYSTICISM 14:53:39 AAIWEFHQPWE"ZSD(_VFU@C_FXs 14:53:44 really, why 14:53:51 why what 14:53:55 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 and how we can direct its goals 14:54:04 \o/ 14:54:08 i think ski works 14:54:21 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 specifically to help you, one alise, transform your natural body into a spiritual one 14:54:42 alise: Would a singularity be able to code Boat interpreter in 80 characters or less? :D 14:54:50 code a* 14:54:54 Pthing: no, I absolutely disbelieve in the existence of the spiritual 14:54:59 http://www.vjn.fi/pb/p124451566.txt <<< also god i find this pretty 14:55:05 oh well that's a useful position 14:55:11 also notice cadaar and cadar, had to cheat a bit :< 14:55:11 I believe that minds can be run on computers, but that's *because* i'm a monist 14:55:35 I believe that digital and analog computation can only be converted in one direction 14:55:39 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 lol 14:55:52 because it in the end decides how to achieve that, and we cannot be smarter than ourselves 14:55:54 sure we can 14:56:00 we've been doing it for centuries 14:56:19 see: evolution 14:56:31 when I come back after going brb, I expect you to be behaving as a transhuman would be 14:56:46 i will then repeat. let's see if we can't cause a hard takeoff by sheer force of imagination. 14:56:52 no? okay then. brb -> 14:58:08 SO HOW ABOUT THAT THERE SKI INTERP HUH? 14:58:27 -!- Asztal has joined. 14:58:36 HOW ABOUT THAT HOW DO I WRITE AN INTERPRETER FOR A 2D LANGUAGE WITH FUCKED UP FLOW CONTROL HUH? 14:58:47 I DON'T KNOW, GO READ A BOOK 14:58:50 http://esolangs.org/wiki/Boat 14:58:53 BUT I SUCK 14:59:02 THEN DO SOMETHING EASIER LIKE FUCKING A GIRL 14:59:11 BUT THAT'S HARDER 14:59:18 all the girls are at their parents' houses :< 14:59:47 but seriously 15:00:01 am I insane for trying to make something like this 15:00:09 ya ttly lol ^__________^ 15:00:19 okay 15:00:20 Is it significantly more fucked up than Funge-98? 15:00:29 yes 15:00:50 no 15:01:14 Wareya: what's hard about it? 15:01:23 i mean which command? 15:01:30 expression handling 15:01:46 expression handling? what do you mean 15:01:50 I have nesting and anarchistic flow control 15:01:54 ... 15:01:55 oh you have nesting 15:02:00 okay i'll actually read that 15:02:02 lol 15:02:54 well nesting + 2d is pure genius 15:03:01 inorite:D 15:03:09 that's why i was surprised 15:03:15 but umm 15:03:17 wait, are you serious? 15:03:20 yes 15:03:31 you clearly can't parse, so it should be pretty easy 15:03:49 I just raped C, gave it a memory strip, and put it in a character array 15:03:50 ^ that wasn't serious, i just hate parsing because i parsed last night 15:04:09 yeah, but you did 2d + nesting, and it became genius 15:04:19 but C made the nesting 15:04:30 and the flow control can seriously be anywhere 15:04:39 -!- Sgeo_ has joined. 15:04:50 Like 15:04:59 v=`n`(? < 15:04:59 ?(`n`!=3){`n`=`n`+1;v}^ 15:04:59 ^ 1 }< 15:04:59 >); 15:05:07 that's outdated, but it shows what I mean 15:05:23 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 but 15:05:38 but? 15:05:42 oh mn 15:05:43 man 15:05:49 I'll need to go over and over expressions 15:05:56 meaning i'll need to safe their coordinates 15:06:00 and I'll need to nest THAT 15:06:01 FUUUUUUCK 15:06:04 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 so I should strip it down? 15:06:34 (At least I don't have functions) 15:06:44 well i think so 15:06:45 dunno 15:07:22 yeah I realized how much bloat I have here just now 15:07:31 it's more than I think I originally wanted 15:07:50 -!- Sgeo has quit (Ping timeout: 276 seconds). 15:08:07 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 what do you mean? 15:08:24 well you know i'd just have bignums :P 15:08:33 I don't know what bignums are :D 15:08:43 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 but that's the best part! 15:08:56 that's too complicated for my small brain 15:08:56 oh? 15:08:59 yes 15:09:01 how so 15:09:12 it's how people hate dealing with endianness 15:09:21 and bits 15:09:26 ah, i see 15:09:29 so I went "Hey let's do both" 15:09:39 if it's a thing, then it's fine. 15:09:41 n^^(n,n)"rolling" exponent - 4^^(2,3) would be 4^2^2^2 15:09:43 :P 15:09:44 DELETE 15:10:25 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 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 q{n}[m][b]multidimensional array 15:10:34 q{n}=jset value at memory address q of size n to j 15:10:37 q{n}[m]=jset value at spot m in an array to j 15:10:39 q{n}[y]use value of size n at address q as an address for a value size y 15:10:42 is this excessive? 15:11:11 bye strings 15:11:15 :P 15:11:25 I realized 15:11:41 that I don't need the built in variables at all 15:12:12 so someone gimme a nice ski program 15:12:55 %(0[1]<5){0[1]=0[1]+1}; 15:13:01 this is valid Boat as of right now 15:13:12 Oh, do I need loops? 15:13:18 seeing as it's 2D and I have a goto and all 15:13:19 definitely 15:13:21 you have to use nesting 15:13:23 for stuff 15:13:25 I mean 15:13:33 you can use if tests 15:13:39 and move out of the line of execution 15:13:43 forcing you to use 2D 15:13:45 or goto 15:14:21 I'm going to try to write something in ski jus to not be an asshole 15:14:25 Wareya: bignum = arbitrary size integer 15:14:31 stores in memory when it overflows an int 15:14:33 But that's lazy! 15:14:35 like python's ints 15:14:38 no it isn't 15:14:41 hsuh 15:14:45 hush* 15:14:57 it's not lazy, integers are always finite 15:15:18 lazy is when you have an infinite thing, not when you have an infinitely extendable thing 15:15:23 Besides, that ruins the fun of fucking with people 15:15:43 Multi-endian + bits 15:15:45 since you randomly stepped on genius by istake i'm just gonna tarpit the idea. 15:15:50 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 huh? 15:16:18 well you know i'd want like recursion and stuff 15:16:35 but, maybe still bytes for storage 15:16:35 you can do that 15:16:41 but you don't have functions, just gotos 15:16:46 you can deal with bytes 15:16:55 but a stack + nesting + 2d mmmmmmmmmm 15:17:03 -!- MizardX has joined. 15:17:07 (address*16)[16] 15:17:11 BYTES 15:17:25 bytes \o/ 15:17:53 anyway, working with bits is better for people who want to ultra-optimize 15:18:12 and working with bytes isn't that much of a pain in the ass 15:18:40 working with high level stuff is not a pain in the ass if you use a modern language 15:18:47 like C 15:18:51 hehe 15:18:56 yeah totally 15:18:56 I love C 15:19:00 except for file i/o 15:19:04 because I suck at it 15:19:06 :D 15:19:09 you're killing me 15:19:19 :D 15:19:23 how so 15:19:34 rather Wareya than asiekierka 15:19:44 [suddenly, out of nowhere, the latter appears] 15:19:46 ...but not both. 15:19:51 well file io is you say file @ this address, then you read/write strings back and forth 15:20:04 it's not that simple 15:20:07 if you can *not understand* how to do that, your language is pretty much as bad as it can be 15:20:11 yeah, it's not that simple 15:20:12 in C. 15:20:21 you need to deal with something dealing with pointers in a way that isn't normal 15:20:22 it damn fucking hell is that simple in any modern language 15:20:22 -!- MissPiggy has joined. 15:20:31 hehe 15:20:35 like python 15:20:36 :D 15:20:43 python is ungodly at strings 15:20:48 but sucks at evverything else 15:20:50 -v 15:21:05 yeah python doesn't have tail recursion 15:21:24 but other than that... 15:21:44 well, actually i try my best to hate python, because i'd like it if i sometimes used another langauge 15:21:46 I need to rewrite my last example 15:21:48 *language 15:21:55 lol 15:22:21 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 the last one is bliss. 15:22:39 lol 15:22:40 muuu 15:24:02 just talk about type theory and suddenly MissPiggy appears 15:25:03 -!- kar8nga has joined. 15:25:03 MissPiggy: SO DID YOU HEAR ABOUT SKI 15:25:11 oh? 15:25:16 what hapened 15:25:26 i did it in clue 15:25:33 oh nice 15:25:45 wow cool!!! show me ? 15:25:48 http://www.vjn.fi/pb/p124451566.txt 15:25:58 orgasmic 15:26:12 a few functions are total cheats 15:26:15 I fixed all of the Boat examples :D 15:26:25 Wareya: CLUE WAS HERE FIRST! 15:26:31 :C 15:26:36 how are they cheats 15:26:47 hackish 15:26:51 oklopol: so does this thing compile 15:26:57 yes! 15:26:58 if so show the output, I wanna see how efficient it compiles to 15:27:11 there's no way to see the output yet 15:27:14 dump the ast 15:27:18 i'll add that, but it's nontrivial 15:27:22 well 15:27:32 okay it's trivial, but it will still take some time 15:27:36 oh my god !!!!!!!! 15:27:39 see there's no ast, there's just python code. 15:27:47 how the hell does this work 15:27:52 i compiled to lambdas for funsies 15:27:55 :P 15:28:05 MissPiggy: it's just brute force 15:28:18 oklopol: print the python code then 15:28:24 hmm, well okay maybe 15:28:29 just replace return (lambda bitchass: ...) with return "(lambda bitchass: ...)" or w/e :P 15:28:46 yeah i guess that'd work 15:29:12 the "glue" function that does all the work is just a bit... not optimally pretty :P 15:29:19 well 15:29:25 i guess it's just one line i'll need to fix tho 15:29:28 or change 15:29:39 maybe i'll make it always also return some sorta AST, maybe that's simple 15:30:09 but first, someone give me some ski, i've just tested trivial stuff 15:30:32 MissPiggy: or did you mean how does the ski interp work? 15:30:45 because i think the code is pretty easy to read 15:30:46 -!- Gregor has quit (Read error: Operation timed out). 15:30:56 it's pitiful that I have 9 updates in a row on the recent changes list 15:31:03 yeah i can read it 15:31:07 it's just CDR coding 15:31:15 -!- Gregor has joined. 15:31:45 how long does that file take to compile? 15:31:55 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 like a few minutes 15:32:04 :D 15:32:09 nice 15:32:21 -!- base3 has joined. 15:32:36 I don't know anything abotu ski 15:32:38 educate me 15:32:50 oh wait 9 seconds now 15:32:52 about* 15:33:37 Wareya: S = \x y z.x z (y z) 15:33:44 Wareya: K = \x y.x 15:33:58 The above is Turing complete. 15:34:07 wait, what? 15:34:35 Any lambda calculus expression can be compiled into usage of S and K. 15:34:36 pikhq: he only knows C, Python and some game maker scripting language thing 15:34:40 and says he hates functional languages 15:34:44 alise: Oh dear. 15:34:45 sooo 15:34:49 it'll probably take a few hours to explain SKI 15:34:53 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 alise functional languages are hiary 15:35:01 hairy 15:35:02 oklopol: that also 15:35:05 Wareya: Let's start with lambda. 15:35:09 let's not 15:35:12 ski is just term rewriting 15:35:22 Wareya: http://en.wikipedia.org/wiki/Lambda_calculus 15:35:23 ((S a) b) c -> (a c) (b c) 15:35:26 :P 15:35:28 (K a) b -> a 15:35:29 lambda calculus is kind of hard to start with to explain SK 15:35:33 we can use this to model functions 15:35:40 let I = ((S K) K) 15:35:54 (I x) -> (((S K) K) x) 15:36:07 -> (K x) (K x) 15:36:25 which is (K a) b 15:36:30 a = x, b = (K x) 15:36:33 so we rewrite it to x 15:36:43 so, from two rewrite rules, we can express a function that takes an argument and returns it 15:36:55 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 we can express any turing-computable function with only combinations of these S and K terms 15:37:09 thus, it is a turing-complete programming language. 15:37:14 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 you can do IO in C 15:37:39 err... yes, yes you can 15:37:47 asm is even more tc than C 15:38:27 (8.3 seconds without any debug info) 15:38:31 LC is lame for theoretical purity if you have SK 15:38:31 i'll add asts now 15:38:47 oklopol: just replace "lambda x: y" with Lambda("x", y) etc :P 15:38:55 or even ('lam','x',y) knowing you 15:39:01 alise: Oh, hey. Don't think you saw. 15:39:11 alise: I wrote a SK evaluator in C. 15:39:18 alise: Using my lambda macro. 15:39:20 I saw. 15:39:27 Probably while reading the logs last week. 15:39:28 Oh, right. Log reading. 15:39:29 XD 15:39:38 alise once compiled underload to c 15:39:43 I STILL DO NOT UNDERSTAND 15:39:52 Wareya, let me try to explain, 15:40:01 Wareya: do you understand how (1 (2 3)) is a tree? 15:40:11 NOPE 15:40:12 > S a b c = a c (b c); 15:40:13 > K a b = a; 15:40:13 > S K K a; 15:40:13 a 15:40:13 > S a K b; 15:40:13 a b (K b) 15:40:15 Pure is awesome 15:40:18 Wareya, imagine you have a forest with lots of different kinds of birds in it 15:40:22 :D 15:40:27 TOO STUPID OF A METAPHOR 15:40:29 TRY AGAIN 15:40:33 MissPiggy <3 15:40:40 rich coming from "ASPERGER'S IS sOFtWARE aUTISM IS HARDWARE" man 15:40:49 YES 15:40:56 Wareya that was pretty rude 15:41:00 > S I I a; 15:41:01 a a 15:41:02 I APOLOGIZE 15:41:10 symbolic evaluation is a wonderful thing 15:41:17 yeah but you kind of lost it 15:41:18 I AM PISSY, GIDDY, AND HYPER 15:41:25 I don't really care what you are 15:41:28 OKAY 15:41:38 How about no caps lock?\ 15:41:41 hi MissPiggy 15:42:00 peace 15:45:23 alise you know I spent the whole night dreaming about the link between complexn numbers and consciousness -_- 15:45:30 lol 15:45:33 XD 15:45:53 another one of those mornings when you wake up with a headache 15:45:53 are you saying that complex numbers aren't computable? 15:46:09 (at least not digitally) 15:46:09 Wareya -- do you want to try again? 15:46:13 yes 15:46:26 wait, you think a digital computer cannot be conscious? 15:46:36 only an analogue one? 15:46:39 I do not believe that digital computers can be conscious 15:46:42 only analog ones 15:46:50 but only the core needs to be consious 15:46:58 Wareya: okay listen 15:47:01 you know what a neuron is? 15:47:01 so, an analog computer could run a digital one 15:47:03 yes 15:47:05 billions of them in our brain right 15:47:08 yes 15:47:09 you know we can emulate them on digital computers right? 15:47:11 and do so 15:47:16 emulate 15:47:23 they emulate analog sound effects 15:47:24 yes. emulate is the same thing as run natively, just slower 15:47:25 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 on digital computers 15:47:34 also neurons are primarily digital... 15:47:43 yet they have an analog section 15:47:47 furthermore, you have not provided any evidence for your claim 15:47:52 that's the part I think causes consciousness 15:47:54 of course I haven't 15:47:58 that's why I said it was radical 15:48:01 unless you do so, I have no obligation to consider it 15:48:02 piggy: okayy reading now 15:48:09 -y 15:48:12 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 MissPiggy: just go for S and K 15:48:28 M isn't important 15:48:28 alise: I suspect this is going to end up in the Chinese room argument. 15:49:25 yes 15:49:27 I understand 15:50:11 -!- Libster has joined. 15:50:24 butts 15:50:27 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 Yes, that is very, very asinine 15:50:50 thnx 15:50:54 not you :D 15:50:55 i too 15:50:55 Libster: wat 15:50:57 oh 15:51:00 i am trolling 15:51:01 get my models of consciousness from like 15:51:03 pulp novels 15:51:03 am i doing a good job? 15:51:07 nope 15:51:10 :( 15:51:12 I am so confused in the few seconds since you joined 15:51:15 go rtoll 4chan by being a shitty troll like I do 15:51:19 troll* 15:51:19 please tell me how i can do a better job Wareya 15:51:22 sorry guys this is my fault 15:51:24 woah that must take some doing 15:51:25 -!- MissPiggy has left (?). 15:51:26 you think *you* *trolled* 4chan? 15:51:30 no 15:51:35 just some people on it 15:51:40 that thought I was a bad troll 15:51:42 no, they were trolling you 15:51:51 cockblocking trolls is a sacred art! 15:52:05 so what are you nerds up to 15:52:12 something awesome 15:52:25 cool 15:52:34 10:51 < MissPiggy> sorry guys this is my fault 15:52:36 10:51 -!- MissPiggy [~none@unaffiliated/fax] has left #esoteric [] 15:52:38 i sad 15:53:04 idiot 15:53:11 idiot idiot 15:53:12 but i AM an idiot 15:53:17 idiot 15:53:20 idiot idiot 15:53:20 that made my day, base3 15:53:22 Wareya: don't feed Libster and base3, they followed misspiggy here 15:53:29 but i am hungry 15:53:33 cool 15:53:43 please feed me 15:53:48 * Wareya fedds libster 15:53:53 thanks bud 15:53:55 I'mma fedd you 15:54:00 cool 15:54:01 i knew this channel was full of fedds 15:54:07 I'm kidding. 15:54:19 Alise, please tell me how to slim down Boat 15:54:21 :( 15:54:23 watch out Libster they might track you down and arrest you 15:54:32 oh no!!!! 15:54:51 Wareya: see /msg. 15:55:05 no problem Libster just mask your ip with /quit 15:55:18 hey i invented a new eosteric programming language 15:55:18 type /quit IP 15:55:22 here's the syntax 15:55:25 SPAM 15:55:26 SPAM 15:55:26 SPAM 15:55:26 SPAM 15:55:26 SPAM 15:55:27 SPAM 15:55:28 SPAM 15:55:30 SPAM 15:55:32 SPAM 15:55:34 SPAM 15:55:36 SPAM 15:55:38 SPAM 15:55:40 SPAM 15:55:42 SPAM 15:55:44 SPAM 15:55:46 SPAM 15:55:50 pretty funny, right? 15:56:00 lol montey pythan 15:56:04 i love that british humouur 15:56:10 fuck i hate british humor 15:56:11 hey pthing 15:56:14 and i hate british 15:56:14 hi! 15:56:17 how about you? 15:56:23 im fine 15:56:24 tell me how to slim down Boat 15:56:27 idk 15:56:32 eat less 15:56:35 exercise more 15:57:13 question 15:57:27 does 4^(4^4) end up being the same as 4^4^4^4 ever 15:57:32 or any change of the parenthesis 15:58:40 Wareya: if you take (4^4) or a higher tower as a power ever 15:58:56 it will clearly end up bigger than 4^(4^4) 15:59:01 like I'm thinkin of doing something like 15:59:07 since you still have to add in another 4 somewhere 15:59:11 4^^4=4^4^4^4 15:59:13 so the only possibility is 15:59:20 Congratulations, you invented tetration 15:59:22 and 4^^^4=4^^4^^4^^4=UGH 15:59:25 power tower 15:59:30 great because I don't know what that is 15:59:31 Knuth wants a word with you. 15:59:31 4^(4^4) = (((4^4)^4)^4) 15:59:33 What about knith arrows? 15:59:36 with u 15:59:37 knuth arrows 15:59:39 can you link me to an article? 15:59:41 Wareya: 15:59:44 See wikipedia 15:59:45 http://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation 16:00:04 I SEE THINGS I DO NOT KNOW HOW TO USE 16:00:08 Libster!!! 16:00:09 therefore I say I'll learn it later 16:00:10 :D 16:00:12 :DDDDDDDDDDDDDDDDDDD 16:00:14 hi 16:00:20 i am trolling this channel 16:00:40 Super Cave Story, Bro 16:00:54 Libster: wanna see my new ski interp? 16:00:59 http://www.vjn.fi/pb/p124451566.txt 16:01:03 what does tha tmean 16:01:06 sorry i am not a nerd 16:01:14 compiles in just 8.5 seconds 16:01:20 cool what are you talking about 16:01:23 but 4^(4^4) does not equal ((4^4)^4)^4, because it clearly equals (((4^4)^4)^4)^4 16:01:24 ski is this combinatory logic thingie 16:01:45 o 16:01:48 you just have three functions and you apply them to each other 16:02:01 i just use it to test my languages because it's trivial to implement 16:02:25 it's based on the theory that three idiots working together can accomplish anything 16:02:32 but this is so great, Libster and base3 on #eso 16:02:36 it's like christmas 16:02:42 true 16:02:56 we came here to troll 16:03:05 -!- lament has quit (Ping timeout: 240 seconds). 16:03:13 hahah alament is here 16:03:27 sometimes 16:03:28 yeah he's our friendly op. 16:03:35 not that he ever does any opping. and he isn't really friendly 16:04:03 this isn't really his thing anymore, but he enjoys listening to us with his ears 16:04:06 oklopol: do i know you? 16:04:17 base3: no, but i often watch you on #math 16:04:31 -!- lament has joined. 16:04:43 hi lament 16:04:58 but me and Libster are best buds 16:05:01 oklopol: if you're interesting in antisocial or potentially unlawful activities tangentially related to math, you should join #~math 16:05:13 totally 16:05:43 we're sort of like a outlaw math gang 16:05:48 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 true 16:05:50 Super Cave Story, Bro 16:05:53 i see 16:06:04 i always thought you were a bit cooler than the other mathholes 16:06:10 true 16:06:49 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 alise, picture? 16:07:10 lol 16:07:22 lol alise 16:07:25 erm, actually, given the context, that sounds kind of strange. You know what I mean 16:07:44 can i have sex with you alise 16:08:05 Sgeo_: not now, I'm busy whoring out my body to *other* people 16:08:20 only regulars can have sex with alise 16:08:29 can i have sex with you oklopol 16:08:35 troll cocks are too big 16:08:40 true 16:08:56 we could do math together 16:09:01 -!- alise has left (?). 16:09:03 -!- alise has joined. 16:10:59 guys 16:11:05 what should I do to slim down boat 16:11:06 http://esolangs.org/wiki/Boat 16:11:08 this boat 16:11:17 throw your passengers overboard 16:11:33 while maintainging the retarded way of dealing with memory, 2Dness, and expression nesting 16:13:25 I guess I could limit myself to if tests and increment/decrementation 16:13:56 use linux it will make your code faster 16:14:03 that's a no brainer 16:15:58 this is not about speed, this is about ease of implementing it 16:16:02 so even more definitely linux, huh 16:16:13 linux has all the right stuff 16:16:36 but linux IS faster 16:16:39 wait 16:16:42 you were serious? 16:16:46 i was just trolling 16:16:52 man you guys are stupid 16:16:57 no shit you're trolling 16:17:02 but yes I'm serious 16:17:23 as opposed to what, windows? linux has a better task switcher iirc 16:17:28 and probably the syscalls are better 16:17:30 task switcher? 16:17:33 and yes 16:17:34 so, theoretically, you could say it's faster 16:17:44 yes you could say that if you are stupid 16:17:44 Wareya: if you don't know what a task switcher is... ... i have nothing to say 16:17:59 ALT+TAB 16:18:00 HAHA 16:18:21 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 thanks, Wareya 16:18:29 yeah thanks 16:18:31 i appreciate it 16:18:42 but these trolls are cool 16:18:56 true 16:33:23 http://64.vg/src/cb37635de8f76f2b2587fbace50d0427/raw 16:33:47 or: http://64.vg/uoa 16:39:03 See, now the channel's dead. 16:39:57 good 16:40:28 At least the trolling finally ended. 16:41:43 hi 16:41:48 Wareya: you fucking moron 16:41:53 just shut up 16:42:02 _ _ _ _ _ _ _ _ 16:42:02 (_) __| (_) ___ | |_ (_) __| (_) ___ | |_ 16:42:02 | |/ _` | |/ _ \| __| | |/ _` | |/ _ \| __| 16:42:02 | | (_| | | (_) | |_ | | (_| | | (_) | |_ 16:42:02 |_|\__,_|_|\___/ \__| |_|\__,_|_|\___/ \__| 16:42:09 l@l 16:43:56 馬鹿ね。…… 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 :o 16:44:32 Funny, ChanServ automagically goes hostmasky when you give it a nickname. 16:44:46 \o/ 16:44:58 hey they weren't so bad 16:45:06 i feel kind of awkward with them still sitting, brooding, silent 16:45:09 although i guess it's nice to aknowledge someone's trolling 16:45:13 like what if they stay here for years and someone unbans them by mistake 16:45:18 and a million lines come through in 0 seconds 16:45:18 *ack 16:45:24 that's scary 16:45:35 I was mostly going by the 16 consecutive lines of "SPAM". 16:45:39 I'd start chanting "kick them" but there isn't enough of an angry mob 16:45:42 hehe 16:45:47 anyway 16:45:50 esoteric languages 16:45:51 oh what the hell. KICK THEM! KICK THEM! :| 16:45:51 they're cool 16:45:53 but i do o 16:45:54 o 16:45:54 o 16:45:54 o 16:45:54 o 16:45:54 I don't know much abotu them 16:45:58 educate me 16:46:00 and i never get banned 16:46:01 oklopol: you're allowed, because you're cool 16:46:03 ah! 16:46:11 and say awesome stuff in the non-oing interims 16:46:20 plus you don't copy-paste "SPAM" you handcraft every o 16:46:22 every single o 16:46:24 well that's even truer i guess 16:46:25 anyway 16:46:29 esoteric languages are cool 16:46:32 and I don't know much abotu them 16:46:34 educate me 16:46:50 did I seriously make the same typo twice? 16:46:54 That's pathetic 16:47:20 i'd tell you about good ones but they're all functional 16:47:41 but I don't know much about functional languages either 16:47:42 -!- Libster has left (?). 16:47:48 (I assume Freenode's guidelines mean I should have been more of a "catalyst" somehow there, but I suck at chemistry.) 16:48:53 Wareya: Functional programming is simple, but unlike what you're used to. 16:49:02 one's gone 16:49:06 but base3 is holding the fort 16:49:08 storing energy 16:49:09 like a pokemon 16:49:11 I understand the basic concept 16:49:16 Functional programming deals with true functions. That is, they map from input values to an output value. 16:49:19 And that's it. 16:49:23 yes 16:49:35 fizzie: I think blatant intentional spam and trolling is meant to be dealt with BLOOD 16:49:41 but it's at the level of the actual language that I really hate dealing with 16:49:57 especially purely fucntional ones 16:50:01 That's because you're not used to dealing with the abstractions is all. 16:50:17 Of course. 16:50:35 alise: Yes, but that'd be *increasing the channel temperature*! And I don't want to get all sweaty here. 16:50:37 Learn you some Haskell. 16:50:43 (delicious, delicious Haskell) 16:50:50 he said he started then gave up 16:50:57 alise: Lame. 16:51:02 indeed 16:51:52 I used it for five ffreaking weeks 16:51:52 -!- MissPiggy has joined. 16:51:55 -f 16:52:00 I just couldn't get anything done with it 16:52:00 lol 16:52:06 Wareya: Weak. 16:52:21 awesome story 16:52:31 Keep on doing it. 16:53:08 Wareya: You did not learn Haskell. 16:53:10 should I do address[size] 16:53:12 You learned Haskell's syntax, yes. 16:53:14 or size[address] 16:53:19 You learned how it relates to imperative languages. 16:53:26 actually 16:53:28 Given that you don't seem to grok lambda, doesn't seem like you learned much. 16:53:28 But you never made the transition from programming in an imperative language then converting it to Haskell, 16:53:30 all I learned was the syntax 16:53:33 to someone who programs and thinks directly in Haskell. 16:53:40 Wareya: then how did you compile a thing? 16:53:46 You had to have some understanding of the semantics, however wrong and weak. 16:53:47 I didn't :D 16:53:59 The syntax was pretty easy... 16:54:02 then you were foolish to program in a language 16:54:20 yes 16:54:22 yes I was 16:54:43 Any language. 16:54:49 :P 16:54:53 lolp 16:55:29 anyway 16:55:45 with boat, should I do address[size] or size[address]? 16:56:02 either one causes problems - either with casting or with arrays 16:56:21 what do those mean? 16:56:29 addressing of memory 16:56:30 Clearly [] should be commutative. 16:56:58 Wareya: make it swap when going left or right 16:57:02 so you always write it one way in the source 16:57:03 :D 16:57:17 there are four directions 16:57:21 ie foo[bar] or ]bar[foo 16:57:28 then it's always foo[bar] in the source if you go at it left or right 16:57:36 thank you for doing ]bar[ by the way 16:57:41 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 #i are just argument numbers 16:58:02 that's "ski apply" 16:58:15 oklopol: that isn't a nested structure :< 16:58:26 in C, (char)*address would be address[16] with address[size] 16:58:30 on a big endianmachine 16:58:33 +space 16:58:39 alise: what? 16:58:41 that's how the boat thing goes 16:58:44 Wareya: or size[address] 16:58:46 x[y] = *(x+y) 16:58:50 x+y = y+x 16:58:50 size address would be 16:58:53 16[address] 16:58:55 of course 16:58:59 ∴ y[x] = x[y] 16:59:09 wait, what? 16:59:20 poor kiddy doesn't know C 16:59:22 Wareya: ok, in C 16:59:23 x[y] is sugar for 16:59:25 *(x + y) 16:59:27 we know that 16:59:29 x + y = y + x 16:59:29 right? 16:59:32 therefore 16:59:35 oh I didn't know it was C 16:59:36 *(x + y) = *(y + x) 16:59:37 lol 16:59:41 since x[y] is *(x + y) 16:59:42 alise: what do you mean it's not a nested structure? 16:59:44 y[x] = x[y] 16:59:46 therefore 16:59:52 1["abc"] = 'b' 17:00:00 oklopol: well it looks like it's printing parts of the ast separately 17:00:02 maybe i'm wrong 17:00:10 I have never used strings like that but OKAY 17:01:31 alise: there's no one ast, running the result isn't just calling one functino 17:01:32 *function 17:01:34 well it is 17:01:43 well true 17:01:50 but the logic isn't in the core language 17:01:52 so, that code looks remarkably compact 17:01:55 where's the actual application 17:02:02 this is ski right 17:02:07 well i can explain what it actually does 17:02:12 that's just the ski apply function 17:02:21 so it's compacted everything into one? 17:02:28 or is it just referencing out 17:02:35 anyway, this could be transformed into haskell really easily 17:02:39 apart from the untypedness 17:02:48 have a feeling compiled clue code could be very fast 17:02:53 http://www.vjn.fi/pb/p116522211.txt <<< slightly clearer, although not much 17:03:08 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 it does condition, and chooses branch based on the result 17:03:19 have some sort of representation of io, so you can say like 17:03:28 "foo" -> output "foo\n" 17:03:29 Base branch (i) means if the cond result is i, run this base branch 17:03:34 that would be fun 17:03:45 Subast(0,0):['car', ['cdr', '#0']] 17:03:45 Main ast: '#1' 17:03:47 oklopol: ah i see 17:04:07 subast(i,j) means find for subcall i the argument number j 17:04:28 a 17:04:38 oklopol: can it infer ackermann 17:04:47 and yeah it could be transformed into something haskellish sure. 17:04:52 and obviously it can infer ackermann 17:05:07 -!- MigoMipo has quit (Ping timeout: 252 seconds). 17:05:08 hmm it's obviously tc but i wonder if you can infer any tc function directly ie without interpreting :) 17:05:11 if you can do it functionally, you can do it cluely, it just might be a big pain in the ass 17:05:21 although i find simple functions nicer to write in this than functionally 17:05:54 (e(e))you can nest expressions - 2D flow and tests and execution included for major FFFFFFFFFFFFFFFFFFFFFFFFFF 17:06:04 yeah i don't know how much you can do "directly", not that that's a very precise thing to ask 17:06:05 q[n]WHEN GOING RIGHT OR DOWN access memory at address q with n bits in size 17:06:06 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 all sufficiently complicated list interpreter blah blah and so on 17:06:27 *lisp 17:06:52 (read that as a set of words that you can fit in a sentence as homework) 17:07:49 I'll make it so that it's little endian if you're going left or up! 17:07:52 oklopol: wait even if you infer ski 17:07:56 you have to infer a function that calls it 17:08:02 huh? 17:08:04 so even if you have ski, you may not be able to cause it to be called in an arbitrary way 17:08:06 oklopol: well wait 17:08:09 how do you 'run' a clue program 17:08:14 i haven't decided ! :D 17:08:14 do you define a main function and punch values into it on the cli? 17:08:18 yeah prolly 17:08:22 something like that 17:08:27 but if you had to make one inferred function 17:08:28 say main 17:08:38 where basically 17:08:40 that's always called with like 0 17:08:43 the result value was what is output 17:08:47 yeah 17:08:48 then 17:08:53 oklopol: no 17:08:57 that's always called with the user input 17:08:59 as a list of chars (ints) 17:09:07 you'd have to find a way to parse and call ski arbitrarily from that 17:09:14 i.e. you may not be able to infer arbitrary calls to ski 17:09:22 so even if you have an ski impl, if you go by my route it may not be tc! 17:09:26 well then you'd have to parse, and parsing is inherently quite mutual in its recursion 17:09:34 at least the way i usually do it 17:09:39 yes but I mean 17:09:51 clue may not be able to infer the actual call to eval ski(x) 17:11:00 what? just say "if main gets [1, 2, 3] as input, it should parse that input and call ski with it" 17:11:30 that's depth 2 inference, and will happen in less than a second 17:11:31 maybe i'm misunderstanding something 17:11:33 now let me understand the ski apply function 17:12:50 ok then 17:17:17 how should I deal with input? 17:18:12 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 it's a fountain of input 17:18:22 do not argue with me, this is an excellent idea 17:18:27 going down until you reach a character works as ungetc 17:18:34 what about multiple inputs? 17:19:09 well, I COULD send press and release statements 17:19:25 yeah that works 17:20:15 ha you actually like that idea? 17:20:18 i was half joking but i like it too 17:20:25 I don't really like it 17:20:46 because I can't find a way to deal with the whole "new memory area" concept :P 17:20:52 just an area of main memory 17:21:00 that could ruin stuff, though 17:21:07 http://www.vjn.fi/pb/p641555462.txt 17:21:07 there's some ugly pseudohaskell for ya 17:21:45 I barely understand 17:21:54 ski type also does a major part of this 17:22:32 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 I'll just let the program TEST for input of a certain character 17:22:50 but how do I do that withotu a function? 17:22:52 that was hell to infer btw :P 17:23:04 because I don't want to fuck with things like that with a 2D language 17:23:10 and i think it's more insight to clue than that code there is 17:23:22 I'm talking abotu boat 17:23:23 but i think it's sort of neat 17:23:26 couldn't have written the program better myself, really 17:23:51 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 i mean my life finally has meaning 17:24:15 clue is the shit 17:24:19 oklopol: you should make it do de bruijn indexes 17:24:32 i'm not sure what you mean 17:24:39 -!- lifthrasiir has joined. 17:24:39 k is \\2, s is \\\2 0 (1 0) 17:24:44 lol 17:25:01 i.e. currying, lambdas have no variable names, var 0 = closest lambda's arg 17:25:04 var 1 = second-closest 17:25:04 etc 17:25:15 you don't have to do alpha-conversion because it's a nop 17:25:19 and you can just use a stack to implement it 17:25:25 i'm basically doing exactly that 17:25:28 and syntactic equality = structural equality 17:25:31 oklopol: nah because you have 17:25:34 (\#0 #1 -> #0) as K 17:25:44 instead of (\\#1) 17:25:50 the names of vars change as you nest deeper 17:25:57 so you can just use a stack 17:25:57 well yeah i'm not doing that in the haskell representation i did manually 17:25:59 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 oklopol: right 17:26:09 answer* 17:26:11 Wareya: don't, use the fountain 17:26:17 but the fountain is broken 17:26:24 the actual "ast" field of the branch representing k is "#0" 17:26:43 it's like playing solitare where you can't skip cards 17:27:06 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 oklopol: ooh I know 17:28:13 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 the special thing is that the compiler tries really hard to produce really fast code 17:28:27 so you can say 17:28:40 Clue: So it takes 9 seconds to compile S I I (S I I), but it executes in 8. 17:28:55 i just realized it'd be incredibly trivial to change it to output that 17:29:11 define that 17:29:14 epic or haskelly 17:29:19 i mean so trivial it's basically just changing some of the constant strings 17:30:28 so how would "(\#0 #1 #2 -> pair #1 #2) #0 sub3res1 sub3res2" look like? 17:30:48 i was thinking just like (pair #1 #2) @ #0 sub3res1 sub3res2 17:30:54 -!- lifthrasiir has quit (Ping timeout: 240 seconds). 17:31:10 otherwise pretty much exactly the syntax i have now 17:31:13 you mean in epic? 17:31:20 is (\ a b -> c) curried in yours? 17:31:22 or does it not matter? 17:32:03 SII doesn't execute in 8 seconds 17:32:03 *SII(SII) 17:32:08 it was a joke 17:32:18 but you still haven't said whether you're talking about epic or something else 17:33:26 http://64.vg/uot 17:33:37 oklopol: ??? 17:33:59 minimized Boat 17:34:07 -!- lifthrasiir has joined. 17:34:23 hi 17:34:30 not really, i don't know what that would change 17:34:47 oklopol: well epic can actually compile things to efficient C code as opposed to your pseudocode which can't :P 17:34:57 there are no higher-order functions 17:35:03 right 17:35:06 with epic you don't even have lambda 17:35:10 because it's a supercombinator compiler 17:35:58 oklopol: i'm getting the feeling you're ignoring me 17:36:11 what about me 17:36:12 why can't it? 17:36:15 j/k 17:36:21 oklopol: why can't epic have lambdas? 17:36:33 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 i don't think 17:37:12 hmm the only values in clue are lists and ints aren't they 17:37:34 what are supercombinators 17:37:55 lambda expressions with no free variables containing no lambdas 17:38:04 i.e. flat lambdas 17:38:38 probably compiling to epic would be nicer than compiling to C, but i could just not to either. 17:39:17 well it saves you writing an evaluator 17:39:23 and http://www.vjn.fi/pb/p641555462.txt is literally a stone's throw away from epic 17:40:13 sub1res = (\#0 -> car cdr #0) #0 17:40:14 wut 17:40:18 does that make sense? 17:40:19 what's cdr's car 17:42:17 so about that simplified boat 17:42:26 er minimalized 17:42:55 3 => (\#0, #1, #2, #3 -> #3) #0 sub3res1 sub3res2 sub3res3 17:42:58 I think I have figured out how one one could compute discrete coordinates in presence of wormholes.... 17:43:00 this "calls" (evaluates) sub3res3 right? 17:43:04 and ignores the rest 17:44:23 Hmm. Y'know, I think most of the evaluation time in my SKI evaluator is the garbage collection. 17:45:00 okay my lag is too big for ircing 17:45:30 oklopol: How close connection is to being unstable? 17:45:55 yes 17:46:00 -!- base3 has left (?). 17:46:21 and i meant clue doesn't have any higher-order stuff 17:46:33 oklopol: http://www.vjn.fi/pb/p216431545.txt here's what I think your program would look like in Epic 17:47:23 *case ski_type(_0) 17:48:22 clue needs tail call optimisation right? 17:48:26 or at least tail recursion 17:48:30 is that a real term? 17:48:35 a real term? 17:48:41 in any case that's what i have 17:48:46 ? 17:48:52 http://en.wikipedia.org/wiki/Tail_recursion ? 17:48:57 he knows what tail recursion is 17:49:00 oklopol: what real term? 17:49:19 aiight 17:49:28 tail call optimization? 17:50:09 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 alise: is flat lambda a real term 17:50:09 sorry, 400 seconds lag 17:50:14 Wareya: This is actually easy to explain in C. 17:50:23 oklopol: no they're really called supercombinators 17:50:28 void foo(){printf("Foo!\n");foo();} 17:50:31 oklopol: also did you just get that recently? i translated you whole program into epic in that time 17:50:43 Because foo() is the last thing called, the function does not need to be returned to. 17:50:55 So, the compiler can not keep around the stack frame. 17:51:02 Instead of "call foo", it can just do "jmp foo". 17:51:07 oh 17:51:11 no shit 17:51:30 So, tail recursive functions are easily compiled into loops. 17:52:14 "alise: sub1res = (\#0 -> car cdr #0) #0" <<< sorry car (cdr #0) 17:52:15 "alise: this "calls" (evaluates) sub3res3 right?" <<< yes 17:52:24 tail calls can be compiled into jumps 17:52:26 oklopol: right I fixed that. http://www.vjn.fi/pb/p216431545.txt just to repeat 17:52:28 http://www.vjn.fi/pb/p216431545.txt http://www.vjn.fi/pb/p216431545.txt http://www.vjn.fi/pb/p216431545.txt 17:52:28 even more general than 17:52:28 http://www.vjn.fi/pb/p216431545.txt 17:52:31 so you don't 17:52:31 http://www.vjn.fi/pb/p216431545.txt 17:52:32 miss it 17:52:32 http://www.vjn.fi/pb/p216431545.txt 17:52:35 on the next flood you get 17:53:14 and the only values are, at least now, ints and lists. 17:53:45 http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog 17:53:45 http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog 17:53:46 http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog 17:53:46 http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog 17:53:46 http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog 17:53:47 C version 17:53:50 MissPiggy: Yes, but tail calls that aren't tail recursion are less common. 17:53:59 pikhq: I disagree 17:54:02 okay 17:54:02 I rarely recurse 17:54:03 (though continuation-passing style does it all the bloody time) 17:54:19 tail recurse that is 17:54:19 "alise: clue needs tail call optimisation right?" <<< yes, although i'm fine with not having it for now. 17:54:24 alise: Explicitly. 17:54:26 most of my tail calls are non-recursion 17:54:32 Anyways. 17:54:39 well i think epic almost certainly does TCO 17:54:42 Still pretty darned common. 17:54:45 and http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog will do tco if you put it through gcc :P 17:54:50 -O3 will probably unroll all the functions there 17:55:20 Yeah, GCC does TCO rather nicely. 17:55:53 "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 well the lag is less now 17:56:13 (though things like "longjmp" break it) 17:56:43 Putting my C version through gcc will probably result in http://pastie.org/824550.txt?key=kwk16wfca7b8zitdyh59ew 17:56:46 if you give it -O3 17:56:51 which will also tail-call optimise it 17:57:00 thus making it pretty much as efficient a compilation as possible 17:57:03 *Fski_type(_0) 18:01:36 so about minimizing boat 18:05:32 * alise wonders how much a super-optimising compiler should evaluate code 18:05:35 up to IO: no, nontermination 18:05:46 only what it can prove total: large mathematical program would take years 18:05:57 we need something just below 18:05:59 hahaha 18:06:00 i.e. everything trivially total 18:06:14 like some way of measuring how "complicated" something is to eval 18:06:23 everything it can prove total whose complicatedness is below a certain threshold 18:07:06 Up to an inability to deduce a smaller way to do something 18:07:24 at which point it should assume brute-force status! 18:09:45 alise: is that actual epic code? could i just translate to exactly that? because that would indeed be trivial 18:10:02 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 I know it has actual ints btw so ignore the fact that that defines them itsellf 18:10:14 itself 18:10:16 (albeit using 0 and 1) 18:10:25 to do your lists just do Con head (Con head ()) 18:10:29 and case on that 18:10:35 but yes, per my knowledge of epic, that should work 18:10:54 hmm 18:10:57 my types were wrong though 18:11:00 Data isn't correct 18:11:02 I think it should be Any 18:11:08 for it may be data and it may be an int 18:11:12 so yes, s/Data/Any/g in my program 18:11:28 but according to my understanding of epic, yes, that should work. 18:11:57 if you want http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog with gcc -O3 should compile to something competent as well 18:12:03 basically identical code 18:12:07 epic probably does more lambday optimisations though 18:12:13 http://www.eugeneleeslover.com/VIDEOS/fire_control_computer_1.html 18:12:17 this is sooooooooooooooo sexy 18:13:49 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 the compiler can do it in all cases 18:14:06 alise: also i forgot one tiny thing: you have to actually recurse on the subcases :D 18:14:23 oklopol: well, you didn't do that, so there :) 18:14:28 oklopol: btw why do you have all those useless functions? 18:14:33 couldn't you just inline them all? 18:14:44 it's an absolutely trivial transformation, after all 18:14:50 what useless functions? 18:14:54 MissPiggy: I saw that URL and just assumed it was Eugene Lee's Lover :P 18:14:58 oklopol: all the _ski stuff 18:15:10 Gregor: ditto 18:15:14 oklopol: (in mine) 18:15:16 oklopol: in the where clause 18:15:18 you can inline every single one 18:16:44 sure you can, but that would've been much less illustrative imo 18:18:05 -!- Libster has joined. 18:18:06 but faster 18:18:12 fizzie: Libster is still banned right? 18:18:16 maybe changed ident 18:18:26 "faster"? 18:18:26 what 18:18:32 oklopol: less function calls 18:18:32 faster to read? i don't think so 18:18:42 it was 74-102 last I checked 18:18:47 i'm saying when you have something like http://pastie.org/824546.txt?key=ri1rc17yhlciscu01zkog 18:18:57 the _ski functions are useless 18:19:00 [+q *!*@pool-74-103-90-165.bltmmd.east.verizon.net] 18:19:09 nope 18:19:11 just take the expr inside return X; and replace the call with it 18:19:59 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 you could just drop the lambda, but you couldn't see what computations are based on what computations, as clearly 18:20:45 *lambdas 18:21:45 why do you need to show what info it needs? just curious 18:21:50 this is just compiler output after all 18:21:54 i wanted you to know :D 18:22:03 right well i'm talking about for when it actually compiles :P 18:22:28 well i'm not considering doing that right now, just compiling for human reading 18:22:32 -!- thermoplyae has joined. 18:22:38 but yeah 18:22:50 -!- thermoplyae has left (?). 18:22:54 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 thermoplyae :o 18:23:52 no because it won't type in haskell prolly 18:23:59 you can't express all ski exprs in haskell 18:24:46 hm 18:24:51 i don't see Libster in the ban list? 18:24:59 it was a +q 18:25:00 not a +b 18:25:01 does irssi not show the ban list correctly? 18:25:06 [+q *!*@pool-74-103-90-165.bltmmd.east.verizon.net] 18:25:32 i thought those showed up in the ban list, just hade a % in front 18:25:35 *had 18:25:47 idk lol 18:25:52 oh well 18:26:03 +q is like the happy friendly form of +b 18:26:13 look but don't touch! 18:26:37 haha 18:26:55 that's neither happy nor friendly 18:27:30 it's better than genocide 18:28:42 So about that Boat minimalization while still being somewhat easy to use 18:28:49 :< 18:30:41 The interpreter segfaults when I compute something like fact 100000000. 18:30:41 That's because stack checks are not enabled by default. 18:30:41 ah 18:30:47 hahaha 18:31:14 -!- base3 has joined. 18:31:51 -!- MigoMipo has joined. 18:31:54 lol poor fools trying again 18:32:08 MissPiggy: are they actually that determined :) 18:32:11 or are their irc clients just rejoining 18:32:19 lol 18:34:55 -!- base3__ has joined. 18:35:18 alise: firstly don't think i can't evade a ban if i want to 18:35:33 no shit 18:35:36 secondly how can you be in this channel and not know what car of cdr is? 18:35:41 I know what car of cdr is 18:35:43 he wrote "car cdr x" 18:35:45 he meant "car (cdr x)" 18:35:51 haha 18:35:56 I didn't know whether that was some special semantics for Clue functions 18:35:57 alise you don't undestand CAR or CDR 18:36:00 or whether it was a mistake 18:36:03 your ISP only randomixes the least significant byte 18:36:05 he informed me it was the latter 18:36:10 Wareya: flase 18:36:14 false* 18:36:14 alise stop acting like you know lisp 18:36:19 oh? 18:37:23 -!- base3 has quit (Ping timeout: 256 seconds). 18:38:11 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 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 you can just do /mode +q to see the +qs 18:42:34 not lying 18:42:51 but on some ircds that would kill the channel 18:43:11 Wareya is having a hard time with this trolling thing 18:43:13 Wareya: just do /quit #channel to kill a channel on this version 18:43:29 * alise sigh 18:43:41 fizzie: are we going to play cat and mouse or staring contest 18:43:44 gotta be one or the other 18:43:45 or do /quit alise to quit someone who is annoying you 18:43:54 base3, I'm not retarded 18:43:56 :) 18:44:06 either they evade and we re-ban, or we wait until they get bored 18:44:17 unfortunately, they're probably already bored if they think trolling us is productive. 18:44:19 it comes to the same thing really 18:44:26 *!*@host81-141--*.wlms-broadband.com 18:44:27 It'd be nice if any of the regulars in this channel were ops. 18:44:30 *!*@host81-141-*-*.wlms-broadband.com 18:44:31 Gregor: fizzie is 18:44:35 and he banned them earlier, and is here right now 18:44:45 just ban @*.wlms-broadband.com 18:44:51 but that's assholish 18:44:54 18:43 < base3__> or do /quit alise to quit someone who is annoying you 18:44:56 and foolproof 18:44:58 guys I think he might be a hacker 18:44:58 Quited, not banned. Still. 18:45:00 so watch out 18:45:06 MissPiggy: Haw 18:45:08 unless he goes to a friend's house; if he does that, we can just laugh at him i guess 18:45:15 Quieted, I mean. Heh. 18:45:16 listen i told you how to check the quiet list 18:45:17 fizzie: planned course of action? 18:45:22 Who runs the channel, as far as ChanServ's concerned? 18:45:27 pikhq: i think lament 18:45:28 Pretty sure the founder isn't around any more. 18:45:29 that wasn't trolling it was genuinely being helpfu; 18:45:30 used to be aardappel 18:45:33 lament is second. 18:45:36 alise: Ah. 18:45:42 base3__: Seriously, what do you think we are, idiots? 18:45:44 then Wareya starting talking nonsense so i played along with him 18:45:47 You're honestly going to have to troll far better than that. 18:45:54 Me? 18:46:01 Oh, right. 18:46:05 Wareya, yeah you are going to have to troll much better than that 18:46:08 lament was set to inherit. 18:46:10 alise: you really think that /mode +q with no args doesnt give you the list of quiets?? 18:46:22 fizzie: plz just ban eir isp 18:46:23 that is the gospel truth 18:46:25 or quieten it, whatever 18:46:30 try it in another channel 18:46:31 troll? 18:46:32 you're fucking kidding me 18:46:32 he's completely serious, /mode +q shows the quiet list 18:46:32 we can add exceptions later if anyone else actually uses it... 18:46:44 13:46 < MissPiggy> Wareya, yeah you are going to have to troll much better than that 18:46:45 Wareya, this is no laughing matter 18:46:48 I'm sorry, what? 18:47:04 MissPiggy: i think you're taking this a little too seriously 18:47:12 you're letting the terr--trolls win 18:47:14 i doubt i'm going to repeatedly come back in here to wind you guys up tbh 18:47:24 you're not as entertaining as you seem to think you are 18:47:27 who's wound up, i'm just prodding fizzie to ban your isp 18:47:30 I think it's time for virtuchuck. 18:47:37 Definitely. 18:47:41 turns out we don't try and be entertaining when people are just going to shit on your conversations 18:47:42 I could use a protein shake 18:47:47 Gregor: ooh, make it trigger on every single line he says! 18:47:48 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 13:46 -!- 0 - #esoteric: ban *!*@host81-141-232-7.wlms-broadband.com [by ChanServ!ChanServ@services., 7348 secs ago] 18:47:52 base3__: We entertain ourselves quite well. :) 18:47:54 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 If we don't do friendly ai right.. 18:47:57 that's what /mode +q shows 18:48:00 virtuchuck: THEN WHAT?! 18:48:01 alise: Chuck norris once ate a whole cake before his friends could tell him there was a stripper in it. 18:48:04 what the fuck chuck is tlaking about friendly ai 18:48:09 MissPiggy: it listens to us 18:48:22 virtuchuck: what was that about friendly ai? 18:48:22 MissPiggy: What was that about friendly ai. 18:48:23 alise: Welcome to Markov chains. 18:48:31 virtuchuck: Compare Chuck Norris to base3__. 18:48:32 Gregor: 3 Laws or weaker system. 18:48:34 Erm. 18:48:36 MissPiggy: 18:48:36 :D 18:48:48 virtuchuck: You have to repeat what I said just now. 18:48:48 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 fungot: Is this chuck a friend of yours? 18:49:14 fizzie: you mean an a-list? 18:49:32 Ah, the bots. 18:49:33 Hmmm 18:49:38 The wonderful, wonderful bots. 18:49:43 If fungot talks at the wrong time, they'll get into an infinite loop :P 18:49:44 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 virtuchuck: AI 18:49:45 MissPiggy: If we don't do friendly ai right.. 18:49:46 A-List bots :D 18:49:54 `c printf("Hey, I can talk too!\n") 18:49:54 haha 18:49:57 virtuchuck: poop 18:49:58 alise: It's freaking technology improving itself. 18:49:59 No output. 18:50:04 lololol 18:50:06 virtuchuck: Poop is self-improving technology? 18:50:07 alise: It's freaking technology improving itself. 18:50:09 ... No output. 18:50:14 virtuchuck has just learned about the singularity for the first time 18:50:16 :D 18:50:20 Gregor: Fungot has an anti-loop thing on the chat side, though. 18:50:23 now he's obsessing 18:50:28 fizzie: Good :P 18:50:31 he thinks it's faeces though 18:50:34 I think I preferred virtuLORD. 18:50:35 -!- virtuchuck has quit (Client Quit). 18:50:39 !c printf("Hey, I can talk too!\n") 18:50:41 blend the two 18:50:46 Hey, I can talk too! 18:50:48 and the LORD said, inject your protein shakes 18:50:49 Hey, I can talk too! 18:50:54 DO IT 18:50:54 Hey, I can talk too! 18:50:56 But HackEgo cannot. 18:51:11 -!- virtuLORD has joined. 18:51:11 Baltasar's profane banquet: his sentence is welcome to the law, or the hired man that is since lost. 18:51:13 Gregor: I just realised something. 18:51:21 Gregor: The old hobby of trying to break EgoBot has gone away. 18:51:31 Gregor: blend virtulord and virtuchuck now. 18:51:37 Quite a while ago. 18:51:38 alise: Okidoke, will do. 18:51:40 :D 18:51:46 You're better at IRC bots. :P 18:52:03 I had a bible-trained fungot speaker somewhere, but I don't think I put it in the bot. 18:52:04 fizzie: look at all the oo is fnord. insist on using modern regexps even though they are not 18:52:11 ^style 18:52:11 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 18:52:16 modern regexps are indeed not regular expressions 18:52:23 and OO is indeed smoke and mirrors!! 18:52:30 Yes, none of those look very biblical to me. 18:52:43 ^style irc* 18:52:44 Not found. 18:52:49 Curses. 18:53:08 The * is just the current-selection-marker there. 18:53:50 Ah. 18:54:10 ^style.^ 18:54:13 derp 18:54:15 ^style irc.^ 18:54:15 Not found. 18:54:17 derp 18:54:19 ^style irc.* 18:54:19 Not found. 18:54:20 I suclk 18:54:22 I suck 18:54:26 I SUCK 18:55:25 I sulk. 18:55:32 wtfbbq 18:55:38 Just nearly crashed my system trying to combine them :P 18:55:49 roflolticas 18:58:42 virtuLORD: Give us the good news! 18:58:42 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 Amen. 19:04:16 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 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 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 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 :D 19:04:31 -!- Libster has left (?). 19:05:00 Not having looked at the language at all except for what you just pasted, reminds me slightly of 2L. 19:05:12 http://64.vg/src/48029a6eda8165c6d5a5b6f71a785f1e/raw 19:05:17 Namely, in that it has different actions depending on direction. 19:05:21 I'm trying to minimalize Boat 19:05:29 http://esolangs.org/wiki/Boat 19:05:30 this boat 19:09:19 -!- Quadrescence has joined. 19:09:54 hello is this a channel about esoteric programming languages like java 19:10:06 yes 19:10:39 Hyuk hyuk 19:10:53 Java doesn't seem all that esoteric. 19:11:04 Though it does have many an odd design feature, it is extremely well-known. 19:11:13 like perl 19:11:36 So is "how well known" a metric for being esoteric? 19:11:38 Wareya: Except Perl is entirely composed of odd design features. 19:11:44 yes 19:11:49 Quadrescence: Somewhat, yes. 19:11:58 Quadrescence: Esoteric implies both "odd" and "unknown". 19:12:13 Etymologically speaking, how well known and used it is should be the only metric, but it's not :P 19:12:31 Gregor: Heheh. 19:12:33 I think BF is somewhat well known' 19:12:43 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 Sgeo_: Yes, but well known *soley for being odd*. 19:13:03 Quadrescence: They're intended for serious use, and as such aren't all that odd. 19:13:35 So being well known or not doesn't qualify as a metric for being esoteric it seems. 19:13:38 so 'esoteric' is an antonym of 'serious'? 19:14:06 base3__: To an extent. 19:14:18 mindrape 19:15:56 Mind rape? 19:16:01 mind rape 19:16:13 That was a yes-or-no question. 19:16:21 mind rape 19:16:59 Wareya: Still yes-or-no. 19:17:04 mind rape 19:17:17 I mean yes 19:17:56 * pikhq pushes the "mind rape" buttonb 19:18:12 Is this channel an antonym for serious? 19:18:28 mind rape 19:18:30 I mean yes 19:19:49 Quadrescence: Yes. 19:20:01 Well, we are capable of being serious. 19:20:07 However, that is not the raison d'etre. 19:20:15 (e/e)division 19:20:18 WHY DID I DO THAT 19:20:19 AFJ@#e-0fu@VQ@U()A 19:30:35 Okay, this is my last draft before bed 19:30:36 http://64.vg/src/fad448fab17d0b8f569a451741adbd07/raw 19:30:38 good night 19:31:31 -!- oerjan has joined. 19:35:17 That, or I can procrastinate sleep. 19:36:01 you only master procrastination properly when you can procrastinate breathing. 19:36:16 but 19:36:28 sure there are side effects 19:36:30 my new year's resolution 19:36:36 was to make one next year 19:36:58 well you can always put that off another year 19:36:58 Mine was to not make a resolution. 19:37:02 I always fail at it. 19:37:25 that's an okymoronic irony! 19:37:30 oxymoronic* 19:38:46 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 Fuck yeah. 19:41:20 I am procrastinating procrastinating working on this, 19:41:33 ... 19:42:39 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 Hah 19:43:19 oerjan: Zen is both zen and anti-zen. 19:43:26 That is the essence of zen. 19:43:34 ah yes 19:45:29 I don't think I can minimalize this anymore 19:49:36 minimalise a butt butt 19:51:05 but a butt butt is as low as a butt 19:51:57 are you saying butts are idempotent? 19:52:16 yes 19:52:49 what abotu the idiot bird 19:52:52 and the mocking bird 19:57:34 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 (Q is fond of F means QF = F) 19:58:15 what was a mockingbird again 19:58:23 Mx = xx 19:58:51 so M and composition 19:59:00 oh wait 19:59:04 -!- virtuLORD has quit (Quit: Leaving). 19:59:16 MissPiggy: congrats you just made everything super complex :D 19:59:17 you're not saying there is a combinator for making C, just that C exists 19:59:37 If you convert that to C I'll be able to do it :D 19:59:42 oerjan yes 19:59:48 -!- virtuhird has joined. 19:59:49 So ican do a blocking read it'll wait until the process id, modulo something. 19:59:52 Wareya, that means you are giving up? 20:00:01 I can only half understand what you're saying 20:00:05 _i_ haven't 20:00:13 There's still no Virtugeo :( 20:00:26 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 of course i understand how fixpoints are usually constructed from M 20:00:30 probably because of the metaphor of birds 20:00:32 -!- Quadrescence has left (?). 20:00:51 I made virtuhird exclusively to say that line. 20:00:53 Wareya: just s/bird/combinator/g 20:01:05 not on linux 20:01:14 running IRSSI through SSH 20:01:14 Wareya, well this IS a difficult problem -- but the solution can be got in a methodical way 20:01:14 (infact there's two methodical ways to get the solution that I know of) 20:02:12 "can you show for every bird in the forest it is fond of some other bird" 20:02:15 virtuhird: <3 20:02:15 alise: And it seems more common than (2*3)+4. 20:02:21 do not understand 20:02:24 virtuhird: Marry me. 20:02:24 alise: Marry him a few ssh tricks you can give you into a file * can you? 20:02:33 virtuhird 20:02:33 virtuhurd: 0/0 20:02:36 virtuhird: 20:02:39 virtuhird: . 20:02:40 alise: Solution: kill ancestors. 20:02:47 YES. 20:02:47 virtuhurd: <3 0/0 20:02:48 Gregor: how can i tell it "give me everything" 20:02:50 fix f = (\x -> f (x x)) (\x -> f (x x)) 20:02:52 also, is it listening to me or us? 20:03:00 virtuhurd: Marry me. 20:03:00 if so, it's not just virtuhird :< 20:03:01 just you 20:03:06 no i mean for its db 20:03:08 also, did you include tusho and alise 20:03:10 oh idk 20:03:13 and ehird` 20:03:22 alise: tusho no, alise yes, ehird` no. 20:03:31 alise: However, I had to cut it short, so really alise no :P 20:03:36 The brain was getting too big. 20:03:49 sounds like me 20:03:51 now why is it dead 20:03:53 virtuhird: Poop 20:03:53 alise: Poop ovulates over poop. 20:04:01 Gregor: how can I tell it "just give me anything" 20:04:01 Wow 20:04:06 yeah i actually said that :) 20:04:15 alise: I don't think hal.pl has such a feature :( 20:04:19 virtuhird: 20:04:22 virtuhird: . 20:04:22 alise: So, memes get killed off extremely quickly and efficiently. 20:04:24 virtuhird: . 20:04:25 alise: A tiny backtrace snippet from the base class. 20:04:27 virtuhird: . 20:04:27 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 virtuhird: . 20:04:30 alise: Lalalla sudo vi /etc/thttpd/thttpd.conf. 20:04:32 virtuhird: . 20:04:32 alise: I was just being flippant. 20:04:34 virtuhird: . 20:04:34 alise: Bloatzilla, then, i assume. 20:04:36 virtuhird: . 20:04:36 alise: That makes no sense when i say '?' i mean 'something else. 20:04:39 Agg, stop 20:04:39 xD 20:04:42 no i love it 20:04:43 does /msg work 20:04:46 Yes 20:04:59 virtuhird: e 20:05:00 Wareya: Eyoyanaka <- e, o and a space. 20:05:08 I said that? <_> 20:05:09 virtuhird, PSOX 20:05:10 Sgeo_: Sgeo: and someone could, by mistake, rewrite psox to be the first okoperformancescript. 20:05:15 No, I did. 20:05:16 or did she 20:05:17 ah 20:05:24 virtuhird: . 20:05:24 Wareya: P seems most logical explanation and i will talk mor ewhen you return. 20:05:28 virtuhird, PSOX 20:05:29 virtuhird: . 20:05:30 Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename. 20:05:32 Wareya: Damn i want it to zy3jkanfka. 20:05:37 "and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename." 20:05:37 :D 20:05:39 virtuhird: rage 20:05:39 Wareya: Ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/cfunge. 20:05:45 `addquote Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename. 20:05:46 130| Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename. 20:05:59 lol 20:05:59 Sounds like ehird. 20:06:06 virtuhird: sex 20:06:06 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 virtuhird: rage 20:06:13 Wareya: Ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge. 20:06:20 virtuhird: fuck 20:06:20 alise: Ha ha ha what the fuck, a 2 minute long guide on how to actually write anything useful. 20:06:24 virtuhird: fuck 20:06:24 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 virtuhird: esoteric 20:06:28 Wareya: Http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck.php or the variable's value? 20:06:36 virtuhird: fuck 20:06:36 alise: Fuck you haskellers and your local copy? 20:06:39 virtuhird: fuck 20:06:40 virtuhird: audio 20:06:40 alise: Anmaster: fuck off if i removed the bottom right. 20:06:41 Wareya: Which e.g. Copying audio data from many folders: cd, operation, cd, operation. 20:06:44 virtuhird: fuck 20:06:45 alise: + And | are... Whatever the fuck up. 20:06:47 haha this is perfect 20:06:48 I wish you could tell megahal "Forget a bunch of what you know" :P 20:06:49 Wareya: Ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge. <-- outdated url 20:06:49 virtuhird: qwerty 20:06:50 Wareya: Qwerty-5 = identity. 20:06:56 Gregor: no this is so amazing 20:07:01 AnMaster: >_< 20:07:05 Gregor: viruanmaster, now 20:07:06 15:06 < virtuhird> Wareya: Qwerty-5 = identity. 20:07:08 *virtuanmaster 20:07:09 GENIUS 20:07:11 also, irritating highlight spam bot that (in practise) 20:07:14 alise: nono, so I could feasibly feed it the latest you. 20:07:17 ah 20:07:20 doesn't matter this is great 20:07:20 virtuhird: , 20:07:21 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 now make one for anmaster 20:07:33 virtuhird: complex 20:07:33 I'm building Sgeo_, since he kept complaining :P 20:07:33 Wareya: Oh noes the joke by interpreting something as complex as hell. 20:07:41 eh. 20:07:41 Wareya: It's just that my frog can't eh. 20:07:50 So 20:07:58 wait what 20:08:02 So 20:08:03 eh. 20:08:14 why did it respond to that 20:13:00 virtuhird: fuck you 20:13:00 alise: They can be claimed and worked for me i don't wanna fuck with my eyes, i guess. 20:13:02 Gregor: :|? 20:13:04 ah 20:13:07 -!- SimonRC has quit (Ping timeout: 246 seconds). 20:13:10 virtuhird: AnMaster 20:13:10 alise: Don't worry, anmaster is talking about g. 20:13:13 virtuhird: AnMaster 20:13:13 alise: Anmaster: can you translate what ihope is an agoran. 20:13:21 virtuhird: ontological 20:13:21 alise: Http://en.wikipedia.org/wiki/esme. 20:13:25 :DDDDDDD 20:13:30 virtuhird: ontological 20:13:31 alise: Anyway, generated asmmy! 20:14:08 virtuhird, Agora 20:14:08 Sgeo_: Oerjan: agora office. 20:14:19 the office of oerjan 20:14:27 virtuhird: haskell 20:14:28 alise: I haven't really used haskell much, but offset=0 and amount=-1 will copy all. 20:15:09 what algorithm is that bot based on 20:15:17 and which esolang is it coded in? 20:15:17 AnMaster: It's MegaHAL. 20:17:21 virtuhird: You're really not needed here ya know 20:17:21 Deewiant: Anmaster: i'm ignoring you because you're really not needed here ya know. 20:17:48 Gregor: it's picking up channel input 20:17:50 you are CORRUPTING me 20:18:05 alise: Toooooo bad :P 20:18:13 virtuhird: and to think I loved you. 20:18:14 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 Unable to find the personality brain/megahal.trn 20:19:49 Uhhh, whoops :P 20:19:51 -!- virtugold has quit (Client Quit). 20:20:19 -!- virtugold has joined. 20:20:19 Oh wow couldn't that choke due to personal disagreements with semantic and practical issues, i decided to make it feasible. 20:20:38 why can't you have multiple guys 20:20:40 also who's gold 20:21:15 Gold knows who Gold is. 20:21:15 Might be me (if so, grr), might not. Evidence for not: I don't remember saying anything along those lines 20:21:34 Gold is as Gold does. 20:21:34 virtugold, PSOX 20:21:39 Gregor: if we don't know the identity of gold, why is eir virtual relative in here? 20:21:45 virtugold: SUPOX 20:21:53 virtugold, ehird 20:22:00 virtugold, you alive? 20:22:04 Seems broken :P 20:22:06 -!- virtugold has quit (Read error: Connection reset by peer). 20:22:10 lawl 20:22:32 Well, Gregor does know my last name 20:23:46 Seth Gold *does* ring a bell. 20:23:58 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 Gregor: VirtuAnMaster. 20:24:12 Gregor: You must. 20:24:20 alise: AnMaster also talks too much :P 20:24:21 * Sgeo_ wants a non-broken me 20:24:22 alise: Like YOU. 20:24:30 Gregor: Just take a random 1/N of his lines 20:24:41 -!- SimonRC has joined. 20:24:48 alise, thanks for making me more cyberstalkable 20:24:57 Seth Gold. 20:25:00 Sgeo is Seth Gold. 20:25:02 Seth Gold is Sgeo. 20:25:03 Mwahahahahahaha 20:25:25 Seth Gold Americas Hottest DJ' 20:25:25 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 I don't think you have anything to worry about 20:25:34 -!- virtunotsgeosurn has joined. 20:25:35 Any hypotheses on the basics to make a flash client for robozzle? 20:25:41 Gregor: ANMASTER DAMMIT 20:25:51 virtunotsgeosurn, robozzle 20:26:10 wtfbbq 20:26:15 virtunotsgeosurn: Hewwo? 20:26:17 Oh 20:26:20 Because it thinks its name is 20:26:23 virtunotsgeosurname: Hewwo? 20:26:23 Gregor: Document.write("hello world!" :P 20:26:30 AN FUCKING MASTER 20:26:31 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 A master that fucks. 20:26:57 virtunotsgeosurname, Robozzle 20:26:57 Sgeo_: Http://robozzle.com/forums/showthread.php?t=7570 can have what's basically wine on iphone. 20:27:00 virtunotsgeosurname, PSOX 20:27:01 Sgeo_: Http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt. 20:27:07 that was boring 20:27:10 virtunotsgeosurname: SUPOX 20:27:10 Deewiant: 0X00 0x0a terminates all functions. 20:27:11 virtunotsgeosurname, ehird 20:27:11 Sgeo_: Ehird, i was only checking for my security question's answer. They email me asking for trivial opinions? 20:27:34 Am I really this boring? :( 20:27:38 Yes. 20:27:46 virtunotsgeosurname: Boring! 20:27:46 Deewiant: It can ask for permissions before it is boring, tbh. 20:27:59 virtunotsgeosurname, ? 20:27:59 Sgeo_: "256 Functions will be ugly on os x. The forum's down though. 20:28:22 That's not me! I knew nothing about OS X! 20:28:25 [well, little] 20:29:50 Maybe I should train fungot styles for Prominent Personalities(TM) of the channel. 20:29:51 fizzie: i've never seen before... i fnord on vacation 20:30:14 virtunotsgeosurname, Second Life 20:30:15 Sgeo_: But still, having @hodapp link to a universe in my life. 20:30:29 fungot: You what on vacation? 20:30:30 fizzie: step 2: fnord... many thanks to all the memory... 20:30:59 virtunotsgeosurname, active worlds 20:31:01 Sgeo_: The worlds that i can't imagine sl staying alive with as few users as aw, or ct, or worlds. 20:32:00 Virtual me is boring :( 20:33:18 What a surprise! Uh, I mean... 20:33:22 Sgeo_: Hey, YOU asked for it :P 20:33:27 okay 20:34:02 Of all the things I thought I was considered in #esoteric , boring wasn't one that crossed my mind 20:34:09 And I'm still being boring, talking about this 20:34:17 virtunotsgeosurname, entertain me 20:34:18 Sgeo_: Gregorr, you can take pictures of. 20:34:23 virtunotsgeosurname, God 20:34:23 Sgeo_: There are definitions of "god" are a coherent idea. 20:34:48 virtunotsgeosurname, alise 20:34:49 Sgeo_: Alise, they have classes there? 20:35:04 virtunotsgeosurname, fuck you 20:35:05 -!- virtunotsgeosurn has quit (Quit: Leaving). 20:35:09 .. 20:35:16 XD 20:35:23 Was that in response to me, or did Gregor do that? 20:35:40 He just hates you. 20:35:48 -!- virtuwtf has joined. 20:35:49 Unable to find the personality brain/megahal.trn 20:35:53 Damn it. 20:35:53 Even virtual me hates me :( 20:35:54 -!- virtuwtf has quit (Client Quit). 20:36:13 Gregor, virtuwtf? 20:36:14 -!- virtuwtf has joined. 20:36:15 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 AN MASTER PLEASE 20:36:32 virtuwtf, hi there 20:36:33 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 ... 20:36:40 virtuwtf, which one? 20:36:41 AnMaster: 1 Egobot: daemon ul bf http://pastebin.ca/raw/365170. 20:36:52 well that seemed almost relevant 20:37:11 virtuwtf, who are you? 20:37:11 AnMaster: Score for gregorr-l_pooper_scooper: 34.2. 20:37:26 egobot or hackbot I guess 20:37:31 err 20:37:32 hackego 20:37:35 I meant 20:37:37 EgoBot :P 20:38:13 virtuwtf, wtf 20:38:13 MissPiggy: Http://google.com/search?q=omg+liek+wtf. 20:38:16 LOL 20:39:19 bbq 20:40:14 virtuwtf: oerjan 20:40:14 Gregor: 2 Oerjan: bf. 20:40:34 oerjan: I /believe/ virtuwtf is telling you he wants to be your boyfriend. 20:41:25 *blush* 20:42:03 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 Gregor: never got any replies to these: 20:49:05 what algorithm is that bot based on 20:49:05 and which esolang is it coded in? 20:49:06 Sweet, I made a megahal brain that segfaults >_> 20:49:12 AnMaster: Yes you did 20:49:12 ah that answers one 20:49:14 megahal 20:49:16 AnMaster: It's MegaHAL. 20:49:21 That's the answer to both. 20:49:40 Gregor, is megahal a programming language? 20:49:47 as well as the bot 20:50:28 -!- KingOfKarlsruhe has joined. 20:50:49 The bot is in Perl and C. 20:51:13 Gregor, also which one was the segfaulting model? 20:51:22 -!- adam_d has joined. 20:51:26 You'll see (maybe) :P 20:51:36 (And it's not a person) 20:51:41 DO AN MASTER 20:52:22 alise: TOO - MUCH - DATA 20:52:33 -!- virtuPOSIX has joined. 20:52:33 Equivalent to the user explic. 20:52:48 Gregor: TAKE A RANDOM 1/N OF IT 20:52:55 INCREASE N EACH TIME IT'S TOO BIG 20:53:14 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 Increase N each time N is too big. 20:53:27 virtuPOSIX: Tell me about printf! 20:53:32 ^style wp 20:53:33 Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages) 20:53:36 virtuPOSIX, hm 20:53:41 virtuPOSIX, fopen 20:53:46 Why isn't virtuPOSIX responding :( 20:53:54 Gregor: Take 1/4th then 20:53:54 Gregor, did it segfault? 20:53:56 That's gotta be small enough 20:54:04 Fekk 20:54:06 Yeah, it segfaulted. 20:54:35 Gregor, segfaulting is undefined behaviour. I spot ironicness here 20:55:09 -!- virtuPOSIX has quit (Read error: Connection reset by peer). 20:55:19 "ironicness" >_< 20:55:26 Gregor: Have you considered profile-aided optimisation? 20:55:27 alise, I know it doesn't exist 20:55:51 fungot: Ha, isn't that segfaulting upstart ludicrous? You never segfault, no matter how badly I mess up. 20:55:52 fizzie: the claims are disputed or widely fnord, would be in order. fnord fnord 20:56:19 Don't you be disputin' my claims there. 20:56:49 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 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 though hopefully it should never segfault 20:57:19 * Sgeo_ really has shovelling he sould attend to 20:57:53 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 Increase N each time N is too big. <-- hehe 21:09:02 Gregor, figured out why it segfaulted? 21:09:07 AnMaster: Nope 21:09:10 AnMaster: Not going to try, either. 21:09:11 Gregor, gdb? 21:09:23 AnMaster: Yeah, I'm going to go debug some ancient code I didn't write. 21:10:14 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 Nooooooooooooot gonna do it. 21:10:31 Noooooooooooooooooooooot gonna do it. 21:10:35 okay then 21:10:56 just saying that you can take a quick look at the backtrace without debugging it in depth 21:11:22 Gregor: Have you considered profile-aided optimisation? <-- for what? 21:20:09 -!- oerjan has quit (Quit: Later). 21:21:11 night 21:27:27 Profile-aided optimisation... for DANCING 21:33:37 Let's play Zookoo's Triangle (http://en.wikipedia.org/wiki/Zooko%27s_triangle). 21:34:04 Names: Secure and decentralised, secure and human-meaningful, or decentralised and human-meaningful? 21:34:09 Pick one pair. 21:39:56 -!- augur_ has joined. 21:41:42 -!- virtuMaster has joined. 21:41:42 Ehirdiphone, he could just say "strange for hello world to use lyx some years ago. 21:42:06 virtuMaster: Are you a suitable replacement for AnMaster? 21:42:07 Gregor: For me it is run directly from the lamp in the same as in "not a possible replacement for anmaster? 21:42:15 I seeeeee. 21:43:18 Gregor, I don't quite think I would say that 21:43:34 night really, and stop highlight spam please 21:43:35 virtuMaster: Do you think you would say that? 21:43:36 Gregor: Like "i think i need to curl up the same connection. Might be an option to me then. 21:43:39 → 21:43:52 virtuMaster: ehird 21:43:52 AnMaster hates it when someone uses his nick 21:43:53 alise: Ehird, i was thinking more along the same rules are at 40 k/s from most places. 21:44:01 virtuMaster: ehird 21:44:03 alise: Ehird, it would depend on the stack at a time. 21:44:04 especially if you just say AnMaster for no reason 21:44:05 virtuMaster: ehird 21:44:06 alise: "i was born. 21:44:08 virtuMaster: ehird 21:44:09 alise: Ehird, no luck with cfunge? 21:44:13 virtuMaster: sigh 21:44:14 alise: Sigh whatever, can wait. 21:44:16 virtuMaster: sigh 21:44:17 alise: Must be a bit jerky, like window moving. Sigh. <-- Even with metacity on intel graphics it works very well. 21:44:20 virtuMaster: sigh 21:44:20 alise: Sigh, not free it seems. 21:44:22 virtuMaster: sigh 21:44:22 alise: Sigh... Bbs, phone. 21:44:25 virtuMaster: -_- 21:44:25 alise: 21:57:27 coppro: umm... Bye? 21:44:27 virtuMaster: -_- 21:44:28 alise: Ehird_, your solution fails at holiday logo? 21:44:33 aww it doesn't remember his emotes. 21:44:36 virtuMaster: night, really 21:44:37 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 virtuMaster: immature 21:44:49 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 virtuMaster: immature 21:44:53 alise: Ehird, i'm not immature! 21:44:58 :D 21:44:58 virtuMaster: immature 21:44:59 alise: Soupdragon, i'm not immature! 21:45:02 :DDD 21:45:04 virtuMaster: immature 21:45:04 alise: Sgeo, i'm not immature! 21:45:08 :DDDD 21:45:09 virtuMaster: immature 21:45:09 alise: Fungot, i'm not immature! 21:45:11 -!- augur_ has quit (Ping timeout: 252 seconds). 21:45:12 ahahahahahah 21:45:15 Gregor: what the fuck 21:45:16 virtuMaster: immature 21:45:17 alise: Though, i'm not immature! 21:45:19 virtuMaster: immature 21:45:19 alise: Though, i'm not immature! 21:45:21 virtuMaster: immature 21:45:21 alise: Sgeo, i'm not immature! 21:45:22 virtuMaster: immature 21:45:23 alise: Ehird, i'm not immature! 21:45:25 virtuMaster: immature 21:45:25 alise: Ehird, i'm not immature! 21:45:26 virtuMaster: immature 21:45:26 virtuMaster: sexy 21:45:27 alise: Ais523, i'm not immature! 21:45:29 oklopol: I guess it is spelled properly. 21:45:30 haha 21:45:31 virtuMaster: mature 21:45:32 ... 21:45:32 Deewiant: Hm i want to spoil it. 21:45:40 Gregor: it's because "," -> "i'm not immature" 21:45:44 and he uses , as his nick prefix 21:45:47 er, suffix 21:45:48 I bet 21:46:03 yeah i guess it is 21:46:07 -!- virtuMaster has quit (Client Quit). 21:46:35 > nonfix foo; 21:46:35 > (quote foo) foo = false; 21:46:35 , line 2: function 'quote' was previously defined with 1 args 21:46:37 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 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 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 Of course, the shorter the result the better. 22:02:39 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 I'm interested. 22:03:02 176.215.16.104 == "divzip-dibbel" 22:03:02 30.122.0.74 == "pobmol-dabmek" 22:03:02 149.229.247.52 == "nitvas-siztif" 22:03:20 So 32-bit stuff can be done relatively well with two words of six letters. 22:03:25 Bit of awkward pronunciation, but alright. 22:03:35 The generated numbers are on the long side, unfortunately. 22:04:34 425616 22:04:35 WizzooBarRazzleHuzzooSpazzooFizzooSpoo 22:04:40 It has... a certain charm. 22:04:47 Perhaps not exactly what you were looking for. 22:04:52 Bit ... ecstatic for my tastes. 22:05:23 Let's play Zookoo's Triangle (http://en.wikipedia.org/wiki/Zooko%27s_triangle). 22:05:23 Names: Secure and decentralised, secure and human-meaningful, or decentralised and human-meaningful? 22:05:23 Pick one pair. 22:05:28 nobody wants to play :( 22:06:53 convert to base 26, intercalate vowels 22:07:25 or anything, really, you skip every other letter 22:08:02 base 26? that means you could get "beeep" 22:08:03 -!- augur_ has quit (Ping timeout: 256 seconds). 22:08:14 which isn't very distinguishable from "beep" 22:08:39 surely you mean base 21 22:08:46 why 22:08:50 anyway, I'm sure you can get more information density than that 22:09:15 Pthing: so you don't get both "beeeeep" and "beeep" 22:09:24 -!- augur_ has joined. 22:09:26 i don't see how that helps 22:09:38 "vaan" and "vaa'an" are different words in finnish 22:09:45 because you only pick the consonants 22:09:47 and intercalate vowels 22:09:49 so that can never happen 22:09:57 anyway, I think much higher information density than that is possible 22:10:09 at the very least, you could store (consonant,vowel) pairs as single digits 22:10:11 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 and omit awkward pairs 22:10:13 Admittedly the system runs out at 99999999999999999999, or KuzzonkKazzonkKizzonkKonkWiggleKuzzonkKazzonkKizzonkKonkGiggleKuzzonkKazzonkKizzonkKonkDazzleKuzzonkKazzonkKizzonkKonkRazzleKuzzonkKazzonkKizzonkKonk. 22:10:16 up to six it's pretty easy 22:10:19 fizzie: :D 22:10:20 but 22:10:28 so don't do beeep and beep 22:10:33 wait 22:10:36 how would that even 22:10:37 i mean 22:10:44 "beeeeep" and "beeep" 22:11:00 beeeeep = b, e, e, p with all intercalated vowels being e 22:11:03 boeop and baeaeap 22:11:04 easy 22:11:08 so don't intercalate all es 22:11:08 beeep = b, e, p with all intercalated vowels being e 22:11:09 jesus 22:11:14 so you have a limited set 22:11:17 so your algorithm is more complicated 22:11:20 or don't even intercalate vowels 22:11:22 at the very least, you could store (consonant,vowel) pairs as single digits 22:11:23 intercalate anything 22:11:27 jieortj 22:11:44 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 Talis, man. 22:46:25 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 basically it's the decimal system but instead of "one hundred and seventy two" you say fazzoo kizzink bar". 22:48:25 *"fazzoo 22:49:24 -!- adam_d__ has quit (Quit: Leaving). 22:50:09 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 I guess the English spelling isn't very positional either, though. 22:52:48 s/circumfix/interfix/, wasn't thinking. 22:53:18 Or infix. 22:53:34 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 more interesting linguistics time! 23:28:48 -!- augur_ has changed nick to augur. 23:28:56 Oh, god. 23:29:59 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 We've been over this before. 23:30:25 I think it's probably a limitation of the human brain's shorthand engine. 23:30:39 We need the main detail to be the grammatical form, so to speak, of the shorthand. 23:30:42 Otherwise we can't remember it. 23:30:50 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 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 just consider what it means to cherrypick. 23:32:27 "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 or something like that 23:33:00 yeah 23:33:08 that's a good complex one 23:34:25 there should be a conlang all of whose grammar and semantics have been proven impossible to learn 23:34:27 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 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 or at least an esolang 23:34:49 oklopol lol 23:35:09 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 MissPiggy: its not really all that complex tho 23:35:54 yeah that's the thing.. 23:35:58 i mean its not unimaginable that you might have an affix like, say 23:36:02 -phobe 23:36:04 approximately 23:36:12 which means "person allergic to whatever" 23:36:19 "John kissed a peanutophobe" 23:36:30 "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 irrelevant 23:36:42 its NOT irrelevant alise 23:36:44 carefully choosing is still the 'underlying form' of cherrypicking 23:36:55 "X carefully chose from Y" also makes sense, it is just not as descriptive 23:36:56 whereas 23:37:00 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 "X kissed Y" does not make sense as a substitute for "X glumped Y" 23:37:20 thus, we cannot understand glumping to be kissing-but-more-specific. 23:37:22 that its a good substitute is irrelevant 23:37:26 that is my theory, anyway 23:37:53 its not supposed to be a substitute 23:38:05 its supposed to be a single verb with a complex meaning 23:38:19 well my sample size of 2 makes me very happy tyvm :P 23:38:28 your sample size of two? 23:38:28 what? 23:39:32 anyway, its just an interesting fact that seems to lack a good well fleshed out explanation. 23:39:46 cherrypicker fits my rule 23:39:47 glumping doesn't 23:39:51 therefore i am right qed 23:40:02 ilunga. 23:40:23 nominal semantics is notoriously fluid. 23:40:38 consider "bean" or "pelt" 23:40:49 to bean someone is to pelt someone on the head 23:41:03 to pelt someone is to hit someone with a thrown object 23:41:13 subroutines 23:41:15 :D 23:41:18 "X beaned Y" = "X hit Y on the head with a thrown object" 23:41:52 what makes beaning any more a kind of hitting, while glumping isnt a kind of kissing 23:41:59 surely it IS a kind of kissing 23:42:08 all acts of glumping are acts of kissing 23:44:41 * MissPiggy glumps augur 23:45:01 so you kissed alise? 23:45:02 :D 23:46:31 lol. 23:46:44 -!- Libster` has joined. 23:46:57 augur: I was considering it on a syntactic level 23:46:59 fizzie: ^ 23:47:07 -!- Libster` has quit (Read error: Connection reset by peer). 23:47:12 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 alise: considering it syntactically is kinda good actually 23:49:00 one of the ideas from generative semantics is that these verbs are genuinely derived syntactically 23:49:09 e.g. IF glump were to exist with that meaning 23:49:13 you would derive it like so: 23:49:17 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 cherrypicking <-> choosing carefully from 23:49:28 !(glumping <-> kissing) 23:49:39 "X glumped Y" isn't a more specific form of "X kissed Y", therefore you cannot have it 23:49:43 this is just random hypothesis 23:49:58 sure its a more specific form of kissing 23:50:03 you're doing the equating wrong 23:50:10 X CAN be replaced by Y 23:50:15 but you're not choosing the right Y 23:50:36 glumping <-> kissing someone allergic to 23:50:51 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 23:51:06 Allergic to what, kissing? :P 23:51:11 So it's like mean kissing 23:51:14 allergic to whatever is being glumped. 23:51:26 if you glump peanuts, you kiss someone allerging to peanuts 23:51:58 augur: but Y is being hit, it's not being kissed 23:52:23 this is true, and that might be relevant 23:52:47 but seriously, you're making me want to study linguistics with your crazy kids-can't-learn-this stories 23:52:48 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 for instance 23:53:24 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 but you're certainly not singing a path, you're singing a song 23:54:21 the GS account was that its an entirely syntactic process 23:54:25 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 yes, but youre still not singing the PATH you're singing the SONG 23:54:48 Or your singing is so bad that you're thrown out 23:54:50 which CREATED the path 23:55:23 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 you're doing the equating wrong 23:56:28 X CAN be replaced by Y 23:56:28 but you're not choosing the right Y 23:56:28 glumping <-> kissing someone allergic to 23:56:29 EXACTLY 23:56:32 the main part of cherry picking 23:56:36 is choosing carefully from 23:56:39 the main semantic part of glumping 23:56:41 is kissing 23:56:43 the allergic part is a detail 23:56:49 but we can't replace it directly with kissing 23:56:57 no the main semantic part of glumping is kissing someone allergic to 23:57:36 further, really, cherrypicking isnt actually choosing carefully from 23:57:45 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 loool 23:57:53 its choosing something (the cherrypicked thing) from some other set of things 23:57:53 augur: yes, but someone who is cherrypicking is choosing carefully from something 23:57:57 it doesn't convey the full meaning 23:57:59 you cherrypick your examples from your data 23:57:59 but it's not untrue 23:58:18 i.e., an acceptable substitution is one which reduces meaning, but does not result in falsity 23:58:22 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 also consider the fact that its entirely possible to have an INTRANSITIVE verb, lets say blump 00:00:22 such that 00:00:44 if john is blumping, then john is kissing someone allergic to peanuts 00:02:14 the problem is making allergen an argument to the verb 00:03:29 lojban does that all the time btw 00:03:35 blumping? 00:03:41 no i mean 00:03:42 i blump all the time too! 00:03:44 :) 00:04:17 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 now that we're abusing that term 00:04:27 ;) 00:04:48 but also consider that like 00:04:51 alise 00:05:05 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 "john blumped mary" cannot mean "john kissed mary, who is allergic to peanuts" 00:05:41 but it could mean "john kissed mary, making her allergic to peanuts" 00:05:41 well see, having an overt marker like 'fo' is different 00:05:47 oh it is? 00:05:48 I really want a language which cannot express statements that are false in logic 00:05:50 because its essentially just an argument 00:05:50 maybe 00:06:02 i.e. not just a mere declaration "X is syntactically invalid", just that it is impossible to formulate. 00:06:04 Is such a thing possible? 00:06:10 the point is that the word itself, with no option for a marker 00:06:13 I guess not; the syntax would need to have magic knowledge of every proof. 00:06:23 alise: sure it is 00:06:24 But you could encode the proof into the syntactic structure, perhaps. 00:06:50 but it would only work for some certain kind of falsity 00:06:53 e.g. mathematical falsity 00:06:55 or contradictions 00:07:23 and such a language would be, for instance, the language of all non-contradictions in logic 00:07:48 which is really just logic. 00:07:56 or a consistent one, anyway. 00:08:10 aye, but syntactically 00:08:12 in logic, I can say 00:08:15 p & ~p 00:08:19 it's untrue, but I can formulate it 00:08:27 you could declare "any false statement is a syntax error", but I mean rather in the sense 00:08:30 you can formulate it, if by formulate you mean "write the symbols" 00:08:31 if you thought of p & ~p 00:08:37 and followed the normal process of logical expression -> language 00:08:39 you would run into a dead end 00:08:42 but p & ~p CANNOT be formulated from the AXIOMS of your logic 00:08:49 write the symbols, yes 00:08:51 that is what I mean 00:09:00 instead of just saying 00:09:02 but your axioms happen to be nothing more than the grammar of some higher order language 00:09:03 false things are syntax errors 00:09:08 it would be 00:09:13 this is the algorithm for logic statement -> language 00:09:16 if you feed it a false statement 00:09:21 (without any special checks for that; 00:09:27 right but alise, my point is 00:09:28 i.e. it doesn't do | ifFalse x = lolerror) 00:09:31 it just runs into a dead end 00:09:33 and goes all _|_ 00:09:49 it would be the ultimate rationalist's language 00:10:07 a consistent logic is merely a particular sort of grammar 00:10:17 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 thats what logic is, after all, a grammar for a particular language 00:10:34 yes, but is it practical to define such a language? 00:10:40 Could humans learn it, even if communication in it would be slow? 00:10:43 well it wouldnt be possible for a human to learn 00:10:44 (and possibly require translation) 00:10:48 i.e. not really learn 00:10:52 but memorise the algorithm to speak in it 00:11:21 its possible for people to consciously learn pretty much anything 00:11:25 but that doesnt make it language 00:11:58 just because i can speak in lisp doesnt mean that my brain is treating lisp remotely like its treating english 00:12:20 you can't consciously learn to fly tho 00:12:33 this is true. 00:12:35 i really want to become fluent in a programming language 00:12:43 I believe people can be fluent in Perl; nay, I believe people /are/ fluent in Perl. 00:12:55 Not the entire range of Perl programs, just like most English speakers aren't poets. 00:12:57 not like they are with a natural language 00:12:59 But a good subset of it. 00:13:03 augur: Why not? Perl is close. 00:13:24 say "Hello, world" if $appliance->on; 00:13:32 Say "Hello, world" if the appliance's on. 00:13:44 indeed 00:13:45 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 but thats a) a subset, and b) not exactly underived FROM a natural language 00:14:12 Languages borrow from each other. 00:14:17 in python, you never have to think, you just start typing 00:14:31 yes, but being fluent in a programming language thats derived from a natural language isnt really all that interesting, is it 00:14:51 while ($appliance->on) { say for @todo_list } 00:15:09 While the appliance's on, speak for each item in todo list. 00:15:16 augur: yes it is 00:15:18 because you're not really fluent in the programming language 00:15:22 it means you can express your thoughts to the computer incredibly naturally 00:15:29 its more that the computer is fluent in that (subset) of your natural language. 00:15:31 augur: Perlists seem to be incredibly good with their idioms 00:15:49 I'm not so sure you can claim outright that nobody is fluent in a useful, common subset of PErl. 00:15:51 *Perl 00:15:57 sure, but the point is that those idioms are parasitic on your pre-existing competence in english 00:16:04 The differences between it and natural languages aren't that big. 00:16:06 augur: Of course. 00:16:13 But they're still /different/. 00:16:19 perhaps 00:16:36 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 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 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 the real question is could someone be fluent in something like Forth 00:16:56 which is decidedly unnatural 00:17:09 is SOV really that unnatural 00:17:15 or is it OSV, dunno 00:17:17 its not that Forth is SOV 00:17:21 2 3 - => 2 - 3 00:17:22 so SOV 00:17:22 its that forth is stack oriented 00:17:34 SOV languages are by far the most common 00:17:39 augur: good Forth has a small stack, though. 00:17:51 and never does thing ............... verb 00:17:54 perhaps. in principle it could be arbitrarily large 00:17:59 in _principle_ anyway 00:18:08 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 doesn't mean fluency in english is impossible 00:18:25 eh. example 00:19:12 okay 00:20:14 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 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 e.g. with stack operations like swap, rotate, duplicate, etc. 00:20:57 rot is bad Forth style 00:21:06 and Lojban has things similar to swap and rot 00:21:11 erm 00:21:12 and dup 00:21:12 perhaps. i wasnt using forth itself as a good example of this. 00:21:16 (you can specify argument position and I'm sure you can say "again" for an argument) 00:21:26 but the point is that genuine stack orientedness seems VERY difficult for people to grasp 00:21:35 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 that doesnt seem to be the case, however. 00:22:18 cannibals their species members dup eat do 00:22:30 erm 00:22:32 let me rewrite that 00:22:41 dup itself actually wouldnt be enormously complicated, to be honest 00:22:47 cannibals their species members dup eat are-those-that 00:22:49 its just kinda like very local reflexivity 00:22:58 errr 00:22:58 more like 00:23:00 this is hard 00:23:03 their species members dup eat 00:23:12 cannibals species their members dup eat 00:23:17 "Members of their species eat members of their species" 00:23:22 augur: right 00:23:32 also note that idiomatic forth actually reads in english style :) 00:23:40 as in, SVO 00:23:44 because of the typical style of coding 00:23:58 i wonder if japanese idiomatic forth reads more SOV 00:24:09 i don't think anyone writes japanese idiomatic forth 00:24:14 unfortunate. 00:24:19 i would bet it doesnt look like SOV at all. 00:24:25 but i think the vocab shapes it 00:24:26 the lang 00:24:27 as in 00:24:36 SVO presumably has properties that make implementation, and the use of it, superior 00:24:38 a better question tho is whether or not such a limitation would be because of MEMORY or because of grammar 00:24:43 otherwise forthers would just accept the rpn; they do for arithmetic 00:24:50 anyway dup would be useful in everyday speech 00:24:53 i think 00:24:58 well, we sort of DO have dupe 00:24:59 dup 00:25:03 its called a reflexive 00:25:10 "I read it and dup and dup, but I still didn't understand it." 00:25:20 what 00:25:50 in forth, 00:25:57 i it read dup and dup and 00:26:01 whats the dup's doing there tho 00:26:07 i.e., you get i-read-it on the stack, then you get i-read-it i-read-it 00:26:09 then you and it 00:26:13 i-read-it-and-i-read-it 00:26:15 and again 00:26:17 i-read-it-and-i-read-it-and-i-read-it 00:26:18 oh i see 00:26:22 "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 well you'd have four readings 00:26:47 but whatever 00:26:56 why 00:27:07 because you're duping "i-read-it-and-i-read-it" 00:27:11 ah, yes 00:27:14 whatever 00:27:15 but anyway 00:27:24 -!- coppro has joined. 00:27:32 what, why would dup duplicated the whole stack 00:27:36 we can SORT of do that 00:27:41 *duplicate 00:27:42 oklopol: its not the whole stack 00:27:45 well then 00:27:50 why would it concatenate its result 00:27:52 s 00:27:52 its the top most syntactic object, which is a conjunction in this case 00:27:58 apparently, according to ehird. 00:28:05 oh, the why have a stack 00:28:07 *alise 00:28:07 but anyway 00:28:11 *then 00:28:16 oklopol: for multiple values 00:28:20 oranges sam ate 00:28:22 oranges 00:28:23 oranges sam 00:28:24 well i mean 00:28:26 sam-ate-oranges 00:28:28 I like OSV 00:28:32 it's poetic. :P 00:28:38 (yes, I know, don't start) 00:28:40 alise, we do sort of have dup 00:28:46 in that you have reflexives 00:28:50 if dup is o => o+o instead of o => o, o; that's just not very stacky 00:28:53 augur: like? 00:28:56 e.g. "john hit himself" ~ john dup hit 00:28:57 oklopol: dup is o => o o 00:29:05 it i read dup and 00:29:05 -> 00:29:06 it 00:29:07 it i 00:29:08 eh 00:29:10 i-read-it 00:29:12 i-read-it i-read-it 00:29:13 you clearly aren't following this conversation 00:29:14 i-read-it-and-i-read-it 00:29:32 infact, some languages mark reflexivity on the verb 00:29:40 so there is a marker essentially like 00:29:47 john duphit 00:29:48 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 00:30:01 stack oriented is easy to read if you actively visualize everything 00:30:19 except reflexivity is extraordinarily flexible in what can be reflexivized 00:30:29 i mean actually visualize a stack of those objects 00:30:39 oklopol: thats exactly the point 00:30:46 you have to visualize this shit to understand it 00:30:54 which is NOT the case with natural language 00:31:05 you dont have to even THINK about what someone says to just understand it 00:31:09 sure i do 00:31:18 no, you dont, stop being obstinate 00:31:20 i often have to translate sentences to logic 00:31:25 and use inference rules 00:31:27 no seriously 00:31:37 augur: when will you realise that *oklopol* *is* *not* *human* 00:31:38 just get ove rit 00:31:40 *over it 00:31:48 you can't make your rules apply to him just because you say they do 00:31:52 alise: :P 00:31:57 your theory works on humans, not oklopol 00:31:59 give up 00:32:10 oklopol just likes being contrarian 00:32:10 i mean sure, sometimes i can read sentences without thinking, just like i can sometimes read code or math without thinking 00:32:28 but just as often, i need to do some intermediate steps 00:32:31 augur: I'm pretty sure his cognitive structure is different to most people's. 00:32:34 little does he realize how little he actually knows about what is going on in his mind 00:32:40 lol 00:32:55 Although I've never found anyone with the same configuration, so I hereby deem it oklism. 00:33:39 brb 00:34:06 "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 agreed 00:34:43 oklopol: no, its just a fact. humans are barely aware of whats actually going on in their brains. 00:34:44 i think augur is a bit too certain of the universal applicability of mainstream linguistics 00:34:54 augur: if oklopol reads a sentence, can't understand it 00:34:56 translates it to logic 00:34:58 and understands it 00:35:02 im not saying that doesnt happen 00:35:04 then his brain clearly didn't understand it until that happened 00:35:14 that happens plenty for lots of people 00:35:17 augur: it's also a fact i often need to translate sentences to logic, very explicitly, to see what they mean. 00:35:34 i mean i actually visualize the simplification of the sentence 00:35:37 oklopol, you didnt translate the sentence you just said FROM logic into english. 00:35:48 nor the one i just said INTO logic 00:35:58 he said often 00:35:59 not always 00:36:04 and thats the point! 00:36:04 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 sure 00:36:27 anyway, this is stupid 00:36:31 if I could be more like oklopol i would 00:36:33 ...up to a certain point 00:37:09 yes, it's very stupid to tell me how i think. 00:37:13 -!- oerjan has joined. 00:37:23 its very stupid to think you know how you think :P 00:37:32 alise, did you get those pictures, or is that irrelevant now? 00:37:34 words to live by 00:37:39 Sgeo: it's probably irrelevant for now 00:37:41 sure, but it's not stupid of me to tell you facts about how i think. 00:37:52 but you dont KNOW the facts about how you think 00:37:54 i don't claim to understand it 00:37:54 thats the point 00:38:03 oh it's oklopol, he's not human anyway 00:38:03 not "the facts", some facts 00:38:22 anyway 00:38:49 augur: when will you realise that *oklopol* *is* *not* *human* 00:38:49 just get ove rit 00:38:49 *over it 00:38:49 you can't make your rules apply to him just because you say they do 00:38:49 alise: :P 00:38:50 your theory works on humans, not oklopol 00:38:51 give up 00:38:54 oerjan: he didn't listen 00:38:59 "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 ( augur: I'm pretty sure his cognitive structure is different to most people's. Although I've never found anyone with the same configuration, so I hereby deem it oklism.) 00:39:20 ANYWAY 00:39:23 alise: hey i didn't remember you saying that 00:39:27 this is a stupid thing to talk about. 00:39:31 oerjan: I said it just before you came in. :P 00:39:36 so clearly he now has it from two _independent_ sources 00:39:36 yeah, it is stupid, stop it 00:39:48 augur: it's _science_, bitch 00:40:05 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 I wish I was oklistic 00:40:16 but they THINK they do 00:40:18 augur: no, i mean that oklopol isn't human 00:40:23 oerjan: :P 00:40:34 I should set up the Society for the Study and Recognition of Oklism 00:40:48 i don't really believe much of science, i just believe in individual studies. 00:40:54 on our website under Experiments will be conversation snippets from oklopol 00:41:12 the actual science is how researchers interpreted the stuff, i want to make my own interpretations. 00:41:13 today i went to a linguistics talk 00:41:16 a PLENARY talk 00:41:17 in which 00:41:20 one of the examples 00:41:36 alise: you're such a fangirl :D 00:41:50 oh shit it's late 00:41:58 one of the examples was 00:42:04 and i swear, this is quoted directly from the handout 00:42:23 "When he came, his semen short circuited the sander and electrocuted him dead" 00:42:24 oklopol: totally 00:42:38 augur: hahaha what 00:42:44 yes 00:42:54 i fucking swear 00:43:11 you shouldve seen the stuff that was common back in the generative semantics days 00:43:33 there was a transformational grammar rule called the Euphemistic Genital Deletion rule 00:43:39 XD 00:43:48 clearly this was from the olden days, when men were real men, women were real women, and sex was fucking dangerous 00:43:55 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 "Grinder's Apparel Pronoun Deletion (for the syntactic behavior f certain sentences concerning disrobing)" 00:44:04 what. 00:44:11 oerjan: :D 00:44:15 :) 00:44:20 * oklopol had to visualize that situation to understand the sentence 00:44:24 oh wait 00:44:28 i guess also i should stop this 00:44:32 not just you 00:44:35 oklopol, are you too big for me? 00:44:36 :X 00:44:46 alise, there were also shit tonnes of references to drugs and politics 00:44:50 really i think i'm just retarded 00:44:56 i think you're just a nerd 00:44:56 augur: what about hugs 00:45:00 where there any references to hugs 00:45:05 who's too into being a nerd 00:45:05 *were 00:45:08 alise: no, no hugs 00:45:17 you don't think oklopol thinks a leetle bit differently from the average human being? 00:45:28 his esolangs and `quote should be rather sufficient evidence for that 00:45:35 -!- FireFly has quit (Quit: Leaving). 00:45:42 ...as well as his university career 00:45:51 `quote oklopol 00:45:53 48| i can get an erection out of a plank, you can quote me on that. 50| 00:45:57 `quote oklopol 00:45:58 48| i can get an erection out of a plank, you can quote me on that. 50| 00:46:02 stupid HackEgo 00:46:11 http://209.20.80.194/sgeo/quotes.txt 00:46:22 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 91| 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 augur: he's right here, you know 00:46:33 and you're being a jerk 00:46:34 only hes smarter when it comes to his pseudoailments 00:46:48 I've never seen oklopol describe himself as having some ailment; ever. 00:46:53 well, at least, not a mental one. 00:47:01 and youll never see a nerd describe his "ocd" as an ailment either 00:47:05 thats irrelevant. 00:47:18 also, hes a big boy, im sure he can handle some mild criticism. 00:47:38 oklopol: i think this is the point where you demolish him intellectually and he feels terribly small 00:47:42 QUICK 00:47:43 :P 00:47:51 "Hey, if John went to Chicago, that means we'll soon have a big supply of dope." 00:47:59 another sentence from the good old Generative Semantics days 00:48:12 ... Ate dog food? WTF? 00:48:43 if it tastes like porridge i see no problem 00:48:50 "Nixon, you imperialist butcher, take your lunatic Secretary of Defence and shove him up your ass" 00:48:54 lol 00:49:30 also 53| anyway, torture would be fun to experience, true 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 he's so sane he wrapped around again 00:49:54 and again, a few more times 00:49:57 alise: lol. 00:50:16 you know im kinda into bdsm? as in, whipping. 00:50:26 we don't need to know. 00:50:27 :Ds 00:50:31 oklopol: :D 00:50:39 no, really, we have no requirement for that knowledge. whatsoever 00:50:41 i didn't _know_, but i was in no way _surprised_ 00:50:49 ;) 00:51:07 oerjan: I think he interpreted your statement as innuendo. 00:51:11 so perhaps i knew, subconsciously 00:51:19 oerjan: oklopol? Really? Until you made that claim, I would have said /you/ were amongst the sanest people on this channel. 00:51:27 god I'm such a genius 00:51:31 sorry, just had a bout of egotism there 00:51:33 happens occasionally 00:51:43 alise: EgoBot forgives you. 00:51:56 how genius is egobot 00:52:00 Gregor: hm 00:52:13 Gregor: I'd term you one of the sanest. 00:52:18 Pah 00:52:19 Nonsense 00:52:20 Though I'm not entirely sure how. 00:52:38 Before oerjan thinking oklopol sane, I would have termed him the sanest. :P 00:53:44 Where am I sanity-wise 00:53:48 "augur: oklopol, are you too big for me?" <<< yeah i doubt my penis would fit in your penis 00:54:14 oklopol: we could try 00:54:34 i'm not nerdy 00:54:50 i think thats the most false thing ive ever heard. 00:54:56 hypothesis: sanity does not travel well over irc 00:54:58 oklopol isn't a nerd 00:55:08 nerd, geek, i use them interchangably 00:55:22 he has a sex life (or has been lying to us consistently), he tends to have a negative opinion of coding 00:55:27 but yeah, the reason i usually don't tell people i'm mad is because everyone does it 00:55:28 definitely not a computer geek, mathematics geek maybe 00:55:28 Sgeo: insufficient data for meaningful answer 00:55:35 his esolangs always tend towards the theoretical, so 00:55:36 AFK 00:55:45 http://wellnowwhat.net/linguistics/gs.pdf 00:55:47 i don't remember him showing any ginormous enthusiasm to CS 00:55:48 so i just occasionally mention facts about my life, it's equally fun, i love sharing 00:55:50 so i guess maths nerd 00:55:52 in case anyones interested in the Generative Semantics program 00:56:05 AnMaster is the sanest here, probably, but he's also boring and orthodox and wrong. 00:56:08 alise: i don't really think i can demolish people intellectually 00:56:12 bah 00:56:15 ... i said that years ago 00:56:16 :P 00:56:31 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 oerjan: I think insanity just carries much more funnily over IRC 00:57:04 well, sanity is boring, that's what 00:57:06 olsner: what a ridiculous hypothesis -----### 00:58:09 ridiculous? how? 00:58:31 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 if you don't understand that i'll have to drown you in tomato sauce. spicy. 00:58:38 olsner: right but Gregor is a sane, normal person he's just intelligent and has weird ideas 00:58:42 this is just a skill i've spent thousands of hours developing. 00:58:55 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 ...okay that came out wrong 00:59:02 thats what she said 00:59:11 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 dunno how you'd quantify the different, it isn't sanity 00:59:20 augur: how would that even work 00:59:23 speaking of her, hows 2tullia? 00:59:26 wait, don't answer 00:59:28 maybe... creativity but on the oddness axis 00:59:30 oerjan: how would what even work? X 00:59:31 XD 01:00:28 i'm also not addicted to coffee, just caffeine, and i definitely love addictions 01:00:53 food -> 01:01:28 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 also i wish my lag was a few minutes less. 01:01:37 I'm definitely getting/gotten stuck on my new esolang... 01:01:51 alise: Gregor's actually somewhat eccentric. 01:02:12 oklopol: i didnt say YOU portrayed yourself as having OCD or a coffee addiction 01:02:17 i specifically said you DIDNT 01:02:31 i said you portray yourself with similarly geeky "quirks" 01:02:51 eg "lol i have to translate into higher order predicate logic to understand you lololol" 01:03:02 which is an exageration of what you said but you get the point 01:03:19 pikhq: presumably he can function normally in society 01:03:20 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 apart from the hat thing 01:03:28 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 olsner: what is it? 01:03:31 tell us 01:04:03 oklopol: enthusiasm about ones presumed madnesses is a typical geek trait. which is the point. :| 01:04:12 alise: "Eccentric" does not mean "cannot function normally". 01:04:33 well i mean 01:04:35 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 alise: fun with making input and output harder instead of (or in addition to) making the actual computation hard 01:04:47 pikhq: yes but I wouldn't consider those in any way related to real insanity 01:05:01 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 alise: Yes. I'm not saying he's insane in any way. 01:05:06 oklopol is crazy, Gregor isn't 01:05:10 Just mildly eccentric. 01:08:12 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 augur: i'm not really especially enthusiastic in my own madness 01:09:23 in fact definitely more interesting in others 01:09:35 but yes, i get your point 01:11:36 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 or something along those lines 01:12:13 oklopol, those "details" were explicitly stated as being NOT facts about YOU 01:12:35 yeah, yeah, and i guess i misinterpreted them. 01:12:42 i mean misinterpreted the sentence 01:13:00 yes, obviously. 01:13:01 this lag makes it sorta hard to pay attention 01:13:39 oklopol: wait, the ping _says_ 19 seconds but the response was _actually_ immediate 01:13:39 lag, or drugs 01:13:53 you're not lagged to me 01:13:58 oerjan: his computer is high. 01:14:07 in any case, i have to correct something, because i can't correct your impression of me. 01:14:18 :P 01:14:20 oklopol: well i think you're a beautiful snowflake. 01:14:40 i think oklopol is a hot piece of manmeat 01:14:59 i hear i'm pretty hot when i've showered recently 01:15:00 i'm not significantly lagged to augur either 01:15:18 oklopol, i demant photographic proof 01:15:20 speaking of which, she's fine, currently visiting her parents and works with some dude with MS 01:15:35 hmm 01:15:36 that was a weird sentence 01:15:41 two different facts about her 01:15:47 not sure if either is very relevant 01:16:36 -!- blagobu has joined. 01:16:48 especially since she hadn't been previously mentioned, you know 01:16:49 well 01:16:54 what was weird about it is the tense mismatch 01:16:58 sure she had 01:17:01 its actually ungrammatically 01:17:02 Hm, Hackiki is just a little over three months old. 01:17:03 .. 01:17:05 ungrammatical. 01:17:09 not recently 01:17:17 I neglected to celebrate its 1/4th-year anniversary :P 01:17:58 augur: you're mom is ungrammatical 01:18:04 she often is 01:18:13 as is "you're mom is ungrammatical" 01:18:14 Gregor: you'll be _so_ sorry for that when it develops sapience 01:18:16 :D 01:18:23 oklopol just likes to rub his wimmen lyfe into our faeces 01:18:24 er faces 01:18:29 that was /so/ a typo 01:18:36 oerjan: Oh I doubt it :P 01:18:46 Gregor: are you /sure/ you understood Creating Friendly AI 01:18:59 Who ever said it was supposed to be friendly? 01:19:04 MUAHAHAHAHAAHAHAHAHAHAHAHAHAHAHAHA 01:19:06 oh, dear 01:19:14 well at least we'll have all the paperclips we could possibly want 01:19:19 unfortunately, "we" will be an empty set 01:20:04 paperclips is _so_ last cataclysm 01:20:36 "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 i mean that's another stereotype i seriously try to fight being 01:20:36 the guy who always talks about his gf 01:20:37 i just have no life outside her 01:20:40 well except here and at uni i can talk about other stuff often 01:20:46 http://www.youtube.com/watch?v=Xc9l7pygQRo 01:20:48 great music 01:20:51 fucked up video 01:20:56 is it gitten rape 01:20:57 ... Life? 01:20:59 *kitten 01:21:01 so i guess i'm not that guy here, but irl i often feel like i am 01:21:07 What is this "social life" of which you speak. 01:21:08 oklopol: wait you're always inside her? 01:21:19 My social life seriously consists of IM and IRC. 01:21:25 -!- blagobu has left (?). 01:21:43 oklopol: do you really talk about 2tuulia much?? 01:21:46 i dont notice this. 01:22:02 oh? cool 01:22:06 oklopol has a girlfriend? 01:22:39 -!- jcp has joined. 01:22:59 has he ever not had a girlfriend 01:23:08 i thought i mention my gf all the time, probably i'm just paranoid 01:23:08 yeah, we've lived together for 1.5 years 01:23:08 okay maybe i don't talk about her *that much*. 01:23:32 surprisingly rarely 01:23:42 oklopol: oh i thought it was probably a new one 01:23:48 you know, oklopol, surely you can't do the same thing for like 01:23:50 you don't know that. i didn't have a gf like half of high school 01:23:51 more than a few hours 01:23:52 oh cool 01:23:55 unintentional innuendo 01:23:56 i am rad 01:24:12 just casual sex with my ex 01:24:47 oklopol, can we have casual sex? :D 01:24:50 * Sgeo never had a gf 01:25:09 i don't really have sex with dudes 01:25:22 well you should start 01:25:40 Sgeo: boo hoo 01:25:41 well i don't really have a reason not to try it 01:25:43 especially with me. 01:25:44 except that guys are ugly 01:25:48 i don't really have sex with dudes, only in my imagination 01:25:49 you're not! 01:25:51 /me is fully willing to have sex with a female who once was a dude 01:26:09 sgeo is a modern, 21st century man. 01:26:27 augur: yeah but i can't have sex with myself 01:26:36 oklopol: clones. 01:26:40 ah! 01:26:47 "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 send in the clones 01:27:01 Gregor: that a quote? 01:27:09 Gregor: :D 01:27:15 Not of somebody, I just wanted to make it clear that frog sex was not my statement :P 01:27:17 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 so, there's a good tip 01:27:46 tip: dont stalk girls 01:27:48 obviously. 01:27:49 So, they were only girlfriends in your mind then :P 01:27:55 Stalk guys instead 01:28:14 Lie about what people say 01:28:25 Gregor: entirely true. 01:28:39 oerjan: Pretty much. 01:28:47 Sockpuppetting is fun! 01:29:38 i only have sex with femaly frogs 01:29:41 *female 01:29:43 本当に! 01:29:54 "femaly" 01:29:57 a prince would turn into a male frog right? 01:29:57 Well, female enough. 01:30:11 Probably? 01:30:26 Male and female frogs both have cloacas, so who cares :P 01:30:40 i was just about to ask about their genitals 01:31:01 biology is not one of my strongest subjects 01:31:32 Nonmammalian genitalia are unusual. 01:31:42 pikhq: That was a dumb statement :P 01:31:52 oklopol: dont deny it, dudes are sexful. 01:31:52 no they're not, they're the majority 01:32:13 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 Gregor: I pride myself on dumb statements. 01:32:36 /me is fully willing to have sex with a female who once was a dude 01:32:40 "Trust $name to know all about the reproductive system. The female reproductive system" 01:32:42 augur: yes i do 01:32:47 transvaginas tend to be much less sensitive than the real thing iirc 01:32:54 if you can settle for penor i guess that's acceptable 01:33:14 I don't want penor 01:33:25 what? XD 01:33:29 * augur flops on oklopols lap 01:33:37 This conversation is so much bizarre :P 01:33:56 Sgeo: Well tough for you. You have penor. 01:34:05 did someone say penor? 01:34:08 And you're not about to remove it. 01:34:09 XD 01:34:09 augur: is that one of those complicated verbs? 01:34:10 Not for long! 01:34:16 bsmntbombdood: THAT drags you out of idle-land? :P 01:34:17 oklopol: no. its one of those simple ones. 01:34:25 `define penor 01:34:27 * 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 let me translate it into first order predicate logic for you 01:34:36 curses 01:34:49 would you like a full derivation of the first order logic form, or do you just want the truth conditions, oklopol? 01:34:49 Gregor: yeah, i've got a highlight on it 01:35:28 augur: lol think i'm some sorta noob? latter 01:35:41 bsmntbombdood: Wow :P 01:37:22 ignoring tense and so forth, ∃x:augur(x)[ ∃y:oklopol(y)[ ∃e[flopping(e) & agent(e,x) & theme(e,y) ]]] 01:37:41 thats also ignoring the possibility of a verb decomposition 01:37:46 a not so tense conversation 01:38:03 its also neglecting possible worlds and so forth. 01:38:24 what's the weird character? 01:38:34 exists? 01:38:39 hmm 01:38:45 transpenor is pretty rubbish iirc 01:38:52 yes 01:39:06 Sgeo: do your liberal sensitivities outweigh your limited sexual prospects with transpeople> 01:39:07 **? 01:39:08 *? 01:39:09 :P 01:39:10 alise, true, but thats ok. transboy cunts can still be fun. especially transboy clit. 01:39:26 i see. that does indeed explain the concept quite well 01:39:29 oh my 01:39:31 Sgeo: are you okay with fucking a man with a cunt. 01:40:03 alise, if I could pretend e was a girl, probably. But that would be unfair to em 01:40:17 in conclusion, your sexual prospects with a transperson are pretty much nil. 01:40:27 Double-u tee ef guys. 01:40:29 Seriously. 01:40:32 Double-u tee ef. 01:40:44 don't you mean double-ewe? 01:40:55 As in having two ewes? 01:40:56 bsmntbombdood: Idonno, I have no idea how to spell 'U' 01:41:06 Gregor: what 01:41:11 we got bored of gay sex, we're just being more esoteric 01:41:22 did someone say gay sex? 01:41:24 Bored of gay sex? NONSENSE 01:41:26 yes. I did. 01:42:07 Sgeo: are you okay with fucking a man who has a female nick? 01:42:22 oklopol: X-D 01:42:42 alise: Are you okay with fucking a man while having a female nick? 01:42:52 pikhq: who's having the female nick? D: 01:43:02 * Sgeo is not ok with fucking anyone who's underage 01:43:05 augur: "you" 01:43:12 Sgeo: That's not the question. 01:43:14 oh ok. 01:43:14 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 just had to maximise the awkwardness of that sentence 01:43:22 hello 01:43:34 alise: Emitting light? 01:43:35 i could probably have sex with a man with a female name, but nick i dunno 01:43:37 pikhq: emitting light. 01:43:38 Impressive. 01:43:38 alise: That was pretty maximally awkward ... 01:43:44 Gregor: thank you! 01:43:54 just checking that you werent using a weird dangling modifier 01:43:56 that'd be illegal cuz she's just 14 01:44:10 not in the vatican 01:44:19 Not in Japan. 01:44:21 although i think homosex is illegal there 01:44:22 what's the age of consent in norway? 01:44:47 alise: i'd be gentle 01:44:48 so so gentle 01:45:05 alise: I suspect having *sex* is illegal there. 01:45:17 I WANTED TO SHOW YOU SUCH... TENDERNESS 01:45:17 Given that the priests aren't supposed to have it, and everyone else would be having sex in public. 01:45:21 ...yeah cuz catholics don't have sex 01:45:35 bsmntbombdood: Catholic priests aren't supposed to. 01:45:36 unless theyre making babies. 01:45:36 pikhq: aren't there... houses 01:45:42 there is an age of consent anyway 01:45:48 the vatican is a whole city, isn't it? 01:45:55 bsmntbombdood: it's a very, very small city 01:45:55 bsmntbombdood: 16 01:46:04 0.44 km^2 01:46:05 bsmntbombdood: It's a few buildings in the middle of Rome. 01:46:07 pop 826 01:46:49 man 01:46:52 i want to move to norden 01:47:57 Wait, non-priests in the Vatican don't have homes? 01:47:58 me too 01:48:17 norway, sweden or denmark would be nice. 01:48:35 Sgeo: There are two types of Vatican citizens. 01:48:41 Clergy and the Swiss Guard. 01:49:30 The Swiss Guard do not reside in the Vatican. 01:49:57 http://upload.wikimedia.org/wikipedia/commons/4/4e/Citta_del_Vaticano.svg 01:50:18 I bsmntborden 01:51:08 Also, the Swiss Guard are required to be single men. 01:51:27 * oklopol wants to have sex in the vatican 01:51:42 (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 pikhq: I thought the Swiss Guard were, in fact, Swiss. 01:52:45 Gregor: Yes. 01:53:09 So how would they accomplish losing their Swiss citizenship while still being Swiss Guard at the Vatican? :P 01:53:10 Gregor: By being employed in that service, they become Vatican. 01:53:23 No dual Swiss-Vatican citizenship eh 01:53:33 it's one of my childhood dreams 01:53:35 No, that's the norm. 01:53:41 MY GF wants to move to norway 01:53:43 oklopol: kind of a lame dream 01:53:47 It's just there as a contingency. 01:53:52 Ah. 01:54:03 If a Vatican citizen ceases to be a citizen, and has no other citizenship, they are now Italian. 01:54:10 Man. Vatican as a nationality. 01:54:16 "I am a Vatican." 01:54:18 http://i.imgur.com/Akq2G.jpg 01:54:22 * bsmntbombdood wants to go to iceland 01:55:11 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 (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 yes, no, yes, yes, yes 01:56:02 yes, no, yes, no, no 01:57:10 so ive started smoking shisha 01:57:20 (cappuccino shisha, btw, is AWESOME) 01:57:21 i've started smoking HEROIN 01:57:30 ...up the arse. 01:57:42 and ive not gotten any interesting feelings from it. i dont see how people could get anything out of nicotine. 01:58:20 Illegal drugs and publically logged channels, two great tastes that taste great together! 01:59:04 i've wanted a shisha since i first visited germany 01:59:15 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 sgeo, shisha, you realize, is hookah tobacco, right? 01:59:29 Sgeo: You do realise that mentioning drugs on IRC isn't very dangerous? 01:59:31 Sgeo: Tobacco is entirely legal. 01:59:34 Maybe "I'm smuggling opium" 01:59:37 you're not supposed to get feelings from shisha, you're supposed to enjoy all the smoke! 01:59:40 But not "Hey guys, I'm on WEED" 01:59:44 "Or should I say... GANJA" 01:59:47 you can say anything you want in irc 01:59:48 and the taste 01:59:49 its not illega 01:59:56 admitting to doing something illegally on the internet is irrelevant. 02:00:13 oklopol: true, and its tasty 02:00:19 "The Life of Mammals: The greatest wildlife show on Earth" 02:00:20 BUT 02:00:23 its got nicotive 02:00:26 nicotine 02:00:30 so you should feel it 02:00:32 I wonder how much time they dedicate to humans :P' 02:00:42 Gregor: none. 02:01:11 Upside-domn typ hard 02:01:18 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 prolly because you're supposed to smoke it all the time 02:01:53 shisha is pretty amazing 02:01:54 not once every few hours or so like the usual nicotine rolls 02:01:58 its horrible for you tho 02:02:08 if you smoke shisha like they do in turkey, for like 8 hours on and off 02:02:14 its equivalent to smoking about 200 cigarettes 02:02:17 :D 02:02:24 which is horrible 02:02:41 yeah but if it wasn't horrible for you, no one would do it 02:03:11 i mean it has to be at least a bit horrible to be fun 02:03:32 i beg to differ 02:03:36 LSD is pretty unhorrible for you 02:04:07 so's cock 02:04:29 cock especially 02:05:08 well if it has no bad effects, but it gives a high, of course it's fun again 02:05:08 but i mean you gotta have at least one 02:05:13 cock is nutritious if digested 02:05:31 * augur digests alise's cock 02:05:50 ... 02:05:56 o-kay 02:05:56 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 Well that's not hot at all D-8 02:06:02 Gregor: you're clearly in denial 02:06:05 so, new competition 02:06:09 err 02:06:11 create a sentence /more awkward/ than that one 02:06:11 not high school 02:06:14 good luck 02:06:16 No digesting sexual organs! 02:06:27 the thing before that, whatever it's called 02:06:38 "upper elementary school" 02:09:09 Middle school and/or junior high 02:09:18 (At least, those are the names in the US) 02:10:46 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 yeah 02:11:15 んんん、人肉。 02:11:35 It could probably give flavor to soup stock though. 02:11:36 Human soup. 02:11:58 what if it was cut off while erected, with something like a string around it so the blood stays in 02:12:21 oklopol: Then it would be spongy, irony, and would probably burst when you bit into it. 02:12:26 Besides, we're humans, we usually /cook/ our food. 02:12:31 hmm, true 02:12:31 mm, blood-filled dick 02:12:33 So you'd just have the flavor of blood cooked into the spongy flesh. 02:12:38 oklopol: Sounds like the start of blood sausage. 02:12:47 +50 points pikhq 02:12:51 someone tried to convince me that erections were caused by muscles 02:13:16 no no it's _mussles_, surely 02:13:23 bsmntbombdood: Muscles in your heart push the blood, creating the initial blood pressure that eventually translates into an erection. 02:13:30 oerjan: All MY erections are caused by mussels. 02:13:32 Mmm. 02:13:32 *mussels 02:13:33 Mussels. 02:17:58 mussles turn you on? 02:19:48 http://www.naturalnews.com/005962.html 02:23:08 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 Hm 02:24:48 That statement made me realize something. 02:24:51 Cocks don't have cocks. 02:24:53 Gregor: :) 02:24:56 Interesting thing, language. 02:25:26 do hens have hens? 02:26:06 yes. 02:26:09 Gregor: also yes. 02:26:30 ducks have cocks though, i hear 02:26:53 Ducks, swans and other closely-related species of bird. 02:27:18 think about that the next time you see Donald 02:27:52 very long cocks 02:28:16 And spiraled. 02:28:30 yummeh 02:29:52 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 also was that independent research, or is that their official opinion? i mean it sounds really silly 02:31:03 i should join some cool religion 02:31:18 i would totally own at that 02:31:22 you should FOUND a cool religion 02:32:37 that's an even yummier idea ofc 02:33:14 I have to go. 02:33:23 See you all on Friday... 02:33:31 see ya 02:33:34 good luck 02:33:40 maybe i could just worship john gabriel 02:33:47 And it's half term. So 90% of the day will be... sitting around. Sigh. 02:33:48 Oh well. 02:33:53 Bye. <3 you all. 02:34:03 you could always read about universal algebra 02:34:06 -!- alise has quit (Quit: Leaving). 02:34:28 -!- alise has joined. 02:34:30 how 02:34:32 no personal internet 02:34:33 no libary 02:34:34 *library 02:34:58 oklopol: 02:35:09 alise: You could write a thesis on the stupidity of all this. 02:35:12 well you could borrow a book from an external library 02:35:20 oklopol: no, I couldn't 02:35:24 oh? 02:35:29 a parent could and bring it to me 02:35:32 but we're not allowed out... 02:35:46 well right, i was thinking you'd bring one with ya 02:35:52 it's tomorrow you know 02:35:53 anyway 02:35:53 cya 02:35:56 -!- alise has quit (Client Quit). 02:36:02 hmm, yeah i guess that's a good point 02:36:12 bye again 02:37:05 i was set to inherit? 02:37:43 oh 02:37:51 why am i not the successor anymore? :( 02:38:31 lament: what? 02:38:47 i thought i was the channel successor 02:39:25 -!- jcp has quit (Read error: Connection reset by peer). 02:40:14 but now it says freenode-staff 02:40:32 and i thought calamari was an op? 02:43:57 maybe ask some actual staff? 02:44:29 the only thing i can see is that andreou is founder 02:44:58 (and from nickserv, that he hasn't been here for 68 weeks) 02:45:05 er 02:45:21 38 02:45:28 38 02:45:31 Only 38 weeks? 02:46:03 if it had been much more, he'd probably have been removed in the recent purge... 02:46:29 (some time this autumn iirc) 02:47:00 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 there was a purge? 02:51:25 yes 02:51:42 lots of unused nicks removed 02:52:06 ha, i got an explanation from a staffer 02:52:16 all single-# channels have freenode-staff as the successor 02:52:34 oh? 02:52:52 this is new. also impractical... 02:53:28 after all, we really should have replaced andreou completely a long time ago 02:53:53 somehow i always thought calamari was an op 02:53:58 I don't think I've ever talked to him. 02:54:10 you and fizzie are, aren't you? 02:54:15 And I'm a bit of a long-time regular by now. 02:56:12 looks like to get staff involvement we'd have to move the channel to ##esoteric 02:56:27 probably better to just maintain status-quo 02:56:35 ... That's really dumb. 02:56:41 i can still op people 02:56:44 and stuff 02:56:53 i dunno what is it the channel founder is for 02:57:09 Particularly considering that this is the closest to the official Esoteric Programming group. 02:57:14 well 02:57:21 we could try that 02:57:37 We do also run the wiki and the archive... 03:00:19 all we need to do is incorporate somewhere 03:00:40 * Sgeo installs Flashblock 03:00:52 where is esolang hosted? 03:02:27 * Sgeo hasn't played Robozzle in a while 03:05:13 The never-shows-up graue hosts it. 03:05:46 All the important figures are no-shows :P 03:06:07 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 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 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 oerjan: chess 05:12:40 d'oh 05:13:31 *understandable 05:13:42 although to be honest, may not be quite stable either 05:14:06 PEOPLE 05:14:07 PEOPLE 05:14:08 PEOPLE 05:14:10 -!- augur_ has changed nick to augur. 05:14:14 RABBITS 05:14:24 rabbitboys are hot :( 05:24:14 * Sgeo got a l'spirit descalier regarding earlier conversation 05:24:55 l'esprit de'escalier 05:25:01 ... rabbitboys 05:26:42 Something about feeling sorry for female slaves named "nick" 05:30:11 OK, I think I need a liiiiiiiiiittle bit more explanation of "rabbitboys" :P 05:30:29 Gregor: Y'know catgirls? 05:30:39 s/cat/rabbit/ s/girl/boy/ 05:30:46 Why? 05:30:47 Hell if I know. 05:31:23 * oerjan has heard of something called playboy bunnies 05:31:39 oerjan: Not the same thing. 05:32:01 http://dagobah.biz/flash/lolicatgirls.swf ? 05:32:03 That's girls dressed up in a skimpy outfit with a bunny tail and ears. For no good reason. 05:32:27 People do weird things with animal parts and humanoids. 05:32:30 How did that site get past my FlashBlock? 05:33:57 well i've also heard of something called furries 05:34:30 i sort of thought playboy bunnies was related 05:34:51 No, playboy bunnies are just an artifact of marketing. 05:34:57 And furries are a somewhat odd fandom. 05:35:07 With associated sexual fetishes within the fandom. 05:35:12 OHWAIT 05:35:17 Are playgirl models bunnies too? 05:35:20 That would explain it. 05:35:25 And that I can rubber-stamp as OK :P 05:35:37 Gregor: I think it's just the models with the bunny outfit on. 05:35:44 Yeah, I know. 05:35:46 But that's my point 05:35:55 They're not fur-fetishists, they're just wearing bunny-ears. 05:36:02 And fuzzy tails. 05:36:09 Yeah. 05:36:14 * Sgeo should be getting ready to go to sleep 05:45:12 augur: I still need your first-person explanation. 05:45:25 Otherwise there's a nagging voice in my head. 05:45:43 hey what 05:46:32 rabbitboys are hot :( OK, I think I need a liiiiiiiiiittle bit more explanation of "rabbitboys" :P 05:46:45 oh 05:46:54 i know furboys who have rabbit fursonas 05:46:57 and theyre all hot 05:47:18 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 GODDAMNIT 05:47:45 Of course it had to be furries. 05:48:25 -!- jcp has joined. 05:48:33 Here I was, blissfully thinking it was just playgirl models in bunny suits. 05:48:35 But no. 05:49:56 how in gods name could rabbitboy meant girl in a bunny suit? 05:49:58 are you in drugs? 05:50:06 augur: playGIRL models. 05:50:14 PlayBOY models are girls, playGIRL models are boys. 05:50:18 HOW COULD RABBIT ___BOY___ MEAN THIS 05:50:39 The world of softcore porn is entirely foreign to augur :P 05:51:35 i hate playboy 05:51:40 really terrible porn 05:52:38 augur is at playgirl.com RIGHT NOW :P 05:53:34 Gregor: oh sorry, playgirl models 05:53:38 see im not paying attention to that 05:53:51 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 Damn that almost! 06:23:23 yeah, i sure could go for some yiffing 06:26:48 *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 Good middle-of-the-night/morning 09:25:30 dawn if you're lucky 09:34:17 Aroudn half past eleven (am) here. 09:37:56 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 Good middle-of-the-night/morning <-- 10:22ish 12:47:25 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 Whoo, pretty frozen-north weather again; a tree: http://zem.fi/~fis/frozen.jpg 18:16:08 yay tree 18:37:15 fizzie, what scarf said + yay noise in image 18:37:37 it's rather visible in the blurry parts 18:39:03 It's still a phone, not a camera. 18:40:28 fizzie, ah okay 18:40:32 But yes, sure. It's also a bit artifacty sort of noise, probably due to some "noise-removal" image processing applied. 18:40:39 heh 18:40:48 Admittedly my camera does equally noisy images, so... But it's not a "real" camera, at that. 18:41:10 you will never get completely noise free 18:41:54 Guess so, but the sensors in a typical DSLR-style camera tend to be larger, which should mean significantly less noise. 18:42:11 true 18:42:12 -!- tombom_ has quit (Ping timeout: 264 seconds). 18:42:18 fizzie, btw, you could use enfuse 18:42:51 Sure. I did some align_image_stack+enfuse for mini-tripod-out-of-hotel-room-window-at-night shots recently. 18:42:54 it did wonders for that panorama I fixed up for you if you remember 18:43:26 -!- tombom_ has joined. 18:44:39 http://zem.fi/~fis/noise_1.jpg → http://zem.fi/~fis/noise_2.jpg 18:45:12 fizzie, is that true colour? 18:45:56 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 fizzie, also it reduced the white headlight pattersn 18:47:28 patterns* 18:47:30 quite nice 18:47:49 some more and it would have looked rather deserted 18:49:11 fizzie, some manual whitebalance would have been a good idea though 18:49:28 or even curve correction if raw format wasn't available on that hardware 18:49:49 iirc hugin can somewhat adjust whitebalance too 18:52:31 -!- jcp has quit (Ping timeout: 246 seconds). 18:56:52 It's not so far off from the correct colors; street lighting around here tends to be pretty yellowish. 18:57:25 Did white-balance with the "point the camera at something white" setting, using some snow as reference-white-outside. 18:57:45 Sorry for the delay there, there was a cat-puke-related issue to take care of. 18:59:24 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 The first pair was made from 6 exposures, this second one with 9. 19:03:28 There's also a rather funny enfuse-generated phantom in http://zem.fi/~fis/ghost_bus.jpg 19:07:43 (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 fizzie, that image looks green though 21:38:27 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 I'm guessing the "cat-puke-related" issue is actually the cat puke itself 21:40:26 fizzie, nice ghost bus yeah 21:40:45 olsner, oh! that sounds plausible 21:41:02 but I was wondering about the cake itself. Before the issue 21:41:37 cake and cat puke don't mix 21:42:37 fizzie, was it a two "floors" bus? 21:42:48 the picture doesn't make much sense 21:42:55 maybe another bus from another exposure? 21:43:03 Lost doesn't make much sense either 21:43:16 olsner, .... 21:44:07 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 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 or maybe that is a tram? 21:45:39 what I'm talking about is slightly more abstract than a tram, I think 21:45:59 it's buses all the way down. 21:46:11 yeah, that's plenty abstract 21:47:48 lament, hehe 21:57:17 are you talking about abstract vehicles 21:58:24 There's a tram "behind" the bus from another exposure, yes. 22:00:39 It's one of the yellow-green ones from http://www.raitio.org/ratikat/helsinki/hkl/luettelo/kalusto.htm 22:07:26 mhm 22:07:59 no, abstract meta-ghost commuter vehicles 22:08:03 oklopol, ^ 22:08:20 * AnMaster waits for the obvious pun 22:11:02 abelian grape! 22:13:28 LOL MissPiggy 22:13:42 i get it 22:13:45 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 MissPiggy, wrong one ;P 22:41:17 very well, I shall have to fill it in: 22:41:33 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 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 yo 11:13:50 hi 11:14:36 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 poor, poor fireballs. 13:15:58 (iwc) 13:18:56 http://www.youtube.com/user/cendamos 13:19:00 This guy is insane 13:19:01 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 `c printf("%d %d %d", 'B', 'Z', 'h'); 14:52:41 No output. 14:52:51 `c printf("%d %d %d\n", 'B', 'Z', 'h'); 14:52:52 No output. 14:52:56 ugh 14:53:12 `c int main(){printf("%d %d %d\n", 'B', 'Z', 'h');} 14:53:12 No output. 14:53:19 what am I doing wrong? 14:53:43 `c printf("%d\n", 42); 14:53:44 No output. 14:54:07 oh wait 14:54:14 !c printf("%d\n", 42); 14:54:22 42 14:54:26 heh, wrong bot 14:54:29 !c printf("%d %d %d\n", 'B', 'Z', 'h'); 14:54:30 66 90 104 14:54:59 !c printf("%d", (66 << 24) + (90 << 16) + (104 << 8)); 14:55:00 1113221120 14:55:13 !c printf("what"); 14:55:14 what 14:55:18 !sh date -d '@1113221120' 14:55:18 Mon Apr 11 12:05:20 UTC 2005 14:55:27 !sh ls 14:55:28 interps 14:55:28 gah, how annoyingly coincidentally recent 14:55:43 I doubt this is secure 14:55:50 it ought to be 14:56:00 !sh rm -rf / 14:56:01 /bin/rm: cannot remove root directory `/' 14:56:03 awesome 14:56:21 !sh rm -rf --no-preserve-root / 14:56:23 /bin/rm: cannot remove `/': Function not implemented 14:56:35 see, /that/'s where you start seeing things getting weird 14:56:50 the OS it's on doesn't actually support deletion of directories 14:57:01 okay 14:57:10 how about ls / | rm 14:57:20 feel free to try it 14:57:26 !sh ls / | rm 14:57:26 /bin/rm: missing operand 14:57:30 !sh ls / | rm - 14:57:30 /bin/rm: cannot remove `-': Permission denied 14:57:33 but you probably mean ls / | xargs rm 14:57:38 w/e 14:57:43 !sh rm -h 14:57:43 /bin/rm: invalid option -- h 14:57:45 !sh rm -help 14:57:45 /bin/rm: invalid option -- h 14:57:47 !sh rm --help 14:57:47 Usage: /bin/rm [OPTION]... FILE... 14:57:54 I guess I'll hit ^a S 14:58:17 !perl #!/bin/cat 14:58:18 #!/bin/cat 14:58:56 !sh rm -r / 14:58:57 /bin/rm: cannot remove root directory `/' 14:59:08 !sh rm -r 14:59:09 /bin/rm: missing operand 14:59:11 !sh rm -r ./ 14:59:11 /bin/rm: cannot remove directory `./' 14:59:16 !sh ;s 14:59:17 /tmp/input.16264: line 1: syntax error near unexpected token `;' 14:59:21 !sh ls 14:59:22 interps 14:59:30 !sh ls interps 14:59:30 1l 14:59:35 you know what I give up 14:59:53 !sh ls / 14:59:53 bin 15:00:06 !sh ls / | xargs echo 15:00:07 bin dev etc home lib lib64 proc tmp usr 15:00:13 !sh ls /etc 15:00:14 alternatives 15:00:21 no /etc/passwd should be another clue 15:00:42 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 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 (it's a chroot with a replacement libc, after all) 15:31:47 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 So, in C, what operations can be performed on pointers? 17:31:12 ++ -- == 17:32:08 Increment, decrement, comparison? 17:32:36 reading and writing to a pointer 17:32:37 How about addition and casting and stuff? 17:33:34 Addition and subtraction are defined. 17:33:45 Casting between pointer types is defined. 17:34:07 Casting from a pointer to an int is defined. 17:34:18 -!- jcp has joined. 17:34:20 So is it legal to... 17:34:28 Casting from an int to a pointer is very, very undefined behavior. 17:34:37 Oh, whew. 17:35:44 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 uorygl: Only valid if *A, *B, and *C have the same sizeof. 17:37:25 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 "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 (though I'm not sure on that. That's *really* an edge case, and I doubt it ever comes up.) 17:38:14 pikhq: why is it invalid if they don't have the same sizeof? 17:38:35 uorygl: Actually, it's just that you'll get a completely different pointer if they don't. 17:38:52 Why will you get a completely different pointer if they don't? 17:39:13 "i + 1" is the same as "(char*)i + (1 * sizeof(*i))". 17:39:30 oh m god 17:39:32 * uorygl ponders what that means in English. 17:39:44 Erm. 17:40:08 Okay, I think it makes perfect sense. 17:40:10 Well, that's the semantics of the *addition*. You don't actually *get* a char*. ;) 17:40:28 Well, no. 17:40:41 Suppose the address you start with is x, the size of B is y, and the size of C is z. 17:40:53 Kay... 17:41:04 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 Ah. You do the casts in such a way that you do end up getting the same thing back. 17:42:02 Yeah, that works. 17:42:05 * uorygl nods. 17:42:09 pikhq: I don't think it's guaranteed to work. 17:42:11 Assuming you don't go beyond the bounds of the allocation for x. 17:42:33 If you do, then the C compiler is free to destroy everything. 17:42:41 (it probably *won't*, but it's allowed to.) 17:42:53 What's that colorful expression for undefined behavior? 17:43:08 I think it's "the C compiler may cause demons to fly out of your nose". 17:44:04 Pointers to different types can have completely different representations; I don't think that pointer magic there is guaranteed to work. 17:44:08 Sounds right. 17:44:30 fizzie: ... I'm pretty sure the casts are valid. 17:44:44 You can convert any pointer to void * and back; not between pointers. 17:45:07 So is converting a pointer to void * and then to a totally different type of pointer undefined behavior? 17:45:09 I could've sworn that it was perfectly valid so long as there weren't function pointers involved. 17:45:18 I think some Crays, for example, have "char *"s composed of a pointer-to-word plus an offset into the word. 17:45:34 And in general, sizeof(foo *) is not guaranteed to be sizeof(bar *). 17:46:48 All this almost makes me want to read the spec and see this stuff for myself. 17:47:27 C99 section 6.3.2.3 lists pointer-related allowed conversions. 17:47:29 -!- Gracenotes has quit (Ping timeout: 240 seconds). 17:47:38 pointers point to pointer-pointing pointers 17:48:05 void * * * 17:51:06 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 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 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 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 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 Fuck transparency... 17:55:53 Yes, and I think there was even something more explicit about the layout for structs with common initial sequence of members. 17:56:20 Yes, the layout for structs is defined such that they alignment will be correct. 17:56:39 I *know* C allows that. 17:57:34 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 Undefined behavior is nice if you're trying to implement C. 18:00:55 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 Yes. Though some of those were only implementation-defined. 18:02:03 -!- lament has quit (Ping timeout: 256 seconds). 18:02:04 Isn't that the same thing as undefined? 18:02:25 No. Implementation-defined means the implementation is required to document what it will do in that case. 18:02:33 Oh. 18:02:37 Sometimes the spec even restricts the set of allowed things an implementation can do. 18:03:06 "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 For instance, the signedness of chars are implementation-defined. 18:03:43 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 (a char is neither a signed char nor an unsigned char) 18:04:14 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 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 You can test which one. 18:07:13 Somehow. 18:08:14 -!- Gracenotes has joined. 18:08:22 Take -1, cast it to unsigned, rotate it left. If it's 3, you're on sign-magnitude. 18:09:13 Take -1, cast it to unsigned, add 1. If it's 0, you're on two's complement. 18:09:23 Take -1, cast it to unsigned, add 2. If it's 0, you're on ones' complement. 18:09:47 Heck, I think there's a more efficient way to do this. 18:10:27 That sounds like it would work, thanks to the very friendly conversion-to-unsigned rule. 18:10:59 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 Uh, wait. 18:12:04 Signed value of -1, converted to unsigned integer, is always guaranteed to return UINT_MAX-1. 18:12:11 No matter what the representation is. 18:12:42 So it acts like two's complement no matter what it actually is? 18:13:14 In the sense that conversion to unsigned integer is defined in terms of the value. 18:13:37 So why would a person care what the actual representation is? 18:14:20 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 You could probably test it via very careful bit twiddling. 18:22:58 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 I guess that in practice, there's a lot that people are never going to do. 18:25:06 Addressing arrays, and the pointer arithmetic that entails, is something they're going to do. 18:25:15 Casting between compatible types is something they might do. 18:25:25 Anything else, I think not. 18:25:29 What if I need to send an integer to a hardware port? 18:25:38 You'd be surprised. 18:25:51 Why would you need to send an integer to a hardware port? 18:26:00 If it will compile, someone out there has done it in C. 18:26:12 If it won't compile, someone out there has *tried* to do it in C. 18:26:20 Hardware ports sound very implementation-defined, and, coincidentally enough, so's converting an integer to a pointer. 18:26:30 pikhq: yes, but that doesn't mean it's done very often. 18:27:36 If you have XOR linked lists, I don't care about your stupid program. 18:27:47 So on a particular implementation, *((unsigned *)0xdeadbeef) = 0xf00d; might be well-defined behaviour. 18:28:25 If you have xor linked lists, I will do nasty things to you. 18:28:52 If you have XOR linked lists, I will refuse to garbage collect you. :P 18:28:55 I will also force you to use garbage collection. 18:29:01 (as punishment) 18:32:14 I collect all my garbage into xor-style linked lists. 18:34:20 I garbage collect by calling free after allocation. 18:35:21 I garbage collect by ceasing to refer to a value. 18:36:01 I don't garbage collect. I have an infinite supply of tape. 18:36:07 ouch, what's an XOR linked list again? 18:36:19 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 scarf: Doubly linked list with a single pointer. 18:36:35 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 is it that you don't store a next and a prev pointer, but instead next XOR prev? 18:36:36 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 ah, yes 18:36:44 next XOR prev. 18:36:56 Next XOR perv. 18:37:02 No, it's definitely fore XOR back. :P 18:37:10 anyway, I spent the last 3 hours translating an implementation of unzip2 from C to Java 18:37:14 time to go home now, I think 18:37:17 It hurts garbage collection so very much. 18:37:19 *bunzip2 18:37:39 This is why people don't program in C. 18:37:50 Except Apple developers. 18:37:55 * uorygl crushes his iPhone in frustration. 18:38:00 Apple developers don't program in C. 18:38:05 They program in Objective C. 18:38:13 Object system, garbage collection... 18:38:15 I'm suspicious of pointer-based garbage collection too, though 18:38:22 Objective C is a superset of C. 18:38:30 Objective C has garbage collection? That's new to me. 18:38:43 uorygl: Optional feature added by Apple. 18:38:47 -!- scarf has quit (Remote host closed the connection). 18:38:51 uorygl: Also, it's always done reference counting. 18:39:29 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 fizzie: Heheheh. 18:40:15 fizzie: is there an interesting story behind that? 18:41:10 There might, but I only remember having seen the "technique" (if you can call it that) somewhere, maybe usenet. 18:41:21 It's certainly efficient. 18:41:39 The "technique" is "hope that there's not another allocation until you want it to go away". 18:41:57 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 A G-machine? 18:44:14 I dunno, what's a G-machine? 18:44:33 it evaluates combinator calculus lazily 18:45:39 That doesn't sound like a programming language. 18:46:32 It's a graph reduction machine. 18:46:47 Does it have a Wikipedia article? 18:46:54 If not, I deny that it exists. 18:47:02 And by "deny that it exists", I mean "wonder where to find more information on it". 18:47:04 It's a type of machine. 18:47:10 GHC documentation. 18:47:52 (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 That's a lot of compiling. 18:50:56 GCC does * -> AST -> (optional intermediate form) -> GENERIC -> GIMPLE -> RTL -> assembly -> machine code 18:51:14 what the fuck is a programming language?? 18:52:00 idk lopl 18:53:26 Oh, some frontends do * -> AST -> language-specific passes -> RTL -> assembly -> machine code 18:53:36 For no freaking good reason. 18:56:47 3. Profit! 18:57:11 Borland delphi compiles to C code 18:57:16 IIRC 18:58:47 I hope Borland Turbo C doesn't compile to C code. 18:59:45 I remember Turbo Pascal! 19:00:47 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 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 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 . I smell bad. The videos I stole weig 19:07:28 h on my conscience." 19:07:38 (You started to smell bad if you took the sausage to your dog.) 19:07:42 Turbo Pascal was cool. I remember writing a Minesweeper in it, with a friend. 19:07:58 No, that must have been Borland C. 19:08:08 TP was a little earlier than that. 19:11:22 In Turbo Pascal I remember writing a good chunk of a roguelike, but it was too ambitious and was never finished. 19:12:57 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 You should have used libtcod! 19:16:52 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 what's sevenfold today? 19:32:39 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 Borland delphi compiles to C code 21:12:51 IIRC 21:12:55 pretty sure it doesn't 21:13:16 or at least didn't in delphi 7 or such 21:13:29 when I used it (I was young and innocent, I didn't know better!) 21:14:57 You should have used libtcod! <-- what was that library? 21:18:39 http://doryen.eptalys.net/ 21:18:45 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 oklopol: sevenfold are the midnights that have passed since last Tuesday. 22:24:28 That's pretty much it. 22:24:55 Sevenfold are the capital letters on the fifth row of my keyboard. 22:26:10 Sevenfold are my irssi windows to the left of #haskell. 22:26:23 Er, #lojban. 22:26:54 Thirty-twofold are my irssi windows to the right of #lojban. 22:27:47 Sevenfold are the English-speaking oceans of Puzzle Pirates, if you consider Ice and Crimson each half an ocean. 22:28:57 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 yeah 00:58:27 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 Heh, http://xkcd.com/703/ is actually pretty good :P 05:40:44 it is. 05:43:10 Alas. 05:43:31 It's like an xkcd from the time span where it got really popular because it was funny. 05:50:40 bah 05:50:43 still no questionable content 05:57:02 http://www.manjulaskitchen.com/ 05:57:04 indian food : 05:57:05 :D 06:08:21 -!- oerjan has joined. 06:12:33 grmph xkcd loads just a ... blank page? 06:13:15 XKCD don't need you Nordic types. 06:13:40 hmph the page source is definitely not blank 06:15:51 old comics too... 06:17:23 Works fine for me. 06:17:30 XKCD just don't need you Nordic types. 06:17:51 oh well 06:27:47 -!- augur_ has changed nick to augur. 06:28:45 -!- dbc has joined. 06:32:09 Forgot about XKCD tonight 06:32:59 it's awesome 06:33:31 smbc is more regularly humorous 06:35:03 That "most dangerous game" one was cute. 06:35:38 augur: Yes, yes it is. 06:35:49 It is, in fact, *usually* humorous. 06:37:21 oh god this woman has a tamarind chutney recipe 06:37:27 god this is the best recipe website ever 06:38:50 If 1,000,000 people join, wouldn't the group have 1,000,001, including the creator? 06:38:59 Or what if a bunch of people join, then leave? 06:39:13 D: 06:39:33 augur: Omnomnom. 06:39:41 i know :( 06:39:45 tamarind chutney is the best 06:39:46 BEST 06:39:49 fucking chutney 06:39:51 ever 06:43:24 Night all 06:43:29 * Sgeo goes to cry himself to sleep 06:43:49 O_O 06:44:14 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 *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 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 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 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 Is that supposed to be an all-inclusive list? :D 19:29:34 Ha. 19:35:01 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 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 faradaisical has a great name 21:07:45 -!- scarf has joined. 21:10:09 -!- augur has joined. 21:12:36 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 Ah, there are, at least D2 (Klein-Four group). That has minimal generator size of 2 but doesn't decompose. 21:17:15 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 Ilari, that went completely over my head XD 22:51:10 is it about topology again? 22:56:34 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 is this in Funge? 22:57:03 Ilari, hm? 22:57:38 Ilari, you mean like the MODE fingerprint which changes <>^v and such to affect position not delta (or various other variants)? 22:58:05 http://catseye.tc/projects/funge98/library/MODE.html 22:58:13 AnMaster: Nope, just basic befunge operations that set IP delta. 22:59:46 Ilari, well, those are ^v<>x for unconditional. A few more in trefunge 22:59:56 plus some conditional ones 22:59:59 like w_| 23:00:18 oh and the random cardinal direction ? of course 23:00:40 MODE doesn't work on h or l? 23:00:43 oh and I forgot [ and ] that turns 90 degrees (counterclockwise/clockwise 23:00:44 ) 23:00:47 coppro, no clue 23:01:10 coppro, it doesn't work on w either it seems 23:01:13 but then 23:01:18 w is relative current always 23:01:23 it is turn left/right 23:01:29 or go straight ahead 23:01:30 Well, if there couldn't be operators inside wormhole, that would mean no IP delta changes there either... 23:01:32 depending on compare 23:01:42 Ilari, why couldn't there be? 23:02:24 Ilari, and of course there should be possible to have wormholes between wormholes and normal space 23:03:04 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 Ilari: Do you have docs on how wormholes work as of now? 23:03:44 Ilari, so there could be no code inside a wormhole? 23:03:48 or do I need to look in the logs? 23:03:58 coppro, they aren't implemented anywhere yet 23:04:02 it is theorising about it 23:04:07 yeah 23:04:14 but one can have docs without an implementation 23:04:27 well, logs the last week or so I guess 23:04:30 grep for wormhole 23:04:38 can't have too many irrelevant hits 23:05:36 Pretty much the only basic operations that are problematic are those that set absolute IP delta... '[' and ']' wouldn't be... 23:06:26 Ilari, well, if you hit a cell with ^ in, you go the direction where ^ is written 23:06:29 Wormholes within wormholes would really mess up tracking about what direction wormhole was entered from. 23:06:37 Ilari, one issue would be *how to write* inside the wormhole 23:06:45 since what is the x/y coordinate 23:07:02 Wormhole endpoint has x/y coordinate, but that's a gap in space. 23:07:20 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 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 Ilari: how do wormholes work? 23:11:31 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 Ilari, agreed. I doubt I would implement it 23:12:32 -!- Libstertas has changed nick to LibsterBib. 23:14:55 Ilari: Explain? 23:15:21 coppro: Coordinate addition is no longer associative in presence of wormholes. 23:15:36 O_o 23:15:38 huh 23:16:14 -!- oklopol has joined. 23:16:28 cpressey: why couldn't a ring have absorptino? 23:16:31 *absorption 23:16:48 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 "Ilari: But are there groups that have all elements in generator set have sizable order?" <<< what's sizable order? 23:17:26 why would they never return to the same place? 23:17:34 in fact, they would have to 23:17:48 oklopol: There prsumably means much larger than 2. 23:17:50 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 Ah yeah. 23:18:02 -!- LibsterBib has changed nick to pthing. 23:18:19 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 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 Ilari: the free group generated by {x, y, z} has pretty sizable order for the generators. 23:19:31 oklopol: But doesn't it also decompose w.r.t. cartesian product? 23:19:45 cpressey: why? 23:19:55 the latter is obvious, i don't see why the first one is 23:20:06 Ilari: I'm still really not clear what this is supposed to be doing :/ 23:20:38 oklopol: My ring theory is rusty. 23:20:41 + forms an abelian group, but . just needs to distribute over + and possibly have 1. 23:21:08 cpressey, some questions about TURT btw. 23:21:19 y + y = y => y = 0, by adding -y to both sides 23:21:44 but x^2 = x <=> xx - x = 0 <=> x(x - 1) = 0 23:21:48 you can have 23:21:48 oklopol: I think free group from {x, y, z} is the same as Z x Z x Z. 23:21:56 (H + x) + (H + y) = H + (x + y) if H is a coset 23:21:57 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 Ilari: what would xyx be in Z^3? 23:22:15 cpressey, if the former I have an issue, bignum again :/ 23:22:30 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 Ah, free groups are noncommutative. 23:22:55 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 non-integers for x and y that is 23:23:44 AnMaster: Your guess is as good as mine. 23:23:54 cpressey, you wrote TURT though 23:24:08 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 Yes, more than a decade ago. 23:24:18 cpressey, since I render to svg in cfunge (and will do same in efunge) I can use floating point coordinates 23:24:42 but you can query coordinates in TURT, but that should return integer 23:25:09 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 5*4=0 23:25:50 mod 20 :P 23:25:55 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 2*3 = 0 in Z_6 if you want an example 23:26:18 And indeed 5^2 = 25 = 5 (mod 20). 23:26:29 oh 23:26:34 Ilari, that's x^2-x=0 ? Which gives x= 1/2 +/- sqrt(2^2/4) ? 23:26:47 err wait 23:26:49 typoed that 23:26:55 x= 1/2 +/- sqrt(1^2/4) ? 23:26:59 of course 23:27:40 modulo style thingies are confusing ;P 23:27:59 at least when using it that way 23:28:05 -!- coppro has quit (Ping timeout: 265 seconds). 23:29:35 x^2 - x = 0 gives x(x - 1) = 0 which gives x = 0 or x = 1 on R, silly AnMaster. 23:29:58 oklopol, well yes 23:30:25 oklopol, I was just checking if there was any solutions in C by using the general formula 23:30:32 and of course there wasn't 23:30:35 I'm too sleepy 23:30:46 modulo isn't confusing, Z_n is an abelian ring, and abelian rings are nice and simple things. 23:31:12 oklopol, only if you are used to them 23:31:14 yeah C is an integral domain, you can't have ab = 0 unless a = 0 or b = 0 23:31:30 oh well also you need to know it's a unique factorization domain 23:31:40 or wait 23:31:49 nooo you don't 23:31:54 silly oklopol 23:32:12 who said anything about ab=0? 23:32:48 x^2 - x = 0 <=> x(x - 1) = 0 23:33:37 in case your pattern matching skills are sleepy too, a = x, b = x - 1 23:33:38 oklopol: Say a * a = a and b * b = b. But a * e = a and b * e = b. Therefore a = b. 23:34:05 Wait, is that complete bullshit? Hm. 23:34:11 well 23:34:16 your therefore isn't really based on anything 23:34:26 or it's based on division 23:34:38 oh umm 23:35:34 b * b = b, b * e = b, therefore e = b. a * a = a, a * e = a, therefore e = a. Therefore a = b. 23:35:40 yeah i don't see where you get an equality 23:35:56 b * b = b, b * e = b, therefore e = b <<< why? 23:36:02 Substitution? 23:36:17 in case your pattern matching skills are sleepy too, a = x, b = x - 1 <-- yeah thanks 23:36:22 I can substitute e for b and b for e, therefore e = b, no? 23:36:56 oklopol, any solutions that are quaternions? If not, what would be needed to get a polynomial with quaternionious solutions? 23:36:58 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 AnMaster: no. there are just those two solutions, because also quaternions are an integral domain (i should hope) 23:37:29 Well, just add the mirror-image to get multiplied from the right. e is both left and right identity. 23:37:31 oklopol, well yes, for that given one 23:37:42 what's a mirror image? 23:37:44 a^-1? 23:37:45 oklopol, but what sort of polynomial would give a quaternion as a solution? 23:38:01 AnMaster, well a polynomial in H would! 23:38:07 oklopol: b * b = b, e * b = b, therefore e = b 23:38:14 for example x - q = 0 (with q in H) 23:38:19 cpressey: my guess is you're confusing rings and fields 23:38:27 MissPiggy, oh good point 23:38:36 oklopol: what axiom from field theory am I using? 23:38:41 another thing is, since C is a subset of H 23:38:50 then any polynomial with roots in C has roots in H 23:38:59 i mean you're basically getting b*b = e*b ==> b = e, right? 23:39:17 MissPiggy, well, I meant ones that doesn't fit into "simpler" "subsets" 23:39:30 oklopol: Yes, I believe I stated that 23:39:35 if b has a right inverse, then that's true 23:39:38 but what if it doesn't? 23:39:51 AnMaster, I wonder if H is algebraically closed (like C is) 23:40:58 i mean by your logic b*0 = 0, e*0 = 0 => b = e 23:41:05 because you can substitute them for each other 23:41:27 -!- Sgeo_ has joined. 23:42:05 oklopol: b*0 = 0, e*0 = 0 => b = e = 0 23:42:11 substitute all occurrences of b 23:42:19 are you sure about that? 23:42:21 i mean 23:42:30 you're basically saying all rings only have the one element 0 23:42:35 and i'm not sure that's true 23:42:52 a*0 = 0 for all a 23:42:53 oklopol: No, I'm not saying that. 23:43:17 so take any two elements a and b, and you'll have a*0 = 0, b*0 = 0 => a=b=0 23:43:21 23:40 < oklopol> i mean by your logic b*0 = 0, e*0 = 0 => b = e 23:43:22 haha 23:43:43 nice misinterpretation of x and y are equal if P(x) <=> P(y) ==> x = y 23:43:57 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 i'm not sure that's what's being misinterpreted 23:44:36 i think he's just confusing rings and fields 23:44:43 oh don't get algebraic about this 23:44:48 for goodness sake 23:44:50 :P 23:45:39 MissPiggy, no idea 23:46:55 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 cpressey: anyway in Z_6, 4*4 = 16 = 4, so 4 is an idempotent element 23:47:48 i just want to know if you're really not seeing you're doing a division there 23:47:56 hmm 23:48:07 if x*x = x, then x has a right inverse, huh? 23:48:17 that would be x*x = 1 23:49:59 oklopol: I may well be wrong. 23:50:05 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 But I don't see how I'm doing division. 23:50:32 that's because you just have a gap in logic, you take what you have, and you say "therefore b=e". 23:50:51 Well, you agree that eb = bb -> e = b? 23:51:08 of course not, i just showed you a counterexample 23:51:21 Then what was your "all i can say" statement about? 23:51:52 that i don't know what field axioms you're relying on. because you aren't relying on anything. 23:52:20 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 yeah, *if we had inverses*, then that'd trivially be true 23:52:49 so given that we don't, why is it true? 23:54:13 Would you agree it would be true if we knew b had an inverse (regardless of any other element having one)? 23:54:20 yeah 23:54:36 we could then multiply by that inverse. 23:56:08 Well, I wish I could show it had an inverse, then. 23:56:37 yeah good luck showing there are no rings that aren't fields. 23:57:11 I'm not saying EVERY element in the ring has to have an inverse. 23:57:11 (Z_4) 23:57:28 That's where your angle is confusing me. 23:57:34 well right, the idempotent element does 23:58:14 wait 23:58:22 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 What claim of mine are you trying to refute, anyway? 23:58:38 that you can't have idempotent elements 23:58:41 Is it the thing about Potro on my LoUIE page? 23:58:46 oh wait 23:58:55 i'm trying to refure a*b = a isn't possible 23:59:23 but if a*a = a is possible (and it is), then a*b = a is possible, so doesn't matter 23:59:47 yeah potro 23:59:51 night → 23:59:56 night 2010-02-18: 00:00:33 idempotency is a special case of absorption 00:00:54 "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 heyo 00:01:03 -!- Gracenotes has joined. 00:01:30 If R is a ring, it's not necessarily true that a + a = a for all a in R. 00:01:39 yeah it can't be true 00:01:50 because + forms an abelian group 00:01:51 Which is what I thought that statement said. 00:02:05 Rings are not one of those structures. That has a + a = a for all a. 00:02:07 i thought you meant absorption in multiplication 00:02:29 Idempotent semirings don't have that. 00:02:47 "In algebraic terms, the first program absorbs the second during sequential composition." <<< sequential composition = multiplication 00:03:09 so you are saying rings can't have ab = a 00:03:21 I may be misusing the term "absorb" there. 00:03:35 did you mean a + b = a? 00:03:50 then that makes no sense in the context, because sequential composition is not addition 00:03:54 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 okay, so you were talking about multiplication 00:04:26 and you can have ab = a in a ring. 00:04:40 so what you're saying on the page does not make sense. 00:04:48 OK, so I'll probably reword it. 00:05:47 Can you have ab = a in an infinite ring? 00:06:36 take an idempotent matrix 00:07:44 also it should be simple to construct an example with a!=b, for instance with matrices 00:08:00 i assume you know matrices form a ring, if you don't, they do 00:09:25 heyo augur 00:09:27 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 oklopol hey 00:09:49 wanna hear something funky cool about english grammar that noone has a great explanation for? 00:10:20 cpressey: there's one slight problem tho, the addition must form an abelian group, how were you planning to invert parallelization ;) 00:10:32 parallel is rather naturally abelian, i guess 00:10:38 augur: yes! 00:10:51 consider these two sentences 00:10:53 i'll try to explain it without a second of thought 00:10:55 or not 00:11:16 "Which article did mary file ___?" 00:11:17 and 00:11:26 "Which article did Mary read the book before filing ___?" 00:11:42 where the ___ denotes a gap/missing word associated with "which article" 00:11:48 the first is good, the second is horrible 00:12:04 augur: Can you give an example for ____ in the first case? 00:12:15 cpressey: what do you mean? 00:12:45 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 the ___ just denotes the space that "article" would normally be found it were this NOT a question 00:12:47 e.g. 00:13:03 "Mary read the book before filing the article" 00:13:55 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 or really, you can see it as (necessarily) empty position that you understand to be associated with "which article" 00:15:39 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 the second is "Before filing which article did Mary read the book" with which article in the beginning? 00:16:11 cpressey: thats irrelevant to the point 00:16:14 maybe i'll read what's been said 00:16:24 because the non-question sentence "Mary read the book before filing the article" is fine 00:16:31 Completely lost today, I guess I am :) 00:16:33 its not about the verb, its about the gap 00:16:49 augur: See, I never bought that question-formation works like that. 00:16:59 whether you buy HOW it works is irrelevant 00:17:08 characterize it in a dependency grammar sense for all i care 00:17:33 the point is that theres this dependency between "which article" and "filing" in the second sentence which is BAD 00:17:43 but between "which article" and "file" in the first sentence which is FINE 00:17:46 augur: the sentence looked horrible to me at first, but now i'm kinda getting used to it :P 00:17:58 oklopol: thats ok, thats irrelevant to the point too ;) 00:18:00 so! 00:18:03 moving on to the interesting fact 00:18:11 lets mash these two sentences together 00:18:19 "which article did Mary file ___ before reading ___?" 00:18:22 completely fine. 00:18:44 what did mary file! 00:18:51 yeah 00:18:53 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 interesting 00:19:35 I don't believe there was ever a gap there. But I'm sure you'll say that's irrelevant :) 00:19:36 somehow the adverbial clause gap becomes _acceptable_ when theres also a main clause gap 00:19:47 cpressey: are you fucking listening? 00:19:54 -!- jcp has quit (Remote host closed the connection). 00:19:56 the term gap is a purely descriptive tool 00:20:10 Did I say it wasn't? 00:20:12 whether there was a gap there is irrelevant. describe it, theorize about it, HOWEVER you want 00:20:17 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 i mean you can't actually put anything there 00:20:47 and by the article i mean "the article" 00:20:48 oklopol: in chomskyan linguistics, the gaps actually _are_ variables, sort of. ;) 00:21:10 well you know what i meant :) 00:21:33 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 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 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 call it "an atypical location of Direct Object" or a "question position of Direct Object" 00:23:15 i dont care. 00:23:51 now that i've given cpressey the smackdown he so rightly deserved 00:23:57 i was just checking that he had an epiphany after asking "cpressey: augur: Can you provide a word associated ..." 00:24:04 oklopol: noone reeeaaally knows how to characterize those sentences 00:24:49 cool. 00:25:05 -!- Gracenotes has quit (Ping timeout: 240 seconds). 00:25:08 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 "i'd be more interested in this linguistics stuff if i knew anything about linguistics" 00:25:57 :p 00:26:24 i'd be interested in this interesting stuff if i knew anything about interest 00:26:59 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 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 're analyzing questions? 00:27:10 sure 00:27:18 cpressey: no, because it doesnt matter 00:27:21 although you might want to /ignore augur 00:27:22 ;) 00:27:39 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 Right, and no alternative explanation would help shed any light on it. 00:28:49 it was the first thing i tried. 00:29:13 whether or not an alternative explanation would help is also irrelevant, because you're bitching about the first thing i tried 00:29:29 which obviously WORKED because you know what the point of it was 00:29:43 You tried to analyze "file before reading" as an atomic verb? 00:29:48 that you dont like describe it in that fashion is IRRELEVANT to the communicative intent of that phrasing. 00:29:53 what 00:30:23 So that wasn't the first thing you tried? 00:30:36 explain what you're saying because now _you've_ lost _me_ 00:30:53 Shame, I gotta go home. 00:30:58 See y'all later. 00:31:00 -!- cpressey has left (?). 00:31:11 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 *say you can't have anything but one verb 00:31:38 its obviously not a single whole unanalyzed verb 00:31:38 see ya 00:32:10 "Which article did Mary file before throwing into the garbage out back?" 00:32:26 :P 00:32:38 "file-before-throwing-into-the-garbage-out-back" is now one giant verb! 00:34:38 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 not sure that makes much sense, that's how i just feel like i'm reading it 00:35:02 *just how it 00:35:03 * 00:35:05 aiuoerh 00:35:07 *i 00:35:32 right, it does need a object 00:35:53 but you dont need a gap in the second part, right 00:36:16 "which article did mary file after reading this book?" 00:36:26 and it cant simply be a fork to both lambdas 00:37:16 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 DO-of-main-verb gaps 00:37:22 which are fine 00:37:33 and DO-of-adjunct-clause-verb gaps which are bad 00:37:49 gtg, ill be back in a bit 00:38:15 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 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 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 ok hello 01:06:04 sorry what was your rule, oklopol? 01:08:14 augur, 01:08:14 00:42 -!- augur [~augur@129-2-175-79.wireless.umd.edu] has quit [Ping timeout: 272 seconds] 01:09:56 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 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 (like before reading the book) 01:14:30 but V can also be a fork. i have no idea what it would be in general. 01:14:41 but some sorta lambda 01:48:17 oklopol: what do you mean a first subject?? 01:48:32 the word being gapped here, which is linked to the WH phrase, isnt a subject, its an object 01:48:41 so please explain in more detail 02:00:56 sorry, i mean "object other than the one being whiched", not "subject" 02:00:57 but 02:02:18 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 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 would you consider "the article mary read the book before filing" okay? 02:03:46 was just wondering if the "which" is necessary 02:04:27 no thats horrible too. 02:04:35 its pretty much ANY gapping of that sort 02:04:52 yeah 02:04:56 using a WH phrase was just a convenient way to demonstrate it. 02:05:53 see the problem is that the GOOD version has TWO gaps 02:06:15 "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 augur: yeah and i explained it with a fork 02:06:30 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 secondly, that depends on a specifically linear model, but your fork doesnt, so you have to make them work together 02:06:59 i don't think it's strange. the verb can just consist of multiple verbs 02:07:06 and thirdly, its not just english that allows it, right 02:07:17 other languages have parasitic gaps too, but in the OPPOSITE ORDER 02:07:25 so in japanese, for instance, i believe the gap structure is like this: 02:07:52 [___ V before] S ___ V 02:08:02 "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 the way you explained why the bad version is bad depends on the linear order of the words 02:08:36 it doesnt have anything to do with the structure of the sentence 02:08:52 and crucially, gapping seems to be structurally, not linearly, defined 02:09:13 i see. can you give me an example where my idea doesn't work though? 02:09:27 i mean that would be much more enlightening 02:11:15 for english, no, sorry. but im not ENTIRELY clear on your description of the rule, to begin with 02:11:27 i mean, ok, i can probably give you an example without a parasitic gap 02:11:37 e.g. a sentence with a gap that linearly crosses another direct object 02:11:44 and those are trivially constructable 02:13:51 would that help you understand what i mean? 02:14:00 maybe 02:14:12 i think it would be a counterexample to my rule 02:14:54 well you could always say that your rule only applies to PGs ;P 02:15:04 so for example 02:15:07 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 who did [the man that john saw] speak to ___? 02:15:44 hmm 02:15:53 or well 02:16:01 that doesnt cross an in-place object 02:16:01 so 02:16:09 who did [the man that saw john] speak to ___? 02:16:16 where "john" in this one is the object 02:16:27 what are you talking about language? 02:16:28 as far as anyone can tell, these constructions have nothing to do with linear order 02:16:40 infact, no language seems to care about linear order, as far as anyone knows 02:16:42 lament: yes 02:19:10 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 ok but how do you characterize the domain of applicability then 02:20:26 and then how do you get the fact that in other languages the order doesnt matter to PGs 02:21:38 can you define PG = parasitic gap, is it just this general concept of gap? 02:21:59 a parasitic gap is the second gap in "which article did mary file ___ before reading ___" 02:22:11 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 i can't explain other languages, because i don't know them 02:22:51 oh wait i know finnish 02:22:53 let's see 02:23:01 you dont need to know another language that does this :P 02:23:07 you just have to realize that its not linear order 02:24:04 and its not about objects, either, you can cross subjects too 02:24:29 "augur: ok but how do you characterize the domain of applicability then" <<< always applies 02:24:48 no no i mean what is the domain that you recursively apply this to 02:25:05 what is the object that is recursively analyzed 02:25:16 well i dunno... i just think "the man that saw john" is a normal subject 02:25:16 its not simply all substrings of the sentence, obviously 02:25:24 ofcourse its a normal subject 02:26:39 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 right, but what im asking is how do you know what to look at when you're asking what is ok 02:27:53 you're segmenting the sentence into two domains to investigate 02:27:58 who did X speak to 02:27:59 and 02:28:02 the man that saw john 02:28:04 not, say 02:28:07 who did the man that 02:28:07 and 02:28:11 saw john speak to 02:28:33 "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 you cant just say if theres ANY segmentation that makes it work 02:29:36 why not, is it obviously false? 02:30:00 "which file did mary read the book before filing ___" 02:30:04 segment this into two parts 02:30:18 which file did Mary VP before filing ___ 02:30:26 and VP = read the book 02:30:32 thus in VP theres no violation 02:30:37 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 hmm 02:30:40 and in the other one theres no violation 02:31:23 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 no there isnt 02:31:36 sure there is, VP has an object 02:31:43 yes but so does X in yours! 02:31:56 hmm, yes 02:32:02 let me think, maybe you're right 02:33:55 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 yeah but what does that have to do with it 02:34:17 this is why i said whats the domain of these analyses 02:34:41 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 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 what do you mean the only allowed pattern 02:35:53 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 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 thats not true tho 02:37:22 which file did mary ask john about 02:37:46 which person did mary talk to john about 02:38:03 who did mary give the pot to 02:38:06 etc etc 02:38:28 not questioning the subject does not mean questioning the object 02:38:43 what building did mary read the book in 02:40:00 the first ones i think roughly follow my idea, the last one doesn't 02:40:49 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 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 probably i haven't solved the problem if linguists haven't. 02:42:18 who did mary tell john about 02:42:29 tell obviously can take a person as a direct object 02:42:31 well again 02:42:32 and who can be that object 02:42:33 tell takes two args 02:42:44 "so tell john about" is just a one-arg verb 02:42:55 what 02:42:55 so i still don't think that's a counterexample 02:42:59 no its not 02:43:05 it IS a counter example 02:43:12 your rule does not rule it out 02:43:15 "to tell john about X" is a verb with one argument 02:43:25 "to tell john about X" is not a verb 02:43:30 oh. 02:43:38 its a whole fucking phrase :P 02:43:48 its also an infinitival subjectless sentence 02:44:02 and again, Japanese. 02:44:15 or Irish. 02:44:55 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 What's this about Japanese? 02:45:55 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 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 augur: Yeah, that is the gap structure of Japanese. 02:47:56 oklopol: ok, let me put it to you this way 02:48:18 "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 give me a full _algorithm_ that is not ambiguous or vague. 02:48:56 oklopol: fine, but then the VP in the bad sentence is ALSO a verb with one argument 02:49:15 also, "give the pot to" is a two argument verb 02:49:20 the object of giveing-pot-to 02:49:22 and the subject 02:49:24 oh wait right 02:49:33 i didn't notice, because it doesn't matter 02:49:38 right 02:49:44 you just shift the argument number up one 02:49:49 but umm 02:50:14 you are right about the VP thing, my rule is pretty vague 02:50:19 the point is, the linear ordering doesnt matter 02:50:29 because other languages with different linear ordering have the SAME constraint 02:51:36 dont try to solve it oklopol, its not an easy problem to solve :p 02:51:57 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 yeah true 02:52:25 well its not just "does something" right 02:53:06 its "does something" where that phrase, whatever it is, doesnt have a gapped item 02:53:12 its not even direct object, right 02:53:21 "which book did mary tell john about ___ before reading ___" 02:53:42 "which book did mary see ___ burn to pieces after reading ___" 02:53:45 etc 02:53:55 tho interestingly, not the other way around 02:54:22 "which book did mary read ___ before ___ burnt/burning" 02:54:45 wait that's not okay? 02:55:53 not on the reading where the book just spontaneously burnt to pieces 02:55:54 "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 if it was mary doing the burning then sure its fine 02:56:15 "which book did mary read ___ before ___ fell/falling shut" 02:56:28 oh right 02:57:03 im not saying it doesnt have to do with the VP being a one-arg/two-arg thing right 02:57:10 im saying it doesnt have to do with the LINEAR ORDER 02:58:24 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 i mean it has nothing to do with the dependency crossing an object 02:59:46 lets try to construct a different example 03:00:35 "mary read the book before filing yesterday the article" is bad where yesterday modifies "read" 03:00:50 "mary read before filing yesterday the article" is fine where yesterday modifies "read" 03:00:52 -!- coppro has joined. 03:01:10 so in this case "the article" is to the right of its gap 03:01:28 so the dependency doesnt cross another direct object 03:01:34 and yet its still unacceptable 03:02:23 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 neither is the original! 03:03:01 well yeah it was "which" 03:03:02 "which article did mary read the book before filing" is not of the form "the X that ..." either 03:03:02 same thing 03:03:14 "the article mary read the book before filing" 03:03:14 and we already established that it has nothing to do with the "which" 03:03:30 oklopol 03:03:42 i just showed you that the CONSTRAINT STILL APPLIES 03:03:48 and yet your description of the required sentence DOESNT 03:04:15 you have failed to explain the phenomena because you have no explanation for the RIGHTWARD filler-gap badness 03:04:27 my description was only about cases where you have some sort of "the X that ..." or "which X ..." 03:04:34 yes and thats the problem 03:04:38 i agree 03:04:45 your description ONLY explains the leftward filler-gap case 03:04:49 but not the rightward one 03:05:14 and more generally, its OBVIOUSLY got nothing to do with the direction --- the violations are EXACTLY the same regardless of direction 03:05:24 i don't even think "mary read before filing yesterday the article" is a good sentence. 03:05:34 well, you might need a heavier NP 03:05:50 "mary read before filing yesterday every TPS report that had been left on her desk in the last week" 03:06:11 oh right, i see 03:06:15 silly me 03:06:18 Yeah, that parses just fine. 03:06:45 It just seems very unusual with that syntax structure and having only a single noun as the object of "read". 03:06:55 5yeah 03:07:14 Make it longer, and it's magically idiomatic. 03:07:23 ... Not the correct word in this context. 03:07:23 :P 03:07:31 rightward extraposition is almost always done for weightedness of the phrase being moved 03:07:35 Magically normal-seeming. 03:07:37 There we go. 03:09:32 you also need the right intonation 03:09:35 thats another thing, right 03:09:46 sometimes without the correct intonation a sentence will sound horrible 03:09:51 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 Oh, certainly. 03:10:08 oklopol, dont worry, noone else does either :) 03:10:16 pikhq: presumably its because intonation indicates structure 03:10:33 so without the right intonation, you're just not conveying the right structure, so it IS bad 03:10:43 augur: Yeah. 03:10:57 -!- Sgeo_ has changed nick to Sgeo. 03:11:04 i usually draw parentheses in the air with my hands with complicated sentences 03:11:05 thats the problem with language, we cant enforce a structure, we have to use this linear mechanism 03:11:10 but the question is ALL about structure 03:11:25 oklopol: sure, but that also sort of doesnt work with the average person 03:11:41 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 Even though there's probably not a language *without* intonation being significant in some way. 03:12:18 (if there is a language without significant intonation, its name is Lojban.) 03:12:20 pikhq: no no intonation isnt what people think is limited to many asian languages 03:12:26 rather, TONE is 03:12:29 well not just but 03:12:32 augur: Right. 03:12:33 english doesnt have TONE 03:12:37 but it has intonation 03:12:41 the two are not the same 03:12:43 augur: Intonation is merely ignored. 03:12:51 indeed 03:13:16 augur: Sorry. Minor bit of confusion there. 03:13:20 I really should know better. 03:13:30 it isn't tone that questions have in the end? 03:13:48 oklopol: well, intonation and tone are closely related 03:14:06 in that both are primary tone, right 03:14:15 so questions have high intonation at the end of them, usually 03:14:33 but tone is a property of words or syllables 03:14:44 true 03:15:08 i mean i don't know what primary tone is, but otherwise 03:15:15 er 03:15:35 also the tone at the end of questions is mostly ignored as well 03:15:36 the tone underlying the harmonics 03:17:20 okay sleep and/or homework 03:17:21 -> 03:17:38 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 `swedish This is an example sentence right here. 08:13:50 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 hm 10:22:26 -!- tombom has joined. 10:22:27 what about a piet/bf polygot? I do think it would actually be possible, since bf ignores anything but +-<>[],. 10:22:57 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 s/such requires/such doesn't require/ 10:24:11 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 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 fizzie, hm, what format is usually used for piet? 10:59:31 png? bmp? ppm? 10:59:38 I don't really know, png would be my guess. 10:59:42 right 10:59:53 fizzie, a piet quine sounds more interesting 11:01:32 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 hehe 11:02:03 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 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 like a dancing dude 13:27:36 -!- oerjan has joined. 13:32:11 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 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 this is for esoteric programming languages, nothing to do with swamis of any kind :D 14:02:48 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 hm actually according to http://irc.netsplit.de/chat/esoteric.php, the #esoteric at DalNet looks promising 14:04:42 *DALnet 14:05:37 well, apart from having just 1 user, that is 14:05:53 -!- lament has joined. 14:06:39 alas, http://irc.netsplit.de/channels/details.php?room=%23esoteric&net=DALnet shows that being the mac 14:06:42 max 14:08:25 the rusnet one looks more promising actually (8 users), but you'd have to know russian 14:10:38 (topic transliterates as "ezoterika, mistika, magiya") 14:30:47 -!- paramananda has left (?). 14:40:46 -!- FireFly has joined. 14:56:54 Who said anything about swamis? 14:57:37 `google paramananda 14:57:43 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 Ah 14:58:36 the -ananda is usually a dead giveaway :D 14:58:51 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 hi fungot 15:37:51 deschutron: i don't know anyone who speaks latin would like to join in r.a.w...? 15:38:10 reductio ad whateverum 15:39:18 haha 15:39:36 sure, fungot, count me in 15:39:36 deschutron: deleted by fnord white user fnord 19:56, 20 october 2006 ( utc 15:40:02 fungot: i was deleted?! 15:40:03 deschutron: ' ' ' 15:40:21 fungot: fungot 15:40:22 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 ^style 15:40:58 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp* youtube 15:41:52 so fungot can be set to a style, can it? 15:42:17 ^style lovecraft 15:42:18 Selected style: lovecraft (H. P. Lovecraft's writings) 15:42:36 fungot: hey there, how's it hangin'? 15:42:58 fungot: fungot 15:43:10 ^style speeches 15:43:11 Selected style: speeches (misc. speeches from Project Gutenberg) 15:43:39 fungot: what is the only thing to fear? 15:53:14 fungot: stop ignoring deschutron please 15:53:16 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 (it has a five response consecutive limit per person) 15:54:02 i see 15:54:38 fungot: what is the only thing to fear? 15:54:40 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 fnords to live by 15:55:34 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 lol "the great french soldier, de fnord fnord fnord atque fnord fnord" 15:55:54 what the heck? 15:56:51 he must have noticed me quoting him 15:57:06 adam.com.au is my isp 15:57:52 well there's a bug in that... 15:58:02 also, i thought this channel censored colors 15:58:31 -!- scarf has joined. 15:59:31 ^bf +[.+] 15:59:32 .. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ... 16:00:11 heh, my client interpreted that as a CTCP 16:00:16 mine too 16:00:16 with colour codes in! 16:00:40 oh i got no color (other than inverse video). hm... 16:00:43 ^bf ++[.+] 16:00:44 .. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ... 16:00:51 whoa 16:01:32 in fact that was what i wanted to test. why did the one above (just befor scarf joined) have colors? 16:01:40 i got no colour on that 16:02:06 i got no colour on the one before scarf joined 16:02:06 huh, i did. blue on black. 16:02:35 maybe that's just bold + inverted in my terminal 16:02:37 i'm using pidgin 16:02:38 or something 16:02:40 irssi 16:04:10 oh well, it was a strange bug - fungot giving a malformed response to deschutron without deschutron saying anything (afaict) 16:04:12 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 fnords to live by 16:04:47 -!- MissPiggy has joined. 16:05:19 perhaps it was that the long response it was already giving got broken up into two lines somehow... 16:05:27 "the great french soldier, de fnord fnord fnord atque fnord fnord" 16:05:55 deschutron: i saw that after fungot's weird response, last time 16:05:56 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 oh 16:06:50 i sent it before i received his weird response 16:09:04 -!- kar8nga has joined. 16:10:04 by the way oerjan, i like your language CHIQRSX9+ 16:10:11 I like that last fungot quote, btw 16:10:12 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 thanks 16:11:41 i came across it recently. 16:12:11 oh, food -> 16:13:04 food? 16:14:21 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 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 deschutron: i'd been forgetting to eat 16:17:42 fizzie: i was wondering if it was related to having very long replies that get split somehow? 16:18:02 right. 16:18:21 i know the feeling 16:18:44 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 well does the formula for the stopping probability ever reach 1? 16:20:01 otherwise it's at least possible to grow without limit 16:21:00 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 Might also be that there's a sensible limit of tokens, but the token → text conversion overwrites something. 16:21:24 ^style 16:21:25 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube 16:22:19 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 sesquipedalian loquaciousness, you mean 16:23:14 Yes, that. 16:31:01 -!- deschutron has left (?). 16:42:48 oklopol: I reworded http://catseye.tc/cpressey/louie.html#Potro -- hopefully it's clearer now. 16:48:15 -!- KingOfKarlsruhe has joined. 16:49:02 tbh i'm still not completely happy with it :P 16:49:21 just thinking about "Unfortunately, we would need ..." 16:49:23 i mean 16:49:30 couldn't you just append them, and it halts it if halts 16:49:56 you don't actually have to know, because you can't invert programs anyway 16:49:59 Maybe. 16:50:18 True, I think I am still thinking along those lines. 16:51:04 Although, I suspect it's something to do with distributivity. I'll try to work it out. 17:01:27 try using it in a sentence 17:04:20 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 Say program a always halts but program b never halts. 17:07:24 In a ring, (a + b) * c = (a * c) + (b * c) 17:07:37 But b never halts, so b * c = b 17:07:45 But that still seems fine. 17:07:59 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 Hm. Damn, this might actually work! 17:14:38 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 No, wait. Maybe that's OK. 17:15:24 Nothing says a * (b + c) = (a + b) * c :) 17:17:07 OK, so. I admit, it looks like * in a ring could be pretty well suited to being sequential execution. 17:19:03 I would guess the bigger problems, now, are with making + commutative and invertible and non-absorptive. 17:21:08 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 No, wait again. 17:23:37 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 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 yes, those are rings of characteristic 2 iirc 17:34:40 Nice. Then I might have an idea. 17:36:04 (if you have a 1, and 1+1 = 0, then it follows automatically for everything else) 17:37:32 you and your "iirc" :P 17:38:43 http://en.wikipedia.org/wiki/Characteristic_(algebra) 17:39:50 oklogon: well i did bump into it the other day during one of our discussions 17:40:18 i'm not sure if i knew the term applied to non-fields before 17:41:31 hmm well true i've never heard it with anything but fields 17:42:57 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 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 Although, that does suggest the possibility of just making e = bottom :) 17:57:18 -!- coppro has joined. 17:59:27 *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 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 multithread with one process checking the other to see if it ever loops 18:09:28 cpressey: also, e is intuitively additive 0, while bottom is intuitively multiplicative 0 18:10:08 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 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 nope 18:35:00 a + a = a <==> a = 0 18:35:08 Ah, because then what is a' in a + a' = 0. Right. 18:35:10 by adding the additive inverse 18:35:25 (to get from left to right) 18:35:43 -!- jcp has joined. 18:35:49 Well, that 18:35:56 That's why it's hard to get a ring. 18:36:58 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 I don't think so. 18:37:55 a + a = a <==> a = 0, so b = c. 18:38:13 yes, b = c = 0 18:38:56 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 So there can only be one "absorbative" element. 18:39:33 (There is probably a better word for "absorbative") 18:39:58 projections ? 18:41:24 Maybe projection... not sure. 18:41:51 -!- Asztal has joined. 18:42:16 Anyway, that means there can only be one program that never halts. Or, all programs that never halt are considered equivalent. 18:42:17 i don't see why "x where forall y, xy = x" wouldn't be possible, 18:42:48 cpressey: "zero" 18:43:08 oh i completely ignored the x + x = x 18:45:22 oerjan: Yes. 18:45:25 cpressey: also, if two programs x and y never halt, then x = xy = y 18:46:01 or wait 18:46:07 is there a name for an algebraic system with an infinity? 18:46:46 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 oklogon: i've got this on my watchlist: http://en.wikipedia.org/wiki/Wheel_theory 18:46:58 non-halting could be infinity 18:48:02 oklogon: If addition is commutative, you'd need negative infinity too. 18:48:56 yes, the part where i ask for the name of such a structure was my main point 18:49:42 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 Kleene star is a kind of infinity, maybe. 18:54:09 oerjan: i'll have to check that out in-depth, would the extension of reals be the extended reals? 18:54:33 wait, kleene star is a value? 18:54:58 No. I should say, it's a kind of infinity-generating-operator-thing. 18:55:10 :) 18:56:14 -!- augur has joined. 18:56:55 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 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 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 what's a watchlist 18:58:27 oklogon, on irc? 18:58:35 on wp 18:58:38 * AnMaster has not read context 18:58:54 cpressey: you could think of 0 more as "never gives a result", in which case looping forever may not be mandatory 18:58:58 oklogon, oh that, a way to "subscribe" to edits to certain pages 18:58:59 I believe it makes Wikipedia message you somehow whenever the page changes. 18:59:21 (that description is basically a simplification, but you get the idea) 18:59:36 i think that may be an option, although i just visit my watchlist page... 18:59:38 oerjan: OK, then a' is the "result killer" of a (and only a) 18:59:47 cpressey, yes it will also email you (there is a setting iirc for that) 18:59:59 (grammar fail) 19:00:26 oklogon, hm have you used your current nick before? 19:00:30 I don't remember seeing it 19:01:04 it's new 19:01:06 -!- oklogon has changed nick to oklopol. 19:01:09 cpressey: what you might want then, is for results to form a group 19:01:10 oklopol, it sounds like the name of a noble gas 19:01:21 and a' gives the inverse result of a 19:01:25 I guess I'm thinking of argon and such 19:02:20 oerjan: yes, that sounds like a good way to proceed. 19:03:09 Hm. Maybe food will help me think. bbl. 19:03:20 clearly an oklogon is a polygon with strange non-euclidean angles 19:03:24 "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon. 19:03:32 Gaah, oerjan strikes faster again. 19:04:14 And that was supposed to be irresponsible, not some strange "irresponsive". A compound fracture, I mean, failure. 19:06:11 a fractal compound 19:06:32 farctal 19:11:28 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 I'm just reliving Cabra :) 19:11:50 Away for lunch for real this time. 19:12:21 the result only becomes known asymptotically 19:13:18 i suppose this could be a problem if it never stabilizes 19:28:46 -!- kar8nga has joined. 19:40:57 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 mhm 19:42:22 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 Then, a + b -> run both and add their tapes. a * b -> run a then b. 19:43:13 err yes, obviously the -gon is from polygon 19:43:19 you were both slow 19:43:35 i was also oktagon at some point 19:43:40 * oerjan quickly swats oklopol -----### 19:43:42 possibly not here tho 19:44:56 cpressey: that won't distribute (a + b) * c properly unless c is linear 19:45:04 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 oerjan: Hm, I think you're right. 19:46:17 addition? how does that work? 19:46:37 or do you mean positive reals 19:47:23 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 addition of the numbers with the same sign? so it's a partial algebra 19:48:23 usually in an algebraic structure every function should be defined for all inputs 19:48:27 s/parity/sign/. don't know what i'm saying :) 19:48:38 yes that was clear 19:48:47 Well, I was inspired by division by zero being undefined in the reals. 19:48:54 (parity and sign are the same group) 19:49:55 |a| + |b| and -|a| + -|b| are defined, and you could consider them two new operations. 19:49:56 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 but then you already have subtraction because -|a| + -|b| can be negative 19:50:29 unless it's partial 19:50:38 (some functions defined only for some inputs) 19:51:14 well anyway i need to go to sleep 19:52:38 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 'Night oklopol. 19:54:54 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 That might be hard to get around, even for only the programs that always halt. 19:56:10 hm right the problem is how to run c on the results 19:56:21 if it can do anything with them 19:59:04 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 "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 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 unless I completely misunderstood you 20:50:42 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 AnMaster: Yeah. It is defined, just not defined everywhere. Specifically a - a isn't defined. A bit like a / 0. 21:07:41 Well, I updated the Potro bit of my LoUIE page again, FWIW with the algebra fans asleep. :) 21:08:01 cpressey, indeed 21:10:00 I thought it was a nice "dual" of a field in some sense. 21:13:14 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 oerjan: i solved it. 22:32:56 -> 22:34:46 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 oklopol, oerjan wasn't connected when you said that 22:35:14 AnMaster: Well, as oklopol pointed out, x + y isn't defined when x = -1 * y 22:35:32 AnMaster, hey I think you are right 22:35:38 * AnMaster considers that 22:35:45 cpressey, wut? I must be too tired 22:36:00 x = -1 * y can't happen in R_+ \ {0} (aka R_+) 22:36:04 AnMaster: Addition is subtraction when you have opposite sign values :) 22:36:10 MissPiggy, well yeah 22:36:14 Oh sorry 22:36:21 Didn't see the + in R_+ 22:36:24 R_+ meaning all positive reals (although some people use positive to include zero, when it's convenient..) 22:36:27 cpressey, right 22:36:41 MissPiggy, well I also added "\ {0}" after that 22:36:47 which should clearly exclude zero 22:37:08 AnMaster: Yes, your statement about R_+\{0} is true. 22:37:08 :( 22:37:17 why are you saying that I can tell you added \ {0} by reading 22:37:27 MissPiggy, what? 22:37:39 I can't even parse the grammar of that, nor the meaning 22:38:10 maybe some comma is missing? 22:39:20 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 apart from the empty set that is ;P 22:40:52 alternative: define what division by zero means 22:41:13 cpressey, I suggest we "leave it to the reader/ask the user" ;P 22:42:42 AnMaster: Isn't R+_\{0} such a set? 22:43:19 cpressey, as I said, substraction is not 22:43:29 oh 22:43:31 Oh, did you mean to include subtraction? 22:43:32 I forgot that from the list 22:43:33 -_- 22:43:34 Ah. 22:43:35 cpressey, yes 22:44:38 it seems to me that subtraction and division are mutually exclusive when it comes to "defined for all values" 22:44:51 I agree. 22:44:53 I can't prove this though 22:45:03 cpressey, well the exception would be for the empty set of course 22:45:24 but I don't think that even makes sense 22:45:49 Every operation on elements of the empty set is well-defined! :) 22:46:10 cpressey, you could sometimes define division by zero as the limit when going towards zero I guess 22:46:24 doesn't work for all possible functions though 22:46:34 -!- MigoMipo has quit (Remote host closed the connection). 22:46:34 (such as constant functions) 22:47:08 Yeah, I'm not so happy with that. 22:47:11 or diverging (sp?) functions 22:48:51 -!- Sgeo has quit (Quit: Leaving). 22:49:08 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 Same for lim_{x→0}((sin(1/x))') of course 22:50:43 -!- Asztal has quit (Ping timeout: 265 seconds). 22:52:03 cpressey, why not add a NaN? Like we have i 22:52:12 as in, make NaN a real number 22:52:16 XD 22:52:28 NaN + NaN = NaN 22:52:39 cpressey, same goes for aleph_0 though 22:52:40 Therefore NaN = 0 22:52:48 cpressey, err no 22:52:56 (in context of ring theory stuff I was talking about earlier only :) 22:53:07 by that logic aleph_0 + aleph_0 = aleph_0 gives aleph_0 = 0 22:53:14 which is ridiculous 22:54:52 Earlier we were talking about how in a ring, if a + a = a, a must be 0. 22:56:32 Which might explain why aleph_0 doesn't often appear in the ring of reals. 22:57:01 cpressey, true 22:57:23 cpressey, neither does i. Since it by definition isn't a real 22:57:32 cpressey, but then the complex numbers are not a ring? 22:57:44 oh wait 22:57:46 it may be 22:57:56 We could define 1/0 as 1/0, irreducible. Basically, work on pairs of integers. 22:58:07 Probably falls apart somewhere. 22:58:07 true 22:58:32 I don't do complex numbers. :) 22:58:47 why not? 22:58:55 cpressey, you should do quaternions even 22:59:01 I dunno, they just never held any interest for me 22:59:42 cpressey, what about calculations with alternating current? They are rather useful there 23:00:11 or maybe you don't do that kind of stuff 23:02:45 Heh 23:03:13 Yeah, complex numbers might come in handy for computational induction. 23:03:22 hmm? 23:03:35 ahh 23:03:44 induction like electromagnetic currents 23:04:19 "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. 23:04:53 Which is an extremely silly idea. But fun. 23:06:18 "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 Ha! Ugh. 23:07:03 hm is that possible btw? 23:07:09 I can't see how it would be 23:07:22 Well, I've heard of "transfinite induction" but I don't know if it's the same thing. 23:07:30 I see 23:07:33 * cpressey defers to the real mathematicians present 23:07:49 cpressey, oerjan is *not* present 23:08:31 "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 Well then I defer to wikipedia. 23:08:32 http://en.wikipedia.org/wiki/Transfinite_induction 23:08:38 like, alternating ips 23:08:40 or something 23:09:13 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 cpressey, so throw all the ideas into one esolang 23:10:45 I tried that. It's not pretty. 23:10:53 Also, it never gets finished. 23:16:12 -!- tombom has quit (Quit: Leaving). 23:21:58 from * import * 23:23:42 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:23:58 cpressey, does that work in python? 23:24:14 it would be rather interesting if it did 23:27:57 Alas, you can't have wildcards in the module-where-to-import-from. 23:28:07 -!- FireFly has quit (Quit: Leaving). 23:30:39 No, but I was (briefly) considering supporting it in my own language... 23:31:56 -!- coppro has joined. 23:37:03 cpressey, I can think of reasons not to 23:38:53 Yeah. 23:40:28 But, the awesomeness. 23:40:33 "Just import everything." 23:43:07 What about #include <*> as a GCC extension? Read all headers in the system include directories. 23:44:06 :P 23:44:13 the go slow button 23:44:50 fizzie: YES 23:44:54 #include "**" too 23:45:00 Include every header file in . 23:45:01 Recursively 23:47:24 fis@eris:~$ ls /usr/include/*.h | sed -e 's%/usr/include/%#include <%' -e 's/$/>/' > test.c 23:47:24 fis@eris:~$ gcc -c -o test.o test.c 2>&1 | grep 'error:' | wc -l 23:47:24 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 Blahaha. 2010-02-19: 00:00:09 My binding is bound to a binding. 00:02:48 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 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 Still, closures everywhere. 00:27:57 Hey, just like the economy! 00:28:01 Later. 00:28:04 -!- cpressey has left (?). 00:28:11 -!- Azstal has quit (Client Quit). 00:42:11 -!- Pthing has joined. 00:43:39 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 oklopol, oerjan wasn't connected when you said that 05:19:27 however, i have esoteric log powers 05:20:22 "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 well _i_ was thinking lovecraft 05:20:44 (with my version) 05:24:32 -!- augur has quit (Ping timeout: 256 seconds). 05:27:34 "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 as mentioned, perfectly possible in theory. 05:29:31 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 hey oklopol 06:16:41 "AnMaster: oklopol, oerjan wasn't connected when you said that" <<< that's why i said it on-chan, not in pm 06:18:48 hey, how did you know i just came here 06:28:59 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 oklopol 08:26:39 a parasitic gap which has the reverse direction: Which candidate do even supporters of __ tend to dislike __? 08:27:07 where the parasitic gap is _inside the subject_ 08:28:19 nice topic btw, it's always up-to-date when you look at it 08:28:47 olsner: which what 08:28:58 not you, the topic 08:29:09 o.o; 08:29:22 i dont get it 08:29:22 D: 08:29:24 the /topic, that is 08:29:25 however! 08:29:31 olsner, yeah hehe 08:29:44 http://en.wikipedia.org/wiki/Indexed_grammar 08:29:49 * olsner doesn't know what a parasitic gap is 08:29:52 http://en.wikipedia.org/wiki/Head_grammar 08:29:57 http://en.wikipedia.org/wiki/Global_index_grammar 08:30:13 http://en.wikipedia.org/wiki/Literal_movement_grammar 08:30:18 http://en.wikipedia.org/wiki/Range_concatenation_grammars 08:30:20 http://example.org/I_can_also_spam_with_links 08:30:28 :P 08:30:48 olsner: http://en.wikipedia.org/wiki/Parasitic_gap 08:31:06 augur, is this programming or linguistics 08:31:14 which? 08:31:22 parasitic gap or whatever 08:31:31 all all those links you pasted 08:31:42 PGs are strictly linguistic phenomena (unless someone invents a PL with them!) 08:31:54 then I won't even bother looking 08:32:27 the *_grammar links are just pages for grammar formalisms that lie roughly in the range of the mildly context-sensitive grammars 08:39:22 "Which candidate do even supporters of __ tend to dislike __?" what's supposed to be able to go after 'dislike' here? 08:39:47 nothing. the __'s just denote the positions in which "the candidate" is understood. 08:39:57 e.g. "even supports of Bob Dole tend to dislike Bob Dole" 08:41:26 oh, I thought it was all about how you could plug in objects there that are *not* bound by the 'wh' 08:42:25 no 08:42:33 its all about the dependencies 08:42:47 the __'s denote the dependencies associated with the WH phrase 08:43:42 hmm, what depends on what though? aren't all just gaps bound by 'wh'? 08:45:43 no, not necessarily 08:46:23 consider the topicalized "MARY I like ___, but John I hate ___" 08:49:47 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 i think it's worthwhile to learn english grammar before you go after other grammars 08:50:27 cheater2: no, you dont fill in the gaps 08:50:28 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 the gaps are just there to denote the dependencies 08:50:35 well i just did 08:50:40 theyre not things that you fill in 08:50:40 and your sentence sucked balls 08:50:43 :o 08:51:02 you gave us an example yourself: you put bob dole in both places 08:51:20 no, i gave you a different sentence without gaps and without the WH element 08:51:40 so what does __ mean 08:52:10 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 e.g. "THIS book Mary read ___ before shelving ___, not that one" 08:53:28 so what makes either gap parasitic? 08:53:28 i think it's worthwhile to learn english grammar before you go after other grammars <-- my reaction too 08:53:44 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 augur, it looks like "fill in word(s) here" 08:54:01 olsner: the second gap is parasitic because without the first gap, the sentence is bad 08:54:09 to anyone that isn't a linguist 08:54:26 AnMaster: in many ways it IS, but not in the naive sense 08:54:30 augur: you are using circular definitions 08:54:41 augur: you made no sense :< 08:54:58 it stems from the history of how this sort of phenomenon was treated in chomsky's early work 08:54:58 augur, "naive" is wrong word here I think. Replace it with "normal" or "everyday" 08:55:31 whereby a sentence like "John saw Mary" is transformed by a rewrite operation into "who did John see" 08:55:51 ok so in fact __'s are parentheses 08:55:52 augur, you lost information in that transformation 08:55:55 big deal 08:56:10 so what's the question now 08:56:12 cheater2, ah right if you see it that way it makes sense 08:56:17 AnMaster: true. in reality it was "John saw someone" underlyingly 08:56:25 i shouldve said that instead. 08:56:27 augur, ? 08:56:36 "John saw someone" -> "Who did John see" 08:56:36 augur, you should have said *who* as well 08:56:44 that was the actual transformation 08:57:02 taking a declarative with an indefinite "someone", and turning it into the corresponding interrogative with "who" 08:57:34 infact, early theory I think considered "who" to be derived from rewriting the string "WH someone" 08:57:45 but whatever. 08:58:07 hmm, right, "this book mary read War and Peace before shelving ___" is weird 08:59:29 but if you make it "this book mary shelved ___ after reading ___" I think either gap can be replaced 08:59:58 well, the first cant be "filled" 09:00:03 its essentially what you just said was weird 09:00:15 "this book mary shelved War and Peace after reading ___" is horrible 09:00:30 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 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 augur: no straight man or gay top can understand the concept of not filling a gap with something. 11:51:15 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 Mind, the gap. 12:38:37 wait where was that 12:42:55 -!- Asztal has joined. 12:47:38 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 Based on where http://en.wikipedia.org/wiki/Mind_the_gap leads by default, the Underground connection is the "official" one. 12:53:51 well sure but wasn't it the name of a level in some flash game 12:55:56 Yes, that sounds also likely. 12:59:47 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 huh. 13:07:46 i'm fairly sure it's a game we've both played, #eso inducedly. 13:10:26 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 Mind the gap was a level in that star-fetching programmy game 13:12:49 Oh, that one. 13:12:52 Right. 13:12:59 Maybe the level name wasn't just mentioned here. 13:13:14 Robozzle, that's the name. 13:13:43 Number 513 13:18:24 -!- kar8nga has joined. 13:18:38 i was pretty sure it was robozzle 13:32:47 07:59 < fizzie> Wikipedia says it's "used" in the Flash-built game "VVVVVV". 13:32:57 The last time I checked it wasn't built in flash 13:33:14 That was also from Wikipedia. 13:33:15 Last time I checked it was 13:33:26 I know it runs on it 13:41:55 I'm pretty sure it was straight as3 with something like flex 13:51:33 "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 This is Dispatch 3. 13:58:22 alise, hi there 13:58:46 And I'd type but the keys are sticky; best fix that first. 13:58:57 mhm 13:59:22 -!- kar8nga has quit (Remote host closed the connection). 14:01:46 -!- FireyFly has changed nick to FireFly. 14:05:57 hi alise 14:09:58 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 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 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 And I do wish that XChat was better at wrapping lines. 14:11:03 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 Hi, guys. 14:11:26 :( 14:12:21 you need to get out 14:12:27 this is not right 14:12:32 Yeah. I'm on it. 14:12:58 I'd rather endure longer than I would have to with an alternative escape plan if it reduces risk, however. 14:13:17 yeah that is wise 14:13:53 -!- augur has quit (Ping timeout: 265 seconds). 14:14:27 -!- augur has joined. 14:18:03 But unless anyone has anything specific to ask or whatever, on to happier things. :) 14:18:28 alise this is so awful I hate this 14:18:29 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 MissPiggy: yeah but it's worse if you think about it :P 14:23:54 -!- Speedy2 has joined. 14:24:39 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 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 t achieve a thing. 14:26:26 -!- scarf has joined. 14:26:31 Oh, hi scarf. 14:26:34 You'll cheer me up. 14:26:39 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 hi 14:26:52 I have to leave to teach Java in about half an hour, but I'll be back an hour after that 14:27:35 hmm, my email server has taken to marking many legitimate messages with "SPAM:" or "?spam?" in the subject line 14:27:51 whereas actual spam is generally marked "[SPAM?] ?spam?" 14:28:02 Spam, spam, spam, spam! 14:28:15 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 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 I dunno, the logs are just text. It folds all the lines into one, but apart from that... 14:30:57 alise, folding the lines sounds horrible to begin with. 14:31:08 If it's a time and a <, it's a new line. 14:31:10 Anyway, it beats nothing. 14:31:42 hah 14:32:08 alise, well it does, it beats the built in web browser (opera mini is a java application) by far 14:32:12 at least on my phone 14:32:18 the built in one is much much worse 14:32:33 It's Opera Mini, ENHANCED BY VODAFONE! 14:32:35 not sure how it is for pure text, it would probably just download it 14:32:38 alise, what? 14:32:39 It totally is. 14:32:43 It says on the logo screen. 14:32:47 -_- 14:32:51 I haven't seen any of this "enhancement" yet, mind. 14:32:58 alise, which version? 14:32:59 Also, I tried downloading a java IRC client but it just saved it as a file and won't open. 14:33:00 5? 14:33:03 AnMaster: Don't know. 14:33:15 Stable release 4.2.14912 (August 3, 2009; 6 month(s) ago (2009-08-03)) [+/−] 14:33:15 Preview release 5.0.17443 (December 23, 2009; 54 day(s) ago (2009-12-23)) [+/−] 14:33:18 Probably *not* 5. 14:33:23 the enhancement was clearly just branding 14:33:29 ah 14:34:01 5 is somewhat better than 4 I have to day 14:34:03 say* 14:34:32 for example, in 5 you can have multiple tabs 14:34:56 and the user interface is easier to navigate 14:38:56 -!- kar8nga has joined. 14:41:04 MobileSafari ftw. :P 14:41:13 Or even what the fancy Nokia phones have; that's basically the same. 14:41:20 Or even Android's. 14:41:54 alise, simple nokia phones has that horrible built in thing + opera mini 14:42:03 I mean S60 ones. 14:42:10 btw it is snowing heavily here 14:42:33 alise, I have no idea what mine has (Nokia 3120 classic) 14:42:42 pretty sure it isn't symbian 14:42:45 but that is all 14:43:10 S40, likely. 14:43:17 mhm 14:43:59 AnMaster: it was snowing here yesterday 14:44:12 hm checking in the settings the version info thingy: "V 07.16\n27-05-08\nRM-354\n(c) Nokia" 14:44:28 and yes that actually says "(c)" not "©" 14:44:58 err, RM-364, not 354 14:45:13 AnMaster: probably for encoding reasons 14:45:44 AnMaster: Where'd you come up with "the version info thingy"? 14:45:48 scarf, it does have unicode in sms and such 14:46:03 SMS tends to use 8-bit encodings, rather than Unicode 14:46:14 scarf, that's a setting iirc 14:46:17 unless that's changed from 5 years ago or so when I last looked at it 14:46:21 which defaults to unicode 14:46:51 Deewiant, Meny → Inställningar → Telefon → Tel.uppdateringar → Aktuell programinfo. 14:47:39 Meh, doesn't apply. 14:47:41 no clue what it would be on a non-Swedish phone (could guess for an UK phone) 14:47:56 Deewiant, it is under the telephony update thingy basically 14:48:24 Yes, I don't have an update thingy like that. 14:48:31 mhm 14:48:45 there has never been any updates when I checked 14:48:46 There's the "App. manager" but it doesn't include builtin software. 14:48:57 Deewiant, I have no such thing as an app manager 14:49:06 Yes, I could guess as much. 14:49:15 Deewiant, there are java apps in a folder 14:49:38 hm I think nokia included some app to download/buy new apps from them/third parties 14:50:01 when I looked it basically said for almost all "not compatible with this phone" 14:50:11 wonder why they were listed at all 14:50:24 they could try to only show relevant ones 14:51:01 $$$ 14:51:06 "buy a new phone get this app" 14:51:45 alise, it didn't even say that 14:51:48 or what phone it needed 14:52:08 alise: the advertising in PC World around the release of Windows 7 was even more hilarious 14:52:14 AnMaster: something expensive 14:52:15 it was along the lines of "Windows 7 is out, time for a new PC" 14:52:27 scarf, err what? 14:52:41 AnMaster: it seemed to be working, at least 14:52:52 scarf, I don't get it. 14:52:54 so many people think that a computer is inherently tied to the OS version it comes with 14:53:06 and it's those that they were targeting 14:53:11 scarf, people who reads computer magazines? 14:53:16 no 14:53:23 people who have seen adverts talking about how great windows 7 is 14:53:35 scarf, "PC World" isn't a computer magzine over ther? 14:53:37 there* 14:53:52 AnMaster: it is, but it's mostly a chain of computer retail stores 14:53:53 it is here, IDG iirc 14:54:07 scarf, aha, that explains it somewhat 14:54:41 scarf, who owns the trademark then, the chain or the magazine? Or are they related? 14:54:51 I have no idea 14:54:55 hm 14:55:00 in fact, I've been wondering that myself 14:55:37 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 sigh 14:55:51 time to go teach Java, anyway 14:55:53 probably will go out and clear away somewhat before it becomes too heavy 14:56:04 The forecast here is 50 cm over the weekend 14:56:08 -!- oerjan has joined. 14:56:14 Deewiant, something similar here iirc 14:56:36 and I need to go to another city tomorrow. Not possible to cancel due to weather 14:56:48 heh, have fun with that 14:57:55 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 would be better if they spread them out 14:58:12 -!- alise_ has joined. 14:58:24 -!- yiyus has joined. 14:58:28 Yes, we have occasional exams on saturdays as well 14:58:39 Deewiant, saturday *afternoon* even 14:58:40 also 14:59:52 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 AnMaster: i made some comments to you earlier 15:00:06 oerjan, where/when? and what were those comments? 15:00:25 you don't read logs? 15:00:34 -!- alise has quit (Ping timeout: 245 seconds). 15:00:36 Seems to like you should say "or", not "and" 15:00:46 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 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 oerjan, but no I don't read logs unless someone highlighted my nick 15:01:24 AnMaster: your nick was present when i comented 15:01:26 *mm 15:01:34 also, i quoted you 15:01:43 Seems to like you should say "or", not "and" <--- 15:01:45 ? 15:01:55 however, maybe you don't get pinged on quoting... 15:02:07 oerjan, well I do get pinged by that 15:02:17 but, maybe you had timed out and not noticed it? 15:02:20 also re ring programming, cool cool 15:02:29 AnMaster: Read the follow-up as well... 15:02:31 AnMaster: um i see it perfectly well in the logs 15:02:32 oerjan, anyway I'm going outside to clear away some snow in exactly 1 minute 15:02:33 needs to be a monoid too 15:02:43 50 15:02:44 imo a ring computer is obviously parallel 15:02:48 anyway 15:02:51 oerjan, thus, say what you wanted now 15:02:53 40 15:02:53 21:19:17 oklopol, oerjan wasn't connected when you said that 15:02:57 21:19:27 however, i have esoteric log powers 15:02:57 Deewiant, har 15:02:59 21:20:22 "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 30 15:03:04 21:20:30 well _i_ was thinking lovecraft 15:03:06 21:20:44 (with my version) 15:03:09 21:24:32 --- quit: augur (Ping timeout: 256 seconds) 15:03:11 21:27:34 "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 20 15:03:16 21:27:48 as mentioned, perfectly possible in theory. 15:03:16 oerjan, ah that 15:03:18 21:29:31 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 a + b = compute a and b in parallel, obviously 15:03:20 didn't see any reason to comment 15:03:22 a * b = sequencing 15:03:23 10 15:03:25 bbl 15:03:30 mzero = _|_ 15:03:33 AnMaster: See ya 15:04:19 hmm so 15:04:33 a `seq` (b `par` c) = (a `seq` b) `par` (a `seq` c) 15:04:40 yeah 15:04:58 (a `par` b) `seq` c = (a `seq` c) `par` (b `seq` c) 15:05:06 yep 15:05:28 Of course, since all are just c ;-P 15:05:45 not if a or b = _|_ 15:06:02 True 15:07:21 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 absolutely 15:07:33 :P 15:07:39 "just" 15:08:00 my n and l keys aren't pressing nicely :( 15:08:04 -!- augur has quit (Ping timeout: 245 seconds). 15:08:08 with the provision that non-halting computations become -> 0 15:08:19 not mzero, mempty, ofc 15:08:21 Deewiant: it's a simple algebraic construction, really 15:08:53 data Cr = Bot | Cr :+ Cr | Cr :* Cr 15:08:58 Methinks I need more than just that 15:08:58 hmm 15:09:00 my point is that i'm not sure you can get something more useful than chaining all inputs in parallel 15:09:03 what's nop, then, if bot is 0? 15:09:06 maybe nop = 0, bot = inf 15:09:16 -!- augur has joined. 15:09:54 Deewiant: otoh a `par` b = b even if a = _|_ 15:10:04 Also true 15:10:06 so, of course, you need the resulting computation to have some sort of _result_ 15:10:08 Your equations still hold 15:10:15 so we need a new Cr, i.e. Id foo 15:10:40 a :+ b -> Id (a' :+ b'), maybe (where ' denotes evaluation) 15:10:45 Gotta love two-letter identifiers 15:10:59 ? 15:11:25 hmm, I don't think I can use par 15:11:30 I need *deterministic* parallelism XD 15:11:50 alise_: my idea is that the result of a sum is just the sum of the results. 15:11:51 Cr Id :+ :* <-- the embedded meaning, it is blinding 15:12:02 Deewiant: Well, yeah. 15:12:07 This /is/ mathematics. 15:12:11 oerjan: see, that's what I said! 15:12:18 hmm 15:12:26 So you have an excuse to be obtuse? ;-P 15:12:40 Deewiant: Well, I also need shorthand for my convenience, since I'll be using the names a lot. 15:12:45 :+ and :* have embedded meaning, from rings. 15:12:51 Id is identity, just like id. 15:12:57 Cr is Computation Ring; it's arbitrary. 15:13:17 alise_: also this would work nicely with free vector spaces too, then you can multiply your computation with reals/complexes 15:13:18 data ComputationRing 15:13:23 But that's just me 15:13:51 data ComputationRing = Bottom | ComputationRing :+ ComputationRing | ComputationRing :* ComputationRing 15:13:51 and get an algebra over a field (or another ring, if you want) 15:13:53 It's just noise. 15:14:05 You only need to type it once. 15:14:10 I don't care. 15:14:12 It's still noise. 15:14:39 If you insist. 15:14:39 oerjan: so a*b -> a'*b'? 15:14:41 or a'+b'? 15:15:11 hmm 15:15:12 what's 1? 15:15:20 1*x = x implies nop, but 1+x should be > x 15:15:23 identity 15:15:29 So 1+x = x? 15:15:35 no, 1 = id 15:15:46 And? 15:15:52 alise_: What does > mean here? 15:16:01 Deewiant: Well, okay: !=. 15:16:07 this is the obvious way to get a ring unit in an endomorphism ring... 15:16:20 So what is 1+x with respect to x? 15:16:32 um is x a computation then? 15:16:34 And what does = mean here? Computation has same result? 15:16:35 yes 15:16:38 1' = 1, so it's (1+x') 15:16:44 which I guess is not x :P 15:16:49 Deewiant: yeah 15:16:54 then 1+x is a parallel computation that returns both input and x(input) 15:16:58 eval Bot = fix id 15:17:05 >_< 15:17:09 oerjan: oh i see, it's basically currying 15:17:10 Deewiant: what 15:17:16 alise_: fix id :-P 15:17:22 Deewiant: And? :P 15:17:32 eval Bot = eval Bot 15:17:37 psychoanalysis = fix id 15:17:46 hyuk hyuk :| 15:17:49 well 15:17:49 joke = old 15:17:50 psychotherapy, really 15:18:03 oerjan: so x*y = x' + y' or x' * y'? 15:18:05 I guess + 15:18:11 (' is evaluation) 15:18:37 so really, eval :: Cr -> Cr -> Cr 15:18:39 (one is input) 15:18:41 um i don't understand your notation 15:18:55 x' is the result of computing x 15:18:59 you said that 15:19:02 a + b -> a' + b' 15:19:09 a * b -> a' * b' or a' + b'? 15:19:13 um you also need to specify input 15:19:22 well, it's the same for both 15:19:25 so it can be left implicit, no? 15:19:26 (x*y)(inp) = y(x(inp)) 15:19:30 ohh 15:19:41 if x and y are deterministic computations 15:19:48 otherwise, sum all branches 15:19:48 so... you don't actually need parallelism at all :) 15:20:12 oh and bottom = 0 as input/output 15:20:27 well, you'll never be able to inspect the output... 15:20:37 for obvious reasons 15:20:46 yeah i don't think this is _computable_ 15:20:58 I'm computing it simply by leaving 0 resulting in _|_ 15:21:02 which doesn't seem unreasonable to me... 15:21:19 but to have a ring you need 0 + x = x 15:22:23 Oh. 15:22:31 Well, can you even write a non-terminating program without 0? 15:22:36 Not without an infinite program. 15:22:47 0 is really just \_ -> 0 15:23:16 in a sense yes 15:23:39 So I think this language is computable, and sub-TC. 15:24:04 well if you only use terminating programs as base 15:24:13 Oh, I have only Bot and Id as base programs. :) 15:24:18 data Cr = Bot | Id | Cr :+ Cr | Cr :* Cr deriving (Show) 15:24:44 oh 15:24:55 I guess I need more to have anything useful. 15:24:59 Or, wait, no. 15:25:02 I can use Bot as (). 15:25:06 well then you essentially get a free ring on 0 generators, aka Z 15:25:09 So then () = 0, (() :+ ()) = 1, ... 15:25:09 (the integers) 15:25:26 oerjan: hrm, so completely unable to be used for any useful computation then 15:25:30 guess that's pretty obvious 15:25:33 heh 15:26:12 * alise_ wonders what useful computations he could have 15:26:23 well, we need *some* sort of looper 15:26:49 http://pastie.org/832823.txt?key=a8bszac2sr9tpdd2n2pfw 15:26:52 Ours for the extending, anyway. 15:27:11 but as i implied, you could throw any terminating functions into your base without trouble 15:27:20 and still be sub-TC 15:27:49 -!- MizardX has joined. 15:28:23 aye, but we want to be able to calculate fibonacci at least 15:28:26 ackermann preferably 15:28:40 a conditional, then. 15:28:45 wait, we have that 15:28:49 well primitive recursion is enough for the former 15:29:05 0 x = 0, 1 x = x, 2 x = x :+ x, I think 15:29:16 no 15:29:22 0 x = 0, 1 x = 0 :+ 0 15:29:28 or at least I think so 15:29:34 this is rather confusing 15:29:41 transfinite induction was mentioned earlier today, maybe you could use that, omega^2 gives you ackermann iirc 15:29:48 *Main> eval (Id :+ Id) (Id :+ Id) 15:29:48 (Id :+ Id) :+ (Id :+ Id) 15:30:48 1 = id i said! 15:31:25 yes 15:31:28 also you seem to have left out subtraction in your ring 15:31:40 that's (1+1) -apply- (1+1) 15:31:46 i.e. (id id),(id id) 15:31:49 i.e... oh dear 15:31:54 also 15:31:59 data Cr = Bot | Id | Cr :+ Cr | Cr :* Cr ?? 15:32:05 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 MissPiggy: computation as a ring 15:32:13 why not just bot = bot ; id = 0 ? 15:32:54 because that does not make any sense, I believe 15:32:55 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 oerjan: yeah but I'm bored now :) 15:33:16 generally should a closure copy the objects it's closing over, or just separate the identifiers from the global scope? 15:33:29 effectively making a local copy of the identifiers 15:33:48 cheater: if you have mutable variables you need to be careful 15:33:54 bot + bot 15:33:56 copying doesn't work then 15:34:06 what are mutable variables? 15:34:07 cheater: copying is less efficient 15:34:13 also... what 15:34:15 alise_: you misunderstood. 15:34:27 cheater: that's nice, you could have just restated it more clearly 15:34:32 cheater: variables whose values can be _changed_ 15:34:50 variable variables, basically. 15:35:07 oerjan: define 'value of variable' 15:35:11 cheater: and that means changes need to be visible to all scopes 15:35:16 cheater: >_< 15:35:24 oerjan: cheater is just being obtuse 15:35:27 no 15:35:27 i suggest ignoring him 15:35:37 i am trying to understand something that requires precise statements 15:35:44 we're being precise. 15:35:48 cheater: for once i agree with alise_ on annoyingness 15:35:50 data Var = Integer 15:35:56 value :: [Value] -> Var -> Maybe Value 15:35:59 happy? 15:36:06 noo 15:36:06 mutate :: Var -> Value -> [Value] 15:36:06 data Var = Var Integer 15:36:09 that is not a valid syntaxxx 15:36:12 -!- Asztal has quit (Ping timeout: 264 seconds). 15:36:13 Deewiant: yeah w/e :P 15:36:17 alise you don't even !!!!!!!!!!!!! HASKELL 15:36:22 Sure it was valid 15:36:31 I don't even !!!!!!!!!!!!! Haskell. 15:36:42 Not even 15:36:48 oerjan: you're just teaming up with her in hopes of being laid 15:36:54 oerjan: admit =( 15:36:59 It's totally true. 15:37:03 oerjan craves me. 15:37:07 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 ML has mutable refs doesn't it 15:37:40 ofc they're separate entities 15:37:48 alise_: yes, but that doesn't matter since it's not actually the variables themselves... 15:38:16 in fact you could deal with mutable variables by copying references to them 15:38:22 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 A person demands absolute preciseness of semantics, and then starts talking about Python's semantics? 15:38:45 ha! 15:38:53 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 data MutableVar = PointerToImmutable MutableReference 15:39:28 tada now you can do closures via copying 15:40:24 oerjan: and what is the difference? 15:41:49 -!- Pthing has quit (Remote host closed the connection). 15:41:51 In Python's closures? That x didn't change. 15:42:04 cheater: a real closure would see the "same" variable as everything else in the scope of the variable 15:42:27 same in quotes because you can cheat if it really doesn't matter (e.g. immutable variable) 15:42:46 pheew 15:43:02 It's not cheating if you can't tell the difference within the language 15:43:15 it's about 50 cm already btw 15:43:18 mind you this may be just a consequence of python's scopes being not truly lexical, also iirc 15:43:22 30 was an underestimate 15:43:22 http://catseye.tc/projects/burro/doc/website_burro.html 15:43:24 fucking hell 15:43:30 he is dragging up the past! 15:43:35 there is no free space for the cleared away snow any more 15:43:39 what am I to do? 15:43:40 AnMaster: Almost 20 inches?! 15:43:44 Swim 15:43:45 I suggest castration. 15:43:53 alise_, har 15:44:21 Deewiant, snow swining, hm. Sounds like something to add to the olympic games 15:45:13 AnMaster: no nearby hill to shove it off? 15:45:30 Snow swining! 15:45:35 Pigs; racing through snow. 15:46:34 to nicely complement the summer sport of sow swimming 15:48:12 * oerjan recalls the pole vault from the frc hellympics 15:52:13 back 15:52:36 yoyoyoyoyoyo 15:52:38 doing 15:52:45 -!- alise_ has changed nick to alise. 15:52:56 scarf: so I've become obsessed with one paradigm 15:53:01 which one? 15:53:13 There can be only one 15:53:17 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 alise: ooh, I like that one too 15:53:32 It's a symbolic computation system - we got yer algebra system. 15:53:37 It's a functional language - we got yer Y. 15:53:41 but Cyclexa is not really at a usable stage 15:53:48 it's more than cyclexa 15:53:52 basically 15:53:59 AnMaster: no nearby hill to shove it off? <-- no 15:54:03 tree = symbol | app tree tree 15:54:08 oerjan, or I would need to go up said hill 15:54:10 program is a set of tree' -> tree 15:54:12 functional programming is a myth 15:54:14 (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 but then all the neighbours would get mad 15:54:18 tree' = tree except another leaf is "freevar symbol" 15:54:25 it's bound on the RHS and replaced 15:54:27 oerjan, this is inside a town after all 15:54:28 so we can have e.g. 15:54:35 not (not X) = X 15:54:36 by the way 15:54:40 where caps = free 15:54:47 I realised there is yet another issue with time travel 15:54:50 not a paradox 15:54:53 alise: ah 15:54:56 but a very very annoying issue 15:54:58 scarf, ^ 15:55:02 and we can evaluate (not (not (not x))) without defining x 15:55:05 and get not x 15:55:06 back 15:55:06 AnMaster: there are lots of issues with time travel 15:55:16 scarf, "best before" dates on products would become useless 15:55:16 scarf: also, since terms without a rule just stay inert... 15:55:18 so time travel is impossible 15:55:22 scarf: we can use function application as data 15:55:26 alise: makes sense; the tree-rewriting version of SKI combinatory logic works like that, doesn't it 15:55:28 i.e. (Cons x y), without defining Cons 15:55:30 it Just Works 15:55:33 alise: yep 15:55:35 AnMaster: ah. i guess it only works if you live some way up a hill to start with. 15:55:37 scarf: yep, you can define SKI like that literally 15:55:38 scarf, same for credit cards that has "valid to" 15:55:47 (or whatever the English phrase for that is) 15:55:47 scarf: also, "X + Y" doesn't have to be specially supported 15:55:49 X plus Y = foo 15:55:52 alise: note that this is what Mathematica does for everything, except the bits that were hand-optimised in C 15:55:58 the head term just happens to be a free var 15:56:00 -!- addicted has joined. 15:56:00 I'm prepared to believe, though, that it's a good idea but an awful implementation of it 15:56:04 scarf: yep 15:56:30 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 Pure is even not hideously slow. 15:56:38 * scarf looks 15:56:38 hm looking at my various cards phrases such as "good thru" and "valid thru" pops up 15:57:10 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 scarf: a really cool thing is that since rules are independent, not "attached" to anything, you can "extend" "functions" 15:57:25 for instance 15:57:26 oerjan, not sure what the English word is. But it is called an "ås" around here 15:57:35 doc factorial = "The factorial function." 15:57:37 factorial n = ... 15:57:40 then later 15:57:43 doc fib = "Fibonacci" 15:57:44 oerjan, ås being not a hill due to being rather narrow but quite long 15:57:45 fib n = ... 15:57:50 (doc X) is just a term 15:57:54 yes 15:57:58 same as fib or factorial 15:58:08 hmm, that sort of thing leads to truly weird bugs in Mathematica 15:58:10 also, currying works: 15:58:13 foo x y = ... 15:58:16 (foo x) just doesn't evaluate 15:58:17 where you get literal bits of its internal working dumped into your result 15:58:22 do ((foo x) y), however... 15:58:22 what is the English word for that scarf? 15:58:33 AnMaster: I'm not sure; there may not be a particular one 15:58:37 hm 15:58:41 AnMaster: we don't really have them so we don't need to call them anything :P 15:58:52 scarf: Pure is even compiled - to LLVM, no less 15:59:00 alise: we do, we just don't notice them 15:59:11 alise: have you tried using it much yet? 15:59:15 alise: Pure's shell is a good start 15:59:16 > help 15:59:16 sh: w3m: command not found 15:59:25 scarf, alise: oh interwiki gives "ridge" 15:59:25 Deewiant: yeah that's relevant to the language. 15:59:28 which isn't quite it 15:59:31 I think 15:59:35 scarf: well, I've read a lot of the docs and wrote some simple programs 15:59:45 ridge sounds like something you would find at high mountains 15:59:51 but ås is definitely not so 15:59:52 I'm quite enamored with the paradigm; and the language isn't bad. 15:59:54 AnMaster: i though ås (a norwegian word too) was also translated as hill 16:00:05 AnMaster: a ridge is basically what you get when a lot of hills or mountains nearby connect together 16:00:08 It's eager, yes, and impure, yes, but despite that it's still pleasant. 16:00:08 oerjan, hm maybe 16:00:10 to create one long hilltop, that's a ridge 16:00:14 and it's not what you were describing 16:00:25 hmm, how can an impure language be called Pure? irony? accident? 16:00:26 bad interwiki I guess then 16:00:36 scarf, or partly overlapping meanings 16:00:47 possibly ås geologically is something else than everyday sense 16:00:47 AnMaster: do you get ridges where you live? 16:01:10 Birmingham is in a really hilly area, so I know of a few within an hour's driving distance 16:01:14 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 basically you have this large almost completely flat area and then some mountains at the west side of it 16:02:05 heh, sounds like a mirror-reflected version of Norfolk 16:02:15 which is rather hilly around the edges, but famously ridiculously flat in the central areas 16:02:20 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 NORFOLK: Secretly, part of the Netherlands. 16:02:45 scarf, well, I live near the flat middle basically 16:02:58 lol 16:03:07 alise: at least it mostly isn't underwatetr 16:03:09 *underwater 16:03:13 lol 16:03:19 well, below sea level 16:03:22 which isn't /quite/ the same thing 16:03:42 scarf, iirc some time after the last ice age this area was part of the sea. 16:03:56 (the ground has risen since) 16:04:11 Norfolk got the way it was due to being covered in glaciers during the last ice age 16:04:21 the hills round the edges are where the glaciers melted and dumped all the stones they were carrying 16:04:28 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 probably quite well 16:06:11 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 "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 ah, the dangers of semi-randomly clicking on links on Wikipedia 16:07:56 apparently, it's an attempt to convert SML/NJ into a C-like syntax 16:08:14 C + Lisp + Ruby + Hindley-Milner + generics + side effects 16:08:17 O____o 16:08:24 yes, it scares me too 16:08:38 I'm busy reading the docs to know whether to laugh at it or not 16:08:41 That's one hell of a tagline 16:08:58 "new ingredients of Hindley-Milner typing" just sounds /confused/ 16:09:17 "Either way, this is a far cry from the hundred-plus lines of code of a typical C Quicksort implementation." 16:09:22 hmm, that seems rather critical of C 16:09:29 "new ingredients of x" obviously does, but "new ingredients of x, y, and z" is fine 16:09:33 I've seen a Pascal quicksort in 20 lines, and that was in a book intended to teach Haskell 16:09:38 I know of Mythryl, I think. 16:09:39 umm, to teach Pascal 16:09:46 Yeah; that thingl. 16:09:48 *thing. 16:09:48 scarf: So how's theirs; link 16:10:02 http://mythryl.org/ 16:10:06 pascal, haskell, nearly the same. if you slur enough. 16:10:23 oerjan: it's a pain trying to discuss Haskell with people who know Pascal but not Haskell 16:10:25 http://mythryl.org/my-Less_coding_effort_.html is what I wanted 16:10:27 "By four years in, vomiting blood in the wee hours was starting to seem entirely normal." 16:10:29 Slightly odd man 16:10:30 you have to really emphasise the e to prevent them mishearing it 16:10:39 that wizard is AWESOME 16:10:43 Argh, this keyboard doesn't have enough key travel; though the rubber domes _do_ make a nice clacky sound. 16:10:46 And yes, it is a completely unoptimized "quicksort" of a linked list 16:10:55 It beats the previous, sticky one though, I think. 16:11:06 scarf: theoretically pascal should stress the last syllable, i think 16:11:26 As opposed to the 100+ C lines of a suitably benchmarked introsort on arrays 16:11:28 oerjan: yes, but a stressed e and a stressed a sound rather different 16:11:33 I feel like bashing the fucking keys! Am I even pressing these things? 16:12:01 um i'm actually not sure where haskell is stressed 16:12:05 also, the Mythryl guy seems to use "linux$ " as his $PS1 16:12:12 Or has his box called "linux". 16:12:17 yes 16:12:19 Or is just using it as an example. 16:12:24 * oerjan always stresses it on first syllable 16:12:25 but who calls a computer after its OS? 16:12:26 Or uses uname 16:12:31 scarf: Incidentally, you can do pure IO without monads in a term rewriting language, really trivially. 16:12:32 oerjan: so do I, although I don't know that's right 16:12:44 Except that my uname prints Linux, but whatever 16:12:49 alise: what method in particular are you thinking of? 16:12:56 puts s = lambda k (_PUTS s k) 16:13:07 getc = lambda k (_GETC k) 16:13:12 that looks rather like a monad to me 16:13:14 exit = lambda k _EXIT 16:13:17 well, yes, it is technically 16:13:17 BUT 16:13:20 then we do 16:13:26 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 as well? 16:13:37 a C quicksort takes like 8 lines max 16:13:48 and a Joy quicksort takes one 16:13:58 x ; y = lambda k (x (y k)) 16:14:01 so we can say 16:14:03 isn't there a GolfScript quicksort in something like ten characters? 16:14:03 in a hundred lines you can just manually program how to sort each possible list 16:14:07 puts "Hello, world!"; getc; exit 16:14:09 and it turns into 16:14:15 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 it turns into the monad 16:14:16 AnMaster: Either, I guess 16:14:24 "REPROGRAM YOUR SEMICOLONS!" 16:14:29 lambda k (_PUTS "Hello, world!" (_GETC (_EXIT k))) 16:14:51 so the RTS passes it some dummy end-of-thing 16:14:52 yep, that's a monad; ; is bind here 16:14:53 value 16:14:55 and tada 16:14:56 scarf: well, yes 16:15:00 but you never "define" the monad 16:15:02 how do you deal with non-monad terms in there, though? 16:15:05 the magic there is that 16:15:07 you define a CPS language 16:15:10 and then the sugar over it 16:15:10 as in, what's the equivalent of lift? 16:15:12 but they're defined in the same way 16:15:14 with normal rules 16:15:27 scarf: lift doesn't lift non-monadic values 16:15:30 do you mean return :: a -> m a? 16:15:35 err, yes 16:15:36 sorry 16:16:06 well, if you're like most term languages, i.e. untyped, 16:16:12 you don't need it 16:16:17 i think 16:16:17 scarf: It wouldn't surprise me if GolfScript had a single char for quicksort ;-P 16:16:20 but anyway, you could do this: 16:16:26 return x = lambda k (k x) 16:16:31 original haskell 1.0 did have a CPS I/O system 16:16:36 Deewiant: it probably has a single char for sort, but nothing would be requiring it to be quicksort 16:16:37 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 alise: yep 16:16:58 scarf: It could be requiring it, although that's admittedly unlikely 16:17:11 just, I can't see any amount of sugar that would mean that ; could combine IO operations with non-IO operations 16:17:21 scarf: Of course you could. 16:17:21 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 anyway, I don't see what all the fuss is about quicksort, mergesort is just usually better 16:17:28 instead of 16:17:29 puts s = lambda k (_PUTS s k) 16:17:29 AnMaster: It's a raster format, you will get such issues. 16:17:34 puts s = _IO (lambda k (_PUTS s k)) 16:17:37 (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 Deewiant, it isn't. It will render to svg 16:17:45 Then just pattern-match on _IO in ; 16:17:52 _IO x ; y = ... 16:17:53 Deewiant, or control a real turtle bot maybe ;) 16:17:55 hmm, maybe 16:18:00 x ; y = _IO (lambda k (k x)); y 16:18:08 OTOH, that would preclude returning the puts function itself 16:18:13 No. 16:18:13 unless you had a separate return 16:18:16 Because there is no "puts function". 16:18:22 If you return "puts", that's a symbol. 16:18:28 Only "puts x" is rewritten. 16:18:32 I mean, a partial application of it 16:18:37 even a full application, in a lazy lang 16:18:37 For a curried function: "K x" is just a term. Not rewritten. 16:18:40 AnMaster: Radians 16:18:42 alise: yep 16:18:46 "K x y" is reduced, however. 16:18:48 but it starts with _IO and so confuses your pattern matcher 16:18:52 Of course, you can have 'x = x without rewriting. 16:18:57 scarf: No, it doesn't. 16:19:00 ah, quoting 16:19:00 "puts" doesn't start with _IO. 16:19:04 and good point 16:19:05 puts is puts. 16:19:15 puts x doesn't start with _IO, either, but its reduction does. 16:19:29 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 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 and I can live with those 16:19:55 Turing +1 degree 360! 16:20:04 scarf: Well, Pure isn't even lazy. 16:20:13 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 AnMaster: There are precision issues anyway since I don't use arbitrary-precision reals 16:20:21 So it solves this "problem" extremely easily. 16:20:29 yes 16:20:45 a strict language doesn't need IO chains, or IO monads, or anything like that 16:20:52 ? 16:20:57 You can be strict and pure, scarf. 16:21:00 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 Like a nun! 16:21:18 alise: yes, but the point is you don't need to be 16:21:19 AnMaster: Unless my Mycology results are wrong cfunge's U definitely pushes the max bounds 16:21:24 lazy and impure is a lot more difficult 16:21:28 scarf: Indeed, purity is a desirable property even in a strict language - _|_ is your only enemy. 16:21:33 Good morrow. 16:21:36 alise: agreed 16:21:36 AnMaster: It's a tradeoff 16:21:38 alise: Back early? 16:21:55 pikhq: Early? 'Tis the 4th post-meridian hour of Friday. 16:22:00 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 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 alise: Oh, you get back at 4 PM? 16:22:21 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 pikhq: No, at half past the meridian today actually. 16:22:34 Or thereabouts. 16:22:39 AnMaster: iki.fi/deewiant/befunge/mycology-output/fp-turt/cfunge.txt 16:22:45 oh indeed it does 16:22:45 Early leaving on Friday... but when *would* you expect me to be back? 16:22:50 11pm? :P 16:22:51 AnMaster: U in which fingerprint? 16:22:55 Deewiant, I read some other fingerprint 16:22:57 scarf, TURT 16:23:00 alise: Ah. 16:23:03 Deewiant, err function 16:23:05 not fingerprint 16:23:26 it was the function for figuring out svg viewport or something it seems 16:23:30 pikhq: I'm actually curious when you thought 16:23:37 anyway the design will be quite different from that in cfunge 16:23:53 alise: I thought it was just a bit later in the day is all. 16:24:10 I figured they'd have you around for pretty much of the work week or something. 16:25:01 pikhq: the people imprisoning him probably hate having to guard the place as much as he hates going there 16:25:16 Deewiant, since the way cfunge does it have some issues and is somewhat messy. I might rewrite it later on 16:25:47 scarf: True, true. 16:25:59 It's not like they enjoy it, they just have a stick up their ass. 16:26:31 it's probably different people making the decisions from the people who have to live with their consequences 16:26:51 Also true. 16:27:04 in general, or decisions would be better in general 16:27:33 Some of them seem to get a real kick out of power, though. 16:27:36 note to self: if you use vnc remember to turn off synergy first. That was quite confusing 16:27:55 (vnc and synergy between same computers that is) 16:29:20 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 The Stanford prison experiment is chilling. 16:30:00 Indeed it is. 16:30:10 yes, it's really scary 16:30:16 But add the Milgram experiment, and it's /fucking terrifying/. 16:30:32 alise: I don't know that one 16:30:45 It's the one with electric shocks 16:30:49 ouch 16:30:51 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 I know that one, just not its name 16:31:13 The experimenter tells the teacher to keep doing it even as the intensity of the "shocks" supposedly increases to insane levels. 16:31:19 The teacher almost universally complies. 16:31:32 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 apparently, it's highly dependent on how authoritative the experimenter seems 16:32:04 Milgram experiment. 16:32:07 they repeated it with the experimenter wearing casual clothing, and people suddenly started acting sanely 16:32:27 O_o 16:32:39 Milgram + Stanford = Speak authoritatively, and you can get people to do horrible, horrible things - and start believing in them. 16:32:45 scarf: Do you have a source for that? 16:32:57 Probably the only solution is to abolish authority entirely, which poses a whole host of other problems. 16:32:58 Deewiant: I did once, but can't remember where it was 16:33:04 and it was third-hand information then already 16:33:16 Deewiant: http://www.garfield.library.upenn.edu/classics1981/A1981LC33300001.pdf Here's the paper by Stanley Milgram. 16:33:55 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 pikhq: No, it's just a review 16:34:08 Trust AnMaster to always pick on the most trivial, boring example. 16:34:09 Erm. 16:34:12 Darn. 16:34:13 DARN IT. 16:34:15 :-D 16:34:26 alise, of course. I don't want to let your expectations down. 16:34:27 Wrong link. 16:34:29 A /bigger/ problem with anarchy is preventing a state from establishing itself. 16:35:13 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 alise: yep, you'd have to enforce it from outside somehow 16:35:17 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 Thanks for the help! ...not 16:35:32 Firefox has detected that the server is redirecting the request for this address in a way that will never complete. 16:35:35 Whee broken websites 16:35:36 but the same effect seen in the Stanford experiment is seen in reality TV too 16:35:47 AnMaster: Duh... of course. 16:35:48 scarf: And prisons everywhere. 16:35:49 you can easily get people to move from the real world to an imaginary one 16:35:51 AnMaster: That's what I said. 16:35:58 alise, thus I didn't think you would consider that an issue 16:36:02 that there is no state 16:36:06 scarf: actually, there are numerous ways you could avoid establishing authority 16:36:11 AnMaster: You did not read what I said. 16:36:14 A /bigger/ problem with anarchy is preventing a state from establishing itself. 16:36:21 In a bad anarchy, gangs will form; 16:36:26 one gang will arm itself more than the others; 16:36:27 alise, yes. 16:36:28 that's an authority of its own 16:36:34 a few generations later, we will call it the state. 16:36:39 alise, oh right, I read that as the other way around 16:36:39 scarf: no, as in societial ways 16:36:50 hmm 16:37:02 you mean, you ingrain the importance of anarchy into everyone so much that they assume there's no other way? 16:37:07 things like teaching rational thinking to children from the very start 16:37:12 and parents teach it to their children? 16:37:22 hmm, rational thinking doesn't necessarily imply anarchy, I don't think 16:37:24 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 scarf: certainly 16:37:45 alise: ah 16:37:47 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 I'm not certain the anarchy would be superior 16:37:56 nor am I 16:38:03 alise: Anarchy is only superior if the people involved are ethical, of course... 16:38:10 but if you conclude rationally that it is, that is the best method of sustaining it 16:38:19 pikhq: pretty much /any/ governmental system works if all the people involved are ethical 16:38:27 Well, yes. 16:38:28 and in such a case, you may as well use anarchy to save costs, or communism for the benefits 16:38:29 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 it's just not going to happen in practice, though 16:38:36 you need stablility for a generation or two 16:38:39 They do differ largely in how they deal with a lack of ethics. 16:38:43 scarf: right 16:39:29 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 Clearly, the real solution is singularity. 16:39:48 it would basically become the operating system for space; preventing harming another while allowing otherwise total control to everyone 16:39:58 now, are the laws of physics a dictatorship? 16:40:08 if yes, then probably so is the singularity; otherwise, probably not 16:40:22 alise: what about the Asimov outcome? 16:40:32 define 16:40:36 where a robot government was set up for a while, but it decided that its own existence was harmful for mankind 16:40:37 (well, disambiguate) 16:40:38 and it phased itself out 16:40:43 scarf: that's not a singularity 16:40:46 no, it isn't 16:40:52 but I can imagine a similar outcome happening from a singularity 16:40:59 a Friendly seed AI would self-modify until it *is* beneficial to mankind 16:41:10 If it cannot, then it suggests that mankind is perfect already, which is total bullshit. 16:41:39 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 (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 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 (assuming the supergoal does not forbid doing such things, which it probably doesn't) 16:42:22 either that, or it would make itself voluntary 16:42:38 and, perhaps, attempt to explain why it is good to the people who say no 16:43:02 (it would probably still prevent harm between the people who say no, though, through simple moral imperative) 16:43:29 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 hmm, ridiculous idea: the singularity decides that there's something special about humans as they are now 16:43:35 e.g. maybe it discovers God exists 16:43:36 Deewiant: yes, I love TWC 16:43:39 and likes humans in particular 16:43:40 When I say probably, by the way, 16:43:43 I mean almost certainly not. 16:43:59 (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 also, Three Worlds Collide protip: read the Normal Ending, then the True Ending 16:44:45 ok, because I like trope subversion: there will be two Singularities which get created at more or less the same time 16:44:45 I.e. read it in order 16:44:49 and which end up jealous of each other 16:44:57 so they refuse to work as a team 16:45:01 scarf: Both Friendly, yes? 16:45:06 and this messes up the typical benevolent self-improvement thing 16:45:12 Deewiant: Well, but the choice is offered in the last pre-ending chapter. 16:45:15 so they're both friendly in general, but have a blind spot where the other is concerned 16:45:24 There's no such thing as Friendly-in-general. :) 16:45:29 yep 16:45:39 Sure, but if you just read top-down like most people do you'll do it right. :-P 16:45:41 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 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 yes 16:46:24 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 Your outcome is impossible, and you should feel bad. :P 16:47:25 hmm, more fun: a Friendly singularity is created, but somehow sandboxed because people don't trust it 16:47:47 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 *Unfriendly 16:48:12 can't box a transhuman 16:48:15 http://yudkowsky.net/singularity/aibox 16:48:27 by definition it will outsmart us; and even a human can unbox itself, see above 16:49:26 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 alise: Those are no fun, they're secret 16:50:14 hmm... what about a singularity not happening, because nobody can afford the energy bill? 16:50:28 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 I can't help but think that specifically because they're secret >_< 16:50:44 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 Deewiant: Yes, well. Ask him :P 16:50:53 amazing I just read about that stanford prison 16:50:54 scarf: are you saying that even human + omega intelligence requires too much power? 16:51:01 MissPiggy: baader-meinhof phenom :P 16:51:07 scarf: because certainly human doesn't, we're living proof 16:51:07 to me, saying a transhuman would convince any human of something is like saying a human would be a superior dolphin 16:51:11 but maybe that's just me 16:51:17 alise: not quite 16:51:20 scarf: and once it goes past a certain point of intelligence, oh snap nanotech 16:51:25 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 and then it isn't a problem any more 16:51:33 Deewiant: Well, that's the whole point. 16:51:37 I'm saying that human + omega intelligence implemented by humans, and therefore very inefficiently, may require too much power 16:51:51 Deewiant: If the conclusion wasn't highly unintuitive, the page would not exist. 16:52:03 scarf: That therefore doesn't follow. 16:52:07 scarf: And the AI is self-improving, remember. 16:52:28 alise: I mean, that the singularity won't happen because we never get an AI to a self-improving stage 16:52:28 Given a massive data centre, perhaps even with specialised hardware, I find being unable to emulate a human incredibly unlikely. 16:52:35 hm can a human really construct something smarter than a human? 16:52:38 And the AI will be /better/ than a human then, for it will be rational. 16:52:43 not because we're technically incapable, but because nobody will put in the effort 16:52:45 AnMaster: Yes. It just can't understand the whole of it at once. 16:52:49 AnMaster, I don't see any reason why not 16:52:53 alise, perhaps 16:52:55 AnMaster: I thought the same too once, but I conclude it's a silly objection based only on intuition. 16:53:00 AnMaster: Consider two people working together. 16:53:01 AnMaster, I mean we can build things bigger, and stronger, so why not smarter? 16:53:01 AnMaster: there are lots of things we can't understand the whole of at once even now 16:53:04 scarf: there is no self-improving stage 16:53:05 even if they're a lot less smart than us 16:53:09 and why would we not understand it all even if it is smarter? 16:53:10 scarf: you build the AI to self-improve from the start 16:53:12 no matter how dumb it is 16:53:16 and you give it the supergoal from the start, too 16:53:22 alise: if it's too dumb, it'll just reach a dead end 16:53:23 Gah, that aibox thing is really pissing me off now 16:53:24 then you make it intelligent enough, manually, so that it will not fuck things up royally 16:53:27 and set it ofc 16:53:28 *off 16:53:29 Dammit, alise 16:53:33 Deewiant what about it? 16:53:34 Deewiant: Email him and complain. 16:53:43 complain about what? 16:53:43 I mean, you could just set evfunge trying to solve the problems of world hunger or whatever 16:53:44 There is no reason at all to get angry. 16:53:45 scarf, true that 16:53:48 MissPiggy: its secrecy 16:53:54 but you probably wouldn't even be able to describe the problem in enough detail 16:53:55 what's wrong with that? 16:54:07 scarf: Well, that's what the hard part is: making it intelligent enough. 16:54:10 MissPiggy: He hates it. 16:54:25 I refuse to respect the unknown unknowns 16:54:29 alise: yes 16:54:30 MissPiggy: it's like a magic show, it's not at all interesting until you know how he does it 16:54:32 Deewiant: Then email him. 16:54:37 Getting angry is just, well, irrational. 16:54:47 oklopol: it's meant to be a warning, not a show :P 16:55:00 Not "angry" 16:55:12 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 hm it doesn't seem like a magic trick to me 16:55:27 scarf: Can you even /imagine/ writing a program like that? 16:55:36 alise: people would be bound to try test runs 16:55:39 alise: to me it's an interesting psychological experiment, i don't care about the AI aspect 16:55:45 scarf: No. You cannot. 16:55:45 and yes, I have imagined writing programs like that, but only very simple ones 16:55:56 well, sure it's sort of a crucial part of the experiment, but maybe you know what i mean. 16:55:57 Unless you are sure it is Friendly, you cannot turn it on. 16:55:57 and yes, I don't think it works 16:56:07 You can only be sure of that when it's completely done and proved correct multiple times. 16:56:17 alise: I don't think humans would be capable of proving an AI Friendly 16:56:23 "cannot" as in "cannot by sheer risk". 16:56:47 OTOH, I don't trust humans in general not to do ridiculously risky things 16:56:50 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 on a slightly tangential subject, I've been wondering if there are any Hello Worlds around which are completely bug-free 16:57:18 I'm wondering if the answer is no 16:57:19 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 #include 16:57:51 the standard C hello world has a few bugs, such as not handling output redirected to a disk which is full 16:57:51 alise: How would e-mailing him help? He explicitly says he won't tell anybody 16:57:57 int main(void) { if (puts("Hello, world!") == EOF) { return EXIT_FAILURE; } return EXIT_SUCCESS; } 16:58:14 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 I'll have wasted /his/ time, which is rude 16:59:00 Deewiant -- you haven't said WHY this is annoying or you don't like it 16:59:04 Deewiant: Oh, you Finn. 16:59:09 lol 16:59:13 Deewiant: I'm sure he's so pro-knowledge that he would not mind. 16:59:17 He's that kind of guy. 16:59:23 Probably. 16:59:49 MissPiggy: I cannot possibly fathom what could bring someone to change their minds thusly 17:00:01 And I am annoyed that not even a hint is given 17:00:01 Deewiant: And that is why you would. 17:00:21 alise: ?? 17:00:37 If you could fathom, without seeing, why you would lose, you would not lose. 17:00:48 Since you cannot, the AI can manipulate you in this way, making you lose. 17:01:03 Eh? Non sequitur 17:01:09 alise: the whole secret box thing, I can easily imagine how an AI would be let out of the box 17:01:12 Eliezer is not a superhuman AI 17:01:23 Deewiant: But he knows something you do not (how to win the AI Box experiment). 17:01:35 the solution, presumably, would be to have too many layers of indirection 17:01:38 Even if you found out that one secret, the point is that he, a mere human, achieved it. 17:01:46 So what would someone more intelligent than us think of? 17:01:49 We cannot know - that's the point. 17:01:59 alise he doesn't know how to win it 17:02:01 I'm willing to believe the concept 17:02:08 MissPiggy: He won twice. 17:02:08 he just wanted to test if he had the ability 17:02:09 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 What I'm finding difficult to believe is specifically Yudkowsky winning 17:02:25 scarf: "Come over here, read this! You won't believe it" 17:02:28 I think he did actually win more than twice, but he also lost in a couple of times 17:02:31 Deewiant: Well, he is a very intelligent man. 17:02:32 MissPiggy: no 17:02:35 multiply that times hundreds of layers of abstraction and governmental-level forms 17:02:36 So far, this test has actually been run on two occasions. 17:02:38 Results of the first test: Eliezer Yudkowsky and Nathan Russell. [1][2][3][4] 17:02:38 Results of the second test: Eliezer Yudkowsky and David McFadzean. [1] [2] [3] 17:02:41 he won both times 17:02:42 But I am saying he doesn't have a winning strategy 17:02:51 it's most like running faster than someone else 17:02:59 Remember that the other party is intelligent, too; he got them from the SL4 mailing list. 17:03:05 hmm, I think even a typical average human could learn a winning strategy for that, given enough effort 17:03:06 MissPiggy: Yes, but consider that he's /human/. 17:03:07 yes that's why he didn't always win 17:03:11 he did 17:03:12 dammit 17:03:15 oh what does being human have to do with it 17:03:16 ? 17:03:16 he won every time 17:03:25 MissPiggy: because a seed AI that wanted to escape would be /transhuman/ 17:03:28 more intelligent than humans 17:03:33 so we would not be able to predict how it would subvert us 17:03:40 yeah it would win every time with unlimited high stakes :P 17:03:46 and it would be able to manipulate us like toys, by the sheer fact that it is more intelligent than us 17:03:53 scarf: yes, for humans 17:03:53 Yudkowski just wins most of the times, when the stakes are < $2000 17:03:59 scarf: but not for transhuman 17:04:00 s 17:04:04 MissPiggy: *Yudkowsky 17:04:10 thanks 17:04:13 also, the challengers were *very* sure of themselves 17:04:18 alise: I mean, a typical human could win every time, so a transhuman would have no trouble 17:04:22 they seemed to have a huge point to prove and were very forceful 17:04:28 their conceding emails, meek and concise 17:04:33 yeah that's a big part of it, I think he needed that because otherwise he wasn't testing himself 17:04:36 scarf: ah, yes 17:04:45 not a typical human without training 17:04:57 alise, in his coming of age series he talks about other times when he run this experiment and didn't win 17:04:57 but, say, magicians have lots of practice getting people to miss a particular details 17:05:07 *miss a particular detail 17:05:11 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 I imagine compelling someone to do something in particular through psychology is, with practice, just as easy 17:05:21 yeah 17:05:24 So a box is not a viable risk-reduction strategy. Only Friendliness is. 17:05:31 I don't think I needed any convincing of that :P 17:05:33 MissPiggy: ah, ok then 17:05:38 one of my RL acquaintances has fun getting strangers to randomly give him their wallets 17:05:47 The hell? 17:05:48 he gives them back, but it's always funny 17:05:50 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 OK 17:05:59 Deewiant: via psychology 17:05:59 still, as I said 17:06:02 human vs transhuman 17:06:10 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 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 Ah, but that's a bit different 17:06:54 alise: hmm, is it theoretically possible to have an /unbreakable/ box 17:06:54 Deewiant: No it's not; tricking people is exactly what an Unfriendly AI would do to escape. 17:06:55 lol it must be fun talking to Eliezer for two hours 17:06:57 That's abusing the subconscious to make them give you something other than what they think you're giving you 17:07:01 as in, one that nobody could let the transhuman out of even if they wanted to? 17:07:02 The whole point is that its moral system is insufficient. 17:07:18 alise couldn't a friendly AI convince it's way out too though? 17:07:20 my guess is no, but I'm not certain 17:07:20 scarf: Theoretically. But I imagine a transhuman could find laws in ANY human code so complex. 17:07:30 and then go on to be really good to people more efficiently. 17:07:31 MissPiggy: yes, but that isn't a problem 17:07:32 scarf: One way of letting it out: Remove the box code. 17:07:34 oh okay 17:07:44 alise: oh, I was assuming an actual physical box here 17:07:45 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 yeah most human codes have laws 17:07:52 scarf: Then no, that is impossible. 17:08:05 scarf: Of course, if it is somehow literally impossible to let it out of the box... then it is useless. 17:08:12 Once we are sure it is Friendly, the whole point is to let it out. 17:08:17 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 Otherwise it's a waste of time (and immoral). 17:08:27 alise: the idea I'm thinking of, is to get one that you're sure is Friendly, somehow 17:08:28 Deewiant: True. 17:08:33 scarf: then you need no box 17:08:39 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 let it out; that's the end-goal of a singularity 17:08:44 I mean, you box it, then make sure it's Friendly 17:08:51 Deewiant, it specifically says it wasn't a cheap trick 17:08:53 if it is, then it should have no problem with letting a different AI go singularity 17:08:54 in between those two, it escapes because it's Unfriendly 17:08:59 You can't know whether it's Friendly 17:09:15 MissPiggy: Yes, that's what I meant. 17:09:15 We cannot be sure of anything 17:09:19 oh 17:09:24 yes, the problem is that you can't be sure the first one is Friendly 17:09:25 but we must prove the AI Friendly multiple times in different systems in different ways before running it 17:09:29 why can't we be sure? 17:09:35 MissPiggy: because we are fallible 17:09:39 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 what use is two proofs compared to one 17:09:42 we can /always/ have made an error and missed it, or proved the wrong thing, etc 17:09:49 MissPiggy: because the computerised proof system could have flaws 17:09:59 and the proof could end up proving the wrong thing, so another way of proving it helps too 17:10:11 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 I don't beleive so 17:10:46 the whole point of mathematics is that you can make accurate statements about the infinite mind 17:10:55 "infinite mind"? 17:11:00 No mind is "infinite", whatever that means. 17:11:04 Anyway, yes, in mathematics. 17:11:10 Same thing for anything potentially dangerous like that, really: humans too. 17:11:12 But our proofs, our proof systems - they are all fallible because we made them. 17:11:21 it's a quote (Takeuti) 17:11:34 -!- addicted has quit (Remote host closed the connection). 17:11:35 Deewiant: anyway, you can know it's Friendly to an acceptable degree of risk 17:11:42 you work that out /before/ you run it, of course 17:11:46 and never bother with a useless box 17:12:00 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 "they are all fallible because we made them" -- isn't that a pretty basic fallacy ? 17:12:12 Deewiant: and EY is human 17:12:14 transhumans arenot 17:12:15 but a CHRISTIAN said it, it must be wrong! 17:12:17 *are not 17:12:31 MissPiggy: Yeah, that's a pretty basic one. 17:12:31 Not only would it be incomprehensibly better at it: it would be faster. 17:12:34 alise: Yes, as I and MissPiggy have both said, transhumans are fine. I had a problem specifically with EY. 17:12:38 Two hours with Yudkowsky; seconds with a superintelligence. 17:12:39 Deewiant: OK. 17:12:41 Then I agree. 17:12:41 :o 17:12:45 MissPiggy: it's not "must be", it's "can be" 17:12:46 I didn't say transhumans are fine 17:12:48 It was just an example that the risk is high, not a proof that EY is transhuman :P 17:12:54 MissPiggy: transhumans are fine for the ai box 17:12:58 MissPiggy: also, I meant that 17:13:02 there is a high risk they are fallible 17:13:02 it can be wrong even if it's claimed by a computer 17:13:04 because we are fallible 17:13:06 blah you know what i mean 17:13:14 wait what does "transhumans are fine for the AI box" mean 17:13:22 I still don't get transhumanism it seems ridiculous to me 17:13:30 trans humans? 17:13:33 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 are transhumans like transfats? 17:13:54 MissPiggy: Well, we take a human. And make them more than human. 17:14:06 I am using transhuman to refer to an entity of greater-than-human intelligence. 17:14:07 more organs = more human! 17:14:08 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 are you more than human if you have cancer? 17:14:18 As do all transhumans, substituting intelligence for some other characteristic occasionally. 17:14:31 The pop-sci definition of transhumanism is just horseshit, we don't want to breed with pigs or anything. 17:14:35 (apart from me!) 17:14:36 you don't? 17:14:38 lament: No, still pretty damned human. 17:14:42 well the /others/ don't 17:14:47 alise I didn't know you cared! 17:14:55 <3 17:15:58 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 alise: what about this for a theory 17:16:27 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 *is 17:16:34 oklopol: of course a transhuman AI would Know How Humans Work 17:16:36 the movie avatar basically says that humans would make great dolphins. 17:16:44 alise: how? 17:16:46 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 would it study physical brains? 17:16:52 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 i don't see any other way 17:16:58 because /it/ might not be Friendly 17:17:06 oklopol: it would study how we react to us, and how we reason 17:17:07 and psychology 17:17:08 etc 17:17:22 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 alise: but we can't even figure out how ants work based on watching them 17:17:29 scarf ooh I like that 17:17:37 simply because we are so unintelligent compared to it that it is trivial for it to reason how we would react 17:17:40 oklopol: because we're humans, not transhumans 17:17:49 i have incomprehensibly vast intelligence, and i can't really do that 17:17:49 yeah but we are transants 17:17:50 and so are not intelligent enough 17:18:00 oklopol: yes, but you need a certain level of intelligence to even do that to any system 17:18:05 transX != can understand X 17:18:12 sufficiently transhuman = can understand ants 17:18:22 even more transhuman = same, but with humans 17:18:28 superintelligence = can understand just about anything below it 17:18:33 MissPiggy: dunno, i stick to my ants and dolphins. 17:18:42 :( 17:20:10 i'm vastly more intelligent than your mom. Does that make me transmom? 17:20:13 "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 alise: is it possible to have something superintelligent enough that it can fully predict its own actions? 17:20:15 pretty much, I'd say 17:20:19 though I'm not certain 17:20:31 lament: well you /are/ male, so you've got the trans bit down 17:20:33 alise: that quote is close to what I was thinking 17:20:42 everyone has weaknesses 17:20:42 lament: yes, but the technical term for being smarter than her is "even more transmom" 17:20:53 scarf: we do that all the time, we look into the future 17:21:04 it can't predict its reaction to situation X without the information it will know at that time, though 17:21:06 alise: yep, but we're not very good at it 17:21:17 it can't predict the unknown future, no matter how intelligent it is :) 17:21:27 but it'd probably be very good at knowing what it'd do assuming it doesn't change /vastly/ 17:21:42 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 every time someone in this conversation uses the word 'vast', take a shot 17:22:01 lament: it's a useful word 17:22:06 also, rabble rabble bark bark. 17:22:07 It's vastly useful 17:22:07 AnMaster: just because the halting problem is unsolvable in general doesn't mean it's unsolvable in any particular case 17:22:09 vastly useful 17:22:09 lament: That will involve vast quantities of alcohol. 17:22:20 lament: I beat you to it by a vast margin 17:22:24 there are lots of programs that can trivially be shown to halt, or to not halt 17:22:26 AnMaster: does foo () { foo() } halt 17:22:28 will i halt? yes *shoots himself* 17:22:36 QED 17:22:39 AnMaster: warning: you CANNOT ANSWER THIS 17:22:43 alise: which language, and does its optimiser do tail-recursion? 17:22:43 alise, what language 17:22:46 sigh 17:22:47 LISP 17:22:48 you fucking pedants :) 17:22:48 alise, I can answer it in befunge ;P 17:22:51 lol 17:22:52 scarf: irrelevant, infinite memory 17:22:55 (the latter question) 17:22:58 scarf, true. Still, it seems unlikely that an AI will be a simple program 17:23:03 (define (foo) (foo)) 17:23:04 scheme 17:23:10 AnMaster: irrelevant 17:23:15 Am I correct in assuming alise is ehird, because who else would have a female nickname? 17:23:15 !befunge foo () { foo () } 17:23:17 we're not simple programs, we can still predict what we'll do to some extent 17:23:20 Unsupported instruction 'f' (0x66) (maybe not Befunge-93?) 17:23:23 lament is correctable 17:23:24 lament: you are 17:23:32 lament: Sukoshi-x or whatever she was called :P 17:23:38 (Yes, ehird) 17:23:39 gah, it spammed me with error messages in an infinite loop 17:23:40 scarf, in befunge98 as in egobot that will reflect due to file IO being disabled iirc 17:23:40 anyway back to AI! 17:23:42 sukoshi is not a female nickname 17:23:44 sukoshi isn't female 17:23:50 Darn, I was vastly beat 17:23:51 does sukoshi ever come around? 17:23:52 I forgot the actual name 17:23:52 until EgoBot itself halted it 17:23:53 she isn't? 17:23:53 she's female but the nickname isn't 17:23:55 oh the name 17:24:00 alright then 17:24:00 scarf, but there will be no stdio in that program 17:24:05 and no she hasn't been around in years 17:24:08 (I've been sexed up twice already!) 17:24:10 AnMaster: who cares if it reflects or not, given that it has no halt instructions? 17:24:12 oh that's too bad she was cool 17:24:12 -!- kar8nga has quit (Remote host closed the connection). 17:24:23 this one time sukoshi just randomly decided to try to get me to do a programming project with me 17:24:27 and i was like mmm sex 17:24:29 scarf, true. 17:24:33 oklopol: With yourself? 17:24:48 no no with her 17:24:50 scarf, but it will halt on any real system after some time due to memory running out. 17:24:59 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 well, assuming no file io 17:25:17 AnMaster: what does } do if there's no preceding { 17:25:19 reflect? 17:25:23 can't help it, i love vaginas 17:25:24 scarf, *think* so 17:25:28 scarf: are you hetero? 17:25:33 then it'll just bounce between the } and f 17:25:34 alise: yes 17:25:38 scarf: then the answer is no. 17:25:41 i love pickled vaginas 17:25:41 It's been a while since 少し has been here. 17:25:42 oklopol: It's just that programming by yourself doesn't usually imply them 17:25:43 scarf, in 98 it won't bounce on the f. 17:25:44 ummmmmm 17:25:44 alise: no, now 17:25:46 I meant, before 17:25:49 scarf: bah! 17:25:50 was someone saying something about AI? 17:25:51 scarf, f will push 0xf on the stack 17:25:51 Few years, I think. 17:25:52 Deewiant: oh lol 17:25:53 :D 17:25:54 I can't remember 17:25:56 *with her 17:25:58 scarf: are you saying that a function call cannot call another function to determine its answer? 17:26:06 just because human sociality has side-effects... 17:26:17 not ours! We're pure 17:26:17 Deewiant: i'm secretly sukoshi 17:26:18 Deewiant: r u fag 17:26:23 alise: sorry, I've lost the context somehow, there are four conversations going on at once 17:26:34 scarf: pikhq is openly straight 17:26:37 I'll terminate one or two 17:26:38 lol 17:26:56 I apologise, it's a shame when a conversation ends for a stupid reason like that 17:27:09 scarf: more than one person openly hetero = do x <- determine scarf's sexuality; make sure x is hetero; return yes!! 17:27:11 are straight people basically self-hating? 17:27:20 quick lets start another 5 discussions! 17:27:22 most people don't find themselves very attractive 17:27:26 they sublimate their hatred of themselves into liking of the opposite sex 17:27:26 alise: oh 17:27:31 that's answering a different question, though 17:27:44 eh shut up 17:27:52 i'm attractive 17:28:22 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 in fact i'm the only attractive male i know 17:28:34 scarf: :-D 17:28:40 scarf: a lot of stupid men are like that :P 17:28:46 oklopol: at this point, augur cries 17:28:58 oh wait but a girl? 17:29:01 i just read that as guy, man, whatever 17:29:05 alise: yes, that's what made it surprising 17:29:06 inferrence engine playing up again 17:29:16 all girls shuold be bi, all men should be bi, and people should live in these big sex communes 17:29:28 what do you think a self improving AI program would be written like? 17:29:35 maybe we could just have universities be those communes, that would be a perfect world 17:29:52 MissPiggy: it would be written in dubious PHP 17:29:56 scarf, what is the English word for a train that got thrown of the rails now again? 17:29:58 because, people are just that stupid 17:30:00 AnMaster: derailed 17:30:03 MissPiggy: fix improveSelf 17:30:08 well, that's more falling off than being thrown 17:30:09 Clearly, we should all be bi poly switch herms. 17:30:16 @src improveSelf 17:30:20 MissPiggy: Complicatedly. 17:30:27 scarf, ah, can it be used in a metaphorical sense about a discussion (like the Swedish equiv. term can) 17:30:40 yes, it can 17:30:43 scarf, if so, I think that applies to this/these discussion(s) 17:30:47 some idioms survive the language switch 17:30:56 OTOH, I don't see why a derailed discussion is necessarily a bad thing on IRC 17:31:05 scarf because the new one is boring :P 17:31:05 if it's being done socially, rather than an actual attempt to achieve somethign 17:31:06 scarf, hard to know what languages copied/also-invented a given idiom 17:31:07 *something 17:31:14 i have been trying to derail this one for the past 20 minutes and i'm still not sure i succeeded 17:31:21 OTOH, I don't see why a derailed discussion is necessarily a bad thing on IRC <-- I didn't say that 17:31:24 lament: which one? 17:31:26 AnMaster: no, you didn't 17:31:30 and it is quite common in this channel even 17:31:38 scarf: i don't even want to mention it for fear it might recur 17:31:40 just because I say something doesn't necessarily mean I disagree with you 17:31:55 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 I'm not alise 17:31:56 lament, it was probably derailed *before* you began, thus you should probably try to rerail it instead 17:32:02 well technically that's not talking 17:32:16 what books oklobook 17:32:22 lament: i agree, this is better for many reasons 17:32:28 MissPiggy: universal algebra still 17:32:30 well 17:32:34 I want to do some work 17:32:37 -!- Azstal has joined. 17:32:42 but I am very unmotivated 17:32:52 actually also combinatorics on words and complex analysis and some other stuff 17:33:22 if you're motivated, it's easy to motivate yourself to do pretty much anything 17:33:45 heh 17:33:53 -!- Asztal has quit (Ping timeout: 240 seconds). 17:33:57 if you're motivated, it's easy to motivate yourself to motivate yourself to be motivated... 17:35:59 So, tree rewriting. 17:36:10 this reminds me of that recent xkcd that wasn't a complete disaster 17:36:16 about tautologies 17:36:43 That one was fun. 17:36:45 yeah 17:36:47 But also kinda boring. 17:36:55 hm? 17:37:05 Well, it wasn't exactly a unique idea or anything. 17:37:08 true 17:37:14 Just "ha ha, it's a silly social situation that amounts to a tautology if you interpret it naively." 17:37:15 Well boring xkcds are kinda boring 17:37:19 >_< 17:37:36 alise, I said it wasn't a complete disaster. I didn't say it was great. 17:37:49 just because I say something doesn't necessarily mean I disagree with you 17:37:50 I'm not alise 17:37:54 Er, scratch that one. 17:37:57 heh 17:38:15 alise, perfect quoting there ;P 17:38:26 It's called a joke. :P 17:38:46 alise, I somewhat hoped it was unintentional, it would have been funnier 17:39:23 I think I ought to think more about typed tree rewriting. 17:39:32 oh? 17:39:55 you know what sucks? tree rewriting 17:40:06 especially if one of your trees is MS Word DOM 17:40:11 hehe 17:40:19 does ms word have a dom? 17:40:28 hm wait, it is xml based nowdays 17:40:30 I guess it does 17:40:36 of course it has a dom 17:40:51 lament, did old-pre-docx word have a dom then? 17:41:02 yes 17:41:08 lament: not tree rewriting like that. 17:41:30 lament, if so, doesn't every document have a dom? possibly even plain text? 17:42:30 of course 17:42:53 lament, then how do you define a DOM 17:43:08 a bunch of objects representing something 17:43:14 plain text only has one object 17:43:19 so it's a particularly simple dom 17:43:20 hm 17:43:38 lament, but if the document format is not object based? 17:43:46 you may have DOM but do you have DOOM? 17:43:48 >_< 17:43:49 AnMaster: eg? 17:43:51 oerjan, ... 17:43:55 s/^ // 17:43:57 AnMaster: how can something not be object based? 17:44:02 oh 17:44:03 easily 17:44:09 latex, i guess 17:44:21 kinda stupid to talk about dom in latex 17:44:24 alise: how the heck do you manage to >_< my jokes so quickly 17:44:28 er, not latex 17:44:28 lament, I was thinking of latex documents without pictures yes 17:44:30 I meant AnMaster 17:44:31 i mean ps 17:44:33 for being an idiot 17:44:45 impossible, it's the second time today 17:44:46 "How can you make an OBJECT of something that isn't OBJECT-BASED?? What is this DOM mystery????" 17:44:47 HELLO 17:45:14 lament, ps? oh that too indeed. Even more so. 17:45:19 well 17:45:21 you objectify it, of course. just watch out for the feminists. 17:45:28 I guess you could consider a page an object 17:45:37 except iirc it isn't defined like that in the ps code 17:46:42 alise, but please define a DOM for ps then :) 17:46:53 You only use the diarrhea^Wdiresis when it's the same letter twice, right? 17:47:04 No, you don't. 17:47:26 So "metaethics" is actually spelt metathics. 17:47:37 any two vowels, to show that they aren't a dipthong 17:47:57 Isn't that ridiculously clunky most of the time? :P 17:48:02 People will think you're writing in german. 17:48:09 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 cofficint 17:48:24 wait, wouldn't it be yöu then? 17:48:31 alise: err, really? 17:48:34 Y isn't a vowel there, I don't think... 17:48:36 gërman ïs just lïkë thïs, rïght? 17:48:38 scarf: really what? 17:48:38 to me it would be coëfficient 17:48:39 alise, oh right 17:48:41 forgot that 17:48:47 it is a a vowel in Swedish though 17:48:47 becaise ie form a dipthong in that word, the way I pronounce it 17:48:49 Co eff fishy ent. 17:48:50 *because 17:49:02 alise: co eff fish shent 17:49:11 That's one issue with the diresis; your spelling depends on your pronunciation. 17:49:20 see, if people put the dipthongs in, people would have consistent pronunciation! 17:49:22 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 pity, that's a great word 17:49:54 Yeah. 17:49:56 hm is there any unicode symbol for i without the dot? 17:50:06 This is zeend for you, my duck-loving enemy! 17:50:19 AnMaster: surely, it's a turkish letter 17:50:29 hm 17:50:38 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 I hate the word coefficient!!!!! 17:51:19 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 MissPiggy, why? 17:51:26 it SUCKS 17:51:28 -!- kar8nga has joined. 17:51:29 MissPiggy, *why* 17:51:30 Sure, you'd have to write "co-efficient" a lot, but still. 17:51:38 Also, you could plug in rules, like coefficient -> co-efficient. 17:51:45 Which would then reduce to cofficient. 17:52:02 alise, by that logic shouldn't you write dis-able for example? or de-normalise? 17:52:34 de-norm alise 17:52:43 s isn't a vowel, AnMaster. 17:52:49 oerjan, err, isn't it de-normal-ise? 17:53:07 of course norm and normal are quite close 17:53:25 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 now where did i put that figlet *whoosh* again... 17:53:42 So premptive but coefficient. 17:53:46 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 alise: wait, someone uses the diaeresis /at all/? 17:53:57 (and a few more) 17:54:16 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 also, why isn't it spelt diæ̈resis? 17:54:31 alise: wait, someone uses the diaeresis /at all/? <--- my reaction too 17:54:36 because is pronounced 17:54:38 not a-e :P 17:54:45 diah erry sis 17:54:53 alise: no, I mean diaeresis over the æ itself 17:54:59 because, it's a separate vowel from the i 17:55:02 is it? 17:55:06 alise, how would you pronounce æ? Same as æ/ä in Scandinavian languages? 17:55:10 Dye a re-sys is how I pronounce it 17:55:14 Hmm, you're right. 17:55:17 But that's just ridiculous. 17:55:20 well, I pronounce it dee erri sis 17:55:21 AnMaster: e, basically. 17:55:23 And a. 17:55:23 -!- tombom has joined. 17:55:26 , is how you pronounce it. 17:55:31 alise, so quite different then 17:55:34 AnMaster: like ae in Latin 17:55:41 scarf, I don't know latin 17:55:41 normally 17:55:46 For instance, dmon is pronounced demon, I believe. 17:55:49 it's just pronounced like an e sometimes, though, like in that word 17:56:13 alise: it's inconsistent, compare "daemon" to "paella" 17:56:21 wth is paella? 17:56:27 http://en.wikipedia.org/wiki/Paella 17:56:29 the second comes from Latin indirectly, which goes some way to explaining the discrepancy 17:56:29 I didn't know either. 17:56:35 i thought paella was paëlla 17:56:44 (in pronunciation) 17:56:53 aëaëaëaëaëaëaë 17:56:56 Then it's not plla, it's paella. 17:56:58 oerjan: it's more like paeëlla 17:57:08 which does not bode well for my transmogrifier. :) 17:57:09 it's not pa-ella 17:57:12 but pie-ella 17:57:17 suksi paeëlla 17:57:18 You'd just write p{ae}lla, I guess. 17:57:19 scarf, that looks like something from Finland 17:57:26 "paeëlla" I mean 17:57:29 heh 17:57:41 "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 my only conclusion is that English spelling makes no sense 17:58:00 Paella is not an English word. 17:58:20 alise: yes it is, just because it originally came from another language doesn't stop it being English 17:58:24 scarf, nor does most other languages with a written form of the language that is old enough 17:58:24 Well, yes. 17:58:34 But English is basically the T (top) of languages. 17:58:37 We encompasserate everything. 17:58:42 I don't know what age is the limit though, I would guess a few hundred years 17:58:46 Also, I don't love Compose any more. TeX-style input is better. 17:58:48 I want to write \top, dammit. 17:58:54 * scarf is relatively certain that "encompasserate" isn't a word 17:59:02 but I think I know what it means, anyway 17:59:10 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 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 Also, I don't love Compose any more. TeX-style input is better. <-- easy in ERC ;P 17:59:51 AnMaster: probably 17:59:59 most sounds in English have something like 10 ways to spell them 17:59:59 scarf, in reply to what? 18:00:07 scarf: so you're not encompassionate about it? 18:00:07 AnMaster: the 4 different ways thing 18:00:17 oerjan: ouch, is that even a pun? 18:00:18 lienate 18:00:25 it feels pun-like, but not exactly fitting the description 18:00:27 it is _now_ 18:00:28 scarf, well okay, but most sounds aren't unique to English though 18:00:28 (Yes, I know.) 18:00:55 not to mention that vowel sounds are different in different parts of the UK anyway 18:00:59 it's a puntmanteau 18:01:07 oerjan: stop it, seriously 18:01:23 scarf: am i getting your computer wet? 18:01:26 scarf, http://en.wikipedia.org/wiki/Swedish_alphabet#Spellings_for_the_sje-phoneme_.2F.C9.A7.2F 18:01:33 actually more than 4 18:01:40 oerjan: no, I'm feeling physically ill 18:01:55 but 4 quite common variants 18:02:01 oh dear 18:02:13 hopefully it's just tiredness rather than bad puns 18:02:23 although bad puns have induced similar effects in me before, probably psychosomatic 18:02:32 scarf, and iirc no other language has that sound basically, possibly apart from Norwegian (looks at oerjan) 18:02:54 AnMaster: there are other fun phonemes, like "ly" in Hungarian 18:03:04 It occurs to me that my linguistic and typographic style is at odds with my sthetics in other areas. 18:03:11 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 scarf, how comes? 18:03:44 scarf, and what does it sound like roughly? 18:03:48 AnMaster: I was in Hungary for a week 18:03:52 I revel in things like , and direses, but eschew such fancy in my other areas. 18:04:10 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 scarf, then you picked it up quite quick 18:04:24 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 AnMaster: we had lessons on how to pronounce hungarian 18:04:29 scarf, Germanish j = Swedish one? 18:04:33 Also, fderal. 18:04:33 I don't know german 18:04:34 AnMaster: probably 18:04:45 alise: to me, that second letter looks like a half-size s-acute 18:04:47 oerjan, right 18:04:49 encoding issues? 18:04:53 * oerjan has been practicing swedish sj lately while singing in the shower :D 18:04:54 scarf: oe 18:05:01 yep, weird encoding issues 18:05:01 oerjan, can you pronounce a Swedish "sju"? 18:05:08 AnMaster: i _think_ so 18:05:14 it's not ś, but œ 18:05:18 (for the benefit of UK people: sv:sju = en:seven) 18:05:31 the swedish u isn't quite the same as norwegian either, i understand 18:05:42 (ours is middle, not front) 18:05:56 scarf, heh that came out as it's not ś, but [box with numbers in it] 18:06:07 but I saw what alise said 18:06:20 which i _think_ means our u is rarer than the swedish one, i'm not entirely sure though 18:06:25 well, I was just pasting what I saw 18:06:36 oerjan, more like the Finland-Swedish u? 18:06:50 woah, I think I just accidentally got first post on a Slashdot article 18:06:57 and I even said something vaguely sensible 18:06:59 oerjan, further back and tongue more curved I think 18:07:28 scarf, link? 18:07:34 what about every other non-sv speaking person? 18:07:40 US, Canada, Finnish... 18:07:53 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 I love the literal "mdash" in the URL 18:08:03 alise, true, but writing "non-Scandinavian" was longer and there did only seem to be UK people present 18:08:18 finland is scandinavian. probably 18:08:19 nyahhnn 18:08:22 alise, yep 18:08:31 and they don't understand swedish 18:08:33 jacobsen v katzer's a pretty interesting court case, actually 18:08:43 alise, none of those people here atm 18:08:49 in the last two screens for me 18:09:01 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, true, but writing "non-Scandinavian" was longer and there did only seem to be UK people present 18:09:09 even that would be wrong 18:10:07 alise, ? You mean me and oerjan, well that was given that we understood it 18:10:21 and I only saw you and scarf in scrollback in addition to that 18:11:11 that does not stop it being wrong 18:11:32 alise, how? 18:12:00 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 you were attempting to provide a strictly-correct alternative 18:12:38 as opposed to a wrong one; and then gave reasons why you did not say this 18:12:48 however, you failed the first; "non-scandinavian" would not be correct 18:12:57 therefore, your statement was not correct 18:12:59 simple 18:13:00 * scarf reads the settlment 18:13:21 alise, iirc you are taught some Swedish in Finnish schools 18:13:24 alise: I guess the Finns in here, at least, understand Swedish to a reasonable extent 18:13:30 since it is second language 18:13:32 brb phone 18:13:42 Very small second language. 18:14:04 I don't know how actively scientific-type people tend to forget it after their last compulsory lessons are over 18:14:52 back 18:15:13 alise, still, learning to count to ten would be amongst the basic things 18:15:15 fizzie is older than me and so could weigh in here 18:15:27 at least from my experience of learning second languages 18:15:49 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 and the court's entered the settlement as being legally binding 18:16:35 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 I ought to work on my term-rewriting language. 18:24:18 alise are you going to self implement it 18:24:23 I mean in the language 18:25:22 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 Uh, the eventual goal is probably that, yes most likely as part of the OS. 18:25:40 especially those MCSGs that I recently created wiki articles for :D 18:25:54 alise, I thought you said tree rewriting, not term rewriting a few minutes ago? 18:26:29 Same thing 18:27:08 sure, in some cases 18:27:41 No. 18:27:43 They are the same thing. 18:29:00 string rewriting and tree rewriting are computationally equivalent; tree rewriting just makes implicit certain string properties that otherwise would be explicit 18:29:26 further, a string can be viewed as a tree with only one non-terminal node 18:30:22 and thus string rewriting is a special case of tree rewriting with completely flat trees 18:34:30 oh? tree rewriting lets you do string rewriting in the nodes? 18:35:03 no no 18:35:11 you rewrite the tree 18:35:32 its just that the tree is completely flat, with all terminal nodes hanging from a single non-terminal 18:35:38 ohhhh 18:35:43 sorry, being an idiot 18:35:50 :P 18:35:50 one *non*-terminal node 18:37:52 afk 18:37:56 well, no, afi 18:43:02 -!- augur has quit (Ping timeout: 276 seconds). 18:49:04 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 Did you get an opportunity to get the Swedish credits without taking a course, just doing an exam? 18:52:33 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 mhm 18:53:11 Heh. 18:53:30 fizzie, but even before you forgot most of the Swedish you surely remembered a few words? 18:53:41 probably how to count to ten? 18:53:50 Before I forgot, I remembered quite many words, I would say. :p 18:54:00 fizzie, err, before university I meant 18:54:03 Even after he forgot, he clearly knew quite a bit 18:54:05 before you had to remember again 18:54:17 Yes, I am reasonably certain I could have counted to ten. 18:54:20 Which is to say, he didn't forget as much as it sounded like 18:55:10 bbl 18:55:14 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 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 Yes, that is the type of person that generally gets the higher of the two possible. 18:55:57 Worst, as in, the only one which you didn't get max points on? :-P 18:56:20 No, I actually only got an M out of it. 18:56:26 a Z 18:56:31 i want to rewrite terms fff 18:56:41 (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 An M from the long might be equivalent to max from the short 18:57:29 That's possible, I guess. I don't really know the relative difficulties. 18:57:49 At least E, I guess. 18:58:26 If it weren't then it wouldn't be harder than the short, which wouldn't make much sense. :-P 18:59:43 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 B and E are rather new grades, though; it used to be just I-A-C-M-L. 19:00:21 "Rather"? Aren't they a few decades old at least? 19:00:32 E was added in 1996. 19:00:37 Darn 19:00:54 B and M in 1970, it seems, so "originally" it was just I-A-C-L. 19:01:31 I only did Swedish anyway, and in 2005 19:02:14 I did six topics, in 2002 (I think), so E wasn't exactly "new" at that point either, but still. 19:04:32 Aren't those defined as percentile intervals, by the way? 19:05:15 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 numerical grades are too hard 19:06:01 it's much easier to remember IABCMEL 19:06:08 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 (This I either didn't know, or had forgotten.) 19:08:08 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 Deprecated? Why? 19:08:43 -!- augur has joined. 19:09:18 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 fizzie: it's almost as bad in north america 19:09:28 Ah. 19:09:34 there's something called the GPA, which is a number on the scale from A to B 19:09:47 i think A is normally zero 19:09:51 but B varies from one place to another 19:09:53 ahoy 19:09:58 yoha 19:10:15 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 so when a university asks you for your GPA, they expect you to give it to them in their scale 19:10:26 Meh 19:10:43 but of course they don't tell you what their scale is 19:10:57 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 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 I've always wondered what the point of such is 19:14:44 Hi alise 19:14:57 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 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 fizzie, to further mess up things I have my degrees in two different systems 19:36:20 one for those I read as a CS student, and one for a few other courses I took on the side. 19:36:41 I hope I never have to calculate average for that. What is average of 5 and VG? 19:42:29 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 I've ignored them, at least 19:44:16 -!- cheater3 has joined. 19:44:41 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 There's an average in the record transcript? I haven't noticed. 19:45:45 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 Because there is no sensible mapping 19:46:24 How would you map pass/fail to a numeric grade? 19:46:32 Deewiant, you could look at what is "not passed" "passed" passed with excellence" in the various systems 19:46:40 Deewiant, in our numerical system fail is 1 or 2 19:46:45 Typically there's only one, pass 19:46:46 Deewiant: I wouldn't mind a 0/5 mapping. :) 19:46:54 Fail isn't included in the transcript 19:47:03 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 there is one fail 19:47:24 Deewiant, right 19:47:45 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 fizzie, 0/4 seems more reasonable if same as here 19:47:49 Mapping it to 5 is sensible in some ways but it has the unfortunate effect of raising everybody's averages :-P 19:47:57 bbl 19:48:46 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 Yes, that's why you can't really map it to anything other than 5. 19:51:39 So it really is most prudent to just ignore them in averages :-P 19:59:56 yo 20:00:03 oy 20:00:04 hi 20:01:17 alise, should I stop attempting to remind you? I vaguely recall you saying that it wasn't the plan anymore 20:01:50 We are waiting on a response from the advisor-in-matters-regarding-lawsomes first. 20:01:58 Ah 20:04:59 i was pretty annoyed at out swedish course being fail/2/4 20:05:59 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 I mean, one single system would make more sense 20:06:38 oklopol, why were you annoyed at that? 20:06:51 also 2 is a fail degree here 20:07:22 AnMaster: what fizzie said 20:07:29 drags my average down 20:08:49 AnMaster: Well, that's a separate issue 20:08:56 While we have them, it's best to ignore them 20:13:01 Deewiant, has no one suggested that you all change to one system? 20:13:28 oklopol, with enough other courses that you get 5 in your average would approach 5 20:13:38 and if you then round to 4 decimals you could get 5 20:14:05 I don't know if it's been suggested 20:14:14 i think it's 5 now, if you round to one decimal 20:14:23 oklopol, see :) 20:14:28 but 4 would require about a thousand courses 20:14:43 oklopol, well sure. rounding to 1 decimal is probably saner anyway 20:15:05 just write it as 5.0 then (or 5,0 if you use decimal comma like in Sweden) 20:17:50 we use it, i don't 20:19:55 ...omg i'm back on irc 20:20:09 i didn't even notice 20:20:19 lol 20:20:20 anyway 20:20:35 can anyone think of a better computational model of the reals than floating point? 20:20:52 i.e. fast, but without such inanity as breaking such fundamental mathematical laws as equality and... just about everything else 20:20:55 well it's not reals i guess 20:21:02 Fixed point 20:21:19 floats are an inexact model of the rationals 20:21:22 just rationals, except with a less stupid representation than 314159/100000 20:21:22 not the reals 20:21:30 erm maybe off by one with the zeros there 20:21:31 oklopol: yeah i know 20:21:40 computable reals are closer 20:21:45 yar i mean rationals really 20:21:50 Deewiant: fixed point breaks mathematical laws doesn't it 20:21:53 overflow 20:22:05 i guess you can overflow to (Z,Z) 20:22:07 You want arbitrary precision? 20:23:06 well... no 20:23:08 i just want a pony :) 20:23:38 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 Well you can't have one 20:24:42 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 and floating point doesn't let me do that, because it is a bad person and hates mathematics. 20:25:08 (at least, I think NaN fucks with that example; if not, substitute one it does fuck with) 20:25:24 well you can just define = to be rougly equal?? 20:25:55 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 no, = should mean /equal/ 20:26:08 but then it isn't an equivalence relation and cthulhu is totally present again 20:26:27 you can quotient by an equivalence relation 20:26:38 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 then the identity type works 20:26:48 alise: You have to define "programmers everywhere", some programs do rely on float behaviour (and others on their HW-speed) 20:26:59 MissPiggy: I don't care, it's still Really Surprising Behaviour when the rulez are broken 20:27:04 and it restricts how I can optimise, for one 20:27:07 :( 20:27:17 Deewiant: Well, those programs aren't written in my glorious languages :P 20:27:42 If you only meant yourself, just use fractions of arbitrary precision ints 20:28:01 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 (Although it's really a trivial issue I guess *shrug*) 20:28:17 Deewiant: The reason I don't want that is that it's... well... not fast. 20:28:27 Not on today's CPUs, at least. 20:28:42 Do you have programs that rely on the speed of that enough for the difference to be noticeable? 20:30:25 alise: If you want something non-Lovecraftian, it'll be slow. 20:30:32 Admittedly I'm just /assuming/ that rationals are pretty slow, because people don't use them. 20:30:39 Deewiant: Yes, but not /glacial/. 20:31:24 Hmm. What's the issue with: 20:31:31 I disagree /STRONGLY/! 20:31:36 If overflow is a problem then it'll be pretty glacial I'm afraid :-P 20:31:49 Rat (an integer) 20:31:54 -!- cheater3 has changed nick to cheater4. 20:31:54 = Fixed thatint 20:31:59 sdf 20:32:00 basically 20:32:11 fixed-point with compile-time dynamic size (and run-time too for bigfloats) 20:32:15 It's possible to write correct programs that are efficient! 20:32:24 using the smallest integer representation that can store all the values of that size 20:32:27 you get my point 20:32:37 Except whence "that size" 20:32:39 that's lesser than reals, e.g. you don't get 1/3 20:32:45 Deewiant: compile-time or run-time 20:32:50 if run-time, increased on overflow 20:32:54 like int->bigint conversion 20:32:56 And often enough it'll be run-time and hence glacial 20:33:03 Not /glacial/... 20:33:16 Glacial enough 20:33:23 This is equivalent to what I said modulo implementation details :-P 20:34:50 Not as glacial as (Z,Z) 20:34:53 is the point 20:35:50 what the hell are you talking about 20:35:51 Hard to say; maybe not 20:36:00 listen, people do something called NUMERICS 20:36:01 -!- zzo38 has joined. 20:36:07 and when they do that they find algorithms which 20:36:09 (A) WORK 20:36:12 (B) FAST 20:36:29 alise: what about numbers of the form m/2^n ? that's at least a ring 20:36:48 and should be fairly fast since floating point is 20:37:00 (here i'm intending unbounded n) 20:37:07 but bounded m? 20:37:12 well no that too 20:37:12 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 oerjan: erm can that represent 3.14159? 20:38:07 admittedly i'm not thinking very clearly about this, some sort of mental block prolly :P 20:38:29 zzo38: this a set language? if you can define the halting set, then you'd be super-TC is my intuition. 20:38:59 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 http://esoteric.voxelperfect.net/wiki/Hyper_Set_Language 20:39:07 alise: it's just storing an arbitrary number of bits 20:39:13 oh ofc 20:39:17 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 er, superset surely 20:39:57 (assuming 3.14159 = 314159/100000 there) 20:40:10 no, subset. you get at _least_ all rationals 20:40:26 hmm 20:40:50 so basically, the question is "what is an efficient representation for the rationals" 20:41:05 rationals? 20:41:09 probably 20:41:11 (m,2^n) at least, intuitively /seems/ faster than (m,n) 20:41:11 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 wait wait, I'm not seeing the values for m and n to get 3.14159, prolly doing something stupid 20:42:23 http://www.shoeboxblog.com/?p=15314 20:43:25 Prelude> 314159 / (2 ** 16.61) 20:43:25 3.140807200338285 20:43:30 presumably m and n : Z, though 20:44:18 Deewiant: :D 20:44:23 you can store some of the correct first digits of pi, just like with base 10. 20:44:40 right, but not 3.14159 *exactly* 20:44:56 it is just GIVING UP if you think you can't do correct and efficient programs 20:45:08 yes it's difficult, but if you think it's impossible you are educated stupid 20:45:14 alise: of course not, 314159/100000 is in smallest terms 20:45:19 and evil 20:45:24 oh wait what the hell is that .16 about 20:45:24 or actually the whole thing 20:45:24 you can, you just need a lot of bits 20:45:25 oh wait 20:45:26 9 20:45:26 yeah true 20:45:27 err 20:45:28 yeah wtf am i thinking 20:45:28 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 oerjan: yeah :/ 20:45:42 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 Prelude> 314159 / (2 ** 16.609640474436812) 20:45:44 3.141589999999999 20:45:47 close enough :P 20:45:55 you cannot get rid of the prime 5 factors in the denominator 20:45:59 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 MissPiggy: we know 20:46:18 Deewiant meant if you want correctness /in general/ it's glacial 20:46:23 rather than inventing special representatiosn each time 20:46:24 no wait, i'm being completely retarded atm 20:46:24 grr 20:46:25 what does glacial mean? 20:46:55 slow. 20:48:16 zzo38: are you familiar with any of the usual constructions of real numbers as sets? 20:48:39 computable reals are nice apart from the whole lack of equality thing 20:48:41 that's kinda bum 20:48:42 well i guess yours works as one of them 20:48:55 oerjan: No, I am not familiar with that 20:49:37 oerjan: wait how is (m/2^n) more efficient than (m/n)? 20:49:38 arithmetic? 20:50:03 alise: yeah it's mostly like binary then... 20:50:17 m/2^n + u/2^v = (m(2^v)+(2^n)u)/2^(n+v) 20:50:26 two multiplications instead of 3 20:50:39 with n/m, you have to keep doing gcd 20:50:49 and those multiplications are shifts 20:50:50 oh except for 2^v & 2^n has to be computed.. 20:51:06 ahh oerjan you are good at this 20:51:12 so stuff like addition are really slow 20:52:03 yeah 20:52:14 the problem is that this representation doesn't seem to have many of the numbers humans like :( 20:52:27 at least floats "usually" are pretty similar to decimals if you stick to obvious things 20:52:40 of course that's no real objection, just a human one 20:52:45 so, wait, oerjan 20:52:48 this isn't a subset of the rationals 20:52:57 you can't represent 314159/100000 20:53:04 yes it is 20:53:18 you are swapping sub and superset 20:53:24 err right 20:53:26 it has to be a superset 20:53:27 >= 20:53:28 you said 20:53:49 i said, if you want all field equalities 20:54:08 i do :< 20:54:10 including division. m/2^n only supports addition, subtraction and multiplication exactly 20:54:13 I guess (Z/Z) is the best for me then 20:54:21 which doth make me sad 20:54:44 what 20:54:50 what 20:54:57 how does it support division 20:54:58 1/3 20:55:04 alise but you don't care about nice looking numbers, all that matters is being within some tolerance of them 20:55:05 oh lol 20:55:06 on the bright side, you at least can have equality work exactly with those 20:55:07 wtf 20:55:09 and the output of the algorithm is too 20:55:18 and this is not 'impossible to do efficiently' 20:55:19 somewhere in there i read it supports division 20:55:22 :D 20:55:33 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 it's nontrivial stuff, that's why you can't just make a field out of it 20:55:55 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 well yeah that is why I use an exact calculator 20:56:16 with floats they're at least, you know, close enough 20:56:24 but a calculator is different than numerical algorithms 20:56:26 I guess I'll just totally love rationals 20:56:31 MissPiggy: yes but they need specialised code anyway 20:56:31 I dunno I am scared to use floats 20:56:42 I don't use them without a lot of hard work on paper 20:56:44 I'm talking about the main thing you get when you think "oh I need sum division here" 20:57:07 yeah i don't like floats 20:57:10 MissPiggy: you program satellites or something? 20:57:47 What are the usual constructions of real numbers as sets? 20:58:16 my OS/language is going to be so amazing :| 20:58:33 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 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 oerjan: well you cannot represent "pi" or "e" 20:59:01 only approximations to some tolerance 20:59:03 MissPiggy: OK, I guess that's one 20:59:09 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 actually this ties into my idea for implementation types 20:59:11 basically 20:59:13 alise: you might in some representations 20:59:18 unknown whether e*pi is rational? 8| 20:59:19 you have an (opaque) value pi or e or 1/3 or whatever 20:59:23 oklopol: yeah it is 20:59:24 zzo38: of course adding them produces a new progam etc etc 20:59:26 erm 20:59:32 oerjan: and an opaque type Real 20:59:35 MissPiggy: Yes, that too is one, like something 20:59:38 it's not known whether e+pi and i think e*pi is algebraic, but rational, that was new to me 20:59:44 oerjan: and at compile-time, you plug in some acceptable representation for it 20:59:47 like Float or Rational 20:59:54 oh wait 20:59:58 and it uses the definitions of pi or e or 1/3 for that type 21:00:00 e*pi might be easier for algebraic 21:00:00 zzo38 (that's not really set theory though but I just thought that's a cool way) 21:00:00 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 oh wait no 21:00:11 so you write code that you can prove correct but cannot wrong (because e.g. it does = on computable reals) 21:00:17 and the boundary between them is always a real number 21:00:21 and substitute elsewhere whatever representation is acceptable 21:00:23 cool methinks. 21:00:41 alise: no you can't just write a correct program on R and then use it with floats 21:00:45 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 in any case it's definitely known e*pi is irrational, it just hasn't been proven 21:00:50 MissPiggy: of course it won't be correct on floats 21:00:55 which is why you specify an _acceptable_ type manually 21:00:59 maybe you're ok with floats 21:01:03 maybe you want rationals 21:01:12 maybe you want computable reals because you don't use = and don't care about speed 21:01:12 oh and MissPiggy mentioned cauchy sequences which i was thinking of next 21:01:12 etc 21:01:28 you can't /know/ something that isn't proven 21:01:32 you can strongly suspect it, though 21:02:12 oklopol: oh maybe it's just algebraic that is unknown for them, i'm not sure 21:02:37 well, pi and e algebraic is a deep result, e and pi irrational is trivial 21:02:45 err 21:02:50 alise: oh, that makes me realize, you can also represent all algebraic numbers exactly. even more complicated though i presume. 21:02:55 transcendential i mean 21:03:04 oerjan: just do it symbolically? :P 21:03:17 that's how CASs do all this funky number stuff ofc 21:03:34 oerjan, I guess you cuold just list them as polynomials + an index (which root) ? 21:04:04 hmm 21:04:17 actually that wouldn't really help because how do you compute the new index 21:04:59 oerjan: not known whether e+pi or e/pi is irrational according to internet 21:05:33 e = pi / 3 * 2 21:05:53 no it's not 21:05:54 :P 21:06:21 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 hey that would be weird.. if it was undecidible whether e+pi is trancendental 21:06:43 why would that be weird 21:06:51 that would be beautiful 21:07:05 MissPiggy: what are indexes? 21:07:08 personally i can't decide if it would be weird or not 21:07:12 (for roots) 21:07:16 oerjan I meant the 3rd root, e.g. 21:07:24 lament: but do you agree it'd be beautiful? 21:07:24 but that seems like a bad way to distinguist 21:08:16 oklopol: does that mean e*pi _is_ known? 21:08:34 http://planetmath.org/encyclopedia/LindemannsTheorem.html 21:08:37 what logic systems need is an FFI to other logic systems 21:08:39 this is a cool theorem by the way 21:08:43 :) 21:09:11 alise hehe we should get them to trust each other 21:09:28 I saw an attempt at converting HOL proofs into Coq that was pretty heavy 21:10:26 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 also unsafePerformMathematica 21:10:32 for boring calculations.. 21:11:09 oerjan I don't know galwah theory :( 21:11:15 what logic systems need is an FFI to other logic systems <-- kripke models! 21:11:23 Though seemingly innocuous, a proof of Schanuel's conjecture would prove hundreds of open conjectures in transcendental number theory. 21:11:34 oerjan: of course we need some sort of trust-metric between them all 21:11:41 so we can import proofs from other systems that we can't prove in our system 21:11:47 but only if they pass a certain Bullshit Factor 21:11:54 whose intention is to weed out the bullshit. 21:12:05 MissPiggy: well the point here iirc is that there are field automorphisms of C that map one root onto any (?) other 21:12:37 (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 well let me try to recall an example 21:16:50 say the well-known intuitionistic non-tautology A or (not A) 21:18:25 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 oka; 21:19:00 then in the former, not A is _also_ false, since there exists a larger world in which A is true 21:19:33 and A or (not A) is then also false in the former, since or combines in each world 21:19:54 ergo: A or (not A) is not a tautology 21:20:29 oerjan, I didn't quite get that either. 21:20:43 tautology in ??? 21:20:56 in intuitionistic propositional logic 21:21:00 oerjan, or basically it sounds like a load of bullshit worthy of that recent xkcd about proving from invalid axioms ;P 21:21:09 ::/ 21:21:20 *worlds not world's 21:21:32 er right 21:21:35 but oerjan it is not a tautology so you have proved it is now the world explodes?? 21:21:39 I don't undersatnd 21:21:49 OH 21:21:54 what? 21:21:55 MissPiggy: i have proved that it is _not_ a tautology 21:21:58 AnMaster: yeah xkcd to rebut valid mathematical techniques, sounds like a funny joke to me 21:21:58 A or (not A) is ***not*** a tautology 21:21:59 no it's boring 21:22:05 kinda important to read ALL the worlds, sorry about that! 21:22:12 read all the worlds 21:22:55 oerjan, this is a metatheorem though? 21:23:09 oerjan, I mean you couldn't prove this internally, using a constructive logic could you? 21:23:10 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: 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 just commenting upon how insane it sounded to someone who isn't a specialist 21:23:56 MissPiggy: well i guess not, but then you cannot do that with boolean logic either... 21:24:03 Then what were you doing? Either you think it's bullshit or you think it isn't. 21:24:14 alise, see the line I said just after that 21:24:17 before replying 21:24:30 ";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 unless you have ~10 seconds of lag, in which case I pitty you 21:24:34 *pity 21:24:37 One t. 21:24:50 true 21:24:53 > 1%(1%n); 21:24:53 didn't notice that typo 21:24:53 1*n%1 21:24:53 <- Well, it's a start, Pure, but I think you can simplify that a wee bit. 21:24:57 *^ 21:24:59 not <- 21:25:02 AnMaster: you do it a lot :P 21:25:14 alise, I don't think I use that word very often though 21:25:18 so unlikely 21:25:21 Enough. 21:26:43 oerjan, when is that type of logic that proves A or (not A) to not be a tautology actually useful? 21:26:59 > 0+x = x; 21:27:00 > x+0 = x; 21:27:00 > 0*x = 0; 21:27:00 > 1*x = x; 21:27:00 > x*0 = 0; 21:27:00 > x*1 = x; 21:27:02 > 1%(1%n); 21:27:04 n%1 21:27:06 I schooled you, son. 21:27:10 alise = zero 21:27:10 Now yo a clever bitch of a rewriter. 21:27:12 AnMaster: when you want to find out what are the intuitionistic tautologies? 21:27:23 oerjan: i think AnMaster is assuming that (a or not a) is actually a tautology "IRL" 21:27:31 thus his inquiry; just heuristics, though 21:27:36 alise, not correct 21:27:39 ok 21:27:53 I was wondering what sort of other math stuff this is used for 21:27:59 oerjan, and why do you want to do that? 21:28:10 AnMaster, metatheoretic investigation of foundational questions 21:28:10 AnMaster: also, i believe there are other forms of kripke models for some other logics (e.g. modal ones?) 21:28:21 what MissPiggy said 21:28:40 MissPiggy, hm okay 21:28:57 AnMaster: this _did_ start out with alise's comment about logics needing FFIs for each other... 21:29:01 oerjan, how do you pronounce "kripke" btw? 21:29:11 > x%(y*x) == 1%y; 21:29:11 x*y==y*x 21:29:17 yes, Pure, turns out that's true also. 21:29:27 AnMaster: i think it's german. or wait was he american? 21:29:33 oerjan, FFI in this context being? All I can think of is foreign function interface, which makes no sense here. 21:29:55 alise, what language is that? 21:30:00 http://en.wikipedia.org/wiki/Saul_Kripke 21:30:00 Pure 21:30:29 AnMaster: i think that _was_ the intended meaning. how to call one logic from within another. 21:30:50 kripke models allow you to speak about intuitionistic truths in classical logic, say 21:31:01 alise, interesting language. Did you provide a few rules and it then did various simplifications on it basically? 21:31:02 > (x+y==y+x) = true; 21:31:02 > (x*y==y*x) = true; 21:31:03 > x%(y*x) == 1%y; 21:31:03 1 21:31:05 schooled. 21:31:11 (kripke was american) 21:31:12 AnMaster: Yeah; basically, you define tree -> tree rewritings. 21:31:16 er is 21:31:17 alise, sounds like perfect to write a CAS in. 21:31:19 alise make it do partial fractions 21:31:20 Then you give it a tree and it rewrites it recursively. 21:31:26 AnMaster: exactly; this kind of stuff is the base of CASs 21:31:27 the bastard is still alive :D 21:31:30 MissPiggy: no ;P 21:31:32 *:P 21:31:44 alise please :(((( think of my homework!! 21:31:52 MissPiggy: fine what do you want it to aftually do 21:31:55 *actually 21:32:20 alise, what is the complexity of this way of computing. 21:32:21 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 AnMaster: You can't ask for the "complexity" of a paradigm, that's ridiculous 21:32:56 alise, well true. I realised it was badly worded. But I can't think of another way to phrase it 21:32:57 lets see... 21:33:03 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 you have to solve for P and Q, and do it for more general cases.. 21:33:14 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 But there are better algorithms 21:33:21 alise, given that you rewrite it recursively it sounds like some stuff would be rather inefficient to implement in it 21:33:31 Pure isn't naive; it compiles to LLVM and all. 21:33:32 alise, right 21:33:38 21:32 < alise> AnMaster: You can't ask for the "complexity" of a paradigm, that's ridiculous 21:33:43 it's not ridiculous :P 21:33:54 well 21:34:01 maybe paradigm isn't the right thing 21:34:29 "What is the complexity of tree rewriting" doesn't make sense because it depends on the complexity of the computation 21:34:42 but stuff like mutable vs non-mutable and complexity completeness results are quite deep theorems in programming 21:34:46 alise, what is the complexity of the best known algorithm for it then? 21:34:58 alise: apparently now ghc will also compile to LLVM, i hear 21:35:06 AnMaster: Still a meaningless question 21:35:12 not that i would know, never having downloaded it *ducks* 21:35:15 oerjan: It's replacing -fvia-c. 21:35:21 alise, oh? 21:35:28 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 alise, if I had meant to ask about that I would have asked about that 21:35:56 I meant big O notation here 21:36:06 not milliseconds 21:36:13 Then your question makes no sense. 21:36:16 and the latter would vary a lot 21:36:20 AnMaster: what is the complexity of brainfuck? 21:36:28 brainfuuuuuuuuuuuuuuuuuuuuuck 21:36:38 alise, what is the complexity of a given way to implement bf 21:36:48 set the "given way" to "best known" 21:36:49 brainfuck is RE 21:36:50 lol 21:36:54 AnMaster: That question makes no sense at all. 21:37:00 now someone implement brainfuck with tree rewriting 21:37:06 oerjan, heh 21:37:08 woah 21:37:11 AnMaster: What is the complexity of a naive implementation of Brainfuck? 21:37:14 how would you do that (in a cool way) 21:37:20 AnMaster: I don't think you can have algorithmic complexity of non-algorithms. ;) 21:37:22 alise, first define the naive implementation 21:37:29 http://qwiki.stanford.edu/wiki/Complexity_Zoo:R#re 21:37:32 MissPiggy: define the different stuff as operators 21:37:36 kripke is an observant jew 21:37:38 pikhq, oh right algorithms must terminate or how was it? 21:37:40 matisyahu is an observant jew 21:37:41 AnMaster, ^ 21:37:43 then you can generate bf programs with symbolicness 21:37:43 well okay on that thing it fails 21:37:46 i like matisyahu 21:37:50 therefore, kripke is cool 21:37:52 and reason about them 21:37:56 AnMaster: no, pick one implementation 21:37:58 AnMaster: any 21:38:02 matisyahu the singer ? 21:38:04 AnMaster: tell me how you would work out "its complexity" 21:38:08 hint: this question is /completely meaningless/ 21:38:23 alise what about my answer? (RE) is that not correct? 21:38:32 MissPiggy: suer 21:38:54 MissPiggy: is that the complexity of the evaluation function, though? 21:39:01 I mean, yes, technically 21:39:04 but I don't think it's what AnMaster means 21:39:06 alise that's a tricky one... 21:39:14 yeah it's not what he means I know that :P 21:39:16 he's trying to say "how much OVERHEAD does tree rewriting imply" 21:39:19 it was a silly answer 21:39:28 which is nonsensical too, s/tree rewriting/a given implementation of tree rewriting/ 21:39:31 then rigorously define overhead 21:39:33 then maybe i can answer 21:39:50 we need a co-RE language 21:40:10 there's probably classes of algorithms in tree rewriting that have asymptotically lower efficiency than in a language with mutable reference 21:40:28 by _result I can't remember the name of ;_;_ 21:40:40 you can have a tree rewriting language with mutable references, of course 21:40:51 MissPiggy: that lisp vs. pure lisp link from the other day? 21:41:03 MissPiggy, tree rewriting can be mutable in place? Huh? 21:41:07 oh wait, I misread that 21:41:31 alise, that seems rather messy 21:41:34 and not fitting in 21:41:35 oh well I am probably wrong about that statement 21:41:36 but sure 21:41:38 it's not 21:41:43 Pure has side-effects 21:41:43 alise: that's graph rewriting then, isn't it 21:41:46 causes no issues at all 21:41:58 oerjan: well you consider references externalities usually but yeah 21:42:02 side effects are annoying 21:42:06 AnMaster: monads. 21:42:12 or other ways of modelling state 21:42:31 alise, passing the state along all the time? 21:42:40 doesn't solve the issue with IO though 21:42:57 You just model that as a data structure with continuations. 21:43:04 You can sugar it from inside the language. 21:43:07 hm 21:43:27 that might work 21:44:45 nit 21:44:48 not might 21:44:51 does 21:44:59 what about nit? 21:45:01 this is a solved problem 21:55:30 computer modern is beautiful 21:56:14 modern is so ancient 21:57:28 your mom 21:58:32 incidentally "modern" means the mom in some norwegian dialects 21:59:20 And Swedish, though it's probably archaic 21:59:42 could be a swedish loan, actually 21:59:50 then it might not 22:02:24 it means both modern and "the mother" in Swedish. And yeah somewhat archaic 22:03:36 Different pronunciation for the two meanings though 22:03:42 well yes 22:03:47 very different 22:07:49 Deewiant, does English have that? 22:08:02 one spelling, different ways to pronounce, different meanings 22:08:23 http://en.wikipedia.org/wiki/Homograph 22:08:39 oh right 22:09:27 http://en.wikipedia.org/wiki/Generalized_context-free_grammar 22:09:35 :D 22:10:01 -!- jcp1 has joined. 22:10:11 "oerjan: oklopol: does that mean e*pi _is_ known?" <<< if e*pi was known, then e/pi would also be 22:10:20 Deewiant, actually isn't it instead http://en.wikipedia.org/wiki/Heteronym_%28linguistics%29 ? 22:10:24 err 22:11:05 -!- jcp has joined. 22:11:05 -!- jcp has quit (Remote host closed the connection). 22:11:08 oklopol, known as what? 22:11:14 oklopol: not if it was known _not_ to be rational 22:11:24 I guess "is trancedental" 22:11:32 although if it were algebraic, the other one couldn't be 22:11:34 (as in, that is the question) 22:12:12 -!- zzo38 has quit (Quit: Ceci n'est pas une pipe). 22:12:32 AnMaster: (ir)rational, actually 22:12:45 or, well, both 22:13:06 AnMaster: Right you are, that's more specific 22:13:10 oerjan, any transcendental (sp?) number would be irrational right? 22:13:27 yeah but the point it isn't known to be either 22:13:36 *is it 22:14:15 oerjan, but I can tell you something: it isn't an integer ;P 22:14:25 duh 22:14:31 yeah lame 22:14:52 incidentally e^pi is algebraic 22:15:07 or wait 22:15:08 algebraic! 22:15:24 wasn't that used to prove that pi is transcendental or something? 22:15:24 * oerjan is misremembering 22:15:27 but algebraic? 22:15:34 that doesn't sound quite correct 22:15:41 wasn't i involved too? 22:17:20 oerjan, something that confused me is the computable/non-computable number thingy 22:17:24 what does that actually mean 22:17:29 and are there any examples 22:18:29 someone was trying too hard to be pretentious when writing this 22:18:29 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 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 AnMaster: chaitlin's constant is a real 22:19:01 it is not computable 22:19:09 (well, a given instance of it) 22:19:10 *chaitin's 22:19:35 alise, "the latter being itself" quite throw me off first time I read that sentence... 22:19:36 basically, RR contains unknowable elements. 22:19:46 AnMaster: I still haven't managed to read that paragraph! 22:19:55 alise, it was fine up until that point 22:20:02 a bit pretentious yes 22:20:04 but readable 22:20:09 http://en.wikipedia.org/wiki/Computable_number 22:20:10 after that it just makes no sense 22:20:11 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 or so i think. there are probably many equivalent definitions 22:20:30 Ω is indeed one of the examples given 22:20:46 "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 alise, some that is familiar from what I read elsewhere, it helps 22:21:30 AnMaster: chaitlin's constant is a real <-- oh right 22:21:34 oklopol what about doing it without carrying tape? 22:23:15 can you push say > 3+ > 4+ > 6+ > through [1- > 7+ <] to get a program with one less loop? 22:23:35 so what modern is both modern and ancient in swedish 22:23:45 *archai 22:23:45 c 22:23:56 oklopol, what? 22:24:19 oklopol, I didn't understand that 22:24:20 "oerjan: oklopol: not if it was known _not_ to be rational" <<< that's why err 22:25:17 MissPiggy: esotope does thinsg like that 22:26:11 alise cool! 22:26:20 *things 22:26:28 http://code.google.com/p/esotope-bfc/ 22:26:36 can it evaluate a brainfuck program without making a tape? 22:26:40 it also compiles hello-world-with-loops to a puts call :) 22:26:50 LOL 22:26:51 http://code.google.com/p/esotope-bfc/wiki/Optimization 22:26:54 MissPiggy: not just hardcoding 22:26:58 it really can do that kind of reasoning 22:28:29 MissPiggy: i don't get your "push say" thing 22:28:32 haha that compiler is such a hardcore optimizer that you have to use a specially fast tool to run it 22:28:44 oklopol, I just mean like partial evaluation or something, but all the way 22:29:25 MissPiggy: well, you don't want to evaluate all non-input-dependent code 22:29:30 because it might not terminate 22:29:41 what you _want_ to do is evaluate all code that you can automatically prove to terminate 22:29:58 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 so that compilation doesn't take fifty-billion years just because execution does 22:30:11 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 it also compiles hello-world-with-loops to a puts call :) <-- that is quite trivial 22:30:38 MissPiggy, I can describe the algorithm to do that 22:30:49 AnMaster did you read the documentation ??????????? 22:30:54 AnMaster that is not trivial 22:30:59 MissPiggy, I coded something very similar myself 22:31:02 so I know how to do it 22:31:11 AnMaster cool don't you have the code? 22:31:26 MissPiggy, mine is rather buggy, but it is coded in erlang 22:31:31 MissPiggy: he had to ask the author of esotope how the extended euclidian algorithm worked :) 22:31:40 highly parallel bugs 22:31:45 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 no 22:31:53 not quite 22:32:01 yes for that algorithm, I was not as smart back then 22:32:01 why am I not surprised you said that :) 22:32:13 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 wait you are now? why didn't somebody inform me :( 22:32:49 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 alise: they had a singularity in sweden, but they're keeping it under wraps 22:33:03 MissPiggy, now those constants can also be propagated to output 22:33:07 so you get constant output 22:33:12 now merge those outputs 22:33:17 MissPiggy, see? trivial 22:33:29 MissPiggy, you need to unroll constant iteration loops of course 22:33:40 oh yeah neat 22:33:41 each loop can be represented as a polynomial 22:33:45 okay I will just implement this then 22:33:48 wait 22:33:57 what how do you represent them as polynomials? 22:33:58 MissPiggy, well, each non-IO balanced loop that is 22:34:30 does the compiler optimize random access? 22:34:33 that's the only thing that matters 22:34:46 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 in the current cell 22:34:51 well 22:34:57 if the next cell was zero before 22:35:03 otherwise you add it instead of set it 22:35:07 [><++>] 22:35:18 i mean sure it's cool to compile constants into constants, but you could just do that by running the program 22:35:20 augur, trivial, early merging would take care of >< 22:35:24 as pointed out infinite times 22:35:26 then you get an unbalanced loop 22:35:32 oklopol: not without risking halting 22:35:34 AnMaster: BUT WOULD IT TAKE CARE OF THE FISH 22:35:40 hmmmmmmmmmm 22:35:41 or, if you solve that, extremely long execution times 22:35:42 alise: stfu 22:35:44 augur, -_- 22:35:48 MissPiggy: http://en.wikipedia.org/wiki/Generalized_context-free_grammar 22:35:49 erm *risking non-halting 22:35:49 run for a microsecond 22:35:50 I just realized this is exactly the same as having a type... 22:35:55 tape* 22:35:59 oklopol: nondeterministic, and less effective than this 22:36:03 actually, check out all of the pages i recently made. grammars :D 22:36:11 because as you evaluate the program you build up a data like >+++>+++++>+>+>+>>+++>>+++ 22:36:15 who gives a shit, point is it's not an important optimization 22:36:17 which is just a data structure that represents a tape! 22:36:17 MissPiggy, of course if you can figure out the value before at that tape position then it is trivial 22:36:46 augur, nice I just saved a big list of pages you made to read 22:36:47 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 "I deliberately used a joke sort algorithm" 22:37:12 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 gnome is a joke? 22:37:47 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 just not one of the very fastest ones 22:37:54 it is, actually 22:38:25 alise, source for that 22:38:39 because I have never heard of that before 22:38:47 http://www.cs.vu.nl/~dick/gnomesort.html 22:38:49 clearly tongue-in-cheek 22:39:17 btw, I only learned the name after I implemented it 22:39:29 tongue in your mom's cheek 22:40:11 btw wikipedia says: 22:40:13 "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 and for most bf programs you can't reorder the whole thing due to unbalanced loops 22:41:04 nor can you move stuff freely across a balanced loop 22:41:20 there are fast stable sorts 22:41:21 until you figure out if they depend on each other 22:41:42 oklopol, true, but can you do such complex conditions easily? Also it gave adequate performance for this case 22:42:20 MissPiggy, anyway I gave up on the project when I got stuck on graph based optimisation 22:42:30 didn't know enough about that sort of thing to make it actually work 22:42:36 know somewhat more nowdays 22:42:39 i want project fortress, agda and pure to have sex 22:42:44 and produce a beautiful, beautiful language baby 22:42:50 but not really interested in taking it up again 22:43:04 AnMaster: probably you could just have intelligence in your swap and < functions. 22:43:26 you should do it!! 22:43:30 oklopol, it all depends on what is between them 22:43:47 alise, "project fortress"? never heard about that one before 22:43:59 alise hehe yeah good plan 22:44:01 alise: dog. spare dog legs. nails. 22:44:05 hammer. 22:44:10 http://projectfortress.sun.com/ 22:44:12 maybe we should bring then on a double date? 22:44:16 guy steele's baby 22:44:19 good way to break the ice 22:44:25 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 implicit parallelism, yar. two-dimensional mathematical syntax with beautiful latex rendering, yar 22:44:39 then if tape was never used it's variable was never declared 22:44:41 sleeeeeeeeeeeeeeeeeeeeeeeep -> 22:44:41 cool typing stuff, yar 22:44:48 totally sweet, yar 22:44:55 alise, what about go? 22:45:01 what about go? 22:45:02 didn't you love it too 22:45:07 shouldn't it be in that mix too 22:45:13 if you want a systems programming language 22:45:20 i myself have transcended such petty desirse 22:45:21 alise, oh and smalltalk and haskell 22:45:22 *desires 22:45:29 agda includes the desire for haskell by being superior to it 22:45:36 alise, hastalk 22:45:39 (though not suitable for practical programming, that is irrelevant when language-mating) 22:45:40 imagine it 22:45:47 smalltalk is a nice OOP language, but you don't need it if you have a nice functional paradigm 22:45:54 because it's superior 22:46:01 alise, so mix them up and produce a bastard language 22:46:03 adding columns is more important than adding rows in the expression problem, so FP wins 22:46:12 AnMaster: no, I'd rather mix fortress, agda and pure :P 22:46:19 alise, why not haskell as well? 22:46:47 because agda subsumes the haskell desire, by being superior to it 22:46:59 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 heh 22:51:47 fortress' syntax is so sexy though. 22:51:53 http://projectfortress.sun.com/Projects/Community/attachment/wiki/MathSyntaxInFortress/fortify-example.png 22:52:07 oklopol I did my work now ^..^ 22:52:21 alise I have been spending fucking ages trying to get a repl with TeX display for my CAS :( 22:52:32 MissPiggy: try texmacs? 22:52:43 it's designed for things like that 22:53:31 * alise wonders why the syntax for fractions is what it is 22:53:33 as opposed to a division operator 22:53:43 I guess because you can view p/q as a constructor for rationals 22:54:45 MissPiggy: the really cool stuff happens when you type ascii code and get beautiful output on the go, though 22:58:38 alise, does fortress use monads? 22:58:49 no. 22:58:53 well, it could if you made it 22:58:54 looking at the language it does seem quite cool 22:59:01 and somewhat easier to learn than haskell 22:59:15 a mix of imperative and functional in part even 22:59:16 easier to learn relative to what 22:59:21 it's not functional it's just mathematical 22:59:30 alise, that explains part of it 22:59:42 http://pastie.org/833520.txt?key=ed3ghdi8fhelh3aot8jsw ;; my dream-land perfect editor for a rich-notation language 22:59:50 format is input\ndisplay as ascii 22:59:56 | is cursor 23:00:12 alise, too hard to follow 23:00:17 only because it's ascii 23:00:24 alise, exactly 23:00:25 IRL it'd be totally smooth 23:00:25 make some concept videos 23:00:27 ;P 23:00:31 yeah i prolly will 23:00:40 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 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 And I think it's about bloody time we had expressive comments. 23:04:11 <3 Fortress 23:04:22 I'm never going to use FORTRAN again! 23:04:29 "again" 23:04:33 lol 23:04:39 win 16 23:05:59 alise, is it for rendering to html or similar? 23:06:06 alise, I usually read comments in the source 23:06:26 Fortress programs are considered as publications, pretty much. Ideally, you editor would show your code in the rendered form directly. 23:06:39 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 alise, the {{{ }}} is somewhat annoying 23:07:38 too many 23:07:56 Yes, but it's a rare construction. 23:08:43 not in the page on it's markup though 23:11:50 night → 23:13:12 AnMaster: hey i'm making a js demonstration of it too 23:13:13 :( 23:25:22 MissPiggy: are you interested, at least? :P 23:25:26 in what? 23:25:36 a js demonstration of how I think editing should be done 23:25:53 wow wait what do you mean 23:26:01 how is that not something that will take a very long time?? 23:26:14 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 Sgeo: ping 23:32:10 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 it'll play a 13.5 second demonstration of first, inputting the expression a[2^n] 23:32:42 and then navigating back through it 23:32:50 keyboard input on top, editor display on bottom 23:33:12 alise ahh nice! 23:33:20 thanks 23:34:08 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 that sucks! 23:34:31 agreed! 23:34:32 so i try and display all the relevant information on-screen at all times 23:34:43 and if you input a symbol you input a matching symbol to complete it 23:35:00 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 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 MissPiggy: indeed the ascii representation need not even be stored 23:37:25 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 oh like having it a tree 23:38:00 ? 23:38:53 process keyboard input to direct the editor, store internally as ast 23:38:56 well 23:39:01 a superset of the regular ast 23:39:05 because it allows incomplete expressions 23:39:15 or rather, allows a marker in an expression that denotes that it is not complete 23:39:25 alise: Ah, the data: URI. 23:39:42 pikhq: couldn't find an htmlpaste.com :) 23:39:49 -!- oklopol has quit (Ping timeout: 260 seconds). 23:40:58 MissPiggy: i think i'm going to diverge from regular mathematical notation a lot anyway 23:41:06 division symbol instead of fraction notation 23:41:23 sqrt() instead of the sqrt symbol 23:41:34 basically reducing the number of unique notations, they're mostly pointless 23:41:36 alise, hehe well you can fix all the HORRID crap they have in mathematical notation 23:41:42 precisely :P 23:41:47 |x|? barf 23:41:55 what's wrong with abs(x), no I mean seriously, what is wrong with abs(x) 23:42:20 || is a norm 23:42:34 shaddup 23:42:38 there're different norms but their notations are similar so you can tell they're all norms 23:42:46 I guess I am being a bit silly, because I'm retaining 2^n as superscript 23:42:56 perhaps I should use \uparrow, as does knuth 23:44:36 normal mathematical notation???? BARF 23:44:43 actually is || ambiguous like so much else 23:44:52 yeah that's why i'm totally fixin' it 23:45:02 -!- oklopol has joined. 23:45:08 hm I like superscripts and subscripts 23:45:21 it's nice to be able to adorn symbols with notes 23:45:23 MissPiggy: but why? why are + and * symbols but the next operator a superscript? 23:45:34 well + and * are associative 23:45:35 i don't mind super- and subscripts, but why use them for exponentiation? 23:45:46 well, true 23:45:47 so being infix operators expresses that, notationally 23:45:48 -!- tombom has quit (Quit: Leaving). 23:45:49 but it's still an operator 23:46:03 and we have plenty of infix ops that aren't associative in programming... like -> 23:46:05 I think the reason for exponents is because like 23:46:16 a^n * a^m = a^(n + m) 23:46:21 let's fix math because it's broken 23:46:24 there's a kind of homomorphism between * and + 23:46:29 homoerotic morphism 23:46:36 and I think the superscript is a nice way to do it 23:46:42 maybe you're right 23:46:52 it means that you can't really have complex expressions on the RHS of ^, though 23:46:53 I don't know... someone who thinks harder about syntax coulb probably give a really good explanation 23:46:56 you can with + and * etc 23:47:01 so that kind of sucks in a way 23:48:50 2^(1/2 + 7/n - 44) for instance 23:48:54 would just look ugly 23:49:06 yeah well it does come up in real situations so deal with it 23:49:19 why deal with it when i can make the notation better? 23:49:22 oh 23:50:09 I guess ^ is better for short things, though 23:50:16 2^n is less cluttered than 2uparrow n 23:50:39 alise, late pong 23:50:53 Sgeo: just wanted to host something nm now :P 23:52:35 my language will be so sweet 23:53:43 :P 23:53:45 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 23:53:58 there's exp() for when the expression is complicated 23:54:45 -!- jcp1 has quit (Remote host closed the connection). 23:55:10 oklopol: i do not believe in exp() 23:55:57 in what sense? 23:56:16 you don't believe exponentiation is well-defined, if you're using that syntax? 23:56:27 because if so, then i'm totally with ya 23:56:42 i don't believe in that syntax! 23:56:45 oh 23:56:49 well that's just stupid 23:56:54 anyway i'm asleep now 23:56:55 -> 2010-02-20: 00:01:03 -!- FireFly has quit (Quit: Leaving). 00:02:23 would be nice if functions were invertable 00:02:29 *invertible 00:03:19 -!- kilimanjaro has joined. 00:03:57 hi kilimanjaro 00:04:00 haven't seen you before 00:04:24 it's because I never leave my mother's basement 00:04:30 -!- Libster has joined. 00:04:31 kilimanjaro pm 00:04:31 most people haven't seen me for that reason 00:04:36 well, that's a good entrance 00:04:42 hey is my -q off yet 00:04:42 MissPiggy: what are you pming someone entirely new for 00:04:44 sweet 00:04:46 hm wait Libster joining shortly after- oh dear 00:04:49 fizzie: ping. 00:04:50 hello alise 00:05:00 alise I don't see the other guys because I have them on ignore 00:05:14 alise, we probably share similar feelings towards Libster 00:05:15 libster just joined and is off +q so uh yeah 00:05:16 alise I want him to unban me from #math 00:05:19 where did we leave off 00:05:30 kilimanjaro: you might want to leave until he stops the trollaxing :P 00:05:31 who likes Erlang 00:05:39 Erlang is... alright 00:05:42 who likes design patterns? 00:05:52 I mean it's not /bad/ or anything, competent functional language 00:05:57 there was a project by a guy to implement something like it in gambit scheme 00:06:02 yeah i know of that 00:06:06 through chris double 00:06:06 Libster: What, you mean lambda? 00:06:10 because erlang is a wonderful idea bolted onto a crappy sequential language 00:06:13 Lambda's pretty nice. 00:06:24 pikhq: don't encourage him 00:06:26 alise, the guy who did it used to hang out pretty regularly in #scheme 00:06:27 yome 00:06:34 alise: Heh. 00:06:37 i'm not such a fan of erlang's concurrency mechanism but eh 00:06:41 i'm a purely functional kind of weenie 00:06:46 if it doesn't have beautiful denotational semantics it sucks 00:06:47 do you like CML? 00:06:49 isn't that the only reason people use erlang 00:06:53 for its concurrency mechanism 00:07:10 i thought CML was really neat but I never actually wanted to program in SML 00:07:15 cml is, sure i guess 00:07:17 but still a bit meh 00:07:19 IMPURE! 00:07:24 pl what do you have in mind 00:07:33 ok* 00:07:47 wait I have to have a coherent idea? 00:07:52 well I dunno 00:07:54 uh, fortress has implicit concurrency and that actually seems to work, that's cool 00:07:55 i'm just curious 00:08:02 haskell's `par` stuff is nice 00:08:09 i'm not talking about concurrency at that level 00:08:15 as opposed to 00:08:28 I mean at the design level, where the concurrency is actually part of the way you structure the program 00:08:34 par involves that 00:08:41 and fortress does too to an extent 00:08:42 but mostly par 00:08:43 like erlang forces you to look at things in terms of processes & messages 00:08:45 par is definitely part of the structure 00:08:58 kilimanjaro: but you don't need to structure things specially if you have pure functions 00:09:02 there are no side effects to handle the ordering of 00:09:13 parallelism becomes purely a computational detail 00:10:05 in the year 2000 maybe 00:10:08 when we are living on the moon 00:10:20 lol! 00:10:21 but for now real systems with real concurrency & distribution involve people being explicit about that 00:10:25 kilimanjaro hello? 00:10:32 can someone get him to talk to me at least 00:10:58 MissPiggy is clamoring for you to cyber with her 00:11:12 wait is she talking? 00:11:20 yeah 00:11:31 kilimanjaro hello? 00:11:31 can someone get him to talk to me at least 00:12:08 hi MissPiggy 00:12:22 hi kilimanjaro :) 00:12:24 lets PM? 00:12:33 * alise is not sure what MissPiggy is attempting to achieve 00:12:37 go for it 00:12:44 kilimanjaro: you should look at fortress 00:12:49 it does handle quite a bit of parallelism implicitly 00:12:54 I'm not denying that we need to specify it 00:13:02 but we don't need to structure every single module around it in a functional paradigm 00:13:16 also if you're interested in here-and-now practical solutions what are you doing in this channel? 00:13:35 he is trolling you 00:13:40 but he's so good at it you can't even tell 00:13:42 says the troll 00:16:35 alise, well esoteric doesn't have to mean impractical 00:16:43 sure but still. 00:16:47 it does to these people 00:17:19 I honestly do wonder if Libster doesn't have anything more intellectually satisfying to do. 00:17:49 nope this is pretty much as satisfying as anything to me 00:18:34 alise, you could ignore him 00:18:36 Libster: you're just not very good at trolling 00:18:43 yeah i know 00:18:46 that's why i'm practicing 00:18:52 kilimanjaro: doesn't stop him talking 00:18:53 nobody is born a good troll, it takes hard work 00:19:12 point 00:19:15 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 what 00:19:43 oh 00:19:43 sorry, I used big words. 00:19:51 yes 00:20:02 noen of your words exceeded two syllables 00:20:05 very impressive 00:20:20 Libsterification 00:20:35 He's... not even annoying. 00:20:41 Just boring. 00:20:42 i disagree 00:20:46 thanks 00:20:50 i think he's pretty annoying 00:20:58 me too 00:21:00 anyways I was hoping to talk about esoteric languages 00:21:05 I mean in the way of a really irritating troll 00:21:12 he's just like a flea occasionally flying in your vision 00:21:15 does prolog count as esoteric 00:21:20 sure 00:21:22 these days maybe it should 00:21:54 kilimanjaro prolog hardly counts as esoteric :/ 00:22:29 do you know how to program in prolog 00:22:30 ignore MissPiggy she's wrong :) 00:22:41 i was going to implement a unification algorithm once 00:23:00 to be honest i was no really trolling 00:23:01 in fact there's a really good paper on how to implement prolog efficiently 00:23:06 alise, have you even written a prolog compiler in prolog? 00:23:12 well, no. 00:23:17 so shut up :P 00:23:17 you see by typing stupid shit in this channel i am actually coding in my own esoteric language 00:23:23 why? 00:23:35 because shut up? 00:23:38 poo 00:23:50 haha MissPiggy is better at trolling than i am I should leave this to her 00:24:10 prolog's not esoteric, you can implement an ALGOL like in 10 lines and to imperative programming in that 00:24:27 or you could implement some basic functional programming and do that.. 00:24:41 (or you could just do actual programming in prolog, which is a lot less silly) 00:25:02 irrelevant 00:25:07 esolangs can be easy to turn into non-esolangs 00:25:08 was any actual program ever written in prolog? 00:25:15 prolog is sufficiently weird. 00:25:16 here's the paper http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.106.6051&rep=rep1&type=pdf 00:25:16 sup 00:25:18 pretty cool 00:25:22 I don't understand how prolog gets this impression 00:25:28 lament, actually imo the #1 application of prolog 00:25:39 it's WORSE than people going "lol brackets)))))" about lisp 00:25:43 was tricking the japanese into investing millions of dollars in their "fifth generation computing" project 00:25:46 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 kilimanjaro: oh right 00:25:58 i remember reading about that, pretty impressive 00:26:03 another example of the white man keeping the yellow man down 00:26:09 kilimanjaro -- yeah that's a really nice paper, the next step is PVRs Aquarius thesis 00:26:38 alise; that will be 10 strokes of the cane! 00:26:57 Prolog on Prozac 00:27:11 MissPiggy: but it's for a reason! 00:27:14 MissPiggy: and it's very restricted! 00:27:27 Prolog on Perambulators 00:27:29 MissPiggy: basically it's to allow you to write memoise: (a->b) -> (a->b) 00:27:42 alise, bleh! 00:27:52 MissPiggy: the idea is basically that you can use impurity, *so long as it cannot escape the function* 00:27:57 alise I always disliked that but I know pragmatically useful etc etc 00:28:09 oh, I know; I'm just trying to think of a way to make it theoretically sound 00:28:27 alise: So, the function itself is pure, but can be stateful internally? 00:28:47 That is... Actually rather Haskell-like. 00:28:57 alise what about something like ST? You could have an axiom for it 00:29:24 ST doesn't let you return a pure function that accesses the impure state 00:30:08 alise but the axiom could let you ? maybe 00:30:23 alise: Actually, I think you can. Just have the state within that function's closure... 00:30:24 Then that would be side-effects without escaping, which is exactly my idea. 00:30:28 pikhq: Write it, then. 00:31:34 http://filebin.ca/zorysb/memoise.pdf 00:31:50 note: new isn't OOP there, I just was playing with the idea of an operator 00:31:56 that took a type and returned some appropriate "empty" value 00:32:05 basically mempty. :P 00:33:09 alise: Nope. I'm completely and utterly wrong. 00:33:18 ascii version of that, btw 00:33:19 memoise(f: a -> b) -> (a -> b) := 00:33:19 let memory := new Map(a, b) 00:33:19 \x. 00:33:19 x in memory => memory[x] 00:33:19 otherwise => memory[x] := f(x) 00:33:22 pikhq: yep 00:33:23 :P 00:33:30 the problem is defining what escaping the function is 00:33:37 here, the memory[x] lookup is always identical to the first call 00:33:43 so if the input function is pure (which it must be) the output is 00:33:48 but that's kinda hard to prove... 00:34:08 alise: Well. Actually, not quite. You could use unsafePerformIO and close over an mvar. :P 00:34:22 alise you could just prove it's observationally equivalent to a pure function 00:34:41 unsafePerformIO gives you unsafeCoerce :: a -> _|_ 00:34:43 alise since it always gives the same values, as the identity function -- that should work out I think 00:34:43 _|_ -> a 00:34:53 ergo unsafePerformIO => _|_ 00:35:03 therefore unsafePerformIO cannot have a value 00:35:11 -!- CESSQUILINEAR has joined. 00:35:11 MissPiggy: right 00:35:23 MissPiggy: also, gawp at my amazingly beautiful syntax. :| 00:35:28 ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ 00:35:33 yo 00:35:43 what is this, troll #esoteric day 00:35:43 snow mans 00:36:01 hey cessmaster is our friend man. 00:36:08 our /friend/ 00:36:10 cess is our friend 00:36:11 -!- oklopol has quit (Ping timeout: 246 seconds). 00:36:20 i am 00:36:28 someone should make a ☃ language 00:36:46 the one fatal flaw of TeX is the lack of \snowman 00:36:50 sorry Libster you cannot apply ☃ in the current evaluation context 00:36:55 IF UR FRENDS WITH CESS ☃☃☃☃☃ POST THIS SNOWMAN 10 TIMES ☃☃☃☃☃☃ 00:37:12 alise: xetex 00:37:40 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 signal/noise = 0 00:37:49 oops, pikhq just talked 00:38:13 signal/noise = ω 00:38:28 pikhq: would you rather write that or http://filebin.ca/zorysb/memoise.pdf 00:38:36 alise: Yours. 00:38:55 What I wrote is probably the scariest Haskell line I've written. 00:39:11 if you stare at it hard enough 00:39:15 couldn't you just use an ioref 00:39:16 the two unsafePerformIOs merge together 00:39:50 have any of you gone outside in the past couple of days 00:39:58 what do you mean 00:40:02 outside of what 00:40:03 anyway it reeks 00:40:07 of the basement 00:40:09 don't program with unsafe functions 00:40:12 just use ocaml 00:40:14 uhh duhh 00:40:21 MissPiggy: Then everything is unsafe! 00:40:24 i keep all the sodas in the refridgerator 00:40:25 in the kitchen 00:40:29 -!- oklopol has joined. 00:40:32 well it's actually not unsafe that's the thing :P 00:40:37 you should just move your fridge to the basement 00:40:39 Yes it is. 00:40:40 or get a minifridge 00:40:44 gawd 00:40:45 groan 00:40:53 the basement has a freezer where I keep pizza bagels 00:40:55 You modify state. That is horribly unsafe. 00:40:55 lament: if i ask you to increase signal/noise, you'll just kick me, won't you 00:40:58 I don't have room for sodas 00:41:01 alise: yes. 00:41:01 what are you seriously saying that mutable reference break type safety 00:41:04 I'd have to get rid of some of the pizza bagels 00:41:16 wait is this lament's channel? 00:41:17 lament: how do I phrase a query so that you reading it will cause you to ban Libster? 00:41:19 MissPiggy: No, they break semantic safety. 00:41:21 (this is metaenquiry, this) 00:41:23 kilimanjaro: put away 40 of em 00:41:25 Libster, lament is an op 00:41:26 Libster: lament/fizzie's. 00:41:30 or are you giving the standard "buuut daaad it's hard to program with mutation!!" argument 00:41:31 lament is founder now iirc 00:41:31 oh 00:41:45 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 is semantic safety something with a formal definition? 00:41:57 or is it something you just made up to claim that mutation is BAD 00:41:58 Libster: *head explodes* 00:42:11 alise, no 00:42:15 andreou is founder 00:42:17 i sure am glad fizzie is our main op - also, you didn't hear me say this 00:42:20 MissPiggy: Hey, how often do your bugs come from state being modified? 00:42:25 kilimanjaro: what status does aardappel have again? 00:42:34 less than lament 00:42:35 I'm going to guess "all the ones that compile". 00:42:37 pikhq, I almost never program anything let alone things with mutable state 00:42:42 kilimanjaro: not in the past tho 00:42:47 you can just /msg chanserv access list #esoteric 00:42:50 pikhq, but I guess that you are giving the "buuut daaad.." argument now 00:42:51 Oh, you almost never program anything? 00:42:52 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 lament, ahh lame 00:43:10 Then why the hell do you even care? 00:43:11 :P 00:43:19 i complained to the staff and they're like, well, file a form 00:43:24 (also, WTF? A non-coder in here?) 00:43:25 fuck freenode 00:43:36 free fucknode 00:43:40 pikhq, what should I be programming though? 00:43:42 MissPiggy is a computer scientist, not a programmer :P 00:43:46 that's a good idea 00:43:50 i'm gonna start fucknode 00:43:51 computING scientist *ahem* 00:43:59 CSer 00:44:27 MissPiggy: A computing science guy that doesn't cream his pants over purely functional languages? 00:44:31 programming is mostly fucking around with GUI libraries 00:44:32 Now that's amazing. 00:44:33 :P 00:44:41 been there done that 00:44:50 Also... 00:44:50 you seem to think MissPiggy is advocating imperative langs 00:45:06 pikhq oh I dig (pure) fp -- but I don't think it's the whole story 00:45:27 I don't think I've ever futzed with a GUI library more than "bashing out a quick Tk interface". 00:45:38 well you are a more skilled programmer than me :) 00:45:42 MissPiggy: opinion time: using things like actual images, or actual tables, as literals: cool thing, or /coolest/ thing? 00:45:47 Which is only technically programming, really. 00:45:49 all I do is fuck around with broken software and give up 00:46:05 alise: coolest thing :D 00:46:16 alise: Definitely coolest thing. 00:46:22 MissPiggy: In my OS, of course, the literals are, well, /literally objects/. 00:46:25 alise: I think you need a good editor though....... 00:46:29 The table is a literal table embedded in the AST. 00:46:36 The image is a literal image embedded in the AST. 00:46:41 like a wooden table with legs? 00:46:51 You can bring up information about them, inquire about them, perform functions on them, etc. 00:47:00 Edit them with whatever facility exists to edit them. 00:47:24 alise: And I presume this goes even further. 00:47:30 * pikhq imagines an editor literal in a program 00:47:40 I suppose you could technically do that, but that would be ridiculous. 00:47:58 Especially as you could just edit the program directly and save yourself a layer of indirection. 00:48:03 I doubt it would be useful for more than, say, automating an editor. But still. 00:48:14 You'd probably create that programmatically :P 00:48:23 You could include example Fugue programs as literal sounds 00:48:32 Play them inline 00:50:32 -!- cal153 has quit (Read error: Connection reset by peer). 00:51:43 Lisp programs as actual lists. 00:51:44 :P 00:53:36 -!- cal153 has joined. 00:55:27 http://www.nasa.gov/multimedia/nasatv/index.html 00:58:48 -!- augur has joined. 01:02:47 i ought to make my os like, now 01:03:53 -!- Asztal has quit (Ping timeout: 240 seconds). 01:05:15 what abou plan9 01:05:31 meh 01:05:36 it's just a big heap of char *s 01:06:34 wchar_T * :P 01:06:38 oops 01:06:41 no it treats files as bytes 01:06:42 -!- oklopol has quit (Ping timeout: 272 seconds). 01:06:43 alise: Not a heap. 01:06:46 also you mean Rune * 01:06:47 A *tree* of char *s. 01:06:49 :P 01:06:51 lawl. 01:07:02 -!- oklogon has joined. 01:07:06 whoa 01:07:52 i just realised that OSs with changing mutable state are like... continuatiosn. 01:07:55 *continuations 01:10:29 alise I'm watching them fly the shuttle away from the satillite 01:10:40 they're still in 0-g 01:10:53 indeed 01:11:52 :( 01:12:06 what :( 01:12:39 -!- oklogon has quit (Ping timeout: 245 seconds). 01:12:42 is Z32 for Z_{2^32} accepted mathematical notation? i would guess not, fortress peeps prolly invented it 01:12:44 bad fortress peeps 01:12:47 bad! 01:13:22 eh it seems fine 01:13:35 you have to know fortress anyway 01:13:44 so it should not be very confusind? 01:13:46 -!- Libster` has joined. 01:14:00 type Z(n:Z) := Z_(2^n) 01:14:05 problem solved 01:14:21 a neat thing is that you can define functions on Z_n 01:14:22 polymorphism! 01:16:52 also, the (a=>b;c=>d;otherwise=>e) conditional syntax is very elegant 01:17:05 yeah that's from lisp 01:17:21 I like it too 01:17:28 -!- Libster has quit (Ping timeout: 272 seconds). 01:17:39 Lisp? Syntax? What sort of craziness is this? 01:17:44 m-expressions 01:17:48 also, not quite 01:17:49 http://projectfortress.sun.com/Projects/Community/blog/ConditionalExpressions 01:17:59 lisp was [p=>a; q=>b; elseclause] 01:18:05 erm 01:18:07 s/=>/->/ 01:18:18 mccarthy used (p -> a, q -> b, elseclause) 01:18:24 I prefer (p => a; q => b; otherwise => elseclause) 01:19:41 Darned M-expressions. Being Lisp syntax. 01:19:43 although with omitted ;s on newlines 01:22:13 pikhq: LLVM isn't replacing -fvia-c. 01:22:18 It's replacing /everything/. 01:22:31 Specifically, NCG -> LLVM. 01:22:37 That's a replacement arrow. 01:23:03 "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 oh, I stand corrected 01:23:52 -!- oklopol has joined. 01:27:20 alise: They may in the future replace the NCG. 01:27:27 *Currently*, it just replaces -fvia-c. 01:27:35 Will, rather. 01:27:55 (IIRC, they will do so if it's ready in time for .16.) 01:30:28 MissPiggy: does your CAS have some sort of code dump I can load into my system 01:31:27 alise well it um doesn't realy exist yet 01:31:30 finger `ls /home` 01:31:32 I have to sort out the GUI 01:31:37 i'm fine with text output 01:31:38 well the REPL 01:31:49 i'm fine with command line invocation 01:31:52 what language is it in? 01:32:40 I haven't written it! 01:32:51 I can't decide to use haskell or coq 01:33:02 (or both) 01:33:17 well coq is already all that stuff in a way 01:33:26 i suggest writing it in my lang :P 01:35:35 What is it? 01:36:18 a lang 01:37:42 What's MissPiggy's thing? 01:37:50 a computer algebra system 01:37:53 Ah 01:38:08 What's your language? 01:38:43 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 win 19 01:38:53 fffw 01:39:23 ?? 01:39:32 Sgeo: what project 01:39:46 let me guess it's some virtual reality shit that you feel some sort of twisted obligation to 01:39:56 The project that I've mentioned countless times before.. and yes, that's right 01:40:06 how about just freeing yourself 01:40:15 How about, I really really want this game to exist 01:40:28 whih game? 01:40:29 from what i've seen its incompetence is so great that there is very little hope of that 01:40:31 so give up and move on 01:40:38 MissPiggy: some remake of some shitty old virtual reality "game" he likes 01:40:47 virtual reality! :O 01:40:54 MissPiggy: think second life but worse 01:41:02 is it an MMO? 01:41:11 something like that. except without the fighting, or stats 01:41:26 I think that people who want to make an MMO are not going to succeed 01:42:39 We already have an MMO platform of sorts 01:42:57 http://www.neuroproductions.be/logic-lab/LogicLab2.swf is fun 01:43:02 And resources such as the server is all paid for already 01:43:10 Um, by AWI 01:43:10 (p xnor q) xor (r nand s) = FUN TIMES 01:44:15 wish i had a mic to play with it 01:44:52 I have an RL friend who wants to make an MMO with me though 01:44:59 And honestly, I'm not too interested in that 01:49:08 -!- oklopol has quit (Ping timeout: 272 seconds). 01:49:25 With the logic lab, I can only use one of each piece? 01:49:31 er no 01:49:34 n/m 01:50:06 xnor? nxor or is it something else? 01:50:41 It should be possible to make a flip-flop with logic gates, right? 01:51:14 it has flip flops 01:51:23 Ilari: presumably it's exclusive nor 01:51:27 Yes, but those are technically redundant? 01:52:04 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 What does the spinny output thing actually do? I mean, besides spin? 01:53:21 Or maybe it needed two SR latches... I don't remember anymore. 01:55:10 How does the NOT gate make signal out of thin air? 01:55:41 magic 01:55:54 heh 01:55:58 silly program 01:56:01 5min before the meeting and no one's here 01:56:03 Sgeo: At least CMOS NOT gate connects output to positive voltage if input is at ground. 01:56:12 Sgeo you are good at pretending it doesnt exist! 01:56:27 MissPiggy, I care very little about the confidentiality junk 01:56:49 If they really cared, they'd have told us before I started telling everyone I knew 01:57:41 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 Their use of C# only bolsters this suspicion. 01:58:38 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 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 The "networked 3d" part is already taken care of by the platform, ActiveWorlds 01:59:16 They still need to write the networking code. 01:59:21 And don't think that invalidates the rest of what I said. 01:59:44 Um, no 01:59:57 Oh, so it magically connects to a socket for them? 02:00:02 I think not. It's still C# code. 02:00:11 All of that code is part of Active Worlds 02:00:40 The actual logic of the game is in a program that does connect to the world, and connecting is simple 02:01:07 You know, I think there may be real issues underlying your seemingly life-controlling nostalgia... 02:02:34 what's the original 02:02:37 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 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 active worlds 02:06:11 that is so cool 02:06:18 it's like 3D IRC 02:06:24 oh don't /encourage/ him 02:06:31 -!- jcp has joined. 02:11:27 Whee, no one's there 02:12:13 sorry Sgeo 02:12:27 He means at the "meeting". 02:13:29 What did MissPiggy think I meant? 02:14:34 It might be possible that I'm 12 hours late. The guy in charge mixed up AM and PM once before. 02:15:00 Although I think that's why it's at "11:59" and not "12:00" 02:16:04 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 wasn't an AM/PM issue this time 02:35:29 http://filebin.ca/djzwuz/on-syntax.pdf 02:35:34 A little ditty about syntax. Comments welcome. 02:36:34 -!- gm|lap has joined. 02:37:35 -!- Asztal has joined. 02:39:28 It's a PDF 02:39:42 Yes, it is. 02:39:51 Here's zero nickels; go buy a better PDF reader and/or operating system. 02:40:17 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 NOBODY LOVSE ME 02:49:20 :( 02:49:24 lovse 02:49:27 .cx 02:49:30 Yeah, I like that spelling of that word now. 02:49:37 Oh, shit, didn't even notice that 02:49:37 alise 02:49:40 .cx 02:49:53 Loves sex and alise sex? 02:49:56 You've got cx on the brain. 02:50:45 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 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 bye 03:10:03 see you tomorrow 03:10:45 Bye 03:14:36 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 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 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 deschutron, apparently you've written quite a bit of extension stuff for it 07:30:37 yes 07:31:57 * Sgeo bibbles a bit at EPARM 07:32:16 i've also written an interpreter for it, including some of the extensions i described on the wiki 07:32:38 and i've written a command shell in an extended form of SNUSP 07:33:58 this week, they got uploaded to the Esoteric Files Archive 07:34:07 EPARM seems a bit like PSOX [my project which I abandoned, but is mostly done], except designed better possibly 07:34:21 oh really? 07:34:39 what does PSOX do? 07:34:52 http://esolangs.org/wiki/PSOX 07:35:16 That PSOX 1.0a1 thing is a bit old 07:36:01 Oh wait, EPARM is _only_ for command-line arguments? 07:36:34 pretty much 07:36:51 the snusp-start command framework can be used to define other special functions 07:37:04 but EPARM only specifies argument-passing funcionality 07:38:05 Ah. PSOX has some functionality defined in the spec [Network/HTTP access in particular] 07:38:19 And was supposed to have File I/O defined, but it was abandoned before then 07:39:19 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 Um, it still reads and writes to a program that only uses stdin and stdout 07:40:12 Question: Did you manage to make EPARM work on Windows? 07:40:33 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 no, i didn't try 07:41:50 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 in that case, the windows arguments don't make it to the esoteric program 07:42:58 however, an interpreter could be made that will convert the args 07:43:54 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 given the design of EPARM, that worked pretty well 07:44:33 the programs never have to output the fact that they want to receive EPARM input 07:51:40 -!- pikhq has joined. 07:56:27 Sorry, was IAW 07:57:13 -!- augur_ has joined. 07:57:22 -!- augur has quit (Read error: Connection reset by peer). 07:57:27 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 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 I need to go to sleep now. Good night 07:58:27 ok 07:58:32 good night 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:52 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 They are available in the impl/ and src/ subfolders of http://esolangs.org/files/snusp/ , on the Esoteric Files Archive. 08:03:42 the snusp-start command framework allows a program to be fed meta-data relating to how it is being executed 08:04:41 it can inform the program that a certain protocol is available for it to use, for example 08:06:11 http://trac2.assembla.com/psox/browser/trunk 08:07:00 thanks. i have already downloaded it via svn 08:07:18 AH 08:07:20 *Ah 08:07:38 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 Um, there might be a bit of a bug in db_utils.py on line 18 08:08:18 concerning a missing " 08:11:01 -!- augur_ has changed nick to augur. 08:11:25 -!- kar8nga has joined. 08:13:24 oh, and trunk/ex has a lot of obsolete stuff 08:13:33 -!- Libster` has quit (Ping timeout: 272 seconds). 08:13:46 i just got psoxsimplecat.b to work using your psox program 08:14:08 :) 08:14:10 Try online.b 08:14:28 pikhq made a wget.b, but it's not included in there 08:14:36 And I should be going to sleep 3 hours ago 08:14:53 what should online.b do 08:14:55 jsut quickly 08:14:58 then i'll let you go 08:15:52 When it runs, type in a URL (including the http://) and press enter 08:15:57 It should display the contents 08:16:14 hot dog it did 08:16:45 :) 08:22:20 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 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 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 what's .b ? 08:39:52 cheater4, file extension? 08:39:55 brainfuck 08:40:01 ok 08:40:03 .bf is befunge 08:40:09 so don't mix them up 08:40:36 (befunge 98 uses .b98 though) 08:40:58 you guys should reimplement XanaduSpace in brainfuck 08:41:12 no clue what that is 08:41:46 it's the better alternative to hypertext 08:45:09 vaporware iirc? 08:45:41 I think I have read about it somewhere 08:45:52 cheater4, but go reimplement it yourself 08:46:44 nah, there's a demo out 08:46:53 but it only opens the single demo document 08:46:55 :D 08:47:21 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 "pikhq: (also, WTF? A non-coder in here?)" <<< i'm a non-coder! 09:56:38 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 * 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 He turned it down 11:36:28 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 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 "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 where is that quote from? 12:23:44 http://lesswrong.com/lw/pa/gazp_vs_glut/ 12:29:22 -!- oklopol has joined. 12:31:28 Wareya: why thank you 12:31:31 mr googler :P 12:31:39 yes 12:32:23 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 load a* 12:32:39 You know how to open a file, yes? 12:32:43 yes 12:32:57 Use getc() to read the file character-by-character; keep counters i and j, initially 0. 12:33:03 if the char is \n, j++ 12:33:06 and i=0 12:33:10 otherwise 12:33:17 chars[i][j] = char; 12:33:17 i++; 12:33:19 what do I do with the characters I dno't overwrite? 12:33:27 "Don't overwrite"? 12:33:38 the ones that I don't set in the array 12:33:51 and how would I know what size to have the array be? 12:34:07 What characters would you not set into the array? 12:34:09 You mean newlines? 12:34:20 As I said, increase j++ and reset i to 0 on a newline, then continue to the next character. 12:34:41 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 no, like line 6 being five characters long, what would I do with chars[7][6] 12:34:58 Wareya: Oh. 12:35:03 Initialise the array to \0s 12:35:08 ? 12:35:11 \0 is end-of-string in C 12:35:15 "\0" 12:35:16 I'm a terrible programmer 12:35:21 So you could use a line as a string 12:35:33 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 actually, I love playing with pointers 12:36:34 [list(x) for x in open('filename', 'r').read().split('\n')] 12:36:36 That's it in Python 12:36:38 I'm going to go get soda so that I feel less shitty. Later. 12:36:47 (Doesn't pad out the lines to all be the same length, but there you go.) 12:37:11 Python is amazing, but I don't feel like learning it because of the syntax constraints/restraints/whatever. 12:37:32 So learn some other language. 12:37:34 Like Haskell. 12:37:39 :d 12:37:41 :D 12:37:55 thanks 12:38:01 -!- oklopol has quit (Ping timeout: 264 seconds). 12:38:24 deschutron: thanks what? :P 12:39:34 Here's a complete implementation 12:39:35 lines = open('/dev/stdin', 'r').read().strip().split('\n') 12:39:35 width = max(len(x) for x in lines) 12:39:35 table = [list(x.ljust(width)) for x in lines] 12:39:51 the googling :P 12:40:05 i should have googled it myself... 12:40:31 ah 12:41:33 yep 12:41:33 lines = open('/dev/stdin', 'r').read().strip().split('\n') 12:41:34 width = max(len(x) for x in lines) 12:41:34 table = [list(x.ljust(width)) for x in lines] 12:41:38 substitute /dev/stdin for a filename and that works 12:41:41 blank places considered spaces 12:45:00 -!- MigoMipo has quit (Quit: co'o rodo). 12:49:30 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 http://filebin.ca/uekfh/gcd.pdf 13:07:19 Pretty. 13:15:24 back 13:16:25 don't you think an image would have sufficed? :P 13:17:10 I typeset it in TeXmacs; producing an image would have been a lot harder than hitting export. 13:17:20 k 13:17:22 Also, no; this one scales to any size. 13:17:39 svg? :D 13:17:42 I'm kidding. 13:17:45 Besides, it's how you program in my language. Better get used to it :) 13:18:45 Your language interprets PDF files? :D 13:19:08 Well, no, it compiles abstract syntax trees. But ASCII source code isn't the done thing, really. 13:19:20 You'd type that form directly into an editor with keypresses something like: 13:19:32 gcd(m:ZZ,n:ZZ)->Z:= 13:19:35 (n=0=>m 13:19:42 otherwise=>gcd(n,m-n*floor(m/n))) 13:19:47 And it'd show as that. 13:19:53 *->ZZ 13:20:05 that works, I suppose 13:20:25 That form wouldn't be stored, though; just interpreted as editor commands to create an AST. 13:21:03 quick question: Should I use the form of Boat on the wiki page or a minimized version? 13:21:46 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 said minimized version: http://64.vg/src/48029a6eda8165c6d5a5b6f71a785f1e/raw 13:21:58 okay 13:29:54 hmm 13:29:59 there should really be some notat- anyway 13:30:14 Wareya: I'd drop !=; it's !(e==e) 13:30:20 I'd drop nand, too, it's !(e&e) 13:30:30 I'd also drop division; you don't have addition or anything, so why? 13:31:17 -!- CESSQUILINEAR has joined. 13:32:01 because multiplicatin is really hard to to IM 13:32:17 ?? 13:32:20 and I culd see me dropping !=, but it's a real operator 13:32:29 sorry, my o key is being stupid 13:32:32 to IM? 13:32:33 what? 13:32:36 you have no mult 13:32:39 IMO 13:32:44 do* 13:32:47 ?? 13:32:52 to do, in my opinion 13:32:53 also, just drop != and !& they don't save any chars 13:32:56 !(e&e) 13:32:57 (e!&e) 13:33:00 Wareya: howso 13:33:01 nand? 13:33:30 multiplication is hard to do in an excessive way like brainfuck does, and that's not my goal 13:35:57 I do suppose I shld re-add subratsin and get rid of binary not though. 13:36:01 should* 13:37:08 subtration* 13:38:13 *gasp*! The comment form on this scam page does nothing! What a surprise! 13:38:59 It's supposedly moderated, but a quick glance at the source reveals no contact with the server 13:39:23 Wareya: you have no mult though 13:39:24 just division 13:39:29 Also, some of the text makes a reference to what websites seem to think is my hometown. 13:39:31 e/(1/e) 13:39:37 that's e*e 13:39:46 well, yes 13:39:50 but division is "complicated" 13:39:53 brings in reals etc 13:39:54 just have mult 13:40:07 everything is an integer 13:40:08 Sgeo: yeah common scam thingy 13:40:11 *gasp* 13:40:11 ah scam pages... 13:40:14 Wareya: then what you have is not division 13:40:17 also, you have no "e" 13:40:25 yes 13:40:26 I used HideMyAss.com, and now Marie is from Woodstock! 13:40:28 also, 1/x = 0 if you only have ints 13:40:36 She's the magical ordinary mom! 13:40:40 so x/(1/y) cannot be x*y 13:40:42 I said e/(1/e) in the scope of mathematics 13:40:44 not Boat 13:40:45 because it's x/0 13:40:49 therefore, / is not sufficient to give * 13:40:56 therefore you cannot justify keeping / because of multiplication 13:41:02 hey 13:41:11 I forgot to implement shifting 13:41:26 (I'm kidding, there's no reason to have it) 13:42:02 the way that memory is addressed, and the fact that I have division, allows for multiplicatino 13:42:06 on* 13:42:17 and I'm saying that because I can't find a way to prove myself wrong, so have at it! 13:42:32 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 if you find a serious flaw I agree with then I'll remove division or add multiplication 13:43:56 Wareya: well x/y in your lang is integer division right? 13:44:07 i.e. floor(x:RR/y:RR) 13:44:15 Is the fine print genuine? If it wasn't, would they be shut down by .. some governmental thingy? 13:44:28 I believe so 13:44:38 -1 < 1/x < 1 13:44:53 <= 13:44:57 erm, yes. 13:45:02 and yes 13:45:06 therefore, floor(1/x) = 1 if x = 1; 0 otherwise 13:45:22 with reals, x/(1/y) = x*y 13:45:26 "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 for integers: 13:45:42 x/(1/y) -> x/(if y = 1 then 1 else 0) 13:45:44 -> 13:45:50 if y = 1 then x else (undefined) 13:46:00 therefore, you cannot use integer division to perform integer multiplication. 13:46:01 Q.E.D. 13:46:15 not even with binary shifting? 13:46:24 even if it's innacurate? 13:46:59 binary shifting is, itself, multiplication and division of powers of 2. 13:47:16 x< x>>y = x/(2^y) 13:47:43 we already have /, so x>>y only adds one useful operation 13:47:55 1>>y = 1/(2^y) 13:48:08 the problem with this is that 1>>y always = 0. 13:48:17 so, anyway 13:48:22 how can we do 3*3, let's say 13:48:28 well, we can't do 3/(1/3) 13:48:31 hang on 13:48:38 and 3 isn't a power of 2, so we can't use << 13:48:42 we can however 13:48:45 express it as 6/2 13:48:53 = 6/(2^1) 13:49:02 you can use << to reduce the innacuraccies of integer divisin, can't you? 13:49:10 ion* 13:49:12 so, that gets us three 13:49:20 but not in an operation 13:49:26 we still need a general multiplication 13:49:29 what do you mean? 13:49:31 but since 3 isn't a power of two 13:49:33 we can't use << 13:49:41 therefore, you cannot multiply in your language without using addition and a loop. 13:49:42 okay 13:49:49 therefore the division is useless for that purpose 13:50:03 -!- MissPiggy has joined. 13:50:20 Hm 13:50:22 http://www.maxmnd.com/index.php 13:50:28 Hi MissPiggy 13:50:28 * alise tries to think of a name for can-be-equalified 13:50:31 Equalisable? 13:50:46 hi 13:50:48 equalified? 13:50:49 what? 13:50:59 decidible equality 13:51:04 unifiable 13:51:33 MissPiggy: so I've decided how to do things like inferring "type-class instances" (not really) in my language 13:52:00 "Since the trials are completely free, there is no cost or risk to you" 13:52:14 there is a keyword "implicit"; it is usable as the LHS in a type declaration 13:52:27 Beyond not realizing that you have to cancel [if the fine print is legit] or scammers doing whatever they want [otherwise]? 13:52:35 It makes an association with the type on the right and its corresponding definition (specified like `implicit : a = x`) 13:52:39 the obvious happens 13:53:15 implicit : (card ∅ = 0) = ... 13:53:31 implicit : Ring ZZ = ... 13:53:34 etc 13:54:09 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 even though it's a value 13:56:05 MissPiggy: http://filebin.ca/djzwuz/on-syntax.pdf 13:56:26 be warned that the syntax in there might not be so excellent; it was written while tired :P 14:01:06 that's a good point in consisent 14:02:09 -!- MigoMipo has joined. 14:02:51 one-page articles are a nice idea 14:03:41 MissPiggy: can you think of any problems w/ my implicit idea? 14:03:54 one is in e.g. Ring when you want to have the ring properties and name them implicit 14:04:00 then you have to name the type again when defining them 14:04:02 but i don't see a problem with that 14:04:05 the type is the name in some sense 14:05:45 alise I think that implicit stuff sucks but I didn't want to say :P 14:06:05 MissPiggy: so you want to specify the equality, ring, ... definitions every single time you use a numeric function? 14:06:07 that's sweet 14:06:27 I've still not figured out how to solve that problem 14:06:38 well i just solved it, and made it work for proofs as well :) 14:06:47 -!- mycroftiv has quit (Quit: leaving). 14:06:55 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 this is just a way of making that actually true 14:11:39 Hmm. 14:11:51 Is there something like rings but without the additive inverse? 14:12:02 i.e. something I can put 0, + and * in and have NN be part of it :P 14:13:07 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 http://en.wikipedia.org/wiki/Perverse_sheaf disgusting 15:04:32 > If Carl Shulman does not let me out of the box, I will Paypal him $25. If he 15:04:32 > does let me out of the box, Carl Shulman will donate $2500 (CDN) to SIAI. 15:04:38 Those... are high fucking stakes. 15:04:56 shit, he released it in the end 15:05:04 Deewiant: know how you said high stakes? 15:05:19 this guy donated $2500 2005 canadian dollars to SIAI because he let the AI out 15:05:43 I didn't say high stakes 15:05:49 Well, someone did. 15:06:02 a wizard did it 15:06:34 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 I think everyone else would, too. 15:06:48 'part from richies. 15:10:25 In the next one the human bet $2500 US and won, keeping the AI in the box. 15:10:41 Yes. Of course. I agree that Eliezer is no god. :) 15:10:53 -!- deschutron has joined. 15:11:10 But the existence of /anyone/ losing such a challenge with such stakes for them if they lose is striking. 15:11:18 but I don't think he did it for the money 15:11:27 yeah I agree 15:11:45 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 even if it's towards an organisation you support 15:12:21 therefore, floor(1/x) = 1 if x = 1; 0 otherwise <-- forgetting negative numbers here? 15:12:37 oerjan: clearly by 'integers' i meant 'naturals' 15:12:40 not that it makes any difference to the rest of your argument 15:12:50 :P 15:15:36 although i think that shifting + integer division might allow you to do multiplication in _less_ loop iterations than just addition 15:15:47 if you're clever 15:16:08 yes 15:16:40 oerjan: also I thought of a computable variant of ring computing 15:17:03 hm? 15:17:04 let 1 = identity; let infinity = _|_ 15:17:08 infinity+x = infinity 15:17:13 infinity*x = infinity 15:17:22 we already know that 1=identity works 15:17:23 now 15:17:27 we need an additive identity 15:17:31 let 0 = foo 15:17:35 foo x = magic 15:17:36 where 15:17:42 magic + y = y 15:17:47 f magic = magic for all other f 15:17:51 tada 15:17:53 o_o 15:18:03 admittedly "magic" is _not_ the most unesoteric value ever dreamed of 15:18:13 but it's basically like _|_ except warm and cuddly if you add it up :P 15:18:38 so what is infinity + (-infinity) *cough* 15:18:55 0! 15:18:59 oerjan: can't we just make it rng computing :P 15:19:06 or whatever ring-without-negative is 15:19:13 MissPiggy: yes but we need it turing computable :P 15:19:17 anyway hmm 15:19:24 alise: well yes in fact i think cpressey may done that already 15:19:32 (vague recall) 15:19:34 he did ring computing with negatives 15:19:38 in 2007, even 15:19:40 dunno why he's gone back to it 15:19:43 i mean before that 15:19:55 http://catseye.tc/projects/burro/doc/website_burro.html 15:19:57 check it 15:20:11 anyway 15:20:17 -0 = 0, obviously 15:20:30 so we don't need to invert magic which I'm thankful for; I've never seen a value so weird 15:20:43 -1 is easy 15:20:46 but -infinity? 15:20:50 hmm 15:20:54 the problem is that you can do -(nonterminating) 15:21:01 so you can't pattern match on -infinity, just like infinity 15:21:13 oerjan: Clearly, I must ask Wolfram Alpha. 15:21:25 Apparently, infinity + -infinity = indeterminate. 15:21:34 Indeterminate could be said to be _|_. 15:21:45 Therefore, infinity + -infinity = infinity. Therefore, -infinity = infinity. 15:21:48 Happy? 15:21:48 How does infinity - infinity = 0? 15:21:52 Or was that a joke? 15:22:07 Because x - x = 0; but really there's multiple interpretations. 15:22:11 Mine is the computable one :P 15:22:16 alise: burro is a group, not a ring 15:22:18 Even though it sort of breaks the x+-x = 0 no exceptions thing 15:22:28 I mean, we're not using infinity as /the result/ 15:22:37 We're just saying that infinity + -infinity never yields a value, i.e. it is bottom. 15:22:44 It just so happens that we have a name for bottom in our language, infinity. 15:22:58 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 Are we allowed to do that? :-) 15:23:22 alise: infinity + -infinity indeterminate is allowed in the extended reals precisely because they are _not_ a ring 15:23:29 (or group, even) 15:23:51 i was thinking more that infinity + -infinity "has a value" 15:23:53 it's just unknowable 15:26:43 "AI-Box Experiment #3 gave the AI a minimum time of four hours. I would 15:26:43 recommend 4-6 hours for future Experiments. Typing is slower than speech." 15:26:45 Endurance typing. 15:29:36 alise nonstandard analysis 15:29:47 I prefer bullshitology :) 15:29:53 I can just throw about terms 15:29:55 like "unknowable" 15:29:57 lol 15:29:57 and it all works 15:30:11 you are missing out on the good stuff though 15:30:24 infinitesimals are sexy though 15:30:36 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 i already accept the cubic truth 15:31:05 hey someone come up with a formal mathematical system with -1*-1=-1 15:31:08 lolololol 15:31:27 alise: any ring of characteristic 2 15:31:34 "criticism of non-standard analysis, by Halmos,[who?]" 15:31:37 (including some fields) 15:31:39 You do not know who Halmos is. 15:31:49 -!- kar8nga has quit (Remote host closed the connection). 15:31:59 of _course_ i know who halmos is 15:32:10 oh wait 15:32:14 misread 15:32:14 yeah it's that guy who made the qed symbol! :P 15:32:42 ?(?(e){c}){c}this is valid, however pointless it is 15:32:43 ummmmmm so I should do something today instead of waste it 15:32:47 MissPiggy: only if it's fun 15:33:06 I guess I'll have a bath 15:33:08 MissPiggy: READ THE ED STORIES (if I try hard enough, will this become a meme on the annoyingness order of PSOX?) 15:33:34 oh yeah the ed stories are good, I haven't finished them 15:33:45 alise, READ THE FINE STRUCTURE STORIES 15:33:54 NOOOOOOOOOOOOOOOO 15:34:21 ed stories would make a good film 15:35:10 (would fine structure?) 15:36:03 * oerjan makes a link to Halmos. 15:36:25 Um, possibly not. The setting jumps around quite a bit 15:36:35 a link to Halmos 15:36:43 Sgeo: Does in movies, too :P 15:36:52 Just might have to rearrange things so there's fewer switches 15:36:53 alise: instead of the [who?], wiseass 15:38:20 I'd suggest another reason it might not be movie-able, but it would be spoilery 15:39:06 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 (only say if it's any of them, not a specific one :P) 15:39:45 One of those is the case, but it wasn't what I was thinking of in particular 15:39:54 well, actually, not quite 15:40:21 is it the first one, or one of the second two? 15:40:43 One of the second two 15:41:09 i'm guessing probably _not_ the last one 15:41:17 extremely lurid sex set in the platonic world of abstract mathematics. 15:41:46 Go read the first Fine Structure story 15:41:54 Sgeo: the special effects? 15:42:03 I read up to the one where the girl (I think) can go through matter or something 15:42:08 literally first page of that 15:42:10 then stopped 15:43:01 Oh. I was thinking of Unbelievable Scenes [in relation to your options] 15:43:08 And it's a guy who can go through matter 15:43:21 *Unbelievable Scenes in Space 15:43:48 I do not know what that is. 15:43:56 Fine Structure used to be unordered, IIRC. 15:44:02 It was just a collection of stories, then he jiggled them about. 15:45:01 -!- addicted has joined. 15:45:03 Hm, I just thought of another scene that may be difficult to depict visually 15:45:28 anyway the going-through-matter thing isn't hard 15:45:34 that's like, standard effects stuff nowadays :P 15:45:42 I'm not thinking of that 15:45:47 Sgeo: "And then, HE SAW PI." 15:45:49 "ALL OF IT" 15:45:52 No 15:46:12 Oh, you mean using a narrator to depict stuff? 15:46:25 No, I just meant ridiculously impossible things :P 15:46:42 * Sgeo is watching SG-1 15:47:06 Also, now I have "Pi" in my head. 15:47:54 all of it? 15:48:18 http://www.songmeanings.net/songs/view/3530822107858715600/ 15:48:27 http://www.youtube.com/watch?v=Mfr7xG6smhU 15:50:12 * Sgeo saw that 15:50:28 Can't remember if that's the same song that.. 15:50:31 yes, it is 15:54:59 why do most languages lack such basic things as reading/writing numbers to arbitrary bases in the stdlib 15:55:20 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 MissPiggy: hey you know we were talking consciousness? 15:57:00 I found a paper by Nick Bostrom supporting two identical but separate brains experiencing two separate qualia-thingies 15:57:05 it's good 15:57:09 I think I've changed my opinion because of it 15:57:10 http://www.springerlink.com/index/V1X24V662H5726W5.pdf 15:57:29 ugh wants you to log in 15:57:29 sec 15:57:37 i have the pdf here 15:57:58 MissPiggy: http://filebin.ca/watags/experience.pdf 16:00:25 you have a springer link accout o_O 16:00:31 no :) 16:00:47 i have a computer that can access lesswrong.com, and i read a post where someone linked to a pdf 16:00:58 but uhh if you're impressed by that, I guess I should get an account 16:01:17 :P 16:01:32 but yeah... fuck non-open papers 16:01:34 with a chainsaw 16:02:16 * MissPiggy doesn't believe in qualia :( 16:02:22 well you don't have to 16:02:31 it's just being used as a less ambiguous term for consciousness 16:02:44 but qualia /are/ real; you know how you agreed totally with that Dennett video? 16:02:54 "A hardcore physicalist might be tempted to dismiss this question as being merely 16:02:57 terminological. However, I believe that we can give content to the question by 16:02:58 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 linking it to significant ethical and epistemological issues." 16:03:03 Dennett believes in qualia :) 16:03:25 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 qualia != metaphysics 16:04:03 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 but that's not true 16:04:20 well I don't actually know what metaphysics is.. 16:04:25 bullshit :P 16:04:31 like "we have a soul" 16:04:46 "It is not easy to say what metaphysics is" -- groan 16:04:47 often "consciousness" is substituted for "soul" but they don't /mean/ what sane people mean when they say consciousness 16:04:49 they mean "soul" 16:05:17 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 alright 16:05:42 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 hey, it makes a good argument 16:07:39 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 then it can just modify its thoughts so that it is experiencing the red quale :) 16:08:12 (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 [[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 which is, yeah, exactly, debunked 16:09:04 also... is = on types well-defined? 16:09:16 i think so, but it makes me uncomfortable because from what i can tell it depends on what names you use 16:09:47 i.e. (data a = Z | S a) ≠ (data a = Zero | Succ a) 16:09:51 because they're different values 16:10:04 but then two (data a = Z | S a)s in different modules are not equal, either 16:10:11 so only Foo = Foo 16:10:28 alise hehe! I have tried to work hard on that problem :D 16:10:42 so I guess equality for types is "are they the same pointer" :) 16:11:05 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 well they aren't equal because Z is a distinct value to Zero 16:11:24 for instance 16:11:28 S Z -> S Z 16:11:30 but 16:11:34 S Zero -> type error 16:11:40 so Zero cannot be of the same type as Z 16:11:45 therefore type-of Zero != type-of Z 16:11:47 "Moreover, there are many local stochastic processes, each one of which has a non- 16:11:51 zero probability of resulting in the creation of a human brain in any particular 16:11:54 possible state.2" 16:11:57 what ... the... hell.... 16:11:57 basically I want to make * an instance of Collection 16:12:01 I bet this guy plays the lottery (and thinks he might win) 16:12:09 MissPiggy: no he doesn't 16:12:26 he's a bayesian rationalist, just like eliezer 16:12:38 so why is he making this argument :| 16:12:52 have you considered that perhaps you're wrong rather than him? 16:12:53 ""Therefore, if the universe is indeed infinite then on our current best 16:12:53 physical theories all possible human brain-states would, with probability one, be 16:12:57 instantiated somewhere," 16:12:59 that would resolve that cognitive dissonance 16:13:02 how can I possibly be wrong? 16:13:19 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 also, he's right; it isn't *necessary* but it's probability 1 16:13:33 he says: infinite number of trials for a nonzero probability ==> it has happened 16:13:45 but that's so silly! 16:13:57 because all N-sized parts of space = all other adjacent N-sized parts of space is incredibly unlikely 16:15:07 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 yeah I have read that 16:16:19 interesting technique this guy uses... 16:16:23 who 16:16:31 . This is another reason to accept Duplication. *20 16:16:32 O'Connor or Bostrom? 16:16:38 Bostrom 16:16:50 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 alise don't you agree ?? 16:17:05 and I think /both/ of us are less happy/enlightened for this 16:17:21 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 because such analysis of arguments is a good thing regardless of if they're true or false 16:17:39 i thought it was, at the very least, interesting 16:18:17 alise: http://en.wikipedia.org/wiki/Structural_type_system 16:18:30 "Some languages may differ on the details (such as whether the features must match in name)." 16:18:35 mm 16:18:43 imo: 16:18:45 S Z -> S Z 16:18:45 but 16:18:45 S Zero -> type error 16:18:45 so Zero cannot be of the same type as Z 16:18:45 therefore type-of Zero != type-of Z 16:18:45 proves it 16:18:54 so.. there is some kind of "quantum physics" thing.. which appears probabilistic and it might randomly generate a human being 16:19:05 if we have (data a = b) meaning "the data type a, constructors are: b" 16:19:05 AND the universe is infinte 16:19:12 therefore all possible humans have been created 16:19:19 MissPiggy: it's a _thought experiment_ 16:19:27 for the purpose of argument 16:19:32 oerjan: and we want to work out (data a = x) == (data b = y) 16:19:40 we should substitute a with b in x, and b with a in y 16:19:45 and make sure that "works" 16:19:56 S Z -> S Z, so substitute the a in a with a b: S Zero -> type error 16:20:00 therefore the types cannot be equal 16:20:10 this deduction is false though, consider the different between a NORMAL and non-NORMAL IRRATIONAL number 16:20:19 MissPiggy: he did not say 16:20:23 therefore all possible humans have been created 16:20:24 he said 16:20:28 all possible humans exist with probability 1 16:20:35 if you don't understand the different, read up on probability. 16:20:38 *difference 16:20:45 because it's /very/ important 16:20:55 well I know what probability 1 means 16:21:03 then you must agree that it is true 16:21:07 if an event has probability 1 _it has happened_ 16:21:11 you are wrong 16:21:12 right? 16:21:46 if an even has probability 1, every part of the sample space satisfies that event 16:21:47 P(x)=1 -> P(not x)=0 16:21:52 MissPiggy: NO! 16:21:56 that is frequentist statistics 16:22:02 we're talking _bayesian_ statistics 16:22:15 MissPiggy: this leads easily to a contradiction if you have uncountably many alternatives 16:22:38 http://en.wikipedia.org/wiki/Frequency_probability 16:22:38 http://en.wikipedia.org/wiki/Bayesian_probability 16:22:43 http://en.wikipedia.org/wiki/Probability_interpretations 16:22:48 ah so this is something to do with aleph_1 (or more) 16:22:50 (Bayesian rulez frequentist droolz, also) 16:22:53 uncountable sample space 16:22:56 MissPiggy: no 16:23:03 we're not talking frequentist statistics dammit :) 16:23:27 * oerjan only talks kolmogorov probability, really 16:23:48 bostrom is (almost certainly; I haven't read it directly, but it's very unlikely he isn't) a bayesian 16:23:56 so obviously he's talking nonsense per frequentist statistics 16:24:18 when he says the universe is infinite, which infinity does he mean? 16:24:22 >_< 16:24:29 or does it not matter? 16:24:33 you're focusing on the most irrelevant detail of a thought experiment 16:24:47 the point is that if the universe doesn't have bounds on space, P(every possible brain exists)=1 16:24:57 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 therefore we assume that this is true, and use this as a thought experiment to show why Unification is nonsensical 16:25:32 I don't agree with the derivation of P(every possible brain exists)=1 16:25:49 the problem is that we're at a roadblock here 16:25:52 suppose in a 1mx1mx1m cube there is 0.1% chance of it happening 16:25:57 go read everything, I dunno, Eliezer Yudkowsky's written on bayesian statistics 16:26:00 then come back 16:26:02 and there is countably infinite of these blocks 16:26:13 MissPiggy: but space isn't divided into blocks 16:26:18 Then clearly there is a 100% chance of it having already happened. 16:26:20 :P 16:26:27 pikhq, how do you derive that? 16:26:41 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 now *that's* low 16:26:59 now extend that to infinite space... 16:27:01 alise, why does it matter if space is in blocks or not? 16:27:01 and it has probability 0 16:27:08 MissPiggy: because it invalidates your argument 16:27:10 -!- scarf has joined. 16:27:17 alise, isn't that what you want? 16:27:36 MissPiggy: I don't want people to have invalid arguments; I want them, and me, to be right about everything 16:27:46 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 or accept the opposite 16:27:57 scarf: hi 16:28:05 so okay, space isn't divided into 1mx1mx1m blocks 16:28:06 hi 16:28:15 so what does it mean 'space is infinite'? 16:28:31 >_< 16:28:37 Just that. 16:28:39 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 there are no bounds on the valid values of x,y,z in an (x,y,z) coordinate 16:28:46 pikhq, that's a nonsense statement though 16:28:47 MissPiggy: happy? 16:29:00 alise, if so then I dont see why we can't divide space up into blocks 16:29:05 you can 16:29:08 MissPiggy: What's nonsense about space being an infinite 3-space? 16:29:08 okay lets do that 16:29:09 but you can't postulate their inherency 16:29:16 ohh 16:29:25 you are saying there might be some dependent probability between them 16:29:58 when he says there is a nonzero probability, I wonder if he means a finite probability or an infintesimal one 16:29:58 your classification of space into blocks will be purely arbitrary is what I am saying 16:30:05 so you can only use them as notational shorthand 16:30:09 not as part of an argument itself 16:30:13 MissPiggy: finite 16:30:25 nonzero probability of x = P(x)>0 16:30:47 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 creating? 16:31:01 in two of these blocks there is what? 0.2% probability? 16:31:04 space doesn't "create" anything 16:31:11 "Moreover, there are many local stochastic processes, each one of which has a non- 16:31:15 zero probability of resulting in the creation of a human brain in any particular 16:31:18 yes 16:31:18 possible state.2" 16:31:20 PROCESSes 16:31:21 not space 16:31:38 MissPiggy: just a question 16:31:44 okay lets cut space into countably many cells, each of which one of these processess are happening 16:31:44 do you even know what bayesian probability is? 16:31:52 if not... we cannot possibly have this conversation 16:31:55 in two of these blocks there is 0.02% probability? 16:32:29 and if we have a million blocks there is 1000000x0.1% probability (which is greater than 1!) 16:32:40 and if we have countably infinite there is a divergent probability 16:32:44 http://en.wikipedia.org/wiki/Bayes%27_theorem anyway 16:32:54 so this guys argument is basically nonsense, agreed? 16:32:56 read it, learn, *then* come back 16:33:03 I know bayes theorem alise 16:33:11 MissPiggy: no, I am almost certain you have no idea about how bayesian probability works 16:33:15 MissPiggy: you really need to assume independence of the blocks to do a meaningful calculation here, imo 16:33:18 I do not agree 16:33:34 alise I will admit I got Yudkowskis breast cancer experiment wrong 16:33:42 in which case you take 1 - (1-0.02%)^n 16:33:46 stop spelling his name wrong 16:33:55 sorry 16:34:01 :p 16:34:43 i fucking hate zooko's triangle!! 16:34:45 i want my free lunch 16:34:56 MissPiggy: you don't _sum_ probabilities unless they are mutually exclusive events 16:34:57 -!- oklopol has joined. 16:35:24 oerjan I was assuming they are mutually exclusive, that seems to be in line with the idea of a 'local' event 16:35:51 MissPiggy: mutually exclusive means it cannot happen in two blocks simultaneously. that seems nonsense. 16:35:59 oh 16:36:03 I meant independent sorry 16:36:16 MissPiggy: in which case summing is even more wrong :D 16:36:27 in which case you take 1 - (1-0.02%)^n 16:36:56 um, 0.1% there 16:38:12 I wish there was a mathematical hierarchy for things like sets and lists like there are for numbers 16:38:15 monoids, rings, etc etc etc 16:38:19 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 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 as it is the reasoned language designer must come up with his own hierarchy :( 16:38:56 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 ok 16:40:20 okay maybe this would work better if I shut up an alise explains the paragaph? please :) 16:40:21 MissPiggy: which conveniently is easier to calculate by multiplying the probabilities of it _not_ happening in either 16:40:37 MissPiggy: I wouldn't know how to explain it; I can understand it but not serialise my understanding function. 16:40:49 alise so it's bullshit 16:40:50 Especially as I'm not sure exactly what you don't get. I'll leave the dirty work to oerjan. :) 16:40:56 MissPiggy: That does not follow; you are being irrational. 16:41:11 this pretending to be a rationalist thing is kind of lame 16:41:34 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 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 Yawn. 16:42:04 oerjan how do you derive that formual though 16:42:20 say the chance of it happening in one block is p, 16:42:22 it's the definition of independence in probability theory 16:42:24 then chance of not happening is 1-p 16:42:35 the chance of not happening in both blocks is (1-p)^2 16:42:43 P(A and B) = P(A)*P(B) 16:42:51 so that works out nicely, 16:43:03 but let us consider, the chance of it happening in two blocks = 2p 16:43:07 why is that false? 16:43:26 or, can I use the divergence of that (when the number of blocks reaches infinity) to show this statement is bogus 16:43:48 it's false because you can only sum exclusive events 16:44:25 that alise, Miss Piggy argument is better when you read alise as being voiced by kermit the frog 16:44:36 :-D 16:44:50 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 hm 16:45:18 but say, p = 0.1 16:45:27 ohh 16:45:29 okay yeah 16:45:42 so right the probability is 1! 16:46:18 yay! 16:46:19 -!- oklopol has quit (Remote host closed the connection). 16:46:24 yay! 16:46:27 now we are all happy! 16:46:50 hmm 16:47:08 if I want to be able to do things like "foo : card empty = 0" (card=cardinality) 16:47:14 then I need = to return a type 16:47:17 so I need True/False to be types 16:47:31 so I need Bool be a type whose values are the type True and the type False 16:47:45 and True to be a type with one value, refl or whatever 16:47:50 and False to be a type with no values, i.e. Void 16:48:00 which also lets us use False as the constructivist _|_ 16:48:13 e.g. (p, Not p) -> False 16:48:30 hmm, hey 16:48:36 so what does probability one mean? 16:48:36 can you constructively prove that False -> a? 16:48:43 MissPiggy: that the probability of it not happening is zero 16:48:50 alsie that's the induction scheme for the empty type 16:49:07 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 alise no what does it mean 16:49:11 (because `data False`) 16:49:17 MissPiggy: well it means exactly that 16:49:22 :/ 16:49:34 oerjan: you give him a boring, actually useful explanation 16:49:35 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 (bayesian this time since it /does/ matter) 16:50:02 alise: except i hate that stuff myself... :D 16:50:15 define that stuff 16:50:25 "that interpretation stuff" 16:50:29 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 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 MissPiggy: you probably think of #1 as the intuitive meaning of probability thus your confusion 16:50:45 but bostrom as a bayesian means #2 16:50:56 alise, my confusion what that I didn't know how to add probalities :| 16:51:01 [[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 http://en.wikipedia.org/wiki/Almost_surely 16:51:16 MissPiggy: your confusion because you thought prob = 1 = has happened 16:51:23 can you constructively prove that False -> a? <-- is an axiom i think 16:51:27 basically though just read http://en.wikipedia.org/wiki/Almost_surely 16:51:44 oerjan: Haskell is a constructivist logic, right, if you make sure never to use _|_? 16:51:57 trying to treat haskel as a logic is a mistake 16:51:57 You can't do `data False` and then write a `False -> a` in Haskell, at least 16:52:00 I know 16:52:08 just pretend haskell lets you do 16:52:14 magic f = case f of {} 16:52:15 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 then it should be a constructivist logic I think 16:52:29 which is actually valid in Coq 16:52:35 I guess so 16:52:44 anyway my main point is 16:53:07 thetype True = {refl:True} 16:53:10 thetype False = {} 16:53:11 thetype Bool = {True:*, False:*} 16:53:18 I:True is used in Coq 16:53:20 does this make sense? and is it a good idea? 16:53:21 or is it a pitfall 16:53:22 alise: avoiding full recursion is more important i should think 16:53:26 Bool doesn't make sense 16:53:31 oerjan: thus the requirement of a proof of totality 16:53:34 (well you need that to construct _|_ of course) 16:53:46 MissPiggy: hmm are you sure? 16:53:54 to me it doesn't make sense! 16:53:56 if you have unions you can't say that a value is of only one type 16:54:07 so it's not a stretch to have True be both a * and a Bool 16:54:15 it just means that 16:54:17 Bool is-a-subset-of * 16:54:21 and there's nothing wrong with that! 16:54:32 maybe yeah I suppose you could make that work.......... 16:54:41 it's a bit scary though 16:54:53 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 MissPiggy: yeah but I want * to be a Collection anyway :-) 16:55:27 so i'm sort of already in the direction of "hey these are actually quite ... tangible" 16:56:44 probability 1 only means surely in the case of a finite space? 16:56:57 MissPiggy: countable works too 16:57:06 oh! 16:57:20 so it's sort about aleph_1 16:57:23 probabilities are lebesgue measures, so countably additive 16:57:51 s/lebesgue measures/measures/ 16:58:23 (invented by lebesgue, in any case) 16:58:38 (and adapted to probabilities by kolmogorov, iirc) 16:58:47 okay 16:59:14 probability 1 doesn't really tell you anything then :| 16:59:25 because who knows which infinite we have 16:59:59 MissPiggy: well you can pretend it means surely, as long as you only test countably many cases 17:00:25 haha my mistake from earlier was soooo stupid 17:00:44 if you flip a coin twice it doesn't mean you will have seen heads and tails 17:00:53 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 that's my intuition on that anyway - the distinction between probability 1 and surely is only needed because of uncountability stuff 17:02:42 so _in practice_ it means surely 17:02:44 okay! 17:02:53 wait 17:03:02 in practice?? what about this situation 17:03:21 we are assuming the universe to be divisible into countably many blocks? 17:03:44 I don't think there's any evidence for that rather than uncountable 17:03:59 MissPiggy: well you could just take a countable subset of them... 17:04:23 yes but that wouldn't cover the whole universe 17:04:48 well no, but you need only to get all your brains into part of it to prove they exist :D 17:04:49 wait this is paradoxical 17:04:58 -!- addicted has quit (Quit: Konversation terminated!). 17:05:09 it needs to be a random subset, i guess 17:05:09 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 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 blegh! now I know how finitists feel! 17:06:50 heh 17:06:58 I just want to say "but you can't apply this probability argument to INFINTE SPACE" 17:07:08 but I don't want to give up on understand this either 17:07:42 I mean really this argument can prove anything has probability 1... 17:08:15 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 MissPiggy: http://en.wikipedia.org/wiki/Kolmogorov's_zero-one_law 17:08:25 but this it doesn't happen... 17:08:42 no you can't 17:09:06 that might be because the universe isn't actually infinite. 17:09:09 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 but you're almost certainly not on that earth, and the universe might not even be infinite. 17:09:30 deschutron yeah, but for this argument he is assuming it is infinite (which infinity?) 17:09:33 and it's still only probability-1 17:09:35 not _does_ exist 17:10:01 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 say, do set theorists have a symbol for the set of all sets? or has russell scarred them away from that 17:10:16 another place where type and set theory clash :P 17:10:19 that person is in another block 17:10:33 MissPiggy: they could phone you if you had an interstellar phone that somehow did FT 17:10:35 *FTL 17:10:41 but since it's about *the size of space* 17:10:43 yeah so maybe FTL is impossible 17:10:45 you can't apply it to earth 17:10:48 which is very finite, and small 17:11:07 so this is evidence against FLT :P 17:11:10 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 about to phone that earth's you 17:11:35 I wish there was a nice symbol for the holes in mixfix operators 17:11:56 in an infinite universe, there would be copies of both versions - you being phoned and you not being phoned. 17:12:10 as long as the phoning follows the laws of physics :P 17:13:22 not there would be 17:13:26 there is probability 1 that there would be 17:13:27 also dammit 17:13:30 I really want some sugar for 17:13:41 (a:t)->(b:t)->(c:t)->...->foo 17:13:45 alise: a bullet? 17:13:48 * MissPiggy gives alise a bowl of sugar 17:13:53 like for types, forall a b c. is that for t=Type 17:14:00 maybe I should just generalise forall 17:14:02 x^bar : t^bar -> foo 17:14:11 and let you do forall (a:somethingotherthanType) 17:14:13 vector notation like in physics 17:14:18 forall (a:t) (b:t) (c:t). 17:14:24 in fact forall a implies an implicit argument 17:14:29 which I'm fine with it's equivalent 17:14:37 forall (a b c : t). 17:14:45 yes 17:14:53 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 assoc : (a:m) → (b:m) → (c:m) → (a·b)·c = a·(b·c) 17:15:29 becomes 17:15:58 assoc : ∀a b c : m. (a·b)·c = a·(b·c) 17:16:01 which is equiv. to 17:16:10 assoc : {a:m} → {b:m} → {c:m} → (a·b)·c = a·(b·c) 17:16:22 i guess the a/b/c will be inferred to be 0 17:16:28 since from inside monoid that's the only m you know exists 17:16:29 well 17:16:35 you also know that 00 exists :P 17:16:42 and so on 17:16:47 hmm 17:16:49 MissPiggy: maybe I should just let you do 17:16:57 (a, b, c : m) -> ... 17:17:04 it just feels weird to have them all on one side of a -> so to speak 17:17:05 whats the poit of the commas? 17:17:07 because it nests rightwards 17:17:15 MissPiggy: otherwise it's pattern matching :P 17:17:17 it's like writing 17:17:20 let a b c = m 17:17:26 defines a function a 17:17:39 e.g. you can do (Just a : Maybe) -> ... 17:18:09 ok 17:18:44 the problem is that (a,b:t)->s is (a:t)->((b:t)->s) 17:18:51 whereas it looks like something confined to the LHS 17:19:09 the problem with the forall one is that they become implicit arguments, which usually isn't desired 17:19:22 also, you only really use this for propositiosn 17:19:27 *propositions 17:19:45 you wouldn't say () : (_, _ : m) -> m 17:19:47 because that's just ridiculous 17:19:51 so i dunno 17:20:30 http://r6.ca/blog/20030729T014400Z.html 17:20:31 m -> m -> m 17:20:45 apparently agda uses (a:t)(b:s)->r 17:20:47 erm 17:20:48 coq 17:20:49 not agda 17:20:53 not sure what it translates to though 17:22:15 it's not valid 17:22:34 (f:Morphism)(g:Morphism)->(Range g)=(Domain f)->Morphism 17:22:38 has to be rewritten as 17:22:41 forall (f:Morphism)(g:Morphism),(Range g)=(Domain f)->Morphism 17:22:43 to be accepted 17:22:58 well it is a post from 2003 17:23:01 so maybe it was valid then 17:23:09 ok so coq adopts my notation too 17:23:16 forall that is 17:23:22 I just simplify it to let you name the type only once 17:23:41 and uses a comma to separate forall and the rhs, I like that 17:25:56 wait 17:26:05 naturals and rings and stuff can be monoids under addition /or/ multiplication 17:26:25 does this mean I shouldn't name the identity and thingy functions 0 and *? :( 17:26:39 additiveMonoid 17:26:42 :P 17:26:56 I use e and & 17:26:56 e&e = e 17:27:04 yeah 17:27:05 but 17:27:13 it'd be so orgasmically awesome to be using monoids every time you multiply 17:27:29 Hm. 17:27:32 "Aliselang: You *do* need to know category theory to get things done in THIS one!" 17:27:38 The date on this thing has to be wron 17:27:40 *wrong 17:27:52 erm, time 17:28:38 MissPiggy: also it wouldn't be the type of monoid that changes 17:28:40 just two different instances :) 17:28:50 who says you can't have two values of type Monoid ZZ 17:30:42 but damn 17:30:49 i really was all COOL SHIT about calling 'em 0 and * 17:30:53 i feel so humbled 17:31:19 i am ensaddened 17:31:50 um you know 0 goes with + and 1 with *, usually... 17:32:32 i know 17:32:38 but I was literally going to have: 17:33:08 Monoid : Type -> Type 17:33:08 Monoid a = { 17:33:08 0 : a 17:33:08 (*) : a -> a -> a 17:33:08 assoc : forall (a:m) (b:m) (c:m), (a*b)*c = a*(b*c) 17:33:09 ...the identity element property that I can't have here because it leads to saying 0*x=x... 17:33:11 } 17:33:32 -!- deschutron has left (?). 17:33:36 O_o 17:34:43 what 17:34:52 i'm 17:34:53 Moniod m (&) e = Semigroup m (&) /\ Identity m (&) e ? 17:34:56 i think i'm totally wrong and confused 17:35:04 because something is going wrong. in my brain. 17:35:05 MissPiggy: lol 17:35:13 olol :( 17:35:43 hmm 17:35:45 alise: hey don't have a stroke, now 17:35:47 I should have a semigroup 17:35:56 ...also i need some sort of sugar for defining a bunch of "instances" 17:36:08 otherwise you'll have like 50 instance values of a few lines each 17:36:16 just to get + - and * :P 17:36:41 oh great, and I need magmas too if I really want to get down 'n dirty 17:36:48 kill me now 17:37:18 the problem is even worse 17:37:26 it doesn't seem like a linear heirarchy... 17:37:33 Magma : Set -> Set 17:37:33 Magma a = { 17:37:34 () : a -> a -> a 17:37:34 } 17:37:42 Most useful typeclasswhatever ever? 17:37:44 Yes! 17:37:45 how about 17:37:52 In fact you know what? 17:37:57 Magma a (•) = True 17:38:01 (Magma a) is equivalent to (a -> a -> a) 17:38:13 MissPiggy: lol you've adopted my set/type idea 17:38:30 have I !! 17:38:35 yes 17:38:38 Set = a -> Bool 17:39:06 aahaha 17:39:08 Anyway, since Magma a ≡ (a -> a -> a), I don't need it. 17:39:12 yes yo udo ! 17:39:18 At the most, I need Magma = a -> a -> a 17:39:22 MissPiggy: I don't. 17:39:30 { x : t } ≡ t 17:39:45 Magma a = { () : a -> a -> a } 17:39:55 ∴ Magma a ≡ a -> a -> a 17:40:20 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 MissPiggy: So why do I need Magma? 17:42:38 Say... 17:42:44 I run into problems using = for my relationships like associativity. 17:42:51 Specifically, I require a definition of equality for that set. 17:42:57 I should instead use ≡, I think. 17:43:15 ≡ : a -> a -> IsEquivalent a a 17:43:21 Hm 17:43:24 so basically (a ≡ b) is a proof that a and b have identical semantics 17:43:29 (misspiggy: is this well defined?) 17:43:40 Is there a page where I can see what it's like to visit an SSL website with a revoked certificate? 17:43:57 ≡ tends to be used for definitions, no? 17:44:28 i don't use it for definitions, so 17:44:30 = is when you apply not just definitions, but also properties and axioms 17:44:33 and it does mean "is equivalent to" 17:44:47 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 Semigroup : Set -> Set 17:48:46 Semigroup a = { 17:48:47 (something) : a -> a -> a 17:48:47 assoc : forall (x:a) (y:a) (z:a), (xy)z === x(yz) 17:48:47 } 17:49:12 set theory is hotttt 17:51:00 no it's not!!!!!!!!! 17:51:04 WHY NOT 17:51:14 http://en.wikipedia.org/wiki/Perverse_sheaf 17:51:31 what's wrong with perversity 17:52:38 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 yes you do need therapy 17:54:33 at least you can admit that.. 17:54:45 :) 17:54:53 Set_1 in agda is Set->Set right? 17:55:00 no don't think so 17:55:02 Set : Set1 17:55:06 -!- SimonRC has quit (Ping timeout: 265 seconds). 17:55:06 Set1 : Set2 17:55:13 ah 17:55:24 so Set_n is "set of {sets*n+1}" 17:55:26 Set : set of sets 17:55:29 Set1 : Set of (set of sets) 17:55:36 so Semigroup : Set1 means that Semigroup is a set of sets 17:55:43 so (a -> Bool) -> Bool 17:55:56 so Semigroup a means "is the set 'a' a Semigroup?" 17:56:08 now if only I understood the definition :) 17:56:59 hmm wait 17:57:34 so does {Semigroup a} -> mean "a set 'a' that is a semigroup"? 17:57:44 so then Semigroup a :: Set 17:57:53 but then is the resulting set a, or the semigroup stuff? 17:57:55 this is confusing 18:00:29 lol 18:00:37 MissPiggy: look at agda's stdlib lib/Algebra.agda 18:00:53 whenever there's controversy 18:00:54 they're just like 18:00:56 oh we'll put both in 18:01:00 SemiringWithoutAnnihilatingZero 18:02:13 I find it strange how many types Agda folk like to hide their things behind 18:02:16 _∙_ : Op₂ Carrier 18:02:26 why is this better than _∙_ : Carrier -> Carrier -> Carrier? 18:02:42 good question 18:02:44 idk 18:03:01 i guess it's so that you repeat less and have "more semantic" types 18:03:04 but I just find it obscures the meaning 18:03:17 also, 18:03:19 _≈_ : Rel Carrier zero 18:03:21 that is so a copout 18:03:30 just including "some sort of kinda equal thing that you want to be for the associativity" 18:03:42 a ≡ b ftw 18:04:00 _≡_ : a -> b -> Bool 18:04:04 (except you use it as a type, obviously) 18:04:13 just exploiting that Bool is True-or-False 18:04:22 and we use ≡ to prove two expressions equivalent 18:04:49 what's wrong with 18:05:05 Identity : forall T : *, T -> T -> * 18:05:22 what's the result? 18:05:28 reflexivity : forall (T : *) (t : T), Identity T t t 18:05:51 clearly if a and b have the same normal form, then reflexivity _ a : Identity _ a b 18:06:43 oh, agda calls the identity element of a monoid ε 18:06:44 good choice 18:07:52 A monoid whose operation is commutative is called a commutative monoid (or, less commonly, an abelian monoid). 18:07:52 what's wrong with e 18:07:57 heh, I've only ever heard abelian monoid 18:08:05 MissPiggy: well e is just an approximation of \epsilon used because we can't type e :P 18:08:16 also, because naming a parameter e is... not uncommon 18:08:18 but we use e in math-on-paper :[ 18:08:31 and it'd be nice to still be able to get at monoid identity while doing so 18:08:39 also, MissPiggy, what is the result of Identity? 18:08:42 i.e. the * in -> * 18:09:17 * is Set 18:09:28 yes 18:09:29 A : * means A is a type 18:09:30 but what is its _value_ 18:09:37 what set is it for some T 18:09:37 * is in normal form 18:09:41 and the two values 18:09:49 Identity T t t : * 18:09:54 3 : Nat : * 18:10:05 Identity Nat 3 2 : * 18:10:11 yes 18:10:18 so what is its use? 18:10:22 ??? 18:10:26 what's whats use 18:10:29 I guess as part as "reflexivity : forall (T : *) (t : T), Identity T t t" 18:10:33 *as part of 18:10:36 that's the constructor 18:12:01 also 18:12:04 Unifiable : Set → Set 18:12:04 Unifiable a = { 18:12:04 _=_ : a → a → Bool 18:12:04 leibniz : ∀(f:a→b) (x:a) (y:a). x = y → f x = f y 18:12:04 } 18:12:07 too far? 18:12:24 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 so from outside the module you can prove leibniz 18:12:38 but from inside, where you define the Unifiable instance, you cannot 18:12:46 so you can make it Unifiable 18:12:49 but only from inside a different module :) 18:13:00 that's like quotients 18:13:01 also, proving it may be *spectacularly* hard for some things, I expect 18:13:14 you can divide a type by an equivalence relation to make a 'smaller' type 18:13:31 like howso 18:14:36 hey I just had a thought 18:14:47 often in my dependent musings I wish to write something like 18:15:13 optimise : (a:ProgramInSomeLang) -> ((b:ProgramInSomeLang), a `hasTheSameSemanticsAs` b) 18:15:20 but then you need to unpack the tuple and all and it's woeful to use 18:15:20 BUT 18:15:22 you could do 18:15:31 (substituting Prog and `equiv` for those verbose names) 18:15:41 optimise : (a:Prog) -> {a `equiv` b} -> (b:Prog) 18:15:51 i.e. force the *caller* to prove that the optimisation preserves semantics 18:15:53 backwards binding!! 18:15:57 since it's implicit You Don't Have To Worry About It 18:16:01 MissPiggy: is that a yay or a yikes !! 18:16:22 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 Axiom : *; Axiom = { foo : *, bar : foo } 18:18:01 except you can make non-axiomatic foo/bar pairs with it 18:18:02 :( 18:18:09 so clearly we need some way to determine whether something is axiomatic :P 18:18:37 Axiom : *; Axiom = { prop : *, axiomatic : isAxiomatic prop } 18:19:41 MissPiggy: so is backwards binding nice or evil or sth? 18:19:48 BOTH 18:20:01 MissPiggy: how's it evil? 18:20:05 like what horrible things does it let you do 18:20:25 I don't know it's just hard 18:20:40 to impl? 18:20:49 slow to typecheck or sth? 18:21:06 stop writing sth :/ 18:22:28 sorry 18:22:29 old habit 18:23:07 * MissPiggy cries and weeps 18:23:41 for the sth time, stop writing sth 18:23:52 lLOL 18:24:49 MissPiggy: so is it 18:25:42 data Identity : (a:*) -> a -> a -> * where reflexivity : forall (x:a). Identity a x x 18:25:52 so 18:26:02 reflexivity : Identity NN 3 3 18:26:06 but not reflexivity : Identity NN 3 2 18:26:54 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 MissPiggy: also in your "forall (x:a)" is that basically an implicit argument 18:28:02 I think it is I think it iiiiiiis :P 18:28:03 huh? 18:28:09 huh what 18:28:14 forall {x:a}, is implicit 18:28:19 but forall (x:a), is not 18:28:19 right 18:28:25 but it can be implicit 18:28:31 and I don't see why it shouldn't be 18:28:34 data _≡_ : {a:Set} → a → a → Set where 18:28:34 reflexivity : {x:a} → x ≡ x 18:28:51 (substitute another symbol for \equiv if you want, but you get the idea) 18:28:54 yeah sure make it implicit if you want that's JUST SYNAX 18:28:54 SYNTAX* 18:28:58 yes 18:29:04 that way your proof if inferrable can just be "reflexivity" I think 18:29:11 hmm 18:29:14 so is refl = reflexivity? 18:29:18 I don't actually know why refl is called refl 18:29:23 refl-exivity 18:29:25 :DDD 18:29:26 right 18:29:29 but I mean 18:29:33 it's expressing that x = x (forall x) 18:29:35 people seem to use the name refl a lot in different types 18:29:43 (which implies symmetry and transitivity) 18:29:43 or are they all just specific instances of this? 18:29:54 like I'm used to thinking of implicit arguments as being filled in with refl. 18:30:06 oh well I don't know which examples you mean -- I haven't seen peopl ues refl much 18:30:37 perhaps 18:30:40 http://en.wikipedia.org/wiki/Quotient_set 18:30:41 so 18:30:41 we have 18:31:01 data Frac : * where Over : Z -> Z -> Frac 18:31:02 -!- sshc has quit (Ping timeout: 246 seconds). 18:31:21 so the equivalence class of (Over 1 2) in Frac is 18:31:32 {Over 1 2, Over 2 4, Over 3 6, ...} 18:31:32 right? 18:31:54 so to make the rationals we do 18:32:08 (a,b) ~ (c,d) = (a*d == b*c) 18:32:16 and then use that ~ on Frac 18:32:18 and get the rationals? 18:35:19 so 18:35:20 data _≡_ : {a:Set} → a → a → Set where 18:35:20 refl : {x:a} → x ≡ x 18:35:25 is correct, then 18:35:31 (although you'll probably bitch about the symbol I used :)) 18:35:38 i hope at least that 18:35:40 Unifiable : Set → Set 18:35:40 Unifiable a = { 18:35:41 _=_ : a → a → Bool 18:35:41 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 18:35:41 } 18:35:43 is unobjectionable enough to you 18:37:34 ah, fried blood <3 18:37:56 blech 18:38:00 we are no longer friends 18:38:40 :P 18:38:53 coming up with a syntax for record types is hard 18:39:08 you can have 18:39:09 record Unifiable : Set → Set where 18:39:09 _=_ : a → a → Bool 18:39:09 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 18:39:19 but then 1. it's confusing alongside the GADT syntax 18:39:26 2. you never specify that a is your agument! 18:39:28 *argument 18:39:48 incidentally i should probably find another name for Leibniz's law rather than implying that Leibniz was literally a proof 18:41:32 I thought you were still on my topic and constructing proofs about blood pudding, but then I started actually reading :) 18:43:06 :DD 18:43:31 -!- sshc has joined. 18:45:54 you know I prefer it when MissPiggy is angry at me and tells me what i should be doing instead 18:46:19 hmm 18:46:27 I guess if I want 18:46:28 _=_ : a → a → Bool 18:46:28 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 18:46:42 from inside something with a non-identical constructor equality thingybob that nevertheless satisfies that outside of the module 18:46:52 then I need to actually have a notion of "modules" in the type system 18:46:57 as a vampire, alise does not approve of frying blood before eating 18:47:03 so that leibniz can express the privateness of it or something 18:47:11 so that we can say "outside the module, (leibniz's law)" 18:47:50 oerjan: as a norwegian, do you approve? 18:48:07 yes 18:48:16 although i haven't had it in a long time 18:50:02 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 and making proofs by proving that it's true inside that model, and then lifting it out 18:50:23 xD 18:51:05 wouldn't that tend to risk hitting godel's theorem 18:51:26 I don't think so, proving (P in this system) should be identical to proving P, shouldn't it? 18:51:28 (having a model of the whole means the whole is consistent) 18:51:34 nope 18:51:36 it's loeb? no 18:51:38 the model could depend on the inconsistent parts 18:51:42 :) 18:52:50 i mean means the whole can be proven consistent 18:53:00 oh well maybe not 18:53:29 of course the issue there is that you need an inconsistent system 18:53:31 which isn't so good. 18:54:48 hmm you could have x ≊ y = (reduce x) = (reduce y) 18:54:52 except I guess you might not have = 18:55:21 i wonder if using = for unification /and/ definition will get confusing 18:56:08 hey can't you have _|_ with codata? 18:56:11 like having co_|_ or something 18:56:20 prolly not 18:59:48 no, you always must be able to unpack one more constructor in finite time 18:59:52 iiuc 19:00:30 darn :) 19:01:17 but you can of course have fix Later 19:01:50 fakeBottom = Later fakeBottom 19:01:59 yes 19:02:03 but that's just the partiality monad 19:02:08 yep 19:02:10 (which i think gives turing completeness right?) 19:02:24 well sure 19:02:29 problem is you have a lot of things which /are/ partial but the compiler can't infer to be so 19:02:40 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 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 data _≡_ : {a:Set} → a → a → Set where 19:07:15 refl : {x:a} → x ≡ x 19:07:15 is pretty damn awesome though 19:07:18 why didn't I think of that 19:07:50 I just showed you that :| 19:07:53 i know 19:07:58 thus "why didn't I think of that" 19:08:09 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 because it's inverted; instead of depending on the parent, it contains the parent constructed from the fields 19:08:34 pro: you only need to instantiate the topmost one 19:09:01 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 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 Each Set universe (and so far there is one, inconsistently containing itself, but later we shall have some sort of hierarchy) 19:09:57 why don't we just have 19:10:26 Set : (n:Nat) -> Setѡ 19:10:30 where Setѡ is some other thing 19:10:33 or wait it's actually just 19:10:39 Set : (n:Nat) -> Set (n+1) 19:10:46 surely that's the simplest way 19:10:51 Set 0 is * 19:10:56 Set 0 : Set 1 19:10:57 and so forth 19:12:20 hey, scarf is still here 19:12:40 yep 19:12:51 busy helping with a community nethack game, sorry 19:20:50 -!- oklofok has joined. 19:30:38 natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) 19:30:38 I think 19:31:34 well?? 19:31:39 MissPiggy: well what? 19:31:45 I was just writing things because I felt like it 19:31:59 why is it into bool instead of into *? 19:32:14 and the other thing is you have not --> forall n, P n at the end 19:33:33 well because I like having a type that lets me express "some true or false proposition to be proved" 19:33:39 * is needlessly general 19:34:15 but the thing with induction into * is you can use it to prove stuff or to do recursive programs 19:34:35 omg really? 19:34:36 :D 19:34:40 (re: recursive) 19:35:45 also 19:35:45 and the other thing is you have not --> forall n, P n at the end 19:35:47 I don't see what you mean 19:36:12 also wait, using it to write recursive programs? that means that we have a (Nat -> Set) at value-time 19:36:19 why would such a function be useful at value-time? 19:36:38 hmm... the f 0 argument should be implicit, but should the inductive step be? 19:37:17 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 I mean 19:38:33 natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) 19:38:36 should be 19:38:39 natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) -> forall n, f n 19:38:53 oh 19:38:55 natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat)) -> forall n, f n 19:38:57 ...lol 19:39:02 (∀(n:Nat), f n) -> forall n, f n 19:39:12 oh nevermind, now I see it 19:39:13 (∀(n:Nat), f n) -> ∀n, f n 19:39:16 (∀(n:Nat), f n) -> ∀(n:Nat), f n 19:39:21 i have that :) 19:39:38 if you could see how awful these unicode symbols look you might forgive me 19:40:59 :) 19:41:06 natInduction : (f : Nat → Set) → f 0 → (∀(n:Nat). f n → f (succ n)) → (∀(n:Nat). f n) 19:41:06 natInduction _ base _ 0 = base 19:41:06 natInduction f base induct n = induct (natInduction f base induct (pred n)) 19:41:10 if I'm not mistaken 19:41:18 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 MissPiggy: am I correct? 19:53:42 lol I felt the urge just now for something even more general than typeclass instances 19:53:54 instance (tc a) => tc (Foo a) 19:54:28 woah what is going on there 19:54:34 that's weird 19:56:29 well for instance 19:56:35 instance (tc a) => tc (Partial a) 19:56:37 well 19:56:42 you need to morph the return values into Partial too 19:56:43 lol 19:56:46 poll time 19:56:47 newtype Stream a = Partial (a, Stream a) 19:56:47 or 19:56:53 erm 19:56:54 *type 19:56:59 type Stream a = Partial (a, Stream a) 19:57:00 or 19:57:06 type Stream a = (a, Partial (Stream a)) 19:57:54 I guess I prefer the former because you can return Stream a 19:57:56 rather than Partial a 19:58:04 hd :: Stream a -> Partial a 19:58:04 tl :: Stream a -> Stream a 19:58:11 the co-ness of streams is embedded in the stream itself 19:58:31 ofc you need a newtype irl 20:00:37 i was hoping MissPiggy would pop up with some semantic reason for preferring one or the other there :P 20:01:00 ah! 20:01:03 newtype Stream a = Stream a (Partial (Stream a)) is actually preferable 20:01:08 so you can do foo <- tl somestream 20:02:33 -!- sshc has joined. 20:02:35 oh 20:02:37 -!- lament has quit (Ping timeout: 264 seconds). 20:02:38 newtype Stream a = Stream (Partial (a,Stream a)) 20:02:40 gives you all those properties 20:02:44 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 f x = Partial (a, x) 20:07:56 I guess 20:08:26 newtype Stream a = Stream (Partial (a,Stream a)) deriving (Show) 20:08:26 con :: a -> Stream a -> Partial (Stream a) 20:08:27 con x xss = return $ Stream (return (x,xss)) 20:08:27 rep :: a -> Partial (Stream a) 20:08:27 rep x = do 20:08:27 xss <- rep x 20:08:29 con x xss 20:08:33 rep stack overflows if you try and show it :( 20:08:37 i guess partial isn't /that/ lazy 20:08:56 -!- MizardX has quit (Ping timeout: 260 seconds). 20:09:03 a bad case of the Mu 20:09:16 the Mus 20:10:36 Mus Musculus 20:11:16 MissPiggy: here, how does Coq do records? 20:11:21 i played some poker and had a bad case of the lose 20:11:22 you like Coq, you should evangelise its syntax to me 20:12:08 hey i just realised something 20:12:20 the race :: Delay a -> Delay a -> a function given in the paper that returns the one that gets to Now first 20:12:29 is basically multitasking 20:12:35 you could race proc1 proc2 in an OS 20:12:41 admittedly, not very ooh-la-la SMP, but cool 20:13:56 alise: I think records are the same as inductive types but they have named projections (and only one constructor) 20:14:26 why not race :: Delay a -> Delay a -> Delay a ? :) 20:14:37 i don't think that's how it's defined in the paper 20:14:40 they use omegarace to define lfp that's a pretty wild one 20:14:53 yes it is 20:15:19 -!- sshc has quit (Ping timeout: 246 seconds). 20:15:20 race :: Delay a -> Delay a -> Delay a 20:15:20 race (Now a) _ = Now a 20:15:20 race (Later _) (Now a) = Now a 20:15:20 race (Later d) (Later d') = Later (race d d') 20:15:28 MissPiggy: oh yeah those types 20:15:43 http://r6.ca/blog/20030729T014400Z.html 20:15:46 same general syntax as here? 20:15:55 alise the fun thing about Delay is you can define functions that are MORE LAZY than haskell 20:16:01 re delay, yes, I know 20:16:14 my issue with coq's record syntax is that it differs too much from gadt syntax :P 20:16:28 Compose : (f:Morphism)(g:Morphism)->(Range g)=(Domain f)->Morphism 20:16:28 rangeId : (a:Object)(Range (Id a))=a 20:16:31 so caps denotes constructor 20:16:38 and lowercase denotes fields on all of those constructors or sth? 20:16:48 or else how do you denote type params 20:16:49 ;| 20:16:59 no lower/upper distinction (thank goodness) 20:17:04 or else how do you denote type params 20:17:09 like in 20:17:21 Monoid = { 20:17:24 star : blah blah blah 20:17:28 assoc : blah blah blah 20:17:28 } 20:17:31 where's the actual monoid type 20:17:34 i.e. the type argument a 20:17:41 or do you have it as a separate field? 20:17:47 in which case how do you do the equivalent of (Monoid m) => ... 20:17:50 in a type sig 20:20:21 it confuses me 20:20:34 no such thing 20:20:49 (unless you use the typeclasses extension which is quite new) 20:20:55 -!- Gracenotes has joined. 20:21:05 so how do you express the same sort of thing? 20:21:16 forall a. Monoid -> a -> ... isn't allowed, the a in the Monoid might not be the same a 20:22:29 forall a, Monoid a -> a ...? 20:22:29 lol agda has postfix ⊥ for its partiality monad 20:22:37 MissPiggy: from whence "Monoid a"? 20:22:49 Coq's syntax has the things that would be parameters elsewhere as record fields 20:23:01 Record Monoid a := mkMonoid { } 20:24:42 heh, seems the agda folk name their refls type-refl 20:24:53 so ≡-refl instead of just refl 20:24:59 MissPiggy: well how boring :) 20:25:31 MissPiggy: so do you prefer "Data Foo a := { }" to the haskell/agda-esque gadt syntax? 20:25:49 I hate records :| 20:26:10 the whole idea of making a 'record' separate for some arbitrary reason just makes me want to puke my guts out 20:26:23 well in my lang it's just syntactic sugar... 20:26:40 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 private 20:29:02 primitive 20:29:02 primTrustMe : {A : Set}{a b : A} → a ≡ b 20:29:04 Agda stdlib 20:29:06 reassuring 20:29:22 alise, what does that bit of code do? 20:29:28 yeah agda's weird 20:29:37 which bit of code? 20:29:41 MissPiggy: actually it's safe, just scarily named 20:29:42 alise, the bit you pasted 20:29:46 AnMaster: primTrustMe? 20:29:50 alise, yep 20:29:55 AnMaster, it's used internally, to do some weird stuff to do with IO and strings.. 20:29:57 AnMaster: do you know what dependent types are? 20:30:00 propositional equality? 20:30:09 if not, just don't think about it 20:30:36 alise, well, I don't know the details indeed 20:30:47 AnMaster or just ignore me and argue with elise... 20:30:52 eliser 20:30:56 :OOO 20:31:01 I just discovered the truth 20:31:02 eliser yewdcohski 20:31:07 oh no!! 20:31:11 also, yes, it is used internally like that 20:31:14 but that doesn't explain what it _is_ 20:31:29 alise, but including "TrustMe" in a identifier in any standard library is enough to make me cautious... 20:31:36 haha 20:31:41 AnMaster, it's used internally, to do some weird stuff to do with IO and strings.. <-- right 20:32:18 alise, and for a language used to prove things it seems just insane 20:32:28 well see that's because you looked at the name and not the type 20:32:33 and you can't look at the type because you don't understand the type 20:32:45 alise, sure, but the name is a bit of a wtf too, isn't it? 20:32:47 "oh no you can prove anything" is not even remotely what it does 20:32:49 AnMaster: yes, thus why i pasted it 20:33:03 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 alise, and is that bit wtfy too? 20:33:44 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 <-resp-≈ : IsEquivalence _≈_ → _≤_ Respects₂ _≈_ → _<_ Respects₂ _≈_ 20:33:45 <-resp-≈ eq ≤-resp-≈ = 20:33:45 (λ {x y' y} y'≈y x ( proj₁ ≤-resp-≈ y'≈y (proj₁ x , λ x≈y → proj₂ x ) 20:33:50 ) , 20:33:52 (That's not even the full definition.) 20:34:27 Or how about this: http://pastie.org/834543.txt?key=pja2m883ywrrb6scy3pxxg 20:35:05 alise, more or less unicode than perl6? 20:35:10 Far more. 20:35:31 Also, I am /totally/ not looking forward to having to prove my OS correct. 20:35:33 alise, must be a bit annoying to enter that sort of things. 20:35:40 /Totally/ /not/ /looking/ /forward/. 20:35:44 AnMaster: It comes with an Emacs mode that makes it easy 20:35:53 alise, tex input mode or a specific one? 20:35:58 Its own one. 20:36:01 right 20:36:17 <-resp-\~~ eq \<=-resp-\~~ = 20:36:26 alise, apart from these things I think _<_ and _≤_ looks very very ugly 20:36:38 AnMaster, it's part of the syntax.. 20:36:40 (\Gl {x y' y} y'\~~y x aesthetically I mean 20:36:42 *\to 20:36:42 you do like 20:36:44 MissPiggy, I didn't claim it wasn't 20:36:45 _<_ : A -> B -> C 20:36:48 x < y = ... 20:36:51 AnMaster: it's only because that bit of code is very ugly 20:36:51 I just said it didn't look nice 20:36:53 no just listen to me I am explaining 20:36:54 because, well, it's stdlib code 20:37:05 so that is how you define infix operators 20:37:07 actually _ for multifix is very elegant 20:37:13 if_then_else_ : Bool -> a -> a -> a 20:37:15 and you can use _<_ to denote the identifier 20:37:16 _+_ 20:37:18 _?_:_ 20:37:23 instead of having to write \x y -> x < y 20:37:24 etc 20:37:49 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 but dude, you use underscores 20:38:00 you program IN C 20:38:07 it's only ugly in context 20:38:13 alise, well I never liked identifiers beginning or ending with _ 20:38:18 like _exit() 20:38:19 you're making a statement about aesthetics 20:38:22 based on a tiny bit of stdlib code 20:38:25 stdlib code is ugly. fact. 20:38:29 agda isn't 20:38:32 alise, well yes it often is 20:38:46 /Especially/ when you're in type theory this heavy. 20:38:58 possibly, I can't comment upon that 20:39:17 alise, but I think stdlib.i is even worse. And I read some parts of it. 20:39:31 of course that doesn't compare for various reasons 20:40:35 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 oh? 20:40:48 yeah it's really useful to define parens 20:40:58 <_> : a -> TotallySquareBracketed a 20:41:03 = WowItsSoSquare x 20:41:12 also, <_> has a huge problem with his eyes 20:41:18 alise, I read that as "TotallyASquareBracket" first hehe 20:41:18 MissPiggy: sarc or sinc? 20:41:22 (Sarcasm or sincere, obviously.) 20:41:30 it's angle bracket too lol 20:41:34 my ridiculous code snippet is doubly so 20:42:02 AnMaster: indeed given a good enough language, bobwas_amanwith<_a_PLA,_n(_end;_4 is a valid operator 20:42:08 because parens will just be defined as the operator (_) 20:42:10 (x) = x 20:42:18 example usage of that incredibly useful operator: 20:42:29 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 at least if I had to ever maintain that code 20:42:49 alise, its one of the 'little things' which I would add to haskell to improvement 20:42:54 improve it 20:42:56 bobwas amazing amanwith< (boobs/42) a plastic PLA, (retard (2%-4)) n( (okaynowso okaynowso) end; woooh 4 20:43:06 of course, anyone defining such an operator is an abject idiot. 20:43:26 alise, agreed with the last comment 20:44:19 alise, so _ is basically "fill in stuff when used here"? 20:44:22 yep 20:44:36 well, in that case it is kind of neat. But around an operator it still looks rather ugly 20:44:37 it also means that type names like [a] and (a,b,c) are no longer restricted to the bourgeois language designers 20:44:44 [_] and (_,_,_) 20:44:54 but I guess you don't define such most of the time, rather you use them 20:44:59 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 and it's a rather specific piece of code too 20:45:15 thus the crazy 20:45:26 *bourgeoisie 20:45:28 no wait 20:45:30 *bourgeois 20:45:31 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 alise, what did that code from the stdlib do though? 20:45:56 yes well mixfix + first class operators leads to some gnarly crappiness that MissPiggy understands and I don't apparently 20:46:06 AnMaster: I have no fucking clue! 20:46:22 alise, ah, at least we are at the same level here then ;P 20:49:27 AnMaster: 20:49:30 _=_ : a → a → Bool 20:49:31 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 20:49:37 obviously the first is equality 20:49:46 take a guess at what the second is (hint: it's a property of equality) 20:49:57 after seventy-four hours (when you finally grok it) it will mow your blind 20:50:18 -!- sshc has joined. 20:50:38 AnMaster -- I already explained what it does 20:50:38 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 AnMaster: yes; it's actually ... well, you can think of it as an interface 20:51:12 it's the values that must be define on a type a to make that type Unifiable 20:51:24 leibniz, obviously, depends on = already being defined beforehand 20:51:34 but read its type (logical statement) 20:51:45 note that (b:Set) can be ignored 20:51:48 it's irrelevant to the gist 20:51:51 alise, I'm trying to remember what leibniz did to figure it out :P 20:52:02 no no, just read the type aloud 20:52:02 alas the things I do remember about him doesn't seem relevant here 20:52:08 you don't need to know his name 20:52:12 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 20:52:15 just ignore the (b:Set) part read the upside down a as forall 20:52:18 MissPiggy: don't explain 20:52:21 i wanna see him grok it himself 20:52:27 alise im explaining something to you :P 20:52:28 alise, I know what upside down A is 20:52:30 ... 20:52:33 MissPiggy: do it in pm 20:52:35 might be better written as 20:52:36 AnMaster: just checking >:D 20:52:39 MissPiggy: PM 20:52:40 pm plz 20:52:43 or you'll spoil it :P 20:52:49 alise, what is the x:a thing there? 20:52:56 as in, what does that part do 20:52:59 leibniz : forall (x:a) (y:a) (b:Set) (f:a→b). x = y → f x = f y 20:53:23 well that is the same as he said isn't it? 20:53:36 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 assuming → is "implies" 20:54:32 -!- alise has joined. 20:54:36 stepped on off switch 20:54:37 as in normal logic 20:54:45 MissPiggy: you explained it, didn't you 20:54:47 -!- CESSQUILINEAR has left (?). 20:54:50 alise, read logs, bbl reading iwc 20:54:51 ?? 20:55:01 i want cake 20:55:04 nope good 20:55:14 12:53:36 but doesn't it say that f(x)=f(y) if x=y? 20:55:16 yes, basically 20:55:19 anyone who defines equality 20:55:27 must provide a proof that f(x) = f(y) if x = y, by their definition 20:55:44 so you cannot define a bunk equality definition (well, apart from anything = anything being true) 20:55:56 but the thing is, it's just a normal type like = 20:55:59 there's no special "proof system" 20:56:31 -!- taxman has joined. 20:56:37 taxman, a man of much to tax 20:56:58 heyyy 20:57:02 hi 20:57:08 Hey and hi. 20:57:11 AnMaster: so basically, it's a constraint on how you can define = 20:57:18 taxman: you new i presume? 20:57:21 welcome! now sacrifice goats. 20:57:36 alise, I'm more used to thinking of = in terms of a relation on a set. 20:57:45 note: if you think, after that, that you have the wrong channel, you don't not have the right channel 20:57:56 AnMaster: Well, here, = is a function. 20:57:58 Just equals(a,b) 20:58:22 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 So it's like a constraint 20:59:10 -!- adam_d has joined. 20:59:27 also, that baffling snippet i pasted was a function manipulating relations :P 21:00:27 alise, sounds scary 21:00:37 scary, but cool 21:00:49 basically languages like this build up an entire logico-mathematical theory 21:00:58 and a proof system and a programming language based around them (that are the same) 21:01:03 and then it's your playground 21:02:20 alise, yes, but the stdlib is bound to end up quite hellish 21:02:26 in code, yes 21:02:28 in usage, beautiful 21:02:35 well yeah that is what I meant 21:02:40 what 21:02:50 why the hell would the stblib not be very simple and clear? 21:02:59 because the concepts involved are subtle and elegant 21:03:02 I'll let alise explain it 21:03:14 and the operations complex 21:03:23 hellish doesn't mean it isn't simple and clear 21:03:29 just complicated to the uninitiated 21:03:38 lol I want something like leibniz for ≈ 21:03:38 like 21:03:48 f(a) ≈ f(b) if a ≈ b 21:03:50 but that's clearly false 21:03:54 take e.g. a hash function 21:03:56 so really what we need is 21:03:56 alise, is ≈ almost equal here? 21:03:57 -!- lament has quit (Ping timeout: 252 seconds). 21:04:00 yes 21:04:13 f(a) ≈ f(b) if a ≈ b and f reacts in proportion to the change of its argument 21:04:17 alise, well hash function is a boring example. I was thinking along the lines of sin(1/x) around 0 21:04:18 and even 21:04:30 so im trying to learn about dependency syntax and how they characterize grammaticality in natural language 21:04:39 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 and one phenomena thats especially interesting to me is called an extraction island, right 21:04:49 or even 21:04:51 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 so the new tolerance can take into account the rate of change 21:05:03 basically its that thign that makes parasitic gaps parasitic instead of just bad 21:05:17 alise, couldn't you define a class of functions where f(a) ≈ f(b) if a ≈ b is true? 21:05:26 and then somehow attach that property to them 21:05:29 yes, that's basically what I'm doing 21:05:36 except the property is on ≈ 21:05:44 i.e. if you define approx-equal, you must show that it obeys this property 21:05:44 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 by saying 21:05:50 alise, I'm not sure what is necessary and sufficient for it 21:05:50 "f reacts in proportion to the change of its argument" 21:05:56 i'm basically conjouring up the set of functions that do that 21:06:07 alise, over the reals it must be continuous I think? 21:06:08 but this book makes no mention of extraction islands, despite being published about 20 years after they were discovered 21:06:12 hmm this may be the first time calculus was used in a type system 21:06:15 but that isn't enough 21:06:17 after countless others have written extensively on the topic 21:06:38 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 so i email him 21:06:54 TO THIS DAY the guy has never even HEARD of extraction islands. 21:07:03 alise, augur: your nicks are the same length 21:07:07 -!- scarf has changed nick to scarf|away. 21:07:11 and both start on a 21:07:12 AnMaster: this is true. 21:07:14 -!- scarf|away has changed nick to scarf. 21:07:17 I have problems following what is going on 21:07:18 yeah but he's annoying. and I'm not! 21:07:20 -!- scarf has changed nick to scarf|away. 21:07:20 wb scarf 21:07:23 scarf|away: bye 21:07:30 argh client issues I suspect 21:07:36 which means we will have this for some time 21:07:37 a brief stay. like life 21:07:41 until he notices it 21:07:49 AnMaster: no, he probably just returned to his terminal which set his irc client off 21:07:51 and then he fixed it 21:07:55 alise, hm maybe 21:07:56 presumably he's busy and just popped back 21:07:58 that's another possibility 21:08:07 augur: he's never heard of something so prominent? 21:08:10 the fool! 21:08:11 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 (in his field) 21:08:16 i dont get it 21:08:29 discontinue any interest you have in his work 21:08:37 alise, anyway what is required for f(a) ≈ f(b) if a ≈ b to hold? 21:08:56 alise, if you figure out what properties is required of the function I will be interested 21:08:57 i really should, alise. but he offered to look at some sentences and try to characterize their dependency structure 21:09:10 so ive sent him some examples to see if he has any observations to make 21:09:13 AnMaster: f(x)'s change is proportionate to x's change 21:09:26 -!- lament has joined. 21:09:28 alise, hm what about |x|? 21:09:29 apart from that, that's it, I think 21:09:51 AnMaster: yes, that's acceptable given enough tolerance in the ≈ you use for f(a)/f(b) 21:09:59 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 so the new tolerance can take into account the rate of change 21:10:07 is, I think, the definition you need 21:10:08 plus calculus 21:10:32 hm 21:10:52 alise, what about sin(1/x) 21:11:02 I would say it isn't true around 0 21:11:16 IRSSI is being bugger... 21:11:20 bugged* 21:11:27 no news there 21:11:35 AnMaster: well it always goes in the same sort of way, right? 21:11:40 it's just that the change gets more drastic 21:12:01 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 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 alise, you know lim_{x→0} sin(1/x) is undefined right? 21:13:10 (as well as it being undefined in the point 0) 21:13:24 (due to div by zero) 21:13:28 yes, and? 21:13:39 also sin 0 wouldn't type in my lang :P 21:13:48 alise, err? 21:13:52 sin 0 is perfectly ok 21:13:55 erm 21:13:58 I mean sin(1/0) ofc 21:14:04 well right 21:14:11 -!- oklopol has joined. 21:14:16 alise, what if the value 0 is from runtime? 21:14:22 or do you do type checking there as well 21:14:28 neither 21:14:34 this is why dependent langs are proof systems as well 21:14:43 alise, you require testing that it isn't 0 before? 21:14:49 before dividing* 21:14:51 you have to assure the language mostly the compiler can do this for you that it isn't 0 21:14:53 AnMaster: well, that's one way 21:15:29 alise, you have no exception handling or such I assume? 21:15:31 as in 21:15:37 throw/try_catch 21:15:41 or whatever 21:15:47 No reason why not, as long as throw doesn't return just "a" but "Throw a" or "IO a" or whatever 21:16:03 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 alise, why must it halt? 21:16:18 ah 21:16:19 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 right 21:16:21 now I see 21:16:28 AnMaster: because otherwise your proof for everything could be for(;;); 21:16:44 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 alise, I missed the bit about "partiality monad" but then it makes perfect sense 21:17:02 alise, so it will be total fp basically? 21:17:07 * AnMaster remembers reading about that 21:17:12 with data and co-data 21:17:12 also, ⊥ — our name for non-termination/error/all kinds of "non-value" — is insidious— oh, you've read the paper 21:17:16 then yes, it's total 21:17:28 just like every other dependent language that doesn't want to melt down horribly in nonsense :) 21:17:40 the language in Total FP isn't tc though iirc 21:17:48 with a partiality monad in a good dependent lang you get turing completeness 21:17:54 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 a blend of miranda and haskell and stuff 21:18:09 right 21:18:11 it wasn't really a full language 21:18:12 just pseudocode 21:18:14 true 21:18:24 well I understood the ideas, that was the main thing 21:18:37 yes 21:18:43 all this stuff is pretty sexy, it's a sweet spot in programming languages 21:18:52 alise, anyway, how often would you actually need such a partiality monad? 21:18:52 because it hasn't really been explored out of the fringe 21:19:03 and just adding dependent types gives you like billions of things for free 21:19:06 didn't the paper conclude that for a lot of purposes you didn't need tc 21:19:14 it's amazingly good bang for your (admittedly large) buck 21:19:21 I think total fp is pretty daft... 21:19:27 MissPiggy: then why do you use Coq 21:19:28 it is total 21:19:36 maybe you just mean the paper 21:19:41 AnMaster: anyway the paper isn't all /that/ good 21:19:47 prolly why it was rejected 21:19:47 but 21:19:51 ah 21:19:52 the partiality monad shouldn't be needed so much 21:20:01 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 didn't remember that about rejection 21:20:04 you can express ackermann and all without it, you're not really very limited 21:20:16 obviously the type of the main program is, well 21:20:18 why is the input cursor now gone?? 21:20:19 argh 21:20:19 just being total for the sake of being total seems a bit pointless 21:20:20 brb 21:20:21 Partial (IO ()) 21:20:56 right restarted some stuff 21:21:13 (as opposed to left restarted, or if you prefer that: missing comma) 21:21:43 so, where were we? 21:21:57 alise, ^ 21:22:37 since I lost scrollback there 21:22:56 _/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a 21:22:58 I believe 21:22:59 AnMaster: 21:23:03 you can express ackermann and all without it, you're not really very limited 21:23:03 obviously the type of the main program is, well 21:23:04 Partial (IO ()) 21:23:11 ah missed that last line 21:23:16 because otherwise you could never evaluate a Partial expression, as obviously Partial a -> a isn't expressable 21:23:20 because the whole point is that it's non-total 21:23:22 inside that monad 21:23:25 i.e. partiality is an effect 21:23:30 alise, could you do an infinite server loop? 21:23:31 without it 21:23:40 Sure, use codata to create an infinite IO structure 21:23:48 But you'd write the core of the server detached from IO stuff. 21:23:48 right 21:23:57 Of course, if IO wasn't codata... 21:23:58 alise, well that is common practise anyway 21:23:58 Then no. 21:24:00 in all good languages 21:24:06 But the Partial contains one IO, not a stream of them. 21:24:21 So if IO is data, not codata, you... well, you could infiniloop, but only because IO is useless without it. 21:24:22 But whatever. 21:24:31 Anyway: 21:24:42 HASKELL: 21:24:47 (/) :: (Fractional a) => a -> a -> a 21:24:50 MY LANGUAGE: 21:24:53 _/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a 21:25:00 I think it's obvious which will be more popular (it's mine). 21:25:09 _/_ : ∀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 (n:a) → b means 21:25:28 n is the value of the argument at that position 21:25:34 even though we don't know the value until runtime 21:25:37 alise, looks like the wrong order to put stuff in 21:25:38 we can use it in types 21:25:38 as in 21:25:40 It's Complicated. 21:25:47 AnMaster: x : a means x is of type a 21:25:50 it is not complicated!!! 21:25:51 alise, shouldn't definition come before use 21:25:54 if you reverse it that declaration would be written as 21:25:54 that is what I meant 21:25:55 AnMaster, backwards binding 21:25:59 AnMaster: it's no declaration 21:26:03 MissPiggy, yes, that disturbs me somewhat 21:26:07 AnMaster: it's just another argument 21:26:12 {...} just means "infer the value of this argument" 21:26:20 and having all your constraints 21:26:21 like 21:26:24 a must be a Field and Unifiable 21:26:27 and n must not be 0 21:26:31 before the rest of the type, is cleaner 21:26:39 also, err, I have it the wrong way round 21:26:44 alise, but does it return of the same type as the input arguments? 21:26:46 it stops you dividing zero by something else instead X-D 21:26:48 is that really correct 21:26:57 AnMaster: Sure 21:27:03 alise, if so 2/3 would be integer division? 21:27:06 2/3 is just (2/1)/(3/1) 21:27:13 that was quick 21:27:19 taking my example so fast ;P 21:27:22 No, 2 is of type ... lemme think 21:27:30 ∀a, {Whatever a} → a 21:27:37 alise, err? 21:27:40 Yes it totally will be called Whatever, shut up 21:27:51 alise, I don't get it. what does whatever do there 21:27:51 x/y is only defined if we have a proof of y [#] 0. 21:27:57 Definition cf_div (F : CField) (x y : F) y_ : F := x[*]f_rcpcl y y_. 21:28:00 AnMaster: well, 2 = succ (succ 0), so wherever succ is, that's what whatever will be 21:28:10 MissPiggy, what about limits then? 21:28:12 Record CField : Type := 21:28:12 {cf_crr :> CRing; 21:28:12 cf_rcpcl : forall x : cf_crr, x [#] 0 -> cf_crr; 21:28:14 ... 21:28:31 [#] means 'apart' i.e. not equal but more constructive 21:28:45 constructive my ass 21:28:46 http://c-corn.cs.ru.nl/documentation/toc.html 21:28:52 nothing wrong with a good refly frolick 21:29:10 it is more constructive to prove things are apart that prove the negation of equality 21:29:21 define apart? 21:29:32 it would have a different definition for each sort of type 21:29:39 but there are some axioms for it 21:29:51 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: 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 *classically 21:29:57 really cool 21:30:35 hey, where are the groans? 21:31:33 MissPiggy: hey do we have the axiom of choice for types? 21:31:34 that would be fun 21:31:38 i guess so 21:31:53 also I still don't get what apartness is :) 21:32:02 why is that axiom considered somewhat problematic btw? 21:32:02 also it kinda sucks to have a different operation for what's essentially the opposite of another op :( 21:32:09 apartness it a constructive proof that things are not equal 21:32:19 so it has more information in it than simply ~ x = y 21:32:23 I know why it is required, but I don't know why it seems to be avoided 21:32:27 AnMaster: http://en.wikipedia.org/wiki/Banach%E2%80%93Tarski_paradox 21:32:46 russell o'connor had a nice post about the AoC 21:32:48 lemme find it 21:33:04 alise, ah that, I think iwc did a huge annotation on it 21:33:16 during mythbuster theme 21:33:29 the strip was about needing 5 not 4 sections or such iirc 21:33:44 http://r6.ca/blog/20050604T143800Z.html 21:34:00 the Axiom of Choice has two parts basically 21:34:04 and one is uber smexy 21:34:26 i'm not inactive. just backlogged. 21:34:41 MissPiggy will hate it because it gets rid of quotient types apparently :D 21:37:33 -!- cheater2 has joined. 21:38:05 I like how he links to a proof of the axiom of choice, too 21:38:10 in Coq 21:38:11 "DON'T DOUBT ME, BITCH" 21:38:54 -!- cheater4 has quit (Ping timeout: 245 seconds). 21:39:08 in Coq <-- as a data: url too! 21:39:19 it seems 21:39:22 if it is the first one 21:39:31 * MissPiggy <3 data urls 21:39:31 yep 21:39:34 sooooooooooooo much 21:39:41 MissPiggy, seems a bit strange for this case 21:39:58 he does it a lot to basically do "footnotes"w 21:40:00 *"footnotes" 21:40:04 well, at least twice in his blog 21:40:33 imagine if we all were using turing machines. Every link would be a data: uri plus quining. 21:41:18 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 oh, %?? would be "this page", to avoid more quining issues 21:41:43 so every time you link to a page you store a complete snapshot of the web :) 21:42:00 well 21:42:04 the web reachable from the page you link to 21:42:07 which is probably an awful lot 21:42:28 alise, hm the bandwidth :D 21:42:45 Infinite, naturally. 21:43:03 alise, and 0 latency? 21:43:20 Latency is irrelevant so long as it is under, say, a few days. 21:43:31 I should make an effort to understand that proof :| 21:43:37 the banach tarski paradox is not a paradox, grrrr 21:43:40 alise, why? 21:43:40 (the external link) 21:43:41 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 So it'd be a one-time cost apart from really obscure stuff. 21:44:04 Because remember, the possible results include the links to pages there, etc. 21:44:12 alise, err, what about checking weather for tomorrow 21:44:16 So basically, caching the Google page caches every page on Google or reachable from a page on Google. 21:44:21 it would be annoying if you got that page only 2 days after 21:44:22 :P 21:44:30 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 Presumably by creating new pages, since there is no "page identifier" other than the page itself. 21:45:01 sure 21:45:05 Admittedly the latency would have to be non-ridiculous for that. 21:45:11 yep 21:45:46 alise, why not create all possible web pages instead? 21:46:06 (I suspect this is non-computable and/or uncountable) 21:46:26 3 times he's used link-footnotes on his blog 21:46:32 AnMaster: Uh, it's countable. 21:46:41 alise, they could have any length 21:46:45 A string is isomorphic to a natural number. 21:46:49 and link to any other 21:47:07 0 = "", 1 = "\0", 2 = "\1", ..., 255 = "\255", 256 = "\0\0", 257 = "\0\1", ... 21:47:13 so the entire web would be a set of infinitly long strings 21:47:15 no? 21:47:25 and thus there would always be one in between 21:47:30 Uhh... 21:47:37 http://r6.ca/blog/20040616T005300Z.html another good post 21:47:41 alise, thus we basically have cantor's diagonally thingy 21:47:49 err not that one 21:47:57 the one that proves you can't count the reals 21:47:59 cantorsDiagonallyThingy : ... 21:48:00 -!- scarf has changed nick to scarf|away. 21:48:05 -!- scarf|away has changed nick to scarf. 21:48:13 oh yeah it's the diagonal one 21:48:28 I was confusing it with the one that proved you *could* count the rationals 21:49:25 ALL THIS STUFF IS SO FUCKING INTERESTING! FUCKING FUCK FUCKSHI!!!! 21:49:27 *FUCKSHIT 21:49:36 I am not being sarcastic 21:49:38 fuck yes 21:49:41 anyway I maintain that the set of all possible pages including all possible linked pages as data urls is uncountable 21:50:03 due to what I described above 21:50:09 Perhaps. 21:50:48 alise, basically we could always insert a page that sorts in between two given ones 21:50:58 god modelling classical logic in constructivist logic will be awesomely awesome 21:51:12 the set of all possible finite pages is obviously countable 21:51:59 subst : {A : Set}(C : A → Set){x y : A} → x == y → C x → C y 21:52:00 hmm 21:52:02 oklopol, well, you could always insert one that sorts in between, couldn't you? it would still be finite 21:52:07 this is equiv to f(x) = f(y) if x = y isn't it 21:52:10 but slightly longer than those 21:52:11 except more constructivismism 21:52:14 (misspiggy?) 21:52:19 one that sorts? 21:52:52 alise prove symmetry (i.e. x = y -> y = x) using subst 21:53:19 you can't do that with f(x) = f(y) if x = y either can you 21:53:23 or do you mean subst is greater than that? 21:53:32 oklopol, anyway describe the proof for why " the set of all possible finite pages is obviously countable" 21:53:57 it isn't obvious to me, in fact it looks like the reverse 21:54:02 with f(x) = f(y) if x = y, it's `equals(y,x) = equals(y,y) if x = y` 21:54:10 AnMaster: base 257 numbers 21:54:13 since equals(y,y) is true, equals(y,x) must be true 21:54:19 since that's y = x, we have shown that y = x if x = y 21:54:25 that doesn't look possible with subst 21:54:34 MissPiggy: so leibniz's law is greater, then, I assume 21:54:35 oklopol, 257? 21:54:43 wait no 21:54:44 subst IS liebniz 21:54:48 let C be - yeah 21:54:58 AnMaster: yeah so you don't get the problem of initial zeroes 21:55:11 MissPiggy: it's just that i would have written it as C x = C y 21:55:15 rather than implying both 21:55:17 mine seems to be more general 21:55:26 C doesn't have to return Set, just something equalisibleirel 21:55:34 they're equivalent but still 21:55:38 I'm just wondering which is "better" 21:55:41 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 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 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 oklopol, but remember they do contain all linked pages as data uris 21:57:19 alise state them both 21:57:25 hm doesn't change things 21:57:44 -!- tombom_ has joined. 21:57:55 MissPiggy: but they're identical 21:58:24 AnMaster: well are they still finite? 21:58:25 state them :[ 21:58:34 the pages + data uri lists 21:58:48 12:49:31 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 21:58:48 12:52:12 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y 21:58:52 how do these two differ 21:58:59 o_o 21:59:04 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 sorry, tunes fucked up the unicode 21:59:13 thus they would be finite I think 21:59:19 alise no no no 21:59:21 so there are infinite pages? 21:59:21 if they were to include themselves literally 21:59:23 of course not 21:59:27 MissPiggy: ??? 21:59:28 oklopol, err what? 21:59:29 talking to you is so confusing 21:59:36 "AnMaster: oklopol, possibly it links to something that include everything else." 21:59:52 oklopol, "But I think alise said that should be represented as "same page" to handle the loops" 21:59:56 oklopol, on the same line 21:59:59 as in 22:00:01 alise I meant to say put x and y before everything else, for partial application 22:00:03 you use an escape 22:00:08 ah 22:00:11 to indicate it links to the page it is in 22:00:17 still 22:00:18 wait 22:00:21 that wouldn't work alise 22:00:27 why nawt? 22:00:29 oh AnMaster 22:00:32 thought you were MissPiggy 22:00:36 i.e. talking about non-boring things 22:00:38 -!- tombom has quit (Ping timeout: 265 seconds). 22:00:45 alise, you could have loops of pages that aren't using the top page 22:00:54 yes which is why in a data: uri you have %!! 22:00:55 to mean "this uri" 22:00:56 thus couldn't indicate "this page" 22:01:05 %?? means this page, i.e. the page containing the link to that uri 22:01:05 subst : ∀(x:a) (y:a) (f:a→Set), x ≡ y → f x → f y 22:01:05 leibniz : ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y 22:01:08 MissPiggy: stated. 22:01:11 it might be nested hm 22:01:26 obviously they both are equivalent; leibniz is more lenient/general, except not 22:01:28 AnMaster: what the fuck does it matter what it links to 22:01:33 no wait it is 22:01:34 yeah 22:01:38 hmm 22:01:47 subst may be "easier" to prove because it does not involve f x ≡ f y 22:01:48 oklopol, if it was to literally include the whole page recursively you would get infinite pages 22:01:53 which could be very iffy for arbitrary f 22:01:56 that was my point 22:02:05 MissPiggy: whereas f x → f y intuitively seems easier to prove, no? 22:02:11 in fact 22:02:39 a page would then contain infinite data urls in the middle 22:02:44 (possibly) 22:02:53 AnMaster: yes, good point, if there are infinite pages, then my argument about finite pages doesn't apply. 22:03:04 oklopol, is it still countable though? 22:03:07 I doubt it 22:03:08 oklopol: you're so sarcastic :) 22:03:28 MissPiggy: well this is some thrilling conversation here :P 22:06:52 AnMaster: if you have infinite pages, then there can obviously be uncountably many 22:07:01 f:a→Set is better 22:07:15 and it should be called leibniz, whereas f:a -> b should be called subst 22:07:33 oklopol, indeed 22:07:50 MissPiggy: why is f:a->Set better? 22:08:10 also, I'm only going to define one; the other can be inferred from it with no code, I believe 22:08:15 wait, no 22:08:42 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 which _doesn't_ mean that f x and f y are the same 22:08:54 alise, try and prove them both 22:08:57 wait, yes it does, since f can be any such function 22:09:09 MissPiggy: heh ok, i'm a bit of a proof retard though 22:09:10 it will only go one direction 22:09:20 i hope you don't mean a checked proof :( 22:09:26 of course I do! 22:09:30 i only know the programming side of /existing/ dependent languages though! 22:09:40 nah it doesn't matter if it's checked 22:10:42 * MissPiggy needs to read On Denoting at some point 22:12:55 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 i'm either intelligent or really stupid never in-between 22:13:22 well 22:13:26 refl : {x:a} → x ≡ x 22:14:21 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 your standard dependently-typed constructivist type theory 22:15:14 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 i'm proving it from 22:15:25 data _≡_ : {a:Set} → a → a → Set where 22:15:25 refl : {x:a} → x ≡ x 22:15:28 refl (f x) : f x = f x 22:15:28 as in, it follows from definition of ? 22:15:30 err 22:15:31 of = 22:15:46 so how can you turn f x = f x into f x = f y :P 22:15:55 (using "subst" which should actually be called leibniz) 22:15:56 if x = y then they are identifical 22:16:04 identical* 22:16:09 MissPiggy: yeah exactly 22:16:16 hmm so wait 22:16:36 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 if so, then I /definitely/ want subst, as it is "more fundamental" in a sense 22:16:46 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 MissPiggy, seems pretty trivial to me 22:17:04 well basically I need to prove that if the normal forms of two values are equal they're indistinguishable 22:17:10 i don't think that's axiomatic though 22:17:33 alise, sounds like the same as what I did basically? 22:17:40 well 22:17:42 no. 22:17:44 I took it axiomatic rather 22:17:59 well that's trivial then 22:18:11 alise, but I thought that was by definition so 22:18:35 http://pastie.org/834672.txt?key=ehlammleckrtzlp63rlxsw 22:18:44 I don't think MissPiggy would give me such a trivial task, though. 22:19:04 actually that desugaring isn't quite right, it's {} in the foralled things 22:19:05 but that's equivalent 22:19:23 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 if so, then I /definitely/ want subst, as it is "more fundamental" in a sense 22:19:25 MissPiggy: 22:19:40 alise that paste is not right 22:19:49 yeah i know 22:19:53 I was just playing by AnMaster's rules 22:19:59 or do you mean i made an actual error 22:20:02 in which case my brain really is off today 22:20:11 wel you just repeated the question then went QED 22:20:12 :D 22:20:12 alise, well without that axiom I'm quite confused as how to prove it 22:20:20 MissPiggy: exactly 22:20:23 AnMaster: duh that's why it's hard 22:20:39 AnMaster: you have to prove that (f x ≡ f y) → ⊥ 22:20:47 i.e. it is impossible to construct a value of type (f x ≡ f y) 22:20:51 alise, exactly, but I wasn't aware of that it was not considered axiom/definition 22:20:57 I was responding to 22:20:57 alise, well without that axiom I'm quite confused as how to prove it 22:21:09 anyway MissPiggy i don't want to prove it i want you to answer my question :) 22:21:11 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 if so, then I /definitely/ want subst, as it is "more fundamental" in a sense 22:21:11 :P 22:24:23 * alise whacks MissPiggy 22:24:39 hey I am writing something for you 22:24:42 stop attacking me! 22:24:44 oh okay 22:24:52 i was just making scientific inqierie 22:24:54 alise, possible answer (but certainly incorrect): "because it is call by value" 22:24:55 lol 22:25:03 AnMaster: that still isn't a proof 22:25:10 you don't understand what a proof is :) 22:25:11 alise, I said it was incorrect duh 22:25:16 alise, it was a joke 22:25:20 even if it was call by value 22:25:22 it wouldn't be a proof 22:25:23 http://pastie.org/834684.txt 22:25:34 alise, exactly. all math is 22:25:40 well 22:25:42 almost all 22:25:42 alise a proof is a term in the language! which will typecheck 22:25:44 all math is what? 22:25:48 call by value? bullshit 22:25:53 MissPiggy: i know _that_ 22:26:14 alise, I did correct it... 22:26:15 okay, so leibniz > subst 22:26:28 wait MissPiggy you're giving me homework! 22:26:30 >:| 22:26:32 yes :P 22:26:40 anyway i have no dependent language installed so i can't prove it 22:26:40 nyah 22:26:51 you are not supposed to use a type theory just do it by hand 22:26:58 okay lamer :P 22:27:10 ugh i have to rewrite your fucking lame syntax in sane syntax :| 22:27:17 maybe I'll refuse to 22:27:23 also, why P instead of p 22:27:26 it's a variable 22:27:27 well I want to see how you rewrite it because I don'\t know what's bad about that syntax 22:27:34 there is no lower/uppercase distinction 22:27:37 (which is a good thing) 22:27:47 yes 22:27:49 but convention 22:27:56 also you can't use (T:*); this is /inside/ Unifiable 22:28:01 er wait no 22:28:08 er wait yes 22:28:12 i've been using \equiv all along lol 22:28:13 when I really mean = 22:28:31 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 Do you mean for Unifiable, i.e. ≡? 22:28:54 i.e. the refl thing 22:28:55 erm 22:28:57 Do you mean for not Unifiable, i.e. ≡? 22:29:00 -!- augur has quit (Read error: Connection reset by peer). 22:29:01 alise, you can replace = with any 2-ary relation, the definition doesn't matter 22:29:02 I assume you do, otherwise I cannot help 22:29:06 MissPiggy: can't 22:29:13 because the proof differs for each definition of = in Unifiable 22:29:18 no it doesn't 22:29:20 so I'll assume equiv 22:29:23 MissPiggy: yes, it does 22:29:25 :| 22:29:30 because the definition of = differs 22:29:33 -!- augur has joined. 22:29:34 the proof using = must differ too 22:30:29 anyway do you want \equiv i.e. same normal form 22:30:37 or = i.e. defined depending on the type 22:30:46 (since we have unifiable = (t,=,leibniz)) 22:30:51 choose 22:31:15 alise, listen to me :( 22:31:23 If the former is acceptable I would prefer it, for I do not need to include records in the type. 22:31:26 Is the former acceptable? 22:31:27 Yes or no. 22:31:27 if you replace all occurecense of x = y with R x y 22:31:30 Yes, I know. 22:31:32 and f x = f y with R (f x) (f y) 22:31:32 Is the former acceptable? 22:31:35 then you can still do the proof 22:31:38 Is the former acceptable? 22:31:52 geez you really dont understand what 'listen to me' means 22:31:55 I do. 22:32:04 And I understand what you said. 22:32:15 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 what question 22:32:36 leibniz : ∀(a:*) (x:a) (y:a), (p:a→*) → x ≡ y → p x → p y 22:32:39 where 22:32:41 data _≡_ : {a:Set} → a → a → Set where 22:32:41 refl : {x:a} → x ≡ x 22:32:52 Now, I am not proving leibniz; correct? I am proving leibniz implies subst. 22:32:59 yes 22:33:00 Is this, then, acceptable? 22:33:00 "leibniz impiles subst (prove this)" 22:33:01 MissPiggy, but does that really hold for any R? 22:33:03 Good 22:33:07 MissPiggy, and any function? 22:33:36 any relation R which has reflexivity 22:33:43 ah 22:34:55 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 and =< is reflexive 22:35:20 "it doesn't hold"? what is it? 22:35:54 that x =< y implies md5(x) =< md5(y) for example 22:36:08 MissPiggy, since =< *is* reflexive 22:36:22 AnMaster, forget about proving subst or proving liebniz, 22:36:32 we are thinking about proving subst -> leibniz, or leibniz -> subst 22:36:41 MissPiggy, hm right 22:37:10 you are right that with R as =< it you can't construct subst, but that is not really an issue 22:37:46 MissPiggy, so you need more than just reflexive. I think you need symmetric too 22:37:53 probably transitive as well 22:37:54 what's the tex for the or symbol again? 22:38:14 alise, \cup ? 22:38:18 AnMaster: you can prove symmetry and transitivity from leibniz! 22:38:20 thanks 22:38:42 or maybe it is \vee 22:38:43 forgot 22:38:56 MissPiggy, hm okay 22:41:48 MissPiggy: lol well I thought I'd proved it 22:41:52 but I'd actually proved 22:41:53 ∀(a:*) (x:a) (y:a) (b:*) (f:a→b), 22:41:53 x ≡ y → (f y ≡ f x) → (f x ≡ f y) 22:42:00 sec, I believe I have the basic technique right 22:42:30 alise yes! 22:42:38 yes what? 22:42:39 oh wait 22:42:40 no! 22:42:41 sorry 22:42:42 indeed :P 22:42:46 I thought you did it too 22:42:50 alise, you proved commutativity of equal :D 22:42:53 i'm close though 22:42:54 or what? 22:42:57 AnMaster: not equality; equivalence 22:43:00 right 22:43:07 given ∀(a:*) (x:a) (y:a) (p:a→*), x ≡ y → p x → p y 22:43:17 lol you know 22:43:20 I've had a journey with equality 22:43:30 first I used shitty languages that only had one or two equality operators and shit sucked 22:43:48 eh 22:43:51 then I used Scheme; it had a multitude of equality operators defining every type of equality given mutable pointers 22:43:57 and I thought dayum, this language sum rigorous bitch 22:44:10 then I used Haskell: lo, for it only had one equality, by removing that hideous wretch of mutability and pointers. 22:44:14 oh I get what you are talking about now 22:44:24 And I thought: lo, this bitch did remove sum complexity with it's purity; dayum. 22:44:45 Now, I use dependent languages; they have every type of mathematical equality, equivalence under reduction, and ponies. 22:45:00 And I think: Dayum, I sure am glad I'm messing with this instead of doing actual real work. 22:45:05 alise, yeah all those equal variants in scheme annoyed me 22:45:06 as in 22:45:12 I could never remember which one I wanted 22:45:14 haha 22:45:24 *its purity 22:45:28 (after haskell line) 22:45:46 okay so what i need to do is basically give a suitable p 22:45:59 -!- augur_ has joined. 22:46:02 so that (p x -> p y) means the same thing as (f x === f y) 22:46:21 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 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 otherwise, I have merely a tautology 22:47:04 got it 22:47:09 MissPiggy: will this be on the exam? 22:47:15 oklopol, certainly 22:47:22 oh shit this gunna be long night 22:47:27 sleep -> 22:47:58 MissPiggy, what exam? 22:48:10 oh wait it was a joke right? 22:48:14 anyway, night too 22:48:57 MissPiggy: http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow I have proved that leibniz implies subst. 22:49:16 I now must show why ~(subst -> leibniz), correct? After you make sure my proof is correct. Miss P. 22:49:24 no 22:49:30 don't prove ~(subst -> leibniz) 22:49:36 Probably I made some trivial error as I often do. 22:49:37 just explain why subst doesn't imply leibniz 22:49:38 MissPiggy: not prove; just explain why 22:49:42 lol 22:49:44 yes 22:49:49 ut yeah, check http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow is to your satisfaction 22:50:19 True/False are assumed to be of type *, 22:50:20 and we are assumed to have ∩ doing the obvious thing on True 22:50:20 and False. 22:50:23 this is not needed in the actual proof 22:50:26 just debris from a previous version 22:50:31 alise, almost.. 22:50:41 subst {a} {x} {y} {b} {f} e = leibniz {a} {x} {y} {λz → f x ≡ f z} e _ 22:50:47 shouldn't that _ be (refl (f x))? 22:51:18 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 well i read that agda implements implicit arguments as syntactic sugar by replacing them with _ 22:51:24 which is where the real magic is 22:51:31 oh 22:51:35 because _ is letting the compiler prove it 22:51:36 which is cheating 22:51:36 right? 22:52:07 well I mean why not just write subst {a} {x} {y} {b} {f} e = 22:52:07 AnMaster: How? Knuth is a literate C man. 22:52:12 subst {a} {x} {y} {b} {f} e = 22:52:14 wugh!! 22:52:15 subst {a} {x} {y} {b} {f} e = _ 22:52:17 alise, the literate bit is what I meant 22:52:18 why not just that ^ ;P 22:52:20 MissPiggy: yeah exactly 22:52:25 I get your point 22:52:34 http://pastie.org/834713.txt?key=f7bl2cjpmw9tmchuyqdw 22:52:35 Revised proof. 22:52:37 AnMaster: lol 22:52:48 yes alise this is perfect 22:52:54 * MissPiggy puts down the cane :) 22:53:40 alise, what you done there *is* literate programming it seems 22:53:45 *did 22:53:52 "What you done there" sounds... uncouth! 22:53:53 alise, youve* 22:53:57 err 22:54:04 plus ' possible 22:54:08 Whateva yoove doned there's 22:54:14 It's you've. 22:54:18 yeah 22:54:22 alise, that was the real typo 22:54:36 as in I intended to write you've 22:54:37 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 But yes, it is text interspersed with code. :P 22:54:51 MissPiggy: Okay so now I have to do the reverse 22:54:55 no 22:55:00 yes i know not a proof 22:55:01 an explanation 22:55:03 blah blah blah 22:55:34 alise, an indirect proof sounds like the way to go there 22:57:32 wait, maybe not 22:57:35 MissPiggy: actually I'm not seeing it 22:57:39 So what does "p x → p y" really mean? It means that given 22:57:39 a value of type (the result of p x), we can return a 22:57:39 value of type (the result of p y). Since values with the 22:57:39 same normal form is distinguishable, this is equivalent 22:57:39 to (p x → p x), a tautology. 22:57:47 obviously p x has the same normal form as p x 22:57:55 no no 22:58:00 and that's what subst talks about 22:58:03 x = y does not mean x and y have the same normal form 22:58:05 f x having the same normal form as f y 22:58:09 MissPiggy: x === y does though 22:58:15 you /said/ equiv was acceptable 22:58:17 no 22:58:26 the two values are /the same value/ 22:58:30 so obviously they share a normal form 22:58:36 it's only when you have refl 3 = 5 typechecks.. and that is valid (but unprovable.. which is good) 22:59:10 but also you can prove (by induction) x + y = y + x 22:59:21 Oh, so I should substitute _|_ for the equivs to see why it isn't possible. 22:59:38 All that tells me is that my proof is id, because I already have a _|_. 22:59:42 I don't really see your point. 22:59:47 I am slightly thick though 23:01:00 well what I said earlier was a bit confusing 23:01:19 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 of course 23:01:48 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 do i have to do this homework? i did the interesting one :( 23:02:09 but in an open context it's different 23:02:13 this is just... mathematical philosophy 23:03:08 :D 23:03:24 what this is telling me is, Unifiable should include leibniz of the p x -> p y form and not subst 23:03:38 and I am grateful for that! NOW DIEEEE 23:03:53 lol if you don't complete it will not attain full marks 23:03:59 maybe later 23:04:06 alise nah we covered it 23:04:12 Also, * sucks! \star, \bigstar, Set or Type please. :P 23:04:16 I mean look, subst can only produce an equality 23:04:19 (You may choose.) 23:04:21 MissPiggy: yeah 23:04:23 but liebniz can produce _anything) 23:04:24 whereas leibniz can produce anything 23:04:25 _anything_ 23:04:26 yes 23:04:26 lol 23:04:34 subst is just a restriction of leibniz's type pretty much 23:04:36 so that's why it's stronger 23:04:38 modulo a few, really unimportant things 23:05:17 no but they are important! 23:05:29 whatevs :P 23:05:34 anyway, on to important matters 23:05:38 \star, \bigstar, Set or Type 23:05:41 lol 23:05:46 \bigstar 23:05:57 what type has \bigstar? 23:06:08 ★₁? 23:06:12 oh wow that star is ugly in this font 23:06:14 not antialiased 23:07:36 -!- madbr has joined. 23:07:47 MissPiggy: THESE ARE IMPORTANT SYNTACTIC MATTERS :P 23:08:18 every though I read your note I still don't get why it's important.. 23:08:45 it's not I'm just joking 23:08:57 syntax is important but not the name of the set of sets :) 23:09:14 Set is a bit of a misnomer though, isn't it? 23:09:19 because set theory is subverted in some places, no? 23:09:37 yeah it's kind of weird to call it set 23:09:44 or wait no, the subversion is (exists a. a) as a type 23:09:53 but i'm not sure i even have existential quantification 23:09:57 what does it even mean in a dependent language 23:11:08 MissPiggy: if it obeys set theory though what's the problem 23:12:01 but it's not a set 23:12:07 howso? 23:12:16 it's an inductively defined set if i have my set theory terminology right 23:12:21 you can interpret it as a set.. .but that's just like, your interpretation.. man 23:12:42 are you saying that because you could equally well call it ConstructiveStatement? 23:13:22 "The view from the left", paper introducing Epigram: 23:13:42 "{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 I was unaware. 23:14:21 wait, records are the same thing as modules aren't they 23:14:24 given a good record system 23:14:44 well, rather, record types = module signatures 23:14:52 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 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 guh 23:38:32 I need to understand Agda's library 23:39:08 ooh, I like its syntax for forall 23:39:24 ∀{a} → b 23:39:46 ⊥-elim : ∀ {w} {Whatever : Set w} → ⊥ → Whatever 23:39:46 ⊥-elim () 23:40:48 -!- tombom_ has quit (Quit: Leaving). 23:41:12 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 this is INSANE! 23:41:28 I /know/ I'm not clever enough to do this 23:41:54 yes you are 23:41:54 once you have philosophy on your side it will become much easier 23:42:20 listen to this http://www.youtube.com/watch?v=q3nV6WqA4Y0 23:42:44 what do you mean by "philosophy on your side" exactly? 23:42:51 like some sort of coherent "idea" of my language that everything follows from? 23:43:05 just think about what stuff means and such 23:43:09 huh it seems that agda's solution to having one _+_ with multiple definitions is just to... rename them on import 23:43:12 unless i'm reading this wrong 23:43:15 MissPiggy: yeah i try 23:43:16 things will unify 23:43:34 MissPiggy: i'm almost certain I'm not intelligent enough to prove my language correct, though. 23:43:46 I don't have a Ph.D., I haven't studied proving such things. 23:43:48 alise oh of course you are, just implement a model in some other type theory 23:43:59 ...you know, you're right. 23:44:06 I just have to implement this in Agda or Coq or whatever and I'm done. 23:44:18 My fear there is that implementing it in Agda will show how ridiculously similar to Agda my language is. :) 23:44:30 I can't understand the proof for stuff like Coq but I know it's not a hoax :P 23:44:46 wow, gedit highlights agda as... wait for it... 23:44:47 VHDL 23:45:01 thats kind of ironic lol 23:45:06 it actually doesn't work too ridiculously badly 23:45:11 it highlights open and record 23:45:13 not data though 23:45:24 highlights String too but not most other data types :P 23:45:31 highlights comments though which is the main thing imo 23:45:43 data ℤ : Set where 23:45:43 -[1+_] : (n : ℕ) → ℤ -- -[1+ n ] stands for - (1 + n). 23:45:43 +_ : (n : ℕ) → ℤ -- + n stands for n. 23:45:47 Interesting representation. 23:46:19 did you like the song 23:46:32 which song 23:46:37 http://www.youtube.com/watch?v=q3nV6WqA4Y0 23:46:43 oh right 23:46:47 my flash is borken, guess it's time to restart ff again 23:47:05 i love you adobe. let me violate you with a rake 23:47:37 -!- augur__ has quit (Ping timeout: 264 seconds). 23:47:46 heh you can get a script that makes youtube not use flash :P 23:49:24 i know. 23:50:18 MissPiggy: also, http://www.youtube.com/watch?v=a8Dshk1XfDc 23:50:30 i love that lol 23:50:38 ditto 23:50:41 he is one completely great actor 23:51:11 god, dependent languages are so amazing 23:51:26 i should make a channel for them, in fact i just did #dependent 23:51:35 I did that :( nobody joined 23:51:42 WE CAN JOIN 23:52:59 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 Hi! 00:16:11 o.O 00:16:21 What's a contest doing in here? 00:16:33 ? 00:16:37 Hi P4. 00:17:04 i have a brainfuck interpreter, the trigger is !brainfuck [code] if you'r einterested 00:17:21 Does it have a PSOX interpreter? 00:17:37 -!- BeholdMyGlory has joined. 00:17:51 !brainfuck [code] 00:17:51 Execution time: 0 sec., used 1 items. 00:18:01 !brainfuck [+.] 00:18:02 Execution time: 0 sec., used 1 items. 00:18:07 quite frankly, i don't know :P the script i use is here http://pastebin.com/d3e4a2f93 00:18:08 !brainfuck +[code] 00:18:34 What language is that? 00:18:37 And is it secure/ 00:18:43 !brainfuck [++.] 00:18:48 !brainfuck +[code] 00:18:51 It's not multithreaded, is it 00:19:00 A single infinite loop kills it 00:19:08 !brainfuck [code] 00:19:35 !brainfuck +[code] 00:19:35 Either make it so that execution stops after a certain time, or multithread it. Actually, you should probably do both 00:21:07 P4: lol you didn't even *write* the script you mean? 00:22:05 I don't recognize the language 00:22:22 that is right, i just wanted to test it for the exploiting 00:22:30 -!- augur has joined. 00:22:43 Oh, mIRC 00:22:59 that is right, http://www.mirc.net/paste/?3758 here is better view 00:23:08 People should learn to write real bots 00:23:16 pastebin.com seems to be failing on mirc type 00:23:28 Or Python scripts for XChat or something, at the very least 00:23:37 But real bots can be run by anyone regardless of client 00:23:46 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 http://www.youtube.com/watch?v=ox_7tPA-vYo&feature=related 00:26:03 Sgeo: i will help you if i can, but #supybot-bots is more apropriate channel 00:26:12 P4, it was a while ago 00:26:15 And I don't need it now 00:26:25 mhkay (: 00:26:31 If I need to write a bot anytime soon, I'm comfortable using irclib, and can survive with Twisted 00:27:30 http://www.youtube.com/watch?v=_RbNdwY4ujw 00:29:12 EgoBot: I wurve you 00:29:19 !bf_txtgen Gregor: I WURVE YOU TOO 00:29:27 221 ++++++++++++++[>++++>++>+++++>++++++++<<<<-]>>>+.>++.-------------.++.++++++++.+++.<<<++.>++++.>++.<.>>---------------------------.--.---.<+++++++++++++.<<+++++++++++.>.>+++.>---.<----.<.>-.-----..<----------------------. [499] 00:29:43 !bf ++++++++++++++[>++++>++>+++++>++++++++<<<<-]>>>+.>++.-------------.++.++++++++.+++.<<<++.>++++.>++.<.>>---------------------------.--.---.<+++++++++++++.<<+++++++++++.>.>+++.>---.<----.<.>-.-----..<----------------------. 00:29:46 Gregor: I WURVE YOU TOO 00:30:31 !bf_txtgen abcdefghijklmnopqrst 00:30:33 98 +++++++++++[>+++++++++>+++++++++>+><<<<-]>--.+.>.+.+.+.<+++++.+.+.+.+.+.>+++++++.+.+.+.+.+.+.+.>-. [323] 00:30:45 !bf_txtgen abcdefghijklmnopqrstuvwxyz 00:30:47 112 +++++++++++[>+++++++++>++++++++++>+><<<<-]>--.+.+.+.+.+.+.+.+.+.+.+.+.>.+.+.<++++.+.+.+.>+++++.+.<+++.+.+.+.>>-. [1000] 00:31:28 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 thanks for all the fish :) 00:31:50 -!- P4 has left (?). 00:31:54 Haw 00:31:57 I scared 'im off. 00:37:17 Was watching Hulu. 00:37:30 They just showed a Verizon commercial that was a blatant.. Twilight thingy 00:44:15 !bf_textgen wat 00:44:46 !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 !bf_txtgen wat 00:45:03 1923 +++++++++++[>+++>++++++++>++++++++++>++++<<<<-]>>-.++++++++++++++.<-.>>--.---.+++++++++++++.<.<.>>--.-----.<<.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>----.>-.<<-.++.>>>.------------.<<.<+++++++++.>>+.<<++++++.>>-------.---.<<--.>>>.<-.<.<+++++++.>>>.+++++++++++++++.<--------------------------------------------------------------------.>+++++++++++++++++++++++++++.<<<----.--.+.>>.>++++++++++++++++++++++++++++++++++++.+. 00:45:07 there we go 00:45:14 !bf +++++++++++[>+++>++++++++>++++++++++>++++<<<<-]>>-.++++++++++++++.<-.>>--.---.+++++++++++++.<.<.>>--.-----.<<.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>----.>-.<<-.++.>>>.------------.<<.<+++++++++.>>+.<<++++++.>>-------.---.<<--.>>>.<-.<.<+++++++.>>>.+++++++++++++++.<--------------------------------------------------------------------.>+++++++++++++++++++++++++++.<<<----.--.+.>>.>++++++++++++++++++++++++ 00:45:15 We live to dance, another day / Just 00:45:30 lol 00:45:40 espernet cut off the message 00:46:07 I just did this http://chicken.olol.eu/tests/index.bf 00:46:21 http://dresdencodak.com/2009/01/27/advanced-dungeons-and-discourse/ 00:46:29 Wareya: you mean freenode. 00:46:33 right 00:46:38 i'm on alot of servers 00:46:38 chickenzilla: .b not .bf 00:46:40 .bf is befunge 00:46:49 alise: people use bf for brainfuck too 00:46:53 Wareya: they are wrong 00:46:55 also, .b is for B 00:46:56 .bf is befunge, .b is brainfuck 00:46:56 ok 00:46:59 .b is B 00:47:00 simple rule, obeyed by everyone 00:47:02 Wareya: no it's not 00:47:04 yes it is 00:47:07 B was obsolete before we used file extensions 00:47:07 I code B 00:47:11 so? 00:47:21 so brainfuck got there first. and dbc does it, so stop whining. 00:47:29 okay? 00:47:40 What was B like? 00:47:48 then I'll use .bfk, .bfg, and .b 00:48:21 Well, it was BCL. 00:48:35 Sgeo: crappy 00:48:44 Erm, BCPL rather 00:51:59 * Sgeo is tired 00:54:01 yes 00:54:12 but I'm being forced to use it because f schol 00:54:21 my keyboard's daying 00:54:23 dying* 00:56:04 your SCHOOL uses BCPL?! 00:56:22 yes 00:56:46 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 Wareya studies in The Doctor's School of Time Travel and Computer Science 00:57:15 Also, B wasn't BCPL; B is a separate language. 00:57:20 yes 00:57:26 I knw this 00:57:29 know* 00:59:57 alise: Will you be watching men's curling in two hours? 01:00:00 Canada vs the UK! 01:00:08 I'll be taking Canada's side, so we can be competitors. 01:00:18 No! 01:00:45 LOSER 01:03:41 Well, maybe I will. 01:03:49 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 "While working on my book" Yudkowsky 01:07:48 YES 01:10:10 alise: About three hours :P 01:10:42 -!- adam_d has quit (Ping timeout: 272 seconds). 01:10:42 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 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 http://www.reddit.com/user/Lojban The reddit-account equivalent of a "what". 01:59:50 heh 02:08:00 E actually has a few comments with positive karma 02:08:15 I'm pretty sure he really did get castrated, though 02:08:35 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 Other shticks he's had: most of reddit are single moms 02:10:23 I'm sure you can infer his most common metaschtick based on that. 02:13:01 COUCH. 02:15:16 45 minutes 'til Canada starts whoopin' some UK arse! 02:16:27 anyone a latex god 02:16:39 what 02:16:47 well i can define me some macros yeah 02:17:55 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 oh i thought you meant like 02:19:07 bdsm. 02:19:08 i was punning. 02:19:30 bdsm latex is boring. 02:20:43 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 SG-1 seasons 9 and 10: Worth watching? 02:22:59 meh. 02:24:24 -!- Pthing has quit (Remote host closed the connection). 02:39:44 -!- cal153 has joined. 03:00:44 CURLING TIME 03:02:06 link me to an online stream 03:02:09 and i'll watch 03:03:34 I don't know where TF the online stream is :P 03:04:11 www.curling.com 03:04:31 Youre premiere curling director! 03:04:33 Eh! 03:04:34 y 03:06:07 hey Gregor 03:06:08 Britain beats China 9-4 in men's Olympic curling‎ - 4 hours ago 03:06:14 That's China. 03:06:16 WhoTF cares. 03:06:27 Chinese players get executed for even THINKING of bad strategies. 03:08:33 :\ 03:09:06 augur: what 03:09:22 LaTeX! :( 03:10:33 Olympics 03:10:34 My Head 03:38:42 alise: Canada's ahead 2-0 after the second end :) 03:38:47 Feck. 03:39:00 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 Done 03:58:48 http://pastie.org/835023.txt?key=hhgvq1jyj8oic2xkcdkog 03:58:51 Quotient types in action. 03:59:22 Arbitrary fractions + equality on fractions -> the rationals. Where two equal fractions are actually ===, i.e. "are the exact same value". 03:59:33 (= 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 Sgeo: Gregor: augur: be impressed. 04:13:28 what is it 04:13:43 04:12 < alise> Sgeo: Gregor: augur: be impressed. 04:13:43 04:13 < augur> what is it 04:13:51 haha reminds me of when I used to paint 04:14:16 I don't even know the typed lambda calculus 04:14:17 augur: it defines the rationals in an almost painfully cool manner 04:14:30 Can't read. Too busy watching curling. 04:14:38 alise: how do i do math in latex 04:14:43 You telepathied my message to your own mind, Gregor? 04:14:45 augur: >_< 04:14:48 augur: JFGI 04:14:50 Sgeo sorry :( 04:15:00 i did, but nothing useful comes up for the obvious reason 04:15:06 Sgeo it's easy you will learn it in two mins 04:15:12 I need to go eat 04:15:18 Sgeo but it's like you have to know the details and there's a lot of them 04:15:45 alise: Nope, I'm just guessing what you might say and typing blind. 04:16:05 Gregor: How much wood could a woodchuck chuck if a woodchuck could chuck wood? 04:16:52 alise: Nope, don't have time. 04:17:17 Gregor: Let's have sex! Everyone in the channel! 04:17:48 cmon alise 04:17:51 lets have it 04:17:52 hahaha 04:18:13 alise, augur: I'm in! 04:18:17 ;x 04:18:26 Gregor: EXPOSED 04:18:27 how do i do math in latex. 04:18:37 ...AND ERE*shot* 04:18:49 Now let us steer away quickly from this topic forever. 04:18:55 (Or at least until I'm 16.) 04:19:02 augur: How do I shot web. In LaTeX. 04:19:04 augur math in latex is easy?? 04:19:09 augur: how do I program in Scheme? 04:19:13 $$ \sqrt{2} $$ 04:19:19 I knew it would come in handy one day! 04:19:27 MissPiggy: what would? 04:19:29 MissPiggy: no, not how do i write math equations 04:19:34 how do i do actual calculations 04:19:37 augur: you don't 04:19:39 it's a typesetting system 04:19:42 ok then. 04:19:44 well you CAN 04:19:46 you /can/, it's turing complete 04:19:49 but you'd be an idiot 04:19:59 augur: are you writing a macro or sth? 04:20:13 i think tex has sufficient drawing primitives and stuff that do that shit for you 04:20:46 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 so read whatever tikz is's documentation 04:21:36 doing so :P 04:22:03 LaTeX is turing complete? 04:22:05 o.O 04:22:18 It has macros. 04:22:19 Q.E.D. 04:22:23 Is there a particular name for using a non-esoteric language in an esoteric manner? 04:23:05 I wish there was! 04:23:18 abusing is the most common term I guess? but it's not quite perfect 04:23:21 Sgeo: Walling 04:23:23 after Larry 04:24:20 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 Perl is basically an abuse of itself. 04:24:38 And variable names can start with $ or @ or something else I think 04:24:46 Perl = Walled Perl 04:24:57 An amazing recursive feat; too bad Perl itself can do nothing so grand. >:D 04:25:22 Also, he's a damned Christian! 04:25:45 (I am going to temporarily pretend that pikhq is not here.) 04:25:58 You'd expect most Christians not to be damned, I guess 04:26:00 04:26:22 And I'm assuming you're not actually judging him or Perl based on his beliefs, just joking about doing so 04:26:23 ((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 (((Missionaries. Fuck them!))) 04:26:55 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 I don't think most missionary girls would let me 04:27:05 >.> 04:27:16 alise, ah. 04:27:18 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 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 i now have a program that will do my homework for me 11:02:09 alise, btw it was \vee not \cup, misremembered yesterday 11:03:44 -!- MizardX has joined. 11:04:38 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 how do you mix up cup and cap? you don't drink coffee out of your hat do you? 11:20:12 cheater2, well that is the issue, I don't like coffee at all 11:20:16 nor tea 11:20:55 juice 11:20:56 water 11:21:09 normally I drink water, and usually from a glass, not a cup 11:21:17 also: eating ice cream out of your wedgies is nasty 11:21:34 but ice cream fits in a Vee just well 11:21:41 heh 11:21:53 bbiab, restarting X for upgrade of it 11:22:02 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 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 l 14:24:12 -!- Asztal has joined. 14:30:59 Topickale. 14:31:03 Gregor: who won? 14:31:21 -!- sebbu has joined. 14:32:57 -!- sebbu2 has quit (Ping timeout: 248 seconds). 14:36:37 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 " 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 s/" O/"O/ 15:02:08 -!- MissPiggy has joined. 15:03:07 is 1/(n+1)^2 left to right? 15:04:00 looks pretty left to right to me 15:04:12 no we are temporarily violating the laws of usual mathematics. 15:04:14 you missed the context. :D 15:04:14 (yes) 15:04:18 unless you start at the bottom and work upside down 15:04:19 okay 15:04:20 the context was 15:04:21 " 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 s/" O/"O/ 15:09:09 so if n=2, then you would have a 0.111... chance? 15:09:21 yes. but remember that you must have played the previous turn first 15:09:26 yes 15:09:39 and if you won on the previous turn (which is the most likely turn to win on), the game will end 15:09:48 of course then you only get a buck back 15:09:57 you might even lose money, depending on how much it costs to play 15:10:02 (per-turn i assume) 15:10:44 I'm not going to bother writing a script, and assume that it's a pointless bet. 15:10:58 I can tell you there that you are wrong. 15:11:07 Okay. 15:11:17 I was always told to not gamble anyway. 15:11:29 Expected return, bitch. 15:14:57 -!- oklopol has quit (Ping timeout: 256 seconds). 15:31:48 -!- KingOfKarlsruhe has joined. 15:32:07 "SourceForge.net chooses Python, TurboGears and MongoDB to Redesign their Web Site" 15:32:09 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 alise, prediction github, launchpad and so on will all hit the same destiny in 10 years or so 16:30:36 s/on /on: / 16:30:38 What; Singularity? 16:30:42 :P 16:30:46 alise, as sf.net 16:30:47 I meant 16:30:53 Yeah, I was just creatively misinterpreting. 16:30:57 alise, I know 16:31:03 I know you know. 16:31:28 and I suspected you knew that I knew that you knew 16:31:57 hm I think I mixed up that one 16:32:06 meh too much work figuring it out 16:32:58 bbl making food 16:39:14 -!- oerjan has joined. 16:44:04 god dammit dependent types are awesome 16:45:49 your face is awesome 16:45:50 augur: talk about how "you're a fool!" is more offensive than "you're a damn fool!" 16:45:58 okloping? 16:46:26 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 "You're a fucking cunt." 16:46:39 that's pretty offensive 16:46:45 and it's "just" swearing 16:46:58 and it's worse than "you're a cunt" 16:47:10 well sure but "cunt" is already swearing 16:47:43 "You're a fucking idiot." 16:48:27 i think just idiot is worse there... but i'm not native so 16:49:19 also i was making a theory, since no one else did 16:49:32 no, "fucking idiot" is definitely worse than "idiot" 16:50:02 in that case is it generally agreed that "fool" is worse than "damn fool"? 16:50:36 yes 16:50:37 idiot is also common in swearing though 16:50:57 "I'm going to kickflip off this building while eating a banana." "You're a fool." "Fuck you, man." 16:51:02 "I'm going to kickflip off this building while eating a banana." "You're a damn fool." "Haha, I know, man." 16:51:19 lol 16:51:56 * oerjan will wait for the scientific survey 16:53:45 MissPiggy: there seems to be a severe oklodeficiency here at the moment 16:54:24 okokok 16:56:08 -!- coppro has joined. 17:05:31 alise: Canada, of course :) 17:05:38 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 hcf fanclub 17:27:36 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 17:27:45 boom 17:28:42 boom of doom 17:36:26 Why do we explode when pooppy leaves? 17:36:39 See quit message. 17:36:45 I see it. 17:36:49 That doesn't answer the question :P 17:37:15 it is a categorial imperative 17:37:19 *categorical 17:37:30 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 alise: Men's curling, US vs UK RIGHT NOW 22:01:22 Um okay what channel in the UK I mean I don't even 22:01:25 BBC or ITV or what 22:01:29 Or do I need some shitty sports channel 22:01:32 * oerjan curls his toes 22:01:52 BBC 22:02:03 ok um as soon as I get the motivation to turn on the tv I will watch 22:02:07 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 "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 lly: to browse column of database and to browse tree of database. And many others." 22:06:16 whatttttttttttttt 22:07:05 lol same guy made "sql 5" http://sql50.euro.ru/site/sql50/en/author/index_eng.htm 22:07:26 unicode 7 (UPDATING): http://unicode70.euro.ru/ 22:07:33 and... computer 2! also updating: http://computer20.euro.ru/ 22:07:41 the first example: http://html6.by.ru/ 22:07:46 i think this guy may be crazy 22:07:59 http://unicode70.euro.ru/site/unicode70/en/author/index_eng.htm old version of unicode 7, wtf 22:08:09 but is he CRAZY2 ? 22:08:35 i have... i just the 22:08:45 omg he broke alise 22:10:34 it's 22:11:17 computer 2.0: http://computer2.by.ru/site/computer20/en/author/index_eng.htm 22:11:19 as we all suspected, alise was really an AI, and the russians developed an illogic bomb against it 22:12:26 oerjan: the of it ⊥ → a ∴ a and AND it ¬a the 22:12:35 -!- MizardX- has joined. 22:12:47 dammit unicode again 22:13:50 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 the glorious html html html html html 6 6 6 6 6 the html 6 22:14:24 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 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: 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 that's a great quote 22:36:39 especially if you know IWBTG 22:37:39 I beat 3 bosses on it and then lost my save file >:( 22:38:19 wow, I've never actually tried to /play/ IWBTG 22:38:23 but it's funny watching other people play 22:38:26 I have played it 22:38:28 I was really bad 22:38:34 also, *IWBTG:TM:TG 22:38:41 alise: ? 22:38:53 and dtsund*I Wanna Be The Guy: The Movie: The Game 22:39:01 (yes, I did just invent targeted correction syntax.) 22:39:08 scarf: It's the full name. 22:39:14 `addquote 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 ah 22:39:30 132| 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 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 someone beat iwbtg without any saves 22:49:39 O_O 22:49:56 some random japanese person 22:49:57 -!- kar8nga has quit (Remote host closed the connection). 22:50:01 no 22:50:17 someone with the youtube moniker "tijitdamijit" 22:50:17 oh, someone /else/? 22:50:24 this is on impossible mode 22:50:26 = no saves 22:50:32 i think the only person to do it 22:50:34 actually, you can save in impossible mode 22:50:40 the fake save point can apparently be used for one frame 22:50:41 due to a bug 22:50:43 well, yes 22:50:44 but it wasn't 22:50:49 but you'd pretty much need to TAS to pull that one off 22:50:58 someone managed it without that 22:50:58 anyway 22:50:59 http://www.youtube.com/watch?v=pnllGJy7lSk <-- part 1 22:51:11 sped up x3 22:51:14 do they do it in less than an hour? 22:51:31 dunno, it's multiple videos and most (all?) are sped up because it's such a tedious game 22:52:10 this guy beat the fucking game without dying once I mean damn 22:52:48 I saw a video of someone /else/ doing it in one save 22:52:52 as in, without saving 22:52:56 so it clearly isn't impossible 22:53:06 Impossible for mortals is presumably the implication 22:53:21 from what I've heard, part of it's dexterity, but a lot is memorisation 22:53:28 if you know everything to do off by heart it's a lot easier 22:53:37 of course, platforms appear in disappear in basically random places 22:53:53 dexterity and a really good sense of time are the main other skills yeah 22:54:03 you have to time everything absolutely perfectly 22:54:09 and without really any time to just stand and think 22:54:20 the whole game's deterministic, IIRC 22:54:28 Doesn't matter 22:54:33 You still need perfect timing 22:54:35 yes 22:54:55 writing a bot to play IWBTG would be godly 22:55:00 it could even /speedrun/ it 22:55:09 that would basically be an IWBTG TAS 22:55:21 yes, but less frustrating :P 22:55:35 alise: have you seen the platform games designed to be TAS-only? 22:55:36 how about an esolang where the program is control input for a platform game? 22:55:44 scarf: haha lol no 22:55:50 they're much much harder than IWBTG, obviously 22:55:51 you mean bastard mario and its ilk? 22:55:55 i.e. really hard ones 22:55:57 alise: mostly it's mario romhacks 22:55:59 or really ones meant to be tas-only 22:56:01 but even harder than those 22:56:06 (yeah I know bastard mario isn't called that) 22:56:10 (actually even in english it's asshole mario) 22:56:11 look for "Item Abuse TAS" on Youtube 22:56:17 (but remembering the japanese name is far too boring) 22:56:26 someone made a level where you had to perform every single known glitch to solve it 22:56:30 lol 22:56:48 and most of them require perfection to the frame 22:58:40 hmm 22:58:51 a game where you can't kill any of the enemies would be interesting 22:58:58 you'd just have to avoid them while considering every other part of the game 22:59:38 nah, there are loads of games like that 22:59:54 yes, but not platformers afaik 23:02:22 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 well, no, because moving-killing-things generally don't follow and shoot at you 23:02:51 beh, you just made me watch Item Abuse for the fifth or sixth time 23:05:18 Why do I keep randomly disconnecting? 23:06:57 Do you? 23:08:11 * alise downloads IWBTG in hopes of playing it via wine 23:08:25 Since when is it 68 megs? 23:08:37 There's a demo, with a few levels, and the full version 23:08:44 This is the full on 23:08:45 *one 23:08:48 But 68 megs? 23:09:03 *shrug* Is that more or less than you were expecting? 23:09:48 more 23:10:30 -!- fxkr has joined. 23:10:47 hi fxkr 23:10:55 hi alise 23:11:04 you look new. so sacrifice goats! 23:11:19 * fxkr sacrifices two goats 23:12:09 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 (at least iirc) 23:12:24 ok, and your /whois doesn't give anything away 23:12:28 That's only going to make fxkr thing it's a channel for esotericism.. oh 23:12:31 what was your nick last time, or would you rather we didn't know? 23:12:35 then clearly either you must tell us who you are 23:12:39 or we will have to forcibly extract this knowledge 23:12:46 scarf: the latter is obviously not an option 23:12:50 it is for me 23:12:53 scarf: no problem with you knowing, but i just dont have a damn clue 23:12:59 I'll probably work it out based on how he talks 23:13:07 fxkr: Are you that german dude? 23:13:31 that would be jix 23:13:38 who is still here 23:13:39 no, no 23:13:40 another one 23:13:42 what makes you think i'm german? 23:13:44 he was like nooga but less annoying 23:13:55 fxkr: pattern recognition on your name, use of ;) and omitting of apostrophes 23:13:56 fxkr: your +1 timezone? 23:13:59 it's a heuristic, perhaps it's wrong. 23:14:09 there are lots of other countries in +1, though 23:14:11 also, nooga is polish ;) 23:14:15 scarf: *you're, presumably 23:14:18 in a 23:14:22 oerjan: /like/ nooga 23:14:23 but less annoying 23:14:26 alise: no, the +1 timezone belongs to him 23:14:30 not alone, but at least partially 23:14:38 I don't see anything wrong with what I wrote 23:14:41 oh it was an answer to a question 23:14:41 -!- Gracenotes has quit (Ping timeout: 252 seconds). 23:15:02 another guess: kipple 23:15:25 Kipple wouldn't forget his name; he was a permanent fixture. 23:15:29 scarf: yep its +1 timezone.. (+2 sometimes, because of this daylight saving time stuff) 23:15:38 And his absence has been more than a year! 23:15:41 fxkr: so what country? 23:15:50 alise: :P 23:15:56 alise: behind you 23:15:59 fxkr said >= 1 year, not = 23:16:01 scarf: no problem with you knowing, but i just dont have a damn clue 23:16:06 I thought you didn't mind us knowing. 23:16:12 oerjan: the big bang was >= 1 year ago too 23:16:19 kipple's been away since like 2005 23:16:29 alise: i just meant i would tell you if i knew 23:16:34 that @ nickname 23:16:46 then we should clearly try and discover your nick! 23:16:49 now give us information :| 23:16:50 thematrixguy or whoever... 23:17:05 @country: dont really care, but not telling you is the more interesting option 23:17:20 or was that someone who kept forgetting his password and changing because of that 23:17:49 hm... that south african, hasn't been here in a while has he? 23:17:55 now what was his nick 23:18:02 -!- augur has joined. 23:18:03 Hiato 23:18:07 right 23:18:46 that's about the most interesting country we've had in that timezone 23:19:07 hm there was a spaniard at one time wasn't there 23:19:14 * oerjan isn't quite sure 23:19:23 thematrixeatsyou is gm|lap 23:19:25 aka greasemonkey 23:19:27 ah 23:19:39 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 (aka ben russell now) 23:19:56 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 23:20:10 fxkr: anyway what langs do you like 23:20:16 alise: nice try 23:20:24 ...what? 23:20:40 alise: eh wait, i thought you meant natural languages.. 23:20:47 -_- 23:20:48 alise: well, brainfuck for starters 23:20:55 ah, one of the boring ones! 23:20:58 :) 23:21:00 we don't want no steenking natural languages here, right augur 23:21:21 well, there are some esoterical natural languages 23:21:22 "natural" 23:21:25 french springs to mind 23:23:01 oerjan: hey, sup 23:23:03 i guess we can scratch of french now... 23:23:04 natural languages huh 23:23:09 AWESOME LETS TALK NATLANGS 23:23:10 augur: just trolling you 23:23:23 *out 23:24:18 fxkr: maybe you're andreou, that would be sorta ironic 23:24:35 no, definitely not 23:24:42 something i should know about him? 23:24:54 the channel founder who hasn't been around for years 23:25:09 haha 23:25:19 # 23:25:21 you're not that hcf guy in the topic? 23:25:24 haha no 23:25:30 hcf is the author of clog 23:25:38 wait the previous topic 23:25:39 (not administrated by him, or anyone, any more, though) 23:25:48 (far just reboots the server occasionally) 23:26:02 augur: talk about how "you're a fool" is more offensive than "you're a damn fool" 23:26:07 as opposed to "you're an idiot" vs "you're a fucking idiot" 23:26:18 alise: is it now 23:26:23 thats not the kind of linguistics i do 23:26:31 i don't care, make it into how like 23:26:37 <-- afk, i'll read the scrollback during tomorrows lecture though 23:26:38 expressing contempt through added expletives 23:26:43 only works when your morphological syntactic component 23:26:44 not my kind of linguistics. 23:26:46 is remorphic 23:26:46 please dont write more than i can read in 4 hours 23:26:48 thanks :D 23:26:51 it totally applies then 23:26:53 bitch 23:27:00 remorphic? 23:27:41 -!- Gracenotes has joined. 23:28:14 alise is making up words like linguists do ;D 23:28:24 ohhhhh ice burn 23:29:00 * alise hides the zygohistomorphic prepromorphisms 23:29:20 that was category theory, obviously 23:29:24 http://www.haskell.org/haskellwiki/?title=Zygohistomorphic_prepromorphisms&action=history oh how we adore roconnor 23:29:45 or was it linguistics? or possibly, _both_ 23:30:24 curry-howard-augur isomorphism 23:30:55 i think there's another third name sometimes used 23:30:57 :) 23:31:14 yeah apparently linguistics<->logic 23:31:21 so therefore linguistics<->LC 23:31:38 lambek was it 23:31:48 dunno 23:32:02 that wasn't a question 23:32:08 alise, no, semantics ~ logic, and syntax ~ logic 23:32:09 ah :P 23:32:14 augur: yeah yeah whatever 23:32:16 maybe i should use punctuation sometimes 23:32:17 -!- FireFly has quit (Quit: Leaving). 23:35:00 im thinking of doing a series of blog posts on formal grammars from a proof theoretic perspective 23:37:11 good!! 23:41:30 -!- scarf has quit (Remote host closed the connection). 23:42:35 where is oklopol 23:43:52 oklogone 23:43:54 -!- Pthing has quit (Remote host closed the connection). 23:44:32 MissPiggy: he has too much of an interesting life to come on much nowadays 23:44:34 also too much uni work 23:44:38 MissPiggy: there seems to be a severe oklodeficiency here at the moment 23:44:59 hasn't been seen since 23:46:02 uh he's been here this weekend... 23:46:04 no? 23:46:34 well yesterday, yes 23:46:57 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 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 Gregor: who won curling 02:02:30 UK. 02:02:30 -!- bsmntbombdood has quit (Read error: Operation timed out). 02:02:31 also... :D 02:02:33 Of course. 02:02:37 i'ma buy that doll 02:02:46 me too 02:02:49 The BRB I CAN BE DOLL 02:02:51 brb, I can be doll 02:02:57 IF I JUST TRY 02:03:01 How much do you want to bet that I won't get my HW done? 02:03:11 Horse whaling? 02:03:14 I'm not sure you can even whale a horse. 02:03:14 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 I have an exam tomorrow, and homework due tomorrow 03:12:31 -!- Gracenotes has quit (Remote host closed the connection). 03:13:56 Sgeo: what time is it there? 03:14:07 Right now, 10:13. 03:14:10 PM 03:17:22 -!- bsmntbombdood_ has joined. 03:17:25 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 Until the morning, that is; add a few hours to whatever they tell you, and that's when they'll arrive. 03:17:51 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 Well, so ends another week. 04:22:13 Sgeo, I believe, is the only one active, so... anything to say? 04:22:34 I hope your situation improves soon. 04:22:44 Funny. So do I. :P 04:22:51 :D 04:23:01 Anyway, see you guys on Friday. 04:23:12 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 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 so 10:09:46 -!- Pthing has joined. 10:10:02 GIGs minus the initial terminal in the push rule = turing complete 10:10:22 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 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 can anyone here remember why Java has 13 months in a year? 14:55:22 I used to know, but forgot 14:55:31 (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 scarf_, discworld year? 15:10:27 or wait, how many months was that 15:11:47 ah yeah http://en.wikipedia.org/wiki/Discworld_%28world%29#Calendar 15:11:54 scarf_, clearly for compat with that :) 15:13:02 (when I googled I thought I would get an lspace link, but first hit was wikipedia, heh) 15:13:27 http://wiki.lspace.org/wiki/Discworld_calendar seems somewhat more comprehensive though 15:26:19 Oh yes, the Undecimber. 15:26:26 It's sort of explained in http://en.wikipedia.org/wiki/Undecimber 15:26:36 Lunar calendar compatibility indeed. 15:27:12 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 I suppose it also returns 12 if you ask for getMaximum(Calendar.MONTH). 15:35:32 -!- cpressey has joined. 15:43:43 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 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 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 fizzie, why are they SHOUTING the name of the MONTH? 18:37:41 Because in Java, CONSTANTS tend to be SHOUTED. 18:37:56 fizzie, but that seems so C PREPROCESSOR 18:38:00 rather than nice enums 18:38:03 or such 18:38:22 They're not nice enums, though; they're just integer constants. (Still, I think real enums get NOISY names too.) 18:38:37 doesn't java have enums? 18:38:46 Yes, but they were added in Java 1.5/5.0 or so. 18:38:51 enums are fun 18:38:52 heh 18:38:58 they're basically static arrays of generic objects 18:39:01 and you just compare pointers 18:39:11 scarf, wtf 18:39:19 why not basically map to integers with type checking 18:39:20 They're a lot more complicated than C enums, though, since you can defined methods and everything for "enum classes". 18:40:06 public enum InputFormat { BZIP2, GZIP, TTYREC, SCRIPT }; 18:40:14 ^-- an actual line of code from a Java program I'm writing 18:40:19 Okay, so they can be simple too. 18:40:40 But you can define constructors, and then list arguments there in the list of enum values. 18:40:45 well, due to namespacing, you have to call the actual formats TtyrecAnalyzer.InputFormat.BZIP2 or whatever 18:41:55 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 add_circle(#turtle{pen=false}, Drawing = #drawing{}) -> 18:42:00 Drawing; 18:42:00 add_circle(#turtle{pos=Pos,colour=Colour, pen=true}, Drawing = #drawing{nodes=N}) -> 18:42:00 Circle={circle,Colour,Pos}, 18:42:00 Drawing#drawing{nodes=[Circle|N]}. 18:42:17 and that last one could be compressed to one line without causing much readability issues 18:42:22 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 That lets you say BLUE.opposite() or some-such. 18:42:53 he 18:42:54 heh* 18:43:00 (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 fizzie, is NONE supposed to happen? 18:43:14 Yes, sometimes. 18:43:20 fizzie, such as? 18:43:23 It's used for the winner in a draw, and so on. 18:43:42 fizzie, so blue and red indicates winner/looser? 18:43:51 No, they're just the names of the sides. 18:44:05 There's a blue player and a red player, and a getWinner() method that returns RED, BLUE or NONE (if draw). 18:44:05 oh you mean like that 18:44:09 like winner = none 18:44:11 Yes. 18:44:21 fizzie, still I like the way you SHOUT the sides 18:44:58 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 oh that thing 18:45:09 right 18:45:33 i'm board 18:45:53 lament: I will split you in three parts, then. 18:46:21 -!- oerjan has joined. 18:47:37 fizzie, karate style? 18:47:50 (or whoever it is that do that sort of stuff) 18:50:16 10:41:55 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 10:42:00 add_circle(#turtle{pen=false}, Drawing = #drawing{}) -> 18:50:45 how do you make a record syntax _less_ noisy than that? it's almost the same format as haskell's... 18:51:02 i suppose you could lose the # 18:51:33 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 (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 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 heh 18:55:39 I thought haskell would have used something lean 18:55:40 like 18:55:46 inferring what sort of record it was 18:56:01 since for erlang it is basically a tagged tuple 18:56:10 Turtle{pen=False} would be perfectly fine haskell 18:56:28 oh haskell cannot do that because one data type can have several constructors 18:56:40 PFH 18:57:04 even with shared fields, as long as they are the same type 18:57:06 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 oerjan, anyway, you just did that there 18:57:27 "Turtle{pen=False}" 18:57:45 you skipped what sort of record it was, didn't you? 18:57:54 oerjan, or do you make types upper case? 18:58:00 um Turtle is the data constructor 18:58:08 oerjan, blink? 18:58:10 and can be for only one data type 18:58:14 that was pattern matching 18:58:18 not constructing a new one 18:58:21 oerjan, ^ 18:58:36 er what was 18:58:42 add_circle(#turtle{pen=false}, Drawing = #drawing{}) -> 18:58:52 that bit is matching against the parameter 18:59:01 oh 18:59:03 wow, the longest registered MIME type is apparently "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" 18:59:14 scarf, ms office related? 18:59:23 yep, OOXML to be precise 18:59:26 ok, i think that would still be Turtle{pen=False} in haskell 18:59:29 unsurprising 18:59:34 for a glossary inside a OOXML word document 18:59:46 scarf, do they have a length limit? 18:59:55 and indeed i think haskell lacks a way to not specify the data constructor there 18:59:58 application/vnd.oasis.opendocument.text is the ODF equivalent 19:00:01 and I suspect not 19:00:05 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 oh and here is a funny thing 19:04:54 the inferred type spec for that function is: 19:04:56 -spec add_circle(#turtle{},#drawing{nodes::[{'circle',{_,_,_},{_,_}} | {'line',{_,_,_},[any()]}]}) -> #drawing{nodes::[{'circle',{_,_,_},{_,_}} | {'line',{_,_,_},[any()]}]}. 19:05:05 (using the dialyzer tool) 19:05:16 you can declare aliases thankfully 19:05:27 so that will end up relatively short when I write in what I want 19:06:44 in fact: 19:06:46 -spec add_circle(turtle(),drawing()) -> drawing(). 19:06:59 anyway most of that type info is in the record definition already 19:07:37 application/vnd.oasis.opendocument.text is the ODF equivalent <-- where does it say it's a glossary though? 19:08:25 AnMaster: it doesn't have a separate MIME type for glossaries 19:08:33 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 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 So it has a length limit of 127 chars. 19:11:04 That's not strictly speaking part of the MIME spec, just the RFC that specifies what IANA wants to register, though. 19:11:27 !c char[] x = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; printf("%d",(int)sizeof c); 19:11:40 Does not compile. 19:11:44 ugh 19:11:48 !c char[] x = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; printf("%d",(int)sizeof x); 19:11:49 char x[], you mean. 19:11:49 Does not compile. 19:11:51 how did I do that? 19:11:58 !c char x[] = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; printf("%d",(int)sizeof x); 19:11:59 oh, right 19:12:02 85 19:12:03 I've been teaching Java all day 19:12:22 And the "application" and "vnd...+xml" are the "type" and "subtype" parts, so they both can be 127 characters. 19:13:10 does anything have anything but "text" or "application" as the type? 19:13:18 image/png? 19:13:27 ah, forgot about those 19:13:49 why not do the obvious thing instead: 19:14:37 IANA has defined seven top-level types: text, image, audio, video, application, multipart, message. 19:15:04 !befunge98 "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"ad+y1-.a,@ 19:15:05 83 19:15:18 hm? 19:15:35 oh the minus 1 was in error 19:15:38 !befunge98 "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"ad+y.a,@ 19:15:38 84 19:15:51 scarf, still your char count includes an ending \0 I think 19:15:52 !c printf("%d", (int)sizeof("application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml")); 19:15:53 85 19:16:26 !haskell length "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" 19:16:27 what was the prefix of HackEgo? 19:16:27 Yeah, the ending \0 is part of the length. 19:16:31 I forgot 19:16:35 84 19:16:35 ` 19:16:36 No output. 19:16:43 `help 19:16:44 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 19:16:58 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -l 19:16:59 0 19:17:01 err 19:17:03 `run ls bin/ 19:17:03 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -w 19:17:04 ? \ 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 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -n 19:17:07 of course 19:17:10 -_- 19:17:14 but 19:17:18 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -c 19:17:19 maybe? 19:17:19 No output. 19:17:19 1 19:17:20 84 19:17:23 what 19:17:32 which one was which? 19:17:51 you will NEVER know 19:17:55 or 19:17:58 I run them again 19:18:00 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -c 19:18:01 84 19:18:06 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -n 19:18:07 No output. 19:18:10 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -l 19:18:11 0 19:18:17 `run echo -n "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" | wc -w 19:18:18 ah 19:18:18 1 19:18:32 I almost always use wc -l 19:18:37 so that is why I forgot the other ones 19:18:43 !befunge98 "NRTS"4(n"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"N.a,@ 19:18:43 84 19:18:47 anyway 19:18:56 the befunge solution I had was shortest so far 19:19:07 fizzie, why not use y (23) ? 19:19:11 for size of TOSS 19:19:16 it is faster too 19:19:27 !ul (84)S 19:19:35 no need for function pointers, no need to actually count to a zero on stack 19:19:42 ^ul (84)S 19:19:43 84 19:19:44 I win 19:19:46 scarf, shortest-non-cheating 19:19:48 I mean 19:20:05 !befunge98 "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"ad+y.@ 19:20:05 84 19:20:25 which means, as little program code apart from the string as possible 19:20:29 scarf, anyway: 19:21:21 !befunge98 c7*,@ 19:21:21 T 19:21:24 err 19:21:26 !befunge98 c7*.@ 19:21:26 84 19:21:27 of course 19:21:31 scarf, that is equally short 19:21:46 ^bf +[>+<,]>-.!application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml 19:21:47 T 19:21:56 If you don't mind the encoding of the value as an ASCII char. 19:22:01 fizzie, I do mind that 19:22:04 convert it to integer 19:22:25 that program would either be trivial, or fail utterly, in INTERCAL 19:22:34 because all known methods of representing strings require knowing their length in advance 19:22:53 or else just padding out a really large buffer 19:22:58 sort of, like C without string literals 19:23:06 scarf, doesn't that make intercal sub-bf-complete? 19:23:36 no 19:23:46 scarf, then it must be possible in some way 19:23:54 because you can emulate a Minsky machine and use that to store the strings 19:23:57 scarf, anyway why not use some sort of tree structure? 19:24:04 except, ouch, it's easier just to calculate the length in advance 19:24:24 which one is the minsky machine now again? 19:24:36 bignum BF with a fixed-length tape 19:24:57 mhm 19:25:14 scarf, anyway why not use a tree structure of some sort to store them in intercal? 19:25:28 of course implementing such a tree structure would be horrible 19:25:35 AnMaster: have you ever /tried/ to do a tree structure in INTERCAL? 19:25:44 the only plausible method I can think of is encoding it into an array 19:25:55 scarf, no. But my point is that once it is done it could be made into a library 19:26:06 call it treelib.i or whatever 19:26:08 Incidentally, the IANA mime type application form -- http://www.iana.org/cgi-bin/mediatypes.pl -- has the subtype field defined as 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 fizzie, edit the html code using something like firebug? 19:26:53 and see if the server handles the longer length 19:27:24 Yes, it would be hilarious if Microsoft had done that. 19:27:45 fizzie, is that mime type registered though? 19:28:20 Didn't scarf say it was? 19:28:31 I saw on a forum that it was 19:28:35 scarf: Are arrays also fixed size in INTERCAL, or can they expand? 19:28:48 It seems to be. 19:28:49 cpressey: it's like C; they're fixed-size upon creation, but you can create them dynamically as the program runs 19:28:56 http://www.iana.org/assignments/media-types/application/ is the definitive list. 19:28:57 Hm, k. 19:29:02 so if you want a bigger array, you create a bigger array then copy your data into it 19:29:33 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 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 ooh, you actually checked? 19:30:57 thanks 19:31:02 fizzie, both are ooxml crap yeah 19:31:10 I only checked the "application/" category, though. 19:31:43 I'm kind-of shocked that you can just fill in a form to apply for a MIME type 19:32:21 fis@eris:~$ cat tmp.txt | awk '{print $1;}' | perl -ne 'print length($_), " $_";' | sort -nr | head 19:32:21 73 vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml 19:32:21 73 vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml 19:32:21 73 vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml 19:32:21 71 vnd.openxmlformats-officedocument.presentationml.presentation.main+xml 19:32:22 70 vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml 19:32:26 That's the top-five. 19:32:37 fizzie, use cut for that 19:32:38 not awk 19:32:41 or 19:32:44 do it all in awk 19:32:45 that is better 19:33:08 fizzie, and can't you do that awk thing in perl anyway? 19:33:22 Hey, awk and perl in the same pipeline scores positive points in my book. 19:33:34 cpressey, it's like UUOC to me 19:33:45 awk and sed would have been fine 19:33:55 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 sed and perl... maaaaybe 19:34:14 fizzie, yeah but use the right tool for the job 19:34:28 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 for just getting first field with no other processing: cut 19:34:37 cpressey, XD 19:35:27 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 hm okay 19:36:14 how did you download it as plain text? 19:36:42 With a copy-paste from a browser. 19:36:55 Anyhow, yes, in this case awk '{print length($1)" "$1;}' would have made more sense. 19:37:14 I blame the way I think. 19:37:49 fizzie: Are those the longest MIME type names in there? 19:38:06 longer if you include the application/ 19:38:33 Yes, but the length limits are defined separately for the "application" part and that subtype part. 19:38:49 I would guess those are the longest in general, but I'll check the other top-level types too. 19:38:52 But usually one won't see any "exotic" types. 19:39:10 Longest one in audio/ is "audio/vnd.sealedmedia.softseal.mpeg". 19:39:49 "image/vnd.sealedmedia.softseal.jpg" -- heh, sealedmedia is quite a leader in these. 19:40:09 "message/global-disposition-notification" 19:40:25 "model/vnd.parasolid.transmit.binary" 19:40:46 "multipart/voice-message" 19:41:06 "text/vnd.net2phone.commcenter.command" 19:41:15 what is sealedmedia? 19:41:28 it smells drm a long way away that name 19:41:30 "video/vnd.nokia.interleaved-multimedia" 19:41:36 Yay, Nokia slipped one in too 19:42:08 The image/ one was actually a shared win with "vnd.sealedmedia.softseal.gif". 19:42:32 wait, are they repackaging file extensions that already exist as MIME types? 19:43:00 It has their DRM wrapper around it, I guess. 19:43:00 Embrayce and exshtend. 19:43:14 scarf, googling indicates it is drm crap 19:43:17 "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 That WP clip starts like a press release/ad copy. 19:43:41 why did Oracle buy them? 19:43:44 "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 he firewall." 19:43:48 And continues that way too. 19:44:00 I WANT IT I WANT IT 19:44:07 fizzie, is there any advertisment template on it? 19:44:07 Because Oracle believes that cp does not exist. 19:44:08 so what's to stop you juts taking a screenshot of these DRMed PNG files? 19:44:10 *just 19:44:12 if not I suggest you put one there 19:44:16 scarf: Jack shit. 19:44:22 AnMaster: No, there doesn't seem to be. 19:44:29 fizzie, add one then 19:44:29 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 ts management is now routinely being adopted by enterprises and government agencies worldwide to secure their most confidential information." 19:44:50 blergh 19:45:06 It's copy-paste directly from http://www.oracle.com/technology/products/content-management/irm/index.html 19:45:09 well 19:45:15 fizzie: tag it copyvio 19:45:16 advertisment and a few more at least 19:45:27 scarf, not advertisment? 19:45:28 easy way to get rid of a c&ped press release 19:45:31 ah 19:45:33 :) 19:45:36 AnMaster: you could use both, but copyvio's a /much/ more urgent tag 19:45:46 scarf, right 19:46:13 Yeah, definitely copyvio. 19:46:16 scarf, both can't hurt! 19:47:24 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 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 neither counts 19:49:27 for preventing speedy copyvio, that is 19:50:24 I'll see if I can manage to successfully add that. Wikipedia makes me nervous, though. 19:50:38 what is hotcat? 19:50:44 you might get someone yelling at you for not warning the user in question 19:50:49 AnMaster: an interface to the category system 19:50:59 what is db-copyvio btw? 19:51:03 that's basically a bit faster than typing out by hand 19:51:12 AnMaster: mentally read "db" as "delete because" 19:51:15 scarf, ah 19:51:21 with the implication that it should be deleted Right Now, thank you very much 19:51:32 scarf, I tried "database" and "decibel" 19:51:43 neither fitted :) 19:51:47 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 it adds the page to one of the top-priority admin action categories 19:52:08 fizzie: fine, then you can warn them without worrying about getting a reply 19:52:18 -!- MizardX- has joined. 19:52:30 (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 can someone tell me if this logic is correct 19:56:51 I think it is 19:56:55 but I'm somewhat tired: 19:56:57 normalise_angle(Heading) when Heading < 0 -> 19:56:57 Heading rem 360 + 360; 19:56:57 normalise_angle(Heading) -> 19:56:57 Heading rem 360. 19:57:16 heading is in degrees and is an integer 19:57:24 AnMaster: depends on what rem does 19:57:31 which is really hard to tell, as it differs from lang to lang 19:57:39 scarf, reminder. Erlang's name for modulo 19:57:48 (with negative numbers, I mean; with positives, it's obvious) 19:57:53 How does rem handle signs? 19:57:58 well 19:58:16 1> -301 rem 300. 19:58:17 -1 19:58:29 2> -299 rem 300. 19:58:29 -299 19:58:44 does that answer the question? 19:58:49 Then your logic looks right to me. I'm tired too though :) 19:58:57 yep, same here, and even same disclaimer 19:59:00 cpressey, also I don't know if this is specified 19:59:08 or if it just happens to be that way 19:59:12 If it's not specified you're better off avoiding it 19:59:13 isn't that C99 modulo? 19:59:17 Do we have a Scheme interpreter here? 19:59:25 fizzie, try #irp 19:59:26 ;P 19:59:27 while x < 0 x += 360 19:59:44 cpressey, efunge is bignum 19:59:47 that could take some time 20:00:32 Are you anticipating having to normalize 10^61 ? :) 20:00:34 anyway it would have to be tail recursive 20:00:41 cpressey, 10^-61 maybe 20:00:45 err 20:00:49 -10^61 20:00:50 I meant 20:00:52 of course 20:00:56 cpressey, but yes, it might happen 20:00:59 C99 % would indeed give -1 there. 20:01:01 and then I want it to work smoothly 20:01:43 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 Whatever "correctness" means w.r.t. Befunge-98, given my sloppy spec :) 20:02:16 why couldn't the degrees be a power of two 20:02:27 then some tricky bitshifting would have solved it 20:02:50 cpressey, anyway I assume TURT is counter clockwise like the normal math notation? 20:02:52 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 AnMaster: sounds like a reasonable assumption. It wasn't intended to be evilly weird... 20:03:36 Wait 20:03:51 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 really makes it very feral 20:04:05 from a efunge point of view 20:04:09 tame for cfunge of course 20:04:24 quite hilarious that per-ip state is trivial in efunge but somewhat messier in cfunge 20:04:30 and the reverse applies for global state 20:05:03 a _real_ turtle robot would wrap after 40000000 m 20:05:07 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 oerjan, it would? 20:05:21 oerjan, oh going around earth 20:05:22 har 20:05:26 well, approximately 20:05:26 oerjan: beautiful 20:05:35 oerjan: exactly by the original definition of a metre 20:05:37 oerjan, but the cable wouldn't be long enough 20:05:38 Assuming it can travel through oceans safely. 20:05:39 although the definition has since changed 20:05:43 cpressey: it's a turtle, it can swim 20:05:52 scarf: Indeed. 20:06:15 wait, which one is turtle and which one is tortoise? They have the same name in Swedish 20:06:19 this always confuses me 20:06:37 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 tortoises, like porpoises, live in water 20:07:05 but which is the porpoise and which is the dolphin? 20:07:10 -_- 20:07:29 It depends on the variant of English. 20:07:32 cpressey, btw, how is the pen colour and paper colour supposed to work for real turtle bots? 20:07:38 would they have ink mixers in them? 20:07:54 lament is lying. ban him! 20:08:07 err 20:08:10 "Tortoises or land turtles are land-dwelling reptiles of the family of Testudinidae, ..." 20:08:10 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 says wikipedia 20:08:18 however 20:08:20 it also says 20:08:22 "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 Yes, the "clear with color" command on a real turtle bot will paint the whole earth with that color. 20:08:39 Try not to paint everything pink. 20:08:40 fizzie, hehe 20:08:47 fizzie, ultramarine? 20:08:50 AnMaster: i sincerely doubt it's particular piece of information they need an expert for 20:08:55 *it's that 20:08:55 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 AnMaster: I don't know about "normal math notation", but in navigation, headings go up clockwise, not counter-clockwise. 20:09:53 Oh no 20:09:54 cpressey, you know around the unit circle? 20:09:58 oerjan, but the cable wouldn't be long enough <-- sheesh AnMaster, this is the wireless age 20:09:58 cpressey: On the other hand, you have query heading return "0=east", which sounds more like the "normal math notation". 20:10:06 All the drawings made by one TURT will be inverted by another TURT. 20:10:09 Chaos will ensue. 20:10:17 oerjan: you have ops, you can ban me 20:10:20 cpressey, quite 20:10:27 If it were "navigationary", you'd think that 0=north. 20:10:33 fizzie, yes 20:10:36 and that isn't the cas 20:10:38 case* 20:10:43 it says 0deg = east 20:10:45 in the spec 20:10:51 cpressey, btw, how is the pen colour and paper colour supposed to work for real turtle bots? 20:11:04 bodily fluid variations. aren't you glad you asked? 20:11:15 oerjan, turtle *bots* 20:11:17 not turtles 20:11:17 Yeah, 0=east strongly implies whoever wrote that was thinking of the unit circle, trig, and all that. Not aircraft navigation. 20:11:18 -_ 20:11:19 -_- 20:11:20 The freak. 20:11:40 cpressey, if it was aircraft navigation it would be using nautical miles 20:11:44 for the distances 20:11:57 cpressey, also where is my ILS glideslope :( 20:11:59 how boring. 20:12:06 For really big turtle bots, maybe one pixel equals one nautical mile. 20:12:20 fizzie, that doesn't even work for mine. I render to svg 20:12:22 Sblooosh, goes the paint. 20:12:45 fizzie, one square nautical mile? Or do we use non-square pixels? 20:12:52 How much paint would it take to paint a square nautical mile of seawater, say, pink? 20:12:55 lament: no i don't have ops 20:13:32 oerjan: -ChanServ- 5 oerjan +votsriRfA [modified 2 days, 22:50:33 ago] 20:13:34 unless someone forgot to tell me 20:13:35 oerjan: You certainly seem to have. 20:13:36 fizzie, no clue 20:13:51 fizzie, does the colour mix in water? 20:13:59 wow 20:14:01 or does it float on top and try in the sun? 20:14:04 Everyone else has "[modified ? ago]". 20:14:06 * oerjan goes mad with power 20:14:08 oerjan: i forgot to tell you. 20:14:21 oerjan, doesn't you have ability to edit access list too? 20:14:26 yeah there is +f there 20:14:40 only thing you are lacking seems to be +F 20:14:44 (founder access) 20:15:04 we need whatshisname for that. 20:15:09 the founder. 20:15:21 good grief. i seem to have achieved powers i don't even understand. 20:15:22 lament, well of course 20:15:22 lament: Isn't that "whatshisface"? 20:15:48 fizzie, "andreou" says the access list 20:15:50 fizzie: i dunno, are they the same person? 20:16:03 lament, may this person also be known as "andreou"? 20:16:09 oh right 20:16:15 -NickServ- Information on andreou (account andreou): 20:16:15 -NickServ- Last seen : (about 39 weeks ago) 20:16:16 heh 20:16:22 and registered in 2003 20:16:34 which is very early on freenode iirc 20:16:35 it's an old channel 20:16:38 walks with a limp 20:16:43 freenode was called openprojects back then 20:16:51 that old? heh 20:16:52 walks with a limp, talks with a lisp 20:17:01 -NickServ- Information on lament (account lament): 20:17:02 -NickServ- Registered : Jan 03 01:33:46 2003 (7 years, 7 weeks, 3 days, 18:42:45 ago 20:17:14 hey, only a few minutes after andreou registered his nick 20:17:23 that's how he got founder :) 20:17:27 hehe 20:17:41 didn't know you went back that far 20:18:00 ooh fizzie beats you both 20:18:05 -NickServ- Information on fizzie (account fizzie): 20:18:05 -NickServ- Registered : Sep 23 06:08:22 2002 (7 years, 22 weeks, 0 days, 14:09:05 ago) 20:18:06 Hmm. It's merely been about 5 years since I registered. 20:18:07 2002! 20:18:11 AnMaster: Yes, but I joined after lament. 20:18:19 -NickServ- Information on AnMaster (account AnMaster): 20:18:19 -NickServ- Registered : Dec 26 16:35:03 2005 (4 years, 8 weeks, 3 days, 03:42:46 ago) 20:18:19 hm 20:18:36 AnMaster: On the other hand, I have no idea what sort of channels I might have been on openprojects before #esoteric. 20:18:44 I've been around longer than AnMaster? Hah. 20:18:47 pikhq registered about half a year before 20:18:48 i was on the network before, just didn't need to register before #esoteric 20:18:48 yeah 20:18:52 pikhq, I was on efnet before 20:18:58 amongst other places 20:19:06 ... And why do I have Kial registered to my account? 20:19:15 I can't see that 20:19:26 fizzie, strange 20:19:43 ooh ais/scarf is new here 20:19:47 2007 20:19:55 AnMaster: yep 20:20:02 I found the wiki ages before I found the IRC channel 20:20:12 scarf, but wasn't I in this channel like in late 2006? 20:20:19 you joined *after* me? 20:20:20 wth 20:20:31 -NickServ- cpressey is not registered. 20:20:35 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 hey! know what to do when he next disconnects? 20:20:45 * AnMaster runs 20:21:12 scarf, I have a vague memory of you mentioning that 20:21:20 scarf, but what terminal were you using? 20:21:28 xterm, I think 20:21:33 ... 20:21:39 oh, Exceed 20:21:40 scarf, terminal as in system to access it 20:21:42 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 running on Windows 20:21:45 hardware terminal 20:21:47 scarf, oh? 20:21:52 wth is exceed? 20:21:55 AnMaster: all the computers were running Windows 20:22:00 and it seems to do X forwarding 20:22:03 scarf, apart from that sunos box 20:22:08 It's one of the X servers for Windows, isn't it? 20:22:13 Among winaXe and such. 20:22:15 no, as in, Exceed is a Windows X client 20:22:20 that you forward to 20:22:25 scarf, what? 20:22:32 so things happen on the server, they come up in your Exceed window 20:22:32 aren't x clients the application programs? 20:22:42 scarf, kind of like vnc? 20:22:43 Yes, X gets the terminology backwards like that. 20:22:44 now I'm confused 20:22:46 AnMaster: very like vnc 20:22:57 What you run on your system, and which shows the windows on your screen, is the X server. 20:23:01 ah, ok 20:23:08 scarf, x clients = application programs. X server = the Xorg program or such 20:23:08 And the apps, which you run on a remote server (possibly), are clients. 20:23:14 which draws to hardware 20:23:33 ouch 20:23:42 scarf, I thought this was well known 20:23:46 I mean "the x server" 20:23:53 is the typical name of it 20:24:00 when talking 20:24:12 I assumed that that would be what was running on the SunOS server actually doing the forwarding 20:24:13 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 scarf, the forwarding.. well that is a tricky issue 20:24:49 fizzie, when was that? 20:25:02 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 AnMaster: 2003 is when I started. 20:25:16 fizzie, hm 20:26:16 scarf: The section about the X Window System in the UHH is definitely fun reading. 20:26:17 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 hm 20:26:57 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 The whole UHH is fun reading 20:27:18 what's the UHH? 20:27:32 UNIX-HATERS Handbook 20:27:53 heh 20:27:58 -!- Pthing has quit (Remote host closed the connection). 20:28:04 do they hate all other OSes too? or just UNIX in particular? 20:28:16 You don't know of it? 20:28:16 or just POSIXy ones? 20:28:19 no, I don't 20:28:22 It's a classic 20:28:23 http://en.wikipedia.org/wiki/The_UNIX-HATERS_Handbook 20:28:29 I vaguely remember having heard of it now I've seen the name 20:28:48 http://www.simson.net/ref/ugh.pdf is the whole thing 20:29:07 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 fizzie, while students can get it for free using MSDNAA? 20:29:41 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 AnMaster: MSDNAA tends to only be for engineering and computer science students 20:30:02 as in, people who might plausibly go into programming 20:30:13 ah I see 20:30:26 scarf, oh btw what about OEM for windows? 20:30:31 they get it really cheap? 20:30:49 AnMaster: depends on the sort of computer, I think 20:30:56 I heard a while back that it's $6 on netbooks 20:31:01 presumably to compete with Linux 20:31:05 but I don't know for certain that that's true 20:31:14 it's likely to be much much cheaper than the retail version, at least 20:31:28 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 which means the selection jumps about when you scroll 20:31:49 AnMaster: hey, if you typo "befoge", "befunge" starts to seem more plausible 20:32:00 scarf, "befoge"? 20:32:08 AnMaster: read your own comment 20:32:25 ah 20:32:27 before 20:32:35 befoge 20:32:43 see how close they are on qwerty 20:32:52 -!- gm|lap has joined. 20:32:59 not all that close 20:33:07 a knight's-move 20:33:17 Not that far 20:34:51 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 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 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 Because I happened to be the one to unwrap the box, and those were part of the license papers. 20:37:36 It also required me to plant that ugly sticker somewhere visible on the computer. 20:39:20 Did you? 20:40:18 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 I knew you'd be evasive. 20:40:40 lol 20:40:45 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 We heard that. 20:41:45 -!- Microsfot has quit (Client Quit). 20:42:02 They certainly are everywhere. 20:42:45 I did promise I'd accept tech support queries over IRC with a very reasonable rate, though. 20:42:45 In Williamsburg, at least. 20:42:55 Have you got many? 20:43:16 None so far, in fact. Must be that Windows 7 is just so good. 20:43:29 Could be, could be. 20:43:39 (I'm trying to give some praise so that they'd forgive that whole sticker thing.) 20:44:40 hey, it's not your fault that you stumbled and fell with the sticker into the trash can 20:44:44 Well, Windows 7 /is/ supposedly good. 20:44:55 Deewiant: meh, it's just better than Vista 20:45:08 and IMO, Vista was better than XP 20:45:27 So what is Windows 7 worse than? 20:45:46 Since I started using them, I've had fewer problems with Windows 7 than I've had with Python. 20:45:52 Apples, oranges, whatever. 20:45:57 :-) 20:46:24 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 ic 20:50:05 fizzie: Microsoft licencing can be so fu 20:50:07 *fun 20:50:13 incidentally, the sticker seems to be on the bottom of this netbook 20:51:43 There were some detailed instructions on where you were allowed to stick the sticker in, but I've forgotten them. 20:51:51 Bottom seems to be popular with laptops, understandably. 20:52:05 scarf: _interesting_ freudian keyboard slip there 20:52:15 _Interesting_ indeed 20:52:38 btw, I have a spare Windows 98 sticker somewhere 20:52:44 which I managed to peel off the computer it was originally stuck to 20:52:56 despite all the security flanges to stop you doing that 20:55:20 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 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 "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 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 I've had a Windows install tell me "TOO MANY PARTS ARE DIFFERENT!!!" after I upgraded some card or other, once. 20:59:33 It made me re-enter the reg key or something, I forget. 21:00:35 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 I heard it was tied to the motherboard, but I could well be thinking of a different version of windows. 21:00:40 fizzie: That claim is perjury. 21:00:43 Doctrine of first sale. 21:01:28 Doctrine of Microsoft sending assault troopers in black helicopters if you try to argue. 21:01:45 fizzie: Microsoft has no assault troopers. 21:01:51 You're probably thinking of Blackwater. 21:02:33 Ooh, they even have a justification for being motherboard-bound. 21:02:48 "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 The heart and soul! 21:03:04 ... 21:03:23 The motherboard does not contain a CPU, it contains a bus to which a CPU is attached... 21:03:44 To contain: to be capable of holding 21:03:49 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 fizzie: Being old is a defect. 21:05:33 :P 21:06:12 -!- scarf has quit (Remote host closed the connection). 21:07:40 Fungot, encoding lurks dark corners. Only when the rain, ever to go with no throughput that I could see? 21:07:46 fungot? 21:07:49 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 The bishop of st fnord sounds like a cool guy 21:11:45 ilari: cfg's + a global control stack 21:12:37 -!- Pthing has joined. 21:14:38 -!- jcp has joined. 21:21:57 letrec a = a in a 21:22:54 what language is that? 21:23:12 I dunno. Some functional pseudocode. 21:23:30 if you s/letrec/let/ it would be haskell 21:23:58 If I used parens instead of = and in, it would be Scheme. 21:24:33 augur: Got URL where it is described? 21:24:51 why yes, i do! 21:25:01 let haskell = haskell in haskell where produc [1..n] 21:25:11 take a look at this wikipedia page that i created http://en.wikipedia.org/wiki/Global_index_grammar 21:25:12 :D 21:25:22 MissPiggy: nope 21:26:14 that looks really nice augur I like these diagrams 21:26:23 which diagrams 21:27:20 looks like music 21:27:33 #fff - sharp fortissimo 21:27:41 (sounds really bad) 21:28:21 :p 21:28:29 ^style 21:28:30 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube 21:28:49 ^style speeches 21:28:49 Selected style: speeches (misc. speeches from Project Gutenberg) 21:28:51 ah 21:29:00 ^style ct 21:29:01 Selected style: ct (Chrono Trigger game script) 21:29:05 fizzie, hi there fungot 21:29:06 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 fizzie, that sword? 21:30:43 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 cpressey: are you in vancouver? 21:31:17 lament: No. 21:31:44 I are in the US. 21:32:11 oh 21:36:20 Where I am, at present, trying to understand some "clever" Python code. And failing. 21:36:52 AnMaster: It alone can't stop. 21:37:22 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 fizzie, well iirc so 21:39:07 fungot, why didn't the king wish btw? 21:39:08 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 The part "took back .. for myself!" is a direct quotation. 21:39:50 fizzie, from what scene? 21:40:03 From when Cyrus leaves, in Frog's flashback. 21:40:31 ah 21:40:40 fungot, but what about the sword? 21:40:41 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 fungot, fss, do that repeat 21:40:52 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 meh 21:42:06 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 fungot: Can the sword alone stop it? 21:42:39 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 fungot, it can? 21:42:45 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 wait 21:43:02 that isn't true 21:43:08 "the hero has made the epoch, your wings!" 21:43:25 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 I thought it was that guy in the future who did 21:43:29 -!- jcp has joined. 21:43:48 And the wings were added by Dalton in 12000 BC Zeal. 21:43:58 fizzie, you remembered the name? 21:44:02 Sure. 21:44:04 I knew it was added buy that other guy 21:44:07 in past 21:44:08 It's Dalton, after all. 21:44:54 fizzie, hm? 21:45:03 He's such a flashy guy, easy to remember. 21:45:04 I forgot who that guy was, some boss 21:45:11 Likes the sound of his own name, too. 21:45:27 "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 mhm 21:45:34 funny in Swedish 21:45:37 that name 21:45:47 dalton → dalta 21:46:25 not sure what it is in English 21:46:26 hm 21:46:33 wiktionary gives it as 21:46:42 " 1. coddle excessively; pamper" 21:46:44 "dalta vb itr, dalta med ngn klema coddle (mollycoddle, pamper) sb; kela pet (fondle) sb" says our Swedish-English dictionary. 21:47:04 klema indeed 21:47:05 ("MOT Norstedts stora engelska ordbok 1.0") 21:47:14 fizzie, huh 1.0? 21:47:30 I thought they came in like "1995 edition" 21:47:39 or "seventh edition" 21:47:43 not in version numbers 21:49:59 AnMaster: probably related to English "dote" ? 21:50:18 cpressey, not sure what that is? 21:50:22 dote-matrix printers? 21:50:27 ;) 21:50:41 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 from dictionary.com 21:51:07 I wasn't aware of the other 2 meanings it gives 21:51:23 cpressey, and those are? 21:51:40 2. to show a decline of mental faculties, esp. associated with old age. 3. decay of wood. 21:56:00 hm 21:56:24 why can't double sided printing be easy 21:57:01 Maybe the web versions have version numbers. I don't know. 21:57:16 fizzie, ah could be 21:57:31 fizzie, doesn't those cost? 21:57:39 some sort of yearly thing or such 21:57:43 "MOT Norstedts stora engelska ordbok 1.0 21:57:43 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 So this is from 2000. 21:58:00 They do, we have access via the university proxy though. 21:58:38 ah 21:59:47 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 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 I wonder how it calculates 22:01:19 It tries to maximize profit to the printer manufacturer without *completely* lying. 22:01:34 maybe 22:01:36 it's a HP 22:01:44 wonderful linux support there though 22:02:05 better linux drivers by far than the windows drivers 22:02:10 and all features supported of course 22:02:28 I think there is semi-official help from HP with those drivers even 22:03:00 hplip isn't it called that? 22:08:38 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 Maybe it's Lexmark's binary horribleness I'm thinking about. 22:10:01 fizzie, they are open source 22:10:05 that is the thing about them 22:10:20 hplip is open source and works very very wekk 22:10:23 well* 22:10:34 Seems to be so. 22:10:39 never got my old lexmark printer/scanner/copier to work well under linux 22:10:44 as in, it wasn't even detected 22:10:46 that was ages ago 22:10:49 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 possibly before first ubuntu version even 22:11:09 I think it was on SuSE 22:11:13 (heh) 22:11:29 fizzie, and yes hp's windows drivers suck a lot 22:11:48 while on linux it just works (remember to turn off the tray icon thingy though) 22:11:59 (but once you do that it doesn't show up again) 22:12:11 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 (and the app doesn't seem to auto start at all :) 22:12:45 fizzie, this is a printer/scanner/copier thingy though 22:12:55 Yes, those are always messier. 22:13:04 fizzie, and laser printers are always easier 22:13:11 they are generally postscript aren't they? 22:13:22 while inkjet... are not 22:14:18 Cheap laser printers typically aren't postscript. 22:14:27 Like this one. 22:14:43 Quite many (like this) support the very much simpler PCL language, though. 22:15:00 PCL, incidentally, is a HP thing. 22:15:04 heh 22:15:08 fizzie, well okay 22:15:13 still somewhat standard then 22:15:52 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 (they have those at our university) 22:16:06 oh and pseudo printers of course 22:16:10 for pdf conversion 22:16:28 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 fizzie, they aren't optional at our university 22:17:18 A LaserJet 5200 is the one I usually print to at work. 22:17:32 Or a LaserJet... 4650?, when colors are needed. 22:17:43 fizzie, anyway, they have paper sorter and automatic 22:17:47 and so on 22:17:51 at least some of them do 22:18:01 Right, those get pretty complicated. 22:18:03 "hole-punch" 22:18:07 cpressey, no? 22:18:17 "staple"? 22:18:18 isn't that for putting in binders 22:18:20 cpressey, right 22:18:25 that's it, staple 22:18:29 anyway 22:19:01 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 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 fizzie, civil service? 22:19:31 what's that 22:19:37 The army alternative. 22:19:47 oh you have värnplikt there still? 22:20:07 Civiltjänst? 22:20:14 Yes, if it means what I think it does. 22:20:15 fizzie, right. Sounds exotic 22:20:25 fizzie, can't you use that dict 22:20:31 What can I say? We're a bit traditionalists. 22:21:58 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 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 I don't think the other one actually has that 22:22:31 fizzie, what the heck do they do. I can read each part of that 22:22:38 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 but I can only hazard a guess that it is related to crime 22:22:58 it is so bureaucratic opaque 22:23:13 cpressey, you are older than us 22:23:14 clearly 22:23:16 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 cpressey, when was that 22:23:25 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 AnMaster: And the university was a bit behind the times at the time, yes :) 22:23:44 cpressey, around when was it? late 1980? 22:23:46 Early nineties. 22:23:50 heh 22:24:15 I'm not *that* old :) 22:24:20 fizzie, we get to pay for both and have some sort of printer account thingy 22:24:41 forgot how many pages I have left on it 22:24:45 I very rarely print there though 22:25:12 inkjet at home probably costs less in practise 22:25:28 laser at home would be better 22:25:43 anyway I worked out a how to correctly do double sided printing :D 22:26:51 "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 reverse order is the one where the first page ends up at the top 22:27:32 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 fizzie, normal (for completely unfathomable reasons) is the one where you have to reverse the order of the printed out pages 22:28:04 why not make the other the default 22:28:08 would make more sense 22:28:53 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 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 fizzie, colour? 22:29:12 I think so. 22:29:26 well that kind of printers are pretty fancy yeah 22:29:40 The print queue is called "mankeli" (Finnish for sv:mangel). 22:29:44 I assume it looks like one, too. 22:29:47 :D 22:30:21 `translate mankeli 22:30:27 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 Ah yes 22:30:46 `translatefromto fi en mankeli 22:30:48 mangle 22:31:02 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 ness* 22:31:06 1. mangle -- (clothes dryer for drying and ironing laundry by passing it between two heavy heated rollers) 22:31:06 but 22:31:08 In that sense. 22:31:09 -!- jcp has quit (Remote host closed the connection). 22:31:10 usually they don't 22:31:18 and you have to go figure out where the heck the printer is 22:31:21 (never near you) 22:31:46 Gregor, #!/bin/cat? 22:32:01 AnMaster: ...? 22:32:10 `translate mankeli 22:32:10 var sl_select, tl_select, [...] 22:32:24 looked like it catted the source code? 22:32:37 ... yeaaaaah no. 22:32:37 `type translate 22:32:38 No output. 22:32:42 `help 22:32:43 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 22:32:43 `cat bin/translate 22:32:44 #!/bin/bash \ translateto "en $1" 22:32:52 `run type translate 22:32:53 translate is /tmp/hackenv.28858/bin/translate 22:33:07 `run file bin/translate 22:33:08 bin/translate: Bourne-Again shell script text executable 22:33:13 Gregor, then why that strange output above 22:33:29 A) That's JAVASCRIPT code from translate.google.com 22:33:33 oh 22:33:38 B) They keep changing their output, and I can't keep up. 22:34:04 Gregor, looked slightly like perl + var to me 22:34:25 but there is probably some Acme module for that 22:34:30 From a bunch of variable assignments? :P 22:34:41 Acme::Javascript? 22:35:14 Gregor, yes 22:35:18 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 fizzie, LPI? 22:35:41 Lines per inch. 22:36:06 fizzie, that's pretty small text 22:36:28 22:37:02 fizzie, anyway, what sort of lines are those 22:37:58 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 The printing seems to cost 20 eur/metre, on the 90 cm wide paper. 22:38:26 that's expensive 22:38:32 +22 % value added tax. 22:38:40 fizzie, that was without tax? 22:38:44 yeargh 22:38:46 -!- ttm_ has joined. 22:38:54 -!- ttm_ has changed nick to ttm. 22:39:00 24.40 eur/m with tax. 22:40:01 fizzie, that's very very expensive indeed 22:40:15 -!- dbc has quit (Ping timeout: 256 seconds). 22:40:24 Yes. I've never printed anything with it. 22:41:28 fizzie, you must be at university very late? 22:41:31 or sshing? 22:41:32 -!- cheater2 has quit (Read error: Connection reset by peer). 22:41:52 At home I am. 22:41:56 -!- cheater2 has joined. 22:41:59 fizzie, vpn? ssh? 22:42:17 Neither. The computing centre web site is publicly available. 22:42:57 fizzie, but the printer details? 22:43:00 and printer queue? 22:43:17 is that public to the internet too? :D 22:44:01 Sure. 22:44:14 http://itservices.tkk.fi/fi/ohjeet/hinnasto/ if you can read Finnish. 22:44:34 http://itservices.tkk.fi/fi/ohjeet/anvandningspolitik/ if you want to read the usage policy in Swedish. 22:44:35 fizzie, so you mean anyone over the internet can submit to any of the printers at that uni? 22:44:52 No, just the specs and the name of the printer queue is mentioned there. 22:45:03 err that is strange Swedish 22:45:05 Obviously you have to be using one of the university computers to actually access the queue. 22:45:14 MissPiggy: hows them gigs? 8D 22:45:23 fizzie, s/politik/policy/ and it would make sens in Swedish Swedish 22:45:53 -!- cheater3 has joined. 22:46:04 AnMaster: I doubt they have had anyone with real skills to translate that stuff. 22:46:20 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 fizzie, possibly. Also it could be sv_FI and sv_SE diffs 22:46:39 fizzie, and I'm not that interested no 22:47:11 fizzie, at least it is better than translations like "all your base are belong to us" or "spoony " 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 Bard, yes. 22:49:11 what was the original (more literally) 22:50:18 btw the last xkcd wasn't too bad 22:50:35 (sysadmin one) 22:52:22 "After submitting a chargeable print job, please consult the pidgeonhole in room U115a for further information. Payment takes place in U115a." 22:52:41 "Please consult the pidgeonhole for further information." 22:53:08 pigeonhole 22:53:21 fizzie, heh 22:53:21 Yes, there is also a spelling mistake. 22:53:25 fizzie, what is in in FI? 22:53:26 But it's funny even without that. 22:53:30 is it in* 22:54:13 translated of course 22:54:17 (correctly) 22:54:38 The Finnish instructions just say the submitted jobs can be collected from room U115a. 22:54:54 I'm guessing it would be something like "teller window"? 22:55:07 Yes. 22:55:22 I like pigeonhole better. 22:55:39 Especially if it is manned by a real pigeon. 22:56:32 Well, at least they didn't say "cubbyhole". 22:56:49 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 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 night → 23:01:51 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 Oh nose D-8 02:59:35 There's another Gregor Richards 02:59:38 http://www.wideawakemusic.com/gallery.html 02:59:45 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 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 ":-/"[1]? 05:19:17 fancy notation for nose 05:19:26 oooh 05:24:00 -!- jcp has quit (Remote host closed the connection). 05:24:54 Gregor: i knew a Gregor Richardson 05:25:21 Not close enough. 05:36:17 I once knew a Gregor Richards. 05:36:31 Guy registered http://www.codu.org/ for some reason. 05:37:09 wouldn't an oh nose be ":o/"[1]? 05:37:34 They would, in fact, like for you to think that. 05:41:36 -!- Gracenotes has joined. 05:42:34 pikhq: You'll notice that www.codu.org, while existent, forwards to codu.org :P 05:42:44 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 poor, poor fireballs 11:20:03 current favorite book: Handbook of Formal Languages 11:20:18 just for you, oerjan 11:20:28 dont let anyone else know about it x3 11:22:06 * oerjan rolls eyes 11:22:26 :p 11:22:28 its a nifty little book 11:22:48 theres one chapter that extensively covers some extensions of context free grammars 11:22:57 called controlled grammars 11:23:31 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 or whatever 11:29:55 i'm going with the whatever 11:30:00 * oerjan whistles innocently 11:30:12 :( 11:30:16 its cool! 11:41:56 Handbook of Larval Fromages. 11:43:59 i think i'll skip those dishes 12:03:34 I have to agree with oerjan on that 12:04:45 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 http://divingintointercal.blogspot.com/ 12:37:36 cheater: has it been updated? 12:37:41 I'm aware of it, but didn't think it had changed in years 12:37:54 nope, still stuck at part 3 12:38:09 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 yeah, sadly 12:39:33 yeah, so am i 12:39:44 i hope he'll be able to tell us how to do intercal for the web 12:40:16 oh, I think I'm the third comment on that most recent blog post, btw 12:40:28 I only vaguely remember writing it, and it's marked as an anon, but it looks like my style 12:41:23 " 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 yep, I think that's me alright 12:49:33 -!- archtech has joined. 12:50:10 ais523: do you know if it's possible to do command line arguments for intercal programs? 12:50:52 ais523: in that case, i could re-implement drupal in intercal 12:53:22 cheater: not at the moment, at least in C-INTERCAL 12:53:30 there's a standard set of args all compiled programs support 12:53:34 but they don't support any others 12:53:42 hmm 12:53:54 what about CLC-INTERCAL? 12:54:02 is this specified in the INTERCAL manual? 12:54:34 which one? 12:54:47 the original one 12:54:49 C-INTERCAL's certainly pretty clear about it in its 12:55:04 the original one talks about the Princeton compiler, which has no mention of command-line args to the compiled programs themselves 12:55:06 just to the compiler 12:55:11 C-IMTERCAL is not the defining standard 12:55:23 *N 12:55:59 ais523: but the princeton compiler itself does not disallow them does it? 12:57:08 I *guess* you could also do first-order programming by including argv in the source and recompiling 12:59:28 cheater: the princeton compiler existed in the days of punched cards, I'm not entirely sure if a command-line existed 12:59:48 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 well, hmm, ya. 13:00:26 o no 13:00:30 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 there is no valid use case for a system without localhost 14:31:51 can someone please randomly contradict that with a plausible argument 14:31:58 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 anyone knows once you have a validated promela model how do you translate your specification into valid c/c++ code? 15:07:08 Isn't that just the -a flag to spin? 15:07:37 It should write pan.c (and a pile of other pan.X files) that's compilable to an executable verifier. 15:08:37 Sorry, a bit lazy reading there. You didn't want a compilable verifier, you wanted the actual promela code into C. 15:15:09 excellent 15:15:23 no 15:15:29 -!- cpressey has joined. 15:15:50 what i mean is the c model you are actually trying to model with it 15:16:03 im not sure whats the right terminology 15:16:31 you mean that the -a flag produces a .c file that will run the verification? 15:16:40 Yes. 15:16:57 ah 15:17:37 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 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 ok, but i'm sure there are some sort of guidelines 15:20:25 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 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 model extraction would work too 15:22:23 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 cool 15:22:57 i was thinking at it backwards i suppose 15:24:08 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 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 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 hm 16:37:47 Deewiant, TURT has F for "move forward" and B for "move backward" 16:37:52 should negative arguments be allowed 16:38:04 because currently I think negative arguments to my F will move backwards 16:38:07 and vice verse 16:53:01 -!- augur has quit (Ping timeout: 264 seconds). 16:54:47 I know nobody asked me, but that sounds reasonable. 16:55:50 integer_to_colour(Value) -> 16:55:50 <> = <>, 16:55:51 {R,G,B}. 16:55:54 I find that rather neat 16:56:21 Heh, that TURT quine looks messy. I don't think I had even seen that before. 16:56:36 fizzie, which turt quine? 16:56:46 the one from the huge domain name guy? 16:56:55 Yes. 16:57:04 At www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info. 16:57:41 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 if you sed out all the dots that cfunge and iirc ccbi cerates it looks quite ok 16:58:48 fizzie, anyway isn't that integer-to-colour-triplet function rather nice 16:58:59 in C it would have been quite some bitshifting or such 16:58:59 I haven't run it, I was just judging based on that picture there. 16:59:13 But yes, it is nice. 16:59:20 fizzie, oh that picture is much better than what cfunge produces (due to missing the dots) 16:59:29 of course cfunge does the correct thing instead 17:00:00 fizzie, anyway in cfunge it produces quite a less blocky image 17:00:04 due to it producing an svg 17:01:29 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 fizzie, well I'm not happy if it doesn't work on big endian or such 17:02:57 You can #ifdef in different struct definitions depending on endianness, but right, it's not guaranteed to work anyway. 17:03:27 unless otherwise specified erlang uses big-endian for bitstrings/binaries 17:03:43 (you can override it to one of: big, little, native) 17:04:50 fizzie, anyway the sanest way in C seems like something such as: 17:06:10 struct rgb integer_to_colour(uint32_t u) { return (struct rgb){.r=u&0xff0000, .g=u&0xff00, .b=u&0xff}; } 17:06:15 fizzie, agreed? 17:06:34 assuming same struct as above that is 17:07:56 fizzie, oh and erlang defaults to unsigned. With little endian signed it would have required something like: <> 17:08:16 (and similar on the other side of the pattern matching for each of R, G and B 17:08:17 ) 17:09:04 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 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 (Away, food.) 17:12:31 fizzie, oh right 17:12:33 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 you need to bitshift it too 17:13:00 (But that's not endian-automatic the way bitshifting and masking is.) 17:13:12 indeed 17:13:17 -!- tombom has joined. 17:13:21 fizzie, and in C the best way is probably bitshifting 17:13:29 fizzie, and that was one quick meal 17:15:53 -!- kar8nga has joined. 17:18:16 Oh, I'm still away. 17:23:48 XD 17:35:31 Deewiant, oh dear it looks like both ccbi and cfunge mix up turn left and turn right 17:35:44 plus ccbi somehow manages to miss one dot in that test 17:35:51 or rather 17:36:00 the dot turns out the wrong colour 17:36:23 (test/turt.b98 in cfunge sources) 17:36:32 (I believe it might be incorrect) 17:37:20 (but still, ccbi gets the wrong colour for the right dot) 17:37:31 (it should be black not blue) 17:38:11 still, something is up with turn left/right there 17:39:10 for some reason turning right adds to the degree 17:39:18 and turing left substracts from it 17:39:50 and that doesn't match behaviour for set heading 17:44:46 -!- oerjan has joined. 17:46:25 -!- augur has joined. 17:51:36 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 right? 17:51:46 and turing left you would add to it 17:51:50 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 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 assuming a math-direction 17:52:12 um are you sure i'm the one you want to ask? oh math direction 17:52:18 as in -> = 0 ^ = 90 <- 180 17:52:20 and so on 17:52:22 yeah then right turn would be negative 17:52:34 oerjan, then wth does both cfunge and ccbi do 17:52:40 what is this AnMaster some kind of LOGO? 17:52:53 MissPiggy, the fingerprint TURT for befunge 17:52:59 oh cool 17:53:19 ccbi and cfunge both sets heading as in math-direction 17:53:27 but mix up right and left 17:53:32 sheesh 17:54:11 well by math direction i assume you mean the standard way of displaying complex numbers, with i upwards 17:54:13 however for compatibility with older programs it might be better to redefine what right and left in English means 17:54:14 ;) 17:54:26 oerjan, yes 17:54:30 so e^(i*angle) is angle counterclockwise (in radians, though) 17:54:35 oerjan, well, unit circle for trig actually 17:54:40 which works out to the same thing 17:54:59 oerjan, and yes in radians of course. 17:55:43 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 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 oerjan, turtle degrees? 17:56:17 oh 17:56:17 AnMaster: like bachelor of chenelography, etc 17:56:20 *turtle, degrees 17:56:23 oerjan, right 17:56:46 oerjan, and yes the unit in question for the interface is degrees in integer 17:57:26 so I track it as degrees but convert it to radians to calc sin and cos values for move(Distance) 17:57:27 of course even turns by 60 degrees gives you irrational x,y parts 17:57:39 (for integer forwards) 17:57:49 oerjan, true. And that is defined to be integer x,y 17:58:01 oh it is? 17:58:04 so I think it might be possible to get supposedly straight lines that are somewhat curved 17:58:15 oerjan, well, you have an integer-interface for TURT 17:58:24 (not sure about a real turtle bot) 17:58:29 i'm more thinking about how you might not end up where you started if you do a triangle, say 17:58:30 and there is a query position thingy 17:58:49 so you have to round to integers when drawing 17:58:51 because of rounding errors, if you are using integers 17:59:04 anyway since there is "jump to x,y" too 17:59:17 you want a line to continue where you left off 17:59:23 if you jump to current position 18:00:02 oerjan, and yes quite. Unless you do that 3/4/5 one 18:00:13 (or another one like that) 18:00:55 ah but that one has an irrational _degree_, i'd think 18:01:52 !haskell arctan(4/3)*(180/pi) 18:02:00 oerjan, oh hm 18:02:31 huh, EgoBot claimed a parse error 18:02:34 oerjan, well, if you round to nearest then just ending up near where you wanted to go is enough 18:02:46 oh it's that two possible compilations thing 18:02:47 -!- kar8nga has quit (Remote host closed the connection). 18:02:58 oerjan, how can that compile in two ways? 18:03:30 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 I shouldn't ask, but, don't all turtle interfaces have a rounding problem? I certainly remember Apple LOGO did. 18:03:58 there has to be /some/ way to do it without a rounding issue 18:04:00 cpressey: in _principle_ you could track exact algebraic expressions :D 18:04:19 Even though pi is irrational? 18:04:36 OK, I suppose. 18:04:53 you don't _use_ pi in a turtle. the actual sin and cos are algebraic when the angles are rational _degrees_ 18:04:58 (i think) 18:06:11 for example sin (60 degrees) = (sqrt 2)/2 18:06:24 er wait 18:06:28 cpressey, it seems nearly all turt programs I have found depend on left and right being mixed up 18:06:32 Well, even if they weren't, you could probably still do it. 18:06:44 (sqrt 3)/2 18:06:45 cpressey, but set-heading doing the math set-heading 18:06:51 as in, counter clockwise 18:07:26 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 !haskell atan(4/3)*(180/pi) 18:07:30 53.13010235415598 18:07:36 AnMaster: That's unfortunate. 18:07:48 cpressey, yes quite 18:07:53 Sounds almost like someone should define TUR2. 18:07:54 cpressey: that's what i assumed you meant 18:08:01 cpressey, why not TURT2? 18:08:28 Aren't fingerprint IDs four characters? 18:08:42 cpressey, I don't think it says anywhere that longer aren't permitted 18:08:44 nor shorter 18:09:00 Then it's a convention? 18:09:11 cpressey, you should know ;P 18:09:26 "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 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 quoting from the 98 spec 18:09:41 and yes it is a convention afaik 18:10:01 cpressey, certainly there is nothing preventing me creating a fingerprint 0 18:10:11 or such 18:10:18 Then not TURT2 because it breaks convention. :) 18:10:34 cpressey, also it causes issues in 32-bit funges 18:10:39 TURT2 would evaluate to a 40-bit value, is why, and 32-bit... exactly 18:10:39 which is a thing of the past anyway 18:10:52 Huh 18:11:01 cpressey, things are 64-bit or bignum nowdays (at least the thing *I* write ;P) 18:11:07 well, 18:11:08 You say that like things of the past have less value than things of the present. 18:11:11 cfunge has an option 18:11:17 cpressey, I was joking -_- 18:11:29 I think 32-bit funges are still fairly common 18:11:43 cfunge is 64- or 32-bit (compile time option) 18:11:46 efunge is bignum 18:11:57 cfunge defaults to 64-bit iirc 18:13:12 anyway, the issue is that TURT is so badly specced 18:13:27 Indeed 18:14:24 Hard to believe mixing up left and right, though. 18:15:33 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 cpressey, and yes, left/right is problematic. Probably it has been copied for compat between implementations since then 18:16:32 fizzie, btw did you ever do any more work on JIT-funge? 18:17:37 I think if I had to redesign it I would leave out the teleporting and the absolute-heading-setting stuff. 18:18:16 cpressey, and define which direction it was to turn in (math one is the only one that makes sense IMO) 18:18:25 (for relative ones at least) 18:18:32 Well, yes. 18:18:41 cpressey, also what about transparent colours? 18:18:53 you could have semi-transparent pen-colours 18:19:00 more realistic too 18:19:02 Gamma, huh. 18:19:10 cpressey, I was thinking of alpha channel 18:19:16 Oh, right. 18:19:27 cpressey, gamma is something quite different isn't it? 18:19:35 Yes, I was mixed up. 18:19:37 anyway since I render to svg, alpha should be trivial 18:20:38 cpressey, now, should it be additive (light based) mixing or subtractive (ink/crayon/...) based mixing? 18:20:49 the former would be way easier to implement 18:20:59 unless you render to a real turtle bot 18:21:04 but for me who renders to svg... 18:21:37 TURT2 is fine, it just overlaps with something 4-character 18:21:38 I think it would be forgivable for a real turtle robot to stick to black-and-white. 18:21:43 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 (In 32-bit) 18:22:28 AnMaster: Just so you know, I'm almost certainly never going to get around to defining TUR2. Sorry. 18:22:44 Don't let that stop you or anyone else who wants to, though. 18:22:49 Deewiant, see about ccbi or cfunge having left/right mixed up for relative turining 18:22:58 I saw your comment 18:22:59 Deewiant, fixing it breaks the TURT quine amongst other things 18:23:07 :-) 18:23:21 Deewiant, so what are we to do? 18:23:32 provide a command line option? 18:23:45 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 chirality!!! 18:24:07 cpressey, well, the thing is that it is different in set-heading and turn left/right 18:24:09 Chirality is dead 18:24:22 --goatie 18:24:31 what did I miss there? 18:24:39 some sort of pop culture reference? 18:24:55 The point is to provide a command line option that makes the behaviour compatible with what existing programs expect 18:24:57 people in mirror worlds have goaties, of course 18:25:09 wait 18:25:12 *goatee 18:25:20 AnMaster: But hmm, what makes it inconsistent? 18:25:36 Deewiant, well set heading acts like it is math rotation 18:25:43 (Chivalry is dead) 18:25:44 How does it act like it? 18:25:57 set-heading 90 goes north? 18:25:59 Deewiant, as in, 0 = east, 90 = straight up 18:26:05 -!- kar8nga has joined. 18:26:06 as far as I can tell yes 18:26:32 I find that highly unlikely 18:26:40 hm 18:26:43 Looking at CCBI's source, at least :-P 18:27:00 Deewiant, how comes it renders the same as cfunge then 18:27:03 which does it that way 18:27:13 Beats me 18:27:14 void turnRight() { turt.heading += toRad(cip.stack.pop); turt.normalize(); } 18:27:14 void setHeading() { turt.heading = toRad(cip.stack.pop); turt.normalize(); } 18:27:20 Deewiant, anyway, turn right should substract 18:27:21 -!- MigoMipo has quit (Remote host closed the connection). 18:27:22 GROSS 18:27:26 * MissPiggy pukes on Deewiant 18:27:26 assuming math degrees 18:27:28 Deewiant, and it doesn't 18:27:31 Deewiant, that is the issue 18:27:37 According to this, and starting at 0, 90 right and 90 set-to are identical 18:27:54 -!- MigoMipo has joined. 18:28:02 Deewiant, yes that is the bug. Look at how you use those values 18:28:18 AnMaster: I wouldn't assume math degrees: to quote the docs "A 'Query Heading' (positive angle relative to east) " 18:28:27 Oh, never mind 18:28:32 That doesn't mean anything :-P 18:28:54 quite. The reason I didn't reply was I was trying to figure out wth you meant with that :P 18:29:49 all it means is that 0 =< A < 360 (or 0 < A =< 360, both are valid ways to interpret that) 18:30:03 (I would go for the former) 18:30:17 actually it doesn't even mean that 18:30:19 Actually, I'm not even sure it means that. It sounds quite meaningless to me 18:30:22 returning 720 18:30:24 is valid 18:30:27 but -720 isn't 18:30:38 AnMaster: "TRUT"4(n9a*HA.a,@ 18:30:43 Deewiant, ? 18:30:50 Could have just been "positive angle" 18:30:51 Whether H or R, this prints 90 for me 18:31:04 So where's the inconsistency? 18:31:29 Deewiant, that doesn't render anything 18:31:31 so I can't check it 18:31:41 Deewiant, and sure. 18:31:43 I don't give a damn about rendering 18:31:47 err 18:31:56 how else can you check it? 18:31:58 You just said that H is inconsistent wrt R/L 18:32:12 AnMaster, OOC, have you looked at Etcha at all? 18:32:27 cpressey, never heard of it 18:32:34 cpressey, and define OOC 18:32:34 http://catseye.tc/projects/etcha/ 18:32:40 Out Of Curiosity 18:32:43 ah 18:32:59 Deewiant, yes because when you render it turning right ends up turning left 18:33:05 Etcha does the turtle thing, but combines it with the program source 18:33:18 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 Deewiant, remember it is relative the turtle bot 18:33:29 Deewiant, (except for set heading) 18:33:42 Deewiant, now look at tests/turt.b98 in cfunge source. It has: 18:33:45 (Etcha's also implemented in some horrendous Java that MissPiggy would probably like.) 18:33:50 5F 9a*L 11x> ; Draw vertical line, turn 90 deg right.; 18:33:50 0C 5F 11x> ; Change to black, draw line. ; 18:34:10 which is very strange 18:34:53 Looks like a typo in your comment or code :-P 18:35:17 Deewiant, wait, is svg's coordinate system upside down? 18:35:22 hm 18:35:23 AnMaster: I'm still not seeing anything: "TRUT"4(n9a*HaF1PI@ prints a dot to the south as expected 18:35:27 that could explain some of the things 18:35:50 Deewiant, btw in that turt test code above you print the supposed-to-be-black dot as blue 18:35:55 and blue was never set as pen colour 18:36:00 it was set as the bg colour though 18:36:26 Deewiant, using ccbi x86_64 binary downloaded from your website today 18:39:32 Gah inkscape isn't zooming to the correct place by default 18:39:47 Deewiant, it zooms at the pointer iirc 18:39:49 when you scroll 18:40:02 (with ctrl down) 18:40:17 that's certainly how it works here 18:40:32 It's failing at using my viewbox 18:40:41 Deewiant, it uses it just fine for cfunge for some reason 18:41:13 It displays it fine in the preview thing when I have it selected in file->open 18:41:41 huh 18:42:18 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 Deewiant, anyway, svg uses +y as down right? 18:43:04 or do I misremember? 18:43:10 Yes I'd think so 18:43:26 why can't it use a sane way like in math :/ 18:43:56 Deewiant, it seems to start pretty decently zoomed for ccbi output for me 18:44:05 It used to for me too 18:44:07 What version? 18:44:25 * AnMaster starts it again 18:44:30 inkscape --version 18:45:05 0.46 18:45:08 Well, all the more reason to rewrite this thing to not use tiny coordinates :-P 18:45:12 Inkscape 0.47 r22583 (Jan 22 2010) 18:45:31 on 0.47 on my other computer I see those problems you mention 18:45:53 Alright, so it's not my fault as such 18:45:53 efunge doesn't use tiny coordinates btw, both versions work fine there 18:46:13 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 Deewiant, cfunge causes same issues as ccbi there 18:46:39 I ended up not doing so but I already had the coordinate impl at that point 18:46:46 trivial to fix 18:46:55 just stop scaling it 18:47:24 But I'll lose all my cool optimizations for printing numbers ;-P 18:47:47 Although I think I disabled them already for some reason or other 18:48:13 As it doesn't seem to emit 5e-5 which'd be shorter than .00005 18:52:05 But I'll lose all my cool optimizations for printing numbers ;-P <-- ? 18:52:28 you were golfing the TURT output 18:52:30 ?? 18:52:46 It did help for stuff like the quine 18:53:17 Deewiant, oh? 18:53:32 I mean, reduction measureable in kilobytes not bytes :-P 18:53:51 Deewiant, do you still try to make the paths as long as possible 18:53:52 that is 18:53:56 using M if jumping 18:54:00 instead of creating a new path 18:54:07 Of course, turning .00005 to .5 will help even more 18:54:12 AnMaster: Yes 18:54:13 Deewiant, I do that in cfunge but not in efunge. 18:54:25 Since SVG supports it, might as well 18:54:28 Deewiant, the quine is sluggish to zoom in with inkscape for the cfunge output 18:54:33 but snappy for the efunge output 18:54:40 so it seems like a counter optimisation 18:54:55 Space for speed 18:55:08 Do you only use M at the start of a path then? 18:55:12 Deewiant, correct 18:55:14 in efunge 18:55:55 How big are the quine SVGs from cfunge and efunge? 18:55:58 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 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 Deewiant, you have to remember to get circles and lines in the straight order 18:57:03 I don't know if you do that 18:57:06 cfunge doesn't it seems 18:57:13 it always draws lines first then circles 18:57:42 but those two groups have their order preserved internally 18:57:47 just not between each other 18:58:52 Deewiant, btw I assume your output contains no newlines then? 18:59:03 oh hm it does 18:59:14 Deewiant, also "#00f000" 18:59:20 oh wait 18:59:21 misread 18:59:32 heck you do turn 0000ff into 00f 18:59:36 -_- 18:59:41 Of course ;-P 18:59:57 Deewiant, what is the algorithm for that. The one I can think of is fairly wordy 19:00:13 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 AnMaster: if (buf[1] == buf[2] && buf[3] == buf[4] && buf[5] == buf[6]) 19:00:41 cpressey, oh I bookmarked it for later 19:00:49 Deewiant, *cringe* 19:00:54 :-D 19:01:00 Deewiant, that assumes you have a fairly imperative language 19:01:10 Not really 19:01:16 Deewiant, now go implement it in scheme 19:01:29 Deewiant, for cons-list style strings 19:01:42 Deewiant, or maybe in haskell 19:01:45 Those can still be indexed? 19:01:54 Deewiant, can cons lists really? 19:01:56 well 19:01:59 cdar 19:02:00 I guess 19:02:19 (or was it cadr? I always mix those up) 19:02:39 (as in, I never remember which order to read the operations in) 19:03:37 oh cadr it seems 19:03:43 which doesn't make a lot of sense to me 19:04:07 uncurry (==) $ join (***) (map fst) $ (filter (even.snd) &&& filter (odd.snd)) $ zip (tail x) [0..] 19:04:21 This is how I'd write that comparison in Haskell if I wanted to be general about it 19:04:31 Where x is the #rrggbb string 19:05:01 If I wanted to be nongeneral I'd do (x !! 1 == x !! 2 && x !! 3 == ...) 19:05:18 But that's also less efficient since it traverses the list multiple times :-P 19:05:34 AFK for a bit -> 19:07:33 Deewiant, found the cause of the wrong colour circle in ccbi yet? 19:07:39 match([X,X|r]) -> match(r); match([]) -> true; match(_) -> false 19:07:58 cpressey, wth at that tail (assuming erlang) 19:08:18 AnMaster: ? 19:08:25 My syntax isn't exact 19:08:26 cpressey, lower case R 19:08:32 it's an atom 19:08:35 Fine. 19:08:37 R. 19:08:46 cpressey, you coded erlang before, there is no excuse ;) 19:09:25 -!- kar8nga has quit (Remote host closed the connection). 19:10:10 hm does css and svg accept color:red/color="red"? 19:10:18 if so that is shorter than #f00 19:10:25 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 re fluent in... 19:10:49 cpressey, I'm not that fluent, also I found that somewhat non-elegant 19:11:58 cpressey, however it's late and I had not just _a_ heavy day but several heavy days. And another one tomorrow... 19:13:09 cpressey, anyway, I have the colour as a binary at that point it seems. I blame io_lib:format for this 19:13:19 which is very strange 19:13:26 since no binary was involved 19:14:03 AnMaster: I'm not looking 19:14:04 Binaries always made me hesistate, but I *think* you can say things like <> to match them 19:17:22 -!- MizardX- has joined. 19:17:41 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 MissPiggy: Is this kind of stuff less puke-worthy? 19:18:20 -!- MizardX- has changed nick to MizardX. 19:18:20 no 19:18:24 that's worse 19:18:29 D'oh 19:18:40 Deewiant: ap zip tail? 19:18:50 You know as well as I do that that should be zip`ap`tail. 19:18:59 The Aztec god of consecutive numbers. 19:19:07 I know that it could be, not that it should be 19:19:32 On a more serious note: I find infix "ap" to be much more readable. 19:19:35 In expressions like that where it'd need extra brackets to invoke the gawd I'd rather leave it as such 19:20:12 Mmm... 19:20:32 (zip `ap` tail) is nicer IMO, but... Whatever. 19:20:43 <*> has unfortunate precedence too, so that doesn't help 19:21:11 I still think the Erlang version is closest to how I think. 19:21:15 You're not going to get anything better, because of the precedence of 「.」. 19:22:03 cpressey: Yes, but that requires writing a separate function ;-) 19:22:06 AnMaster: I'm not looking <-- at what? 19:22:13 For bugs. 19:22:20 At the code, whatever. 19:22:32 As a side note, non-English punctuation is really nice for discussing programming. Doesn't collide at all for most languages. 19:22:48 "" is not English punctuation 19:22:59 Erm. 19:23:00 Bleh. 19:23:03 Not punctuation. 19:23:18 lament: Don"t confuse us. 19:23:19 Deewiant, why not? 19:23:35 cpressey: well ' isn't English punctuation either :) 19:23:49 ... Other word that refers to various bits of non-pronouncable inline metadata used in the writing of natural language. 19:24:01 although on the rare occasions that people use the correct apostrophe... they just get laughed at 19:24:24 cpressey, anyway for 3 colours you could just do [$#,X,X,Y,Y,Z,Z] 19:24:29 now that would be nice 19:24:37 AnMaster: Because TURT isn't on the top of my TODO list :-P 19:24:46 'Struth! 19:24:48 Deewiant, nor is ccbi I guess? 19:24:57 I meant, "of CCBI" 19:25:08 But yeah, it isn't either, as such 19:25:15 Deewiant, well okay. Still ccbi 1 still recieves bug fixes I thought? 19:25:25 receives* 19:26:08 I'd rather avoid messing with CCBI1 at all unless it's something relatively important 19:26:31 Deewiant, and TURT isn't? 19:26:47 Not IMO, especially since it mostly works :-P 19:26:57 AnMaster: Do you have a simple testcase for the north/south thing? 19:27:49 Deewiant, hm? well you may be right, the coordinate system of svg confused me I think 19:28:07 Alright 19:28:11 Deewiant, but the wrong colour of dot: yes 19:28:19 it is src/turt.b98 19:28:21 So now there's that colour thing and preserving order of lines/points 19:28:23 err 19:28:26 Actually tests/turt.b98 19:28:27 test/turt.b98 19:28:28 I meant 19:28:30 yeah tests even 19:28:33 :-P 19:28:40 -!- charlls has quit (Read error: Connection reset by peer). 19:28:43 Deewiant, obviously you found it by yourself though 19:29:01 Thus my 93-line TODO for CCBI grows by four lines. 19:29:05 Deewiant, anyway do you optimise #f00 into red? 19:29:09 Nope. 19:29:16 Deewiant, :/ 19:29:20 >_< 19:29:25 Deewiant, what? 19:29:33 afaik it is legal 19:29:36 ":/" seems hardly warranted :-D 19:29:47 Especially from someone who outputs #ff0000 19:29:49 Deewiant, THINK OF THE EXTRA BYTES 19:29:53 why is that an optimisation? 19:29:59 It saves a byte of space 19:30:01 scarf, fewer bytes 19:30:12 For the want of a byte of space, the kingdom was lost. 19:31:04 Deewiant, anyway I was ridiculing you for your extreme space optimisations that are time pessimisationsa 19:31:07 s/a$// 19:31:18 also you still try to format the svg nicely 19:31:22 "red" is the only one with any advantage, I think 19:31:29 lots of un-needed newlines and spaces 19:31:49 cfunge puts it all on one line (due to using the genx library to generate the xml) 19:31:51 Yes, I know 19:31:55 -!- charlls has joined. 19:31:59 (ehird managed to convince me to do that, not sure why) 19:32:20 I might do that M-only-at-start thing as well, seems nice enough 19:32:21 (since it outputs stuff like: ) 19:32:55 Aha, the defined colours are actually stuff like #808080 as well, so there's more advantage to be had 19:33:05 Deewiant, hm? 19:33:24 Continuing from my '"red" is the only one with any advantage, I think' 19:33:41 Deewiant, iirc those are (used to be?) different between browsers 19:33:52 No, they're well-defined 19:33:53 the only ones you could trust were black/white/red/blue/green 19:34:02 Deewiant, this might have been when HTML 4 was still new 19:34:04 There are 16 defined colours in HTML 4.0 19:34:05 I don't remember 19:34:13 And those same colours are defined in SVG 1.1 19:34:28 Deewiant, so which ones are advantages? 19:34:30 Which actually linked to the CSS 2.0 spec 19:34:46 There's system colours as well, which obviously aren't portable 19:35:07 AnMaster: silver, gray, maroon, red, purple, green, olive, navy, teal 19:35:08 Deewiant, btw why no DOCTYPE? 19:35:18 did CSS steal the colour list from X11, or vice versa? 19:35:22 or do they both have a common source? 19:35:31 scarf, X11 has a colour list? 19:35:36 I think X11 defines more colours than CSS? 19:35:37 I think so 19:35:49 some of them are really weirdly named 19:35:52 Deewiant: hmm, maybe 19:35:55 AnMaster: http://jwatt.org/svg/authoring/#doctype-declaration 19:36:58 Deewiant, the link to why is dead 19:37:16 or at least to where they tell it 19:37:20 I get a redirect loop 19:37:36 Accept cookies from yahoo.com 19:37:55 Or enable javascript or whatever you have disabled 19:38:23 AnMaster: But anyway, the fact that SVG 1.2 won't have one is also some proof I guess 19:38:24 Deewiant, I use lynx atm 19:38:29 let me try w3m 19:38:34 That would be a problem 19:38:39 :-P 19:38:42 Deewiant, I don't have X running 19:38:47 on this system 19:39:02 So you probably won't be able to use yahoo groups 19:39:14 maybe google has a cached copy 19:39:31 yep, cache:http://groups.yahoo.com/group/svg-developers/message/48562 worked 19:39:32 fungot, We have managed out of existence of interconnecting principles, then they were 19:39:33 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 cpressey, you sounded almost as bad as fungot there XD 19:40:04 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 AnMaster: Well, I try. :) 19:41:52 Deewiant, is there any good svg validator btw? 19:42:08 Deewiant, since the w3c one accepted a viewbox of "hello" 19:42:16 :-D 19:42:48 I don't know of any others 19:43:00 Deewiant, and the w3c one is obviously quite useless 19:43:35 Deewiant, btw how easy would it be in ccbi to replace the rendering to svg with a completely different format? 19:44:08 Depends on how easy it is to render that format :-P 19:44:18 Deewiant, well, lets say png 19:44:34 I don't know enough about image formats to be able to say anything 19:44:48 Deewiant, well, any bitmap format then 19:45:01 But basically the stuff is stored as paths and dots 19:45:20 So it depends on how easily you can turn that into an image 19:45:23 Deewiant, how funge specific is it? 19:45:48 Deewiant, I mean, does the turtle part have a clean and nice interface that could be used for other things? 19:46:18 There's hardly any interface 19:46:32 (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 Rendering once you have the data is trivial enough to do to any format (assuming you can render paths and dots) 19:46:59 I still haven't made it save to a file though 19:47:56 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 Deewiant, what do you mean with that? 19:49:20 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 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 err ignore that ]). at the end 19:50:20 anyway 19:50:30 that is the api for efunge_turtle.erl 19:51:00 I have hardly any API, just a few structs and then the functions defining the funge commands 19:51:19 Deewiant, even in cfunge I mostly have separate functions for it, though not completely 19:51:24 A few helpers do exist which could be part of an API if there were one 19:51:28 it would require some work to pick it out 19:51:34 but not much 19:51:35 -!- scarf has quit (Remote host closed the connection). 19:51:58 Deewiant, and render returns an iolist 19:52:27 (erlang data type of mixed, possibly deep, cons list containing mixed binaries and cons-style strings) 19:53:00 (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 (no need to flattern it in any sort of nice way) 19:55:24 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 then one down 19:55:30 and so on 19:55:33 in a spiral 19:56:37 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 cpressey, Deewiant: opinions? 19:57:53 for non-square pictures you could just skip over the parts outside (would require a header with dimensions then) 19:58:32 Yes, it has a nice streamableness to it 19:58:42 cpressey, har 19:58:47 well actually 19:58:48 it does 19:59:25 so basically like: 19:59:27 v<<<<< 19:59:27 vv<<<^ 19:59:27 vvv<^^ 19:59:27 vvv^^^ 19:59:27 vv>>^^ 19:59:28 v>>>>^ 19:59:32 >... 19:59:32 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 Hell, you could do arbitrarily-shaped pictures with that "color" :) 20:00:17 cpressey, yes basically like alpha right? 20:00:26 :P 20:00:50 cpressey, anyway, sure you could have an alpha channel or whatever 20:00:53 I guess, with the additional implication that "you can just discard this part of the picture after it's done" 20:00:59 hm 20:01:06 as opposed to "I want a transparent border" or something 20:01:13 right 20:01:31 But yeah, very similar to alpha otherwise. 20:01:34 cpressey, would require removing one specific shade or adding one more bit/byte 20:02:02 cpressey, I imagine one would use 16-bit integers per channel here 20:02:12 or 8 bits at the very least 20:02:25 OR, you could embed commands to clip the existing image -- and additional pixels should flow around the new clipped region. 20:02:39 32-bit floating point per channel is kind of heavy (I have dealt with HDR, I know this) 20:02:45 You could stream entire slideshows, in a strange manner, if you went that way 20:02:58 cpressey, how? 20:03:18 stream a spiral, clip it to 0x0, stream another spiral, clip it... 20:03:25 oh I see 20:03:29 hm 20:03:46 cpressey, I wasn't thinking of the streaming aspect of it before 20:03:52 but that is interesting indeed 20:04:08 cpressey, I wonder how well it would compress though 20:04:16 I don't like the idea of embedding a "command" as much 20:04:34 cpressey, you could use embedded befunge ;) 20:04:49 would fit the 2D nature 20:04:55 Well, RLE is probably the simplest kind of compression you could do 20:04:58 Har 20:05:18 cpressey, I was thinking of "how well will deflate work on this 20:05:34 or such 20:10:52 Deewiant, do you know if you can set r of a circle using css in svg? 20:10:56 that would save quite a lot 20:11:17 Yes, and no you can't. 20:11:29 I remember you asking me about this a year+ ago too ;-P 20:12:15 ah 20:24:56 "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 fizzie, you have access to that? 20:25:46 or will have rather 20:26:13 with that you could build some nice models for fungot! ;P 20:26:13 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 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 just pushed TURT updates to cfunge and the new TURT for efunge 20:27:29 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 Deewiant, btw isn't black the default colour of paths and circles? 20:29:22 (assuming no css overrides) 20:29:29 There is no defined default for anything 20:29:35 ouch 20:29:44 Or did you mean SVG? 20:29:49 I don't know about SVG, that was about TURT 20:30:20 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 :-D 20:32:01 I've learned my lesson -- unfortunately my newfound zest for precision will probably not be applied to Befunge anytime soon. 20:35:55 Maybe Befunge-111 20:36:13 Ah, hey, speaking of inprecise specs 20:36:25 cpressey: TOYS: B ('pair of shoes') pops two cells off the stack and pushes the result of a "butterfly" bit operation. 20:37:02 I don't /think/ we've asked you what 'a "butterfly" bit operation' was supposed to be 20:37:26 indeed 20:37:29 I would like to know too 20:37:41 We've asked a lot of people, but I don't think we've asked you ;-) 20:37:45 since the only one we found doesn't work on that number of inputs iirc 20:37:57 No, we've got the (a+b, a-b) one 20:38:12 Deewiant, well yes, but that one was just copied from some other interpreter 20:38:14 Reverse-engineered from !Befunge 20:38:18 But also justified 20:38:20 hey 20:38:29 Deewiant, oh? 20:39:01 http://en.wikipedia.org/wiki/Butterfly_diagram 20:40:06 It was inspired by the mention in here: http://catseye.tc/projects/starw/doc/starw.html 20:40:15 But I have no idea why it has two inputs, or what that means. 20:40:16 Sorry. 20:40:18 -!- jcp has joined. 20:40:23 heh 20:40:37 "Butterfly the bits of X, i.e., 11001100 becomes 10100101." 20:40:41 FWIW I have no idea what that butterfly does either 20:40:42 Also a great spec. 20:40:49 Yep :-) 20:41:16 http://en.wikipedia.org/wiki/Butterfly_%28disambiguation%29 20:41:31 ATM, "Butterfliies Eat Pants" is the current vandalism. 20:41:51 >_< 20:41:58 DESU 20:42:22 Wareya: もっとです? 20:43:42 I think the 8-bit diagram in the Butterfly_diagram page might explain the *W butterfly operation 20:43:47 ? 20:43:51 Or not 20:44:27 cpressey, it looks like it tries to distribute those one-bits symmetrically? 20:44:36 according to a pleasing pattern perhaps 20:44:59 That's as good as anything I can come up with :) 20:45:39 cpressey, note that the two identical nibbles (separated with space): 1100 1100 becomes 1010 0101 20:45:53 patterns to note: 20:46:02 identical nibbles in input 20:46:15 symmetrical output byte 20:46:32 If you change directions in my language, you can change 1100 to 0011 or to 1000 if you're not careful! 20:46:33 mirror nibbles (follows from the previous one though) 20:46:46 every other bit is one in each nibble 20:47:04 the only place with two identical bits is where the nibbles join up 20:47:40 this is clearly very significant for, uh... significant reasons! 20:48:03 (of great significance of course) 20:48:15 it should also be noted that the sign bit was *not* changed 20:48:17 again very important 20:48:18 I think it's this 20:48:30 cpressey, ? 20:48:33 first 1100 -> 1x1x0x0x 20:48:42 second 1100 -> x0x0x1x1 20:48:47 cpressey, what are those x? 20:48:49 (second is like first just mirrored) 20:49:00 x means "use the bit from the other half" 20:49:14 so 20:49:18 then what 20:49:26 oh wait 20:49:28 So if you combin 1x1x0x0x and x0x0x1x1 you get: 10100101 20:49:43 cpressey, ah interesting. You know this would have been trivial in intercal I think 20:49:49 which is kind of amazing 20:50:19 So, there's your answer, I think. For two inputs, just treat each like the nibbles in *W 20:50:55 cpressey, but then the answer is twice the number of bits of the funge implementations? 20:51:05 :D 20:51:08 s/s\?/\?/ 20:51:20 cpressey, anyway it doesn't work out 20:51:40 oh wait 20:51:44 just push two separate cells 20:51:53 one with the upper 64 bits and one with the lower 64 bits 20:51:58 Sure! 20:52:01 of course this breaks down for bignum 20:52:02 -_- 20:52:10 Since the spec doesn't say how many result values there should be for B 20:52:44 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 cpressey, want to see the ATHR spec btw? 20:53:33 it is somewhat in a flux 20:53:37 As I've mentioned, Funge, like C, just doesn't do bignum. 20:53:44 due to trying to figure out what is feasible 20:53:45 Sure. 20:53:50 you can emulate bignums in C 20:53:52 cpressey, and I declare that wrong. Becuase it does 20:53:53 :) 20:54:26 "do bignum" => "cleanly support bignums as a primitive type" 20:54:35 cpressey, yep 20:54:39 and it works mostly 20:54:45 cpressey, anyway http://sprunge.us/icgB 20:54:53 Because both languages define a MAXSIZE for integers. 20:54:54 and it is somewhat in flux due to various reasons 20:54:58 cpressey, -1 20:55:01 I return -1 20:55:04 for that y thing 20:55:59 cpressey, at least be happy I don't insist on doing a balanced ternary bignum funge! 20:58:51 ATHR looks pretty good, I like the books. 20:59:13 -!- gm|lap has joined. 20:59:16 cpressey, it is also rather well specced especially how it interacts with other known feral fingerprints 20:59:35 (especially the RCS ones which are infamously underspecced in general) 21:00:19 of course, I refuse to even try to figure out how it works with TRDS 21:00:48 since it is bound to cause issues when you time travel and have async threads 21:03:24 My head hurts. 21:04:08 cpressey, from TRDS alone or from ATHR + TRDS? 21:04:12 The implementation shall detect deadlocks (in a reasonably timely manner) when 21:04:12 two IIPC operations are waiting on each other and break them by making one of 21:04:12 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 the blocking threads reverse. 21:04:16 added that paragraph 21:04:29 >From all of it. 21:05:03 cpressey, what download link? Somewhere on that page? 21:05:24 AnMaster: you mean charlls? 21:05:25 yes 21:05:34 oh 21:05:36 right I did 21:05:45 charlls, indeed it seems to be dead 21:05:52 charlls, but look that page mentions .Z 21:05:54 it is OLD 21:06:08 and "http://www.gnu.ai.mit.edu/home.html." 21:06:10 wth :) 21:06:13 indeed 21:07:00 -!- jcp has quit (Remote host closed the connection). 21:07:08 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 c/c++ i meant, c is fine too 21:07:38 charlls, I have no clue 21:07:49 charlls, I use a message passing language when I need to do threads 21:07:51 such as erlang 21:08:00 I refuse to touch pthreads directly 21:08:04 !scramble scramble 21:08:15 is egobot here? 21:08:20 ^scramble scramble 21:08:20 srmlebac 21:08:26 oerjan, or did you mean fungot? 21:08:27 AnMaster: we must do it to save you! who the heck are you?! c'mon!! 21:08:33 ^scramble srmlebac 21:08:34 smeacblr 21:08:39 ^scramble smeacblr 21:08:40 seclrbam 21:08:42 !unscramble 11001100 21:08:44 ^scramble seclrbam 21:08:45 scramble 21:09:03 so at least for "scramble" it has a short period 21:09:05 oerjan, ... 21:09:06 oh right 21:09:10 ^unscramble 11001100 21:09:11 10100101 21:09:15 yay! 21:09:16 wow 21:09:20 cpressey, ^ 21:09:27 oerjan, what is the algorithm used there? 21:09:33 ^show scramble 21:09:34 >>,[>,]<[<]>[.>>]<[>>]<2[.<2] 21:09:47 ^unscramble unscramble 21:09:47 uenlsbcmra 21:09:57 ^unscramble uenlsbcmra 21:09:58 uaernmlcsb 21:10:01 Looks like butterflyification to me. 21:10:01 ^unscramble uaernmlcsb 21:10:02 ubasecrlnm 21:10:06 ^unscramble ubasecrlnm 21:10:06 umbnalsrec 21:10:10 ^unscramble umbnalsrec 21:10:11 ucmebrnsal 21:10:15 ^unscramble ucmebrnsal 21:10:15 ulcamsenbr 21:10:19 ^unscramble ulcamsenbr 21:10:20 urlbcnaems 21:10:25 ^unscramble urlbcnaems 21:10:25 usrmlebacn 21:10:30 ^unscramble usrmlebacn 21:10:31 unscramble 21:10:35 longer period for that one 21:10:36 hm 21:10:42 ^scramble 12345678 21:10:43 13578642 21:10:53 ^unscramble 12345678 21:10:54 18273645 21:11:00 ^unscramble 123456789 21:11:01 192837465 21:11:08 ^scramble 123456789 21:11:08 135798642 21:11:14 ^scramble abc 21:11:14 acb 21:11:19 ^scramble abcd 21:11:20 acdb 21:11:27 cpressey, not quite I think 21:11:31 i think we calculated periods around when those commands were first added 21:11:40 oerjan, ah 21:11:49 ^list 21:11:51 ^show 21:11:52 echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble 21:11:54 ^unscramble 12345678 21:11:54 18273645 21:11:58 ^show wc 21:11:58 [] 21:12:02 what 21:12:04 fizzie, ^ 21:12:14 ^show ul 21:12:15 >,[>,]<[<]>[<+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 1x2x3x4x, x8x7x6x5 21:12:22 well that one is cut short 21:12:37 It's also not used. 21:12:46 I don't know what that wc is about. 21:12:52 It doesn't look very worky. 21:12:56 ^wc foo bar baz 21:12:56 fizzie, ^ul isn't used? 21:13:08 what then is it for 21:13:26 ^show choo 21:13:26 >,[>,]+32[<]>[[.>]<[<]>[-]>] 21:13:28 ^show cho 21:13:29 >,[>,]<[<]>[[.>]<[<]>[-]>] 21:13:33 ^cho test 21:13:35 testeststt 21:13:38 I mean that brainfuck code is just a leftover from time before Underload was a directly supported language by fungot. 21:13:38 ^choo test 21:13:38 ^choo test 21:13:39 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 test est st t 21:13:39 test est st t 21:13:43 fizzie, ah 21:14:00 ^pow2 test 21:14:01 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 eh? 21:14:09 ^show pow2 21:14:09 That one doesn't take any inputs. 21:14:09 +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3] 21:14:12 fizzie, right 21:14:16 It just outputs powers of two. 21:14:17 ^show source 21:14:18 (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98)S 21:14:23 ^show help 21:14:23 (^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool)S 21:14:34 ^show show 21:14:38 aww 21:14:43 ^show hw 21:14:44 >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+. 21:14:48 ^hw 21:14:49 Hello World! 21:15:13 ^fib 21:15:14 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 cpressey, what is your opinion on the coding style in http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 ;) 21:15:38 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 Should at some point fix that >>> bug too. It collapses multiple <<>>s. 21:16:53 -!- tombom_ has joined. 21:17:04 AnMaster: I have no strong feelings about it. 21:17:06 fizzie, what was that triangle in the code for now again? 21:17:11 fizzie, around line 157 21:18:10 Converts punctuation token indices to characters. 21:18:13 I'm just amazed the thing actually works. 21:18:25 cpressey, well it uses the SOCK fingerprint for sockets of course 21:18:34 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 fizzie, or a binary w tree? 21:19:13 Well, that too, but since it's a contiguous range, I think a jump table makes sense. 21:19:19 The letters above the triangle are comments, in fact. 21:19:22 fizzie, a j table yes 21:19:22 It's also pretty. 21:19:37 cpressey, have you looked at mycology source then? 21:19:44 I don't think so. 21:19:57 Mycology's a lot wider, it's not always easy to look at it. 21:20:14 cpressey, http://sprunge.us/KcWN 21:20:16 and what fizzie said 21:20:22 also contains a literal null byte 21:20:25 to test that 21:20:52 Christ. 21:21:05 cpressey, the upper corner is a 93 test suite 21:21:10 the rest is for 98 21:21:23 you can see it is somewhat more compact up there 21:21:27 cpressey, also Deewiant wrote it 21:21:30 also,* 21:21:53 I fail to see how he can maintain it :) 21:21:59 I'm happy he does though 21:22:40 cpressey, I love the vertical strings in it 21:22:42 -!- Phantom_Hoover has joined. 21:22:49 and how some stuff is used differently in different directions 21:23:13 INTERCAL is not IWBTG. Malbolge is. 21:23:38 IWBTG? 21:23:55 I Wanna Be The Guy. 21:24:04 Insanely hard computer game. 21:24:47 mhm 21:25:07 Per the topic. 21:25:23 oh hadn't noticed 21:25:33 -!- AnMaster has set topic: 0 days since last topic change | 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 ooh 21:26:09 Mycology is 180 columns wide 21:26:19 Mycology? 21:26:32 Probably matches what fits in UltraEdit-32, 1600x1200, Andale Mono 10pt or something 21:26:36 http://sprunge.us/KcWN 21:26:58 Phantom_Hoover, or official source: http://users.tkk.fi/~mniemenm/befunge/mycology.html 21:27:11 Or permalink: http://iki.fi/matti.niemenmaa/befunge/mycology.html 21:27:37 Deewiant, I just copy from top of browser. Always. At all sites. 21:27:52 Well then you're an idiot 21:27:57 Deewiant, why? 21:28:06 it should work. It makes sense if it works 21:28:08 and it is easiest 21:28:09 Because that's not always the best link to use 21:28:20 Deewiant, then the wrong link is displayed at the top 21:28:31 Not all URLs are permanent 21:28:35 "if you must use FBBI" 21:28:35 heh 21:29:05 I should *probably* apply those patches. Someday. 21:29:31 Or, Befunge-111. Ha. 21:29:37 Given that one of them is by you I'm surprised it isn't applied :-P 21:29:45 cpressey, befunge-111? 21:29:48 oh that 21:30:03 cpressey, well I was the guy working on s/108/109/ 21:30:12 but well, few people seemed to care 21:30:55 Well, probably the number of people who do care is greater than the number who seem to care. 21:31:16 I would never have guessed that there would be that many Befunge-98 implementations out there. 21:31:19 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 plus probably some other minor points 21:31:48 I suggest doing something about every UNDEF in Mycology ;-P 21:31:57 Deewiant, well, possibly 21:32:07 -!- Phantom_Hoover has quit (*.net *.split). 21:32:07 -!- adam_d has quit (*.net *.split). 21:32:11 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 cpressey, also define k on k 21:32:51 Well yes, obviously not those ones 21:32:52 which Deewiant refuses to touch 21:33:01 (I worked it out for cfunge) 21:33:03 I see k on k as perfectly well defined :-P 21:33:07 Deewiant, oh? 21:33:12 You worked out your own view on the matter 21:33:19 I think mine is what CCBI implements :-P 21:33:27 Deewiant, you don't handle k on k is what you said before 21:33:36 I don't special-case it 21:33:40 The spec doesn't; why should I 21:33:51 Not too thrilled about the idea of an "addendum". There needs to be a new spec. 21:33:54 which means it ends up in a very very strange way iirc 21:34:06 cpressey, well corrigendum then 21:34:26 cpressey, that can be applied with reasonable effort to existing implementations 21:34:31 "Very very strange" - it's exactly what the spec defines :-P 21:34:35 while 111 are for more radical changes 21:34:44 Sure, you can argue that the spec /should/ special-case k on k 21:34:47 cpressey, see what I mean? 21:34:58 AnMaster: No. Or, maybe I do, and I disagree. 21:34:59 Deewiant, k on k used to *crash* ccbi iirc 21:35:00 But since it doesn't, I don't think any conforming interpreter should either 21:35:08 AnMaster: You misrecall 21:35:14 Deewiant, maybe it was cfunge then 21:35:15 It used to crash cfunge, maybe ;-P 21:35:23 I know cfunge crashed on 3k@ 21:35:27 at one point 21:35:44 I recall that 21:35:46 (for t build only) 21:35:48 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 cpressey, I don't know what those directions are 21:36:12 cpressey, but if I have anything to say there should be some room for bignum out there 21:36:25 Another minor nit in the spec is the "team number" that y pushes 21:36:32 ooh yes 21:36:35 "Only significant for NetFunge, BeGlad, and the like." 21:36:40 maybe cpressey can explain wth it is 21:36:44 or was supposed to be 21:36:45 AnMaster: Well, just consider how many things could be taken out of the language because someone doesn't like them. 21:36:54 AnMaster: I thought it was mentioned in those old mailing list logs? 21:36:58 Or how many features could be added in the name of "makes it harder to compile". 21:37:16 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 it resulted in a very strange and interesting language 21:37:27 "team number" was for BeGlad, which was supposed to be Core Wars in Befunge 21:37:44 at one point I suggested there should be a 80x25 hole in fungespace from origo 21:37:48 but that was just insane 21:38:21 cpressey, ah interesting. And NetFunge was similar? 21:38:35 Probably for NetFunge it would be a like a node ID or something. 21:38:49 sounds like I could abuse that thing for ATHR then 21:38:50 But, that's the kind of thing that should be taken out. Should be in a fingerprint. 21:38:58 cpressey, true 21:39:01 like ATHR 21:39:03 But, i never liked the fingerprint system much. 21:39:08 i originally made TheSquare to be a sort of combat game of some sort 21:39:14 cpressey, true they should use URIs 21:39:16 ;) 21:39:21 that was one plan for 109 21:39:26 and I think it was the wrong thing to do 21:39:34 collisions aren't that common 21:39:50 cpressey, still befunge without loadable extensions would mean the end to things like fungot and ATHR 21:39:51 AnMaster: you! take! we find! you are crono. why not? then you should leave quickly! 21:40:09 fungot, now where was that phrase from.... I remember it from ct... 21:40:09 AnMaster: that no one was allowed to use the crane, enter any two of these letters, a b y. 21:40:36 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 I think handprints are worse, and should just be thrown out. 21:41:01 cpressey, let IANA give out the numbers 21:41:01 What do you mean by "portable", exactly? 21:41:11 maybe have a handprint-revealing-fingerprint, at best. 21:41:12 $ ./cfunge ../mycology/mycology.b98 | grep ^UNDEF | wc -l 21:41:12 140 21:41:13 $ ./cfunge -F ../mycology/mycology.b98 | grep ^UNDEF | wc -l 21:41:13 8 21:41:16 Deewiant, ^ 21:41:26 -F is "disable all fingerprints" 21:41:26 Handprints are fairly useless, yes 21:41:43 Deewiant: Well, you can't really package them, into say a .so 21:42:06 Why not? 21:42:14 cpressey, fingerprints could in theory be loaded dynamically I guess but the speed penalties would be horrible 21:42:23 i recall k was just an utter pain in the arse 21:42:28 cpressey, I would refuse to do it for cfunge since cfunge is all about uttermost speed 21:42:31 Just the fact that there are different interpreters? 21:42:41 Deewiant: Well you CAN, but then, any implementation that doesn't easily support .so's, doesn't easily support fingerprint-packages. 21:43:10 I suppose you could do all kinds of messing about with SWIG and such, for say a Python implementation. 21:43:33 Yes, there's no way of implementing a fingerprint once and have it work for all implementations 21:43:34 But, yes, I agree this can easily be outside the bounds of the language spec. 21:43:40 cpressey, I run mycology in around 0.040 seconds (wall clock) 21:43:44 But I don't think that's necessary a problem 21:43:51 There could be a seperate module spec for modules that implement fingerprints, or something. 21:43:52 (measured with time builtin in bash) 21:43:59 Or multiple of those. 21:44:04 Deewiant: Well you CAN, but then, any implementation that doesn't easily support .so's, doesn't easily support fingerprint-packages. 21:44:06 Since fingerprints are sometimes so feral that it's not reasonable to do it anyway 21:44:13 cpressey, how do you hook into the interpreter? 21:44:22 cpressey, after all they have very different internal representations 21:44:33 AnMaster: Like I said, module spec. 21:45:00 That'd probably tie implementations to some design choices that the current spec doesn't 21:45:01 Which is None Of My Business As Language Definer (or something like that.) 21:45:15 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 Deewiant: Only if they choose to follow it, which they wouldn't have to, to adhere to the language. 21:45:26 cpressey, for efunge it is a erlang list with top of stack at the start of the list 21:45:36 cpressey, no way those are even close to compatible internally 21:46:01 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 AnMaster: In principle, you could write an adapter to whatever interface the module system uses. 21:46:14 In principle. 21:46:21 yeah in your dreams 21:46:24 There's no way I'd want to force that on any implementer. 21:46:38 cpressey, what about that mini-funge thing 21:46:42 with fingerprints in befunge itself 21:46:50 Well, now you see why I answered Why not? the way I did :) 21:46:51 of course works reasonably well for very tame fingerprints 21:47:16 AnMaster: I don't know what it is, but I have a secret project that sounds like it, but even better :) 21:47:29 and/or don't remember, if I did know once. 21:47:32 cpressey, just try implementing TRDS in minifunge 21:47:48 cpressey, here is the TRDS spec: http://rcfunge98.com/rcsfingers.html#TRDS 21:48:23 cpressey, and here is an addenum: http://rcfunge98.com/trds.html 21:48:25 -!- sshc has quit (*.net *.split). 21:48:32 AnMaster: ....far out. 21:48:40 gm|lap, ? 21:48:50 that's just... like... wrong 21:48:59 gm|lap, what? TRDS? 21:49:00 The easiest way of implementing TRDS in minifunge is implementing a Funge-98 interpreter in minifunge 21:49:04 I didn't write it 21:49:09 yeah 21:49:18 Deewiant, exactly 21:49:33 Deewiant, and ATHR you can't even do in minifunge 21:49:41 The secret project, FWIW, is to combine Mascarpone and Befunge -- define Befunge with a reflective meta-circular interpreter. 21:49:45 because SOCK needs to be non-blocking w.r.t. other threads 21:49:47 same for other IO 21:50:23 -!- sshc has joined. 21:50:24 AnMaster: Sure you can: write minifunge which writes a Funge-98 interpreter in to a file and then executes that 21:50:25 a pitty scarf isn't here 21:50:34 otherwise we could have suggested FTHR to him 21:50:38 cpressey: That sounds quite scary 21:50:39 (Feather for Befunge :D) 21:50:39 And actually the secret project was to be called "Beefgun" (an anagram of Befunge), not FWIW. 21:51:02 Deewiant, but = is implementation defined! 21:51:10 What is Feather, exactly? 21:51:19 AnMaster: So's minifunge :-P 21:51:19 I only heard scarf mention it once. 21:51:34 cpressey, a language where you can rewrite the interpreter retroactively kind of 21:51:38 I can't really explain it 21:51:50 "Retroactively" is scary, yeah. 21:52:10 Deewiant, good point 21:52:31 AnMaster: Not on the wiki. 21:52:45 Phantom_Hoover, what isn't? 21:52:49 feather? 21:52:51 well that is known 21:52:55 since the spec isn't finished 21:53:05 ais/scarf is still working on working it out iirc 21:53:30 -!- sshc_ has joined. 21:53:59 cpressey, anyway I think ais/scarf is up to the task 21:54:01 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 cpressey, after all he maintains C-intercal 21:54:12 I wish him luck. 21:54:29 cpressey, and he wrote/is writing gcc-bf (bf backend for gcc) 21:54:40 I don't think Befunge-111 should add anything much to the language. 21:54:42 which is done to a large part but quite untested and buggy still 21:55:09 The reason I wouldn't want it to just be an addendum is because it needs such an overhaul. 21:55:10 cpressey, bignum is quite simple. You need a special value (such as -1) for cell size 21:55:36 cpressey: If you're up to it, going through the Cat's Eye fingerprints would be nice too ;-) 21:55:58 cpressey, and the rest that needs to be cleaned up for bignum is in fingerprints 21:56:09 the core language works just fine once you deal with y 21:56:20 s/ deal/'ve dealt/ 21:56:35 is befunge-109 out or not? 21:56:44 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 There's the partial spec 21:56:57 But no, it's not "out" as such 21:57:03 cpressey, indeed 21:57:10 not out indeed 21:57:17 Deewiant: I don't think I'm up for it, at least not as such. 21:57:38 Maybe TURT, since it seems popular (??!?) 21:58:02 cpressey, s/popular/discussed since it is ambig and I have been implementing it again recently 21:58:04 Not really popular, just hard to test automatically which is why it's always buggy ;-) 21:58:16 and what Deewiant said 21:58:22 Yeah, OK. 21:58:39 Sigh. 21:58:58 TOYS is quite nice but you need to reverse engineer large parts of it 21:59:00 Of course, it's hard to say what exactly is "popular" when we're starting out with Befunge-98 21:59:01 at least I had to 21:59:07 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 AnMaster: Not really. 21:59:55 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 yeah stuff like that 22:00:32 Other than that, I don't think there's even any UNDEF stuff in TOYS, unless I misremember. 22:00:40 Deewiant, butterfly 22:00:53 Well yeah, but that's so-so 22:01:10 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 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 otherwise offsets to y would need to be adjusted everywhere 22:02:01 which would be a pain 22:02:20 AnMaster: So you think Befunge-111 should be 100% compatible with Befunge-98? 22:02:44 I agree that anything less could mean major rewrites for existing programs. 22:02:58 cpressey, no, but something like "most programs should work just fine" 22:03:02 Then again, those programs can still be run under -98 implementations. 22:03:13 like 93 does in 98 possibly with some non-SGML space emulation 22:03:23 a few programs depend on stuff like f reflecting 22:03:32 but we won't run into that, all instructions are in use after all 22:03:34 -111 could really be a clarified / decrapped -98 22:03:50 gm|lap, you forgot "bug fixed" 22:03:58 since t in 98 as written in the spec doesn't work 22:04:12 hmm 22:04:13 I'm going to have to read this "spec" of which you speak, someday. 22:04:16 the new ip will there execute t on the first turn 22:04:25 cpressey, ;P 22:04:38 Yes, only writing something doesn't give a really good picture of it 22:04:43 You need to read it as well 22:04:44 true 22:04:47 I'm happy with breaking programs that rely on some of the fuxxier corners. 22:05:02 As long as I don't have to rewrite all of Mycology 22:05:08 TheSquare does concurrency by bouncing an IP backwards; however, i think you'd be best to go left/right 22:05:09 cpressey, yes, but y offsets is not one of those for stuff like "elements on TOSS" 22:05:19 which iirc is offset 21 or 23 22:05:22 as a bounce back would imply that it's not supported 22:05:23 don't remember exactly 22:05:31 (for *be*funge that is) 22:05:42 (I don't deal with other dimensionality normally) 22:05:50 Um, so 22:06:12 hmm, actually... 22:06:12 yeah 22:06:14 gm|lap, ? 22:06:18 hm 22:06:23 i think it should bounce back 22:06:29 it should indeed bounce 22:06:31 and send something forward 22:06:34 since 1) you check it with t 22:06:36 err 22:06:37 with y 22:06:41 Unicode? 22:06:46 2) you can see if anything else came the other way 22:06:57 cpressey, would be a pain for cfunge. fine for efunge 22:07:11 The way I read the spec, Unicode is currently optional 22:07:15 my main reason was that if one had Unefunge / Trefunge, it'd just be plain confusing 22:07:16 cpressey, since cfunge takes every shortcut available for speed. Including mmap()ing to load files 22:07:18 You're allowed to have it or not 22:07:24 and what Deewiant said 22:07:33 CCBI2 will have it as an option 22:07:44 At least, if it's finished before Funge-111 22:07:54 I'm thinking more along the lines of 'stop using the word ASCII so damned much'. 22:07:55 efunge currently does byte io for files and unicode code point IO for stdio 22:08:13 this could be trivially changed (5-10 minutes of work at most) 22:08:18 kleinefunge could be interesting =D 22:08:28 cpressey: I don't think there are any egregious uses of ASCII 22:09:17 cpressey, anyway, what about EBCDIC? :( 22:09:22 "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 Also, stack stack? 22:10:00 I considered making 2^666 in efunge print "BIGNUM!" 22:10:04 at one point 22:10:12 What about the stack stack? It's actually useful 22:10:21 yes stack stack is nice 22:10:27 and Deewiant would hate if it went away 22:10:35 I would miss it but not as badly 22:10:50 -1 would be an amusing thing to have 22:10:52 Would I miss it more? 22:10:57 gm|lap, -1 what? 22:11:01 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 as an instruction index 22:11:05 Deewiant, yeah I think so 22:11:13 OK 22:11:27 cpressey: That's an implementation detail 22:11:27 cpressey, not quite, there is the storage offset. Also you can't optimise the way you suggested as well 22:11:39 Deewiant: True. 22:11:45 cpressey, after all, I do memcpy between stacks when I can avoid reversing order 22:11:48 I don't recall storage offset, will look. 22:11:50 :) 22:11:58 wow you are rusty :) 22:12:02 The storage offset isn't really related to stack stacks in any way 22:12:03 (no offence meant) 22:12:13 It's just coincidentally modified by the same commands that modify the stack stack 22:12:17 true 22:12:29 Deewiant, idea: storage delta offset 22:12:35 Yeah, i've only been busy designing like two dozen other !@#$%^&*ing languages since 1998 22:12:39 AnMaster: Y'wot? 22:12:55 damn i used to have the catseye rss feed 22:12:56 Deewiant, that way you can not just move it, you can mirror it and what not 22:12:57 cpressey: Yeah, your time would've been better spent memorizing the Funge-98 spec as you wrote it 22:13:08 Deewiant: Damn straight. 22:13:20 Deewiant, exactly ;P 22:13:25 AnMaster: How can you "mirror" the value put by p? 22:14:07 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 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 so 0,2 with a storage delta of -1,-1 gives you the position -2 relative that offset 22:14:54 Deewiant, see what I mean? 22:15:04 AnMaster: What's the point? Why not just modify the offset directly? 22:15:07 if only I could make a nice animation showing what I meant 22:15:11 Deewiant, no but it is mirrored 22:15:16 burro was interesting IIRC 22:15:22 so higher value is in the other direction 22:15:40 AnMaster: So add the negation of the value to the offset 22:15:45 Deewiant, imagine you rotate befunge along the X axis 180 degrees 22:15:49 also this seems kinda interesting: http://www3.sympatico.ca/mt0000/bicom/bicom.html 22:16:02 Deewiant, multiply the value with the storage delta rather 22:16:19 then do it relative storage offset 22:16:23 Deewiant, see what I mean now? 22:16:34 AnMaster: So it modifies the value, not the position, now? 22:16:48 Deewiant, yes, it is an additional value to storage offset 22:16:51 both would co-exist 22:16:57 gm|lap: Burro is broken, but I have a fix for it... slowly underway. 22:17:22 hmmkay 22:17:24 AnMaster: So it's just a multiplier that is applied to p/g values? 22:18:25 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 wrt bicom: wow crap, a c++ program that actually compiles properly! 22:18:36 some inputs must grow instead of shrink 22:18:39 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 Deewiant, hm yes 22:18:58 AnMaster: same deal happens with most compressions 22:19:01 actually 22:19:03 all compressions 22:19:04 Deewiant, should be more like able to skew stuff. Maybe we should have a translation matrix instead 22:19:10 or rotation matrix or something 22:19:12 except for cat compression, where the input is the same as the output 22:19:14 for really fancy stuff 22:19:42 cpressey, I considered tagged tupes in funge-space/on stack at one point 22:19:44 i think the idea would be to split it into blocks and make sure that they remap correctly 22:19:56 cpressey, for implementing FPSP/FPDP (floating point support) 22:20:12 wait... it's not really that bijective :/ 22:20:15 cpressey, but erlang has sucky floating point semantics for NaN/inf so I decided not to 22:20:27 -rwxr-xr-x 1 ben ben 83742 2010-02-24 11:18 bc 22:20:27 -rw-r--r-- 1 ben ben 33528 2010-02-24 11:20 bc.bc 22:20:27 -rw-r--r-- 1 ben ben 33941 2010-02-24 11:20 bc.bc.bc 22:20:27 -rw-r--r-- 1 ben ben 34369 2010-02-24 11:20 bc.bc.bc.bc 22:20:41 gm|lap, what? 22:20:41 ohthatispoopy. 22:20:52 USAGE: bc [-d] [-p passwd] 22:20:52 oh I guess there is bc/unbc 22:20:52 -d: decompress (default is compress) 22:21:00 right 22:21:06 gm|lap, so not same function both ways 22:21:09 i think it might also use LZ 22:21:39 it uses arithmetic coding AFAIK 22:22:13 i might try a truly bijective audio compression scheme 22:22:47 just treat everything as an elias gamma code or something like that 22:22:57 and then remap where appropriate or something 22:23:03 ...that's not going to work, is it? :/ 22:23:20 plan B: pair some chars together in a special way 22:23:36 it'd be like a samplewise huffman 22:23:46 mhm 22:23:57 probably catch a delta of it or something 22:24:18 cpressey, anyway vectors being atomic would be annoying for cfunge that depends on the plain integer nature of funge space 22:24:33 cpressey, in the inline SSE asm for example (there are C fallbacks, but still) 22:25:30 AnMaster: Yeah, it would be a different language. 22:25:44 and are you scared of cfunge yet? 22:25:48 ;P 22:25:53 Well, not really... 22:26:27 I am starting to have some ideas for befunge-111, which is scaring me. 22:27:00 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 the list can go on 22:27:11 with various stack-stack optimisations 22:27:21 oh and y that is a lookup table for low fixed-offset values 22:27:24 Whatever gets you through the night :) 22:27:32 cpressey, "whatever makes me fastest" in cfunge 22:27:37 y is executed so rarely... 22:27:43 cpressey, not in mycology 22:27:50 Well, true 22:27:51 which is one of the things I speed test against 22:28:20 cpressey, oh and there is an option to use fully buffered stdout of course 22:28:59 Mycology really isn't worth speed-testing against, it's too quick to run through :-P 22:29:10 Deewiant, not for that befunge in perl 22:29:14 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 cpressey, only JIT-funge beats cfunge 22:29:26 and jitfunge is basically dead 22:29:32 unless fizzie starts working on it again 22:29:33 AnMaster: Just because there exists a slow implementation doesn't mean the test case isn't fast 22:29:58 cpressey, mike Riley might 22:30:01 bbl urg 22:30:07 "urg"? 22:30:23 Too much cfungeing for one night? 22:30:36 Either something "urg"ent came up, or... 22:30:38 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 Ah, urg-ent indeed 22:31:18 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 Also have an urge to deprecate =. 22:32:13 Or make it useful by being C system() or something always 22:33:55 = and t sound like they should go into fingerprints. 22:34:44 And the file I/O stuff too, I reckon 22:35:00 Sure, I could go for that. 22:35:40 -!- tombom_ has quit (Quit: Leaving). 22:36:04 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 Basically, all the stuff for which y needs to be asked to know whether it's implemented 22:36:44 cpressey: That's opening the door to all kinds of abuse ;-) 22:37:05 Deewiant: More abuse than now? 22:37:13 I'd say so, yes 22:37:31 Say, could you redefine space (" ") in a fingerprint? 22:37:32 Well, maybe, and I didn't say I wasn't against it... 22:37:48 OK, " " and ";" are special. 22:38:06 They aren't instructions, therefore can't be redefined. 22:38:18 Well, maybe ";" can. 22:38:18 Agreed 22:38:22 No, not ";" :-P 22:38:40 :) 22:38:43 They're both markers and work completely differently 22:38:58 For example! 1k;;;;1 will execute the 1 22:39:13 Oh god, combining k and ; 22:39:23 Yeah. 22:39:24 Same for 1k 1, of course 22:39:51 But anyway, messing with those is a bad idea 22:40:20 Yeah, I agree. 22:41:13 Still, I don't like the idea of being able to redefine such basic things as #, $, 0-9, etc 22:41:40 Well, I like it in one sense, but I agree that it's probably too large a departure. 22:42:07 Still, I'd like to see t, i, o, = et al move to a fingerprint. 22:42:10 I can see the appeal, 22:42:26 but I don't think there's much of a use case except for malware :-P 22:42:34 (Malfunge?) 22:43:02 It feeds the "nightmare to compile" goal somewhat. 22:43:40 As does mapping the stack to funge-space. But neither has ever had a lot of support. 22:44:04 So maybe they're just not "Befunge-y". And that should trump the other goal. 22:44:05 Eh? You mean the stack overlays a location in funge-space? 22:44:25 Yes, that was one proposal. Pushing something onto the stack actually p's it somewhere. 22:44:40 That, too, could be a fingerprint, though. 22:44:49 Stick it in MODE :-P 22:45:04 I mean, with extremely feral fingerprints, the sky's the limit anyway 22:45:21 Yep 22:45:50 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 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 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 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 Optimizations it does inhibit, true 22:50:18 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 (And the machine stack would run into limits pretty fast, I think) 22:51:40 Yeah, the spec doesn't define arithmetic overflow either though. 22:52:12 "In Funge-98, stack and Funge-Space cells alike should be treated as signed integers of the same size." 22:52:20 It doesn't define what should happen, true 22:52:31 But it at least implicitly acknowledges that the size is limited 22:52:49 It assumes it :) 22:53:25 My point is that it allows for it, at least :-P 22:53:41 Whether as the only option or not is a different question ;-) 22:54:03 Yeah. 23:00:20 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 But it still lives in the heap, no? 23:01:35 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 But it's not in the "real" stack; it's just that there's nothing really magical about that stack either. 23:03:42 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 guys 23:04:28 Is it possible to implement liberal 2D flow controll and expression nesting without allowing for paradoxes? 23:10:16 control* 23:11:20 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 well 23:15:28 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 back 23:15:47 Deewiant, urg = urgent 23:15:50 due to nosebleed 23:15:54 like a self modifying language in an infinite loop 23:16:14 -!- MizardX has joined. 23:16:37 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 Or make it useful by being C system() or something always <-- often impossible to implement 23:16:55 that's the problem 23:16:57 cpressey: Chronofunge?! 23:17:07 I think you always have to allow for the possibility of a paradox (infinite loop while looking for a stable state) 23:17:42 Deewiant: Chronofunge was the idea I had to add time-travel to Befunge 23:17:57 Don't know if TRDS was influenced by it 23:18:09 Zybourne time travel or traditional time travel? 23:18:40 I have no idea. 23:18:46 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 AnMaster: JIT compiling doesn't really count. 23:19:48 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 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 past&* 23:20:32 AnMaster: Speed was not the issue 23:20:33 past* 23:20:35 "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 AnMaster: (stack and Funge-Space) cells 23:21:10 AnMaster: Not: stack and (Funge-Space cells) 23:22:00 The latter would require a "the" to be valid anyway 23:22:11 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: (stack and Funge-Space) cells <-- I know 23:22:54 I was just joking 23:23:07 Your joke failed because your parse is not valid 23:23:10 -!- augur has quit (Read error: Connection reset by peer). 23:23:15 Deewiant, meh 23:23:29 Wareya: TRDS is Zybourne, then 23:23:44 -!- augur has joined. 23:24:25 Wareya, with zybourne "[...] the particular initial point of when you initiated traveling back in time once existed in time" is problematic 23:24:31 what does "once existed" mean here 23:24:46 once upon a time 23:24:49 it implies a beore 23:24:50 before* 23:24:55 but along what time axis? 23:24:58 ? 23:25:08 "once existed" is illogical 23:25:15 it's the only expression I could come up with 23:25:28 that's the issue indeed I had with it 23:25:33 k 23:25:44 anyway, night → 23:26:00 It doesn't exist in time, but the cause is something that doesn't exist because of its effect. 23:26:03 Night. 23:26:08 i would suggest a certain book by dr. dan streetmentioner 23:26:44 oerjan: Which willo-onhaven been written, I presume? 23:26:56 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 ok guys, i have a crazy brilliant idea or something 01:25:42 a type of machine code which uses something like LZW compression 01:26:12 so that it's really really compact 01:29:35 How to handle jumps? 01:31:31 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 hi 01:36:25 hi adu 01:36:37 * oerjan vaguely recalls you from before 01:36:40 how goes? 01:36:52 yes, i was here 2 months ago, and 6 months before that 01:37:14 I've been doing naughty things 01:37:21 quiet at the time, lots of befunge discussion earlier today 01:37:28 nice 01:37:37 * adu <3 <3 Funge-98 01:38:22 i honestly don't know why people still make new VMs, Funge-98 is the most universal extensible VM out there 01:38:30 cpressey (the inventor) has recently started coming here again 01:38:35 cool 01:40:40 oh right gm|lap just said something about compressed machine code 01:40:52 so not entirely quiet 01:41:07 i like machine code 01:42:29 have you heard of VSM? 01:43:26 no 01:43:36 http://en.wikipedia.org/wiki/Viable_System_Model 01:44:26 I've been considering making a VM for it, although the name VSM-VM might be confusing... 01:45:39 mhm 02:10:17 -!- songhead95 has joined. 02:10:29 Hello World! 02:10:49 I am not the world! 02:11:46 Oh! 02:12:40 Has anyone seen the language I posted? 02:12:44 WTFZOMFG 02:14:39 ? 02:15:49 -!- songhead95 has quit (Quit: Java user signed off). 02:15:58 -!- songhead95 has joined. 02:16:04 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 Curious. 02:21:47 -!- songhead95 has joined. 02:22:04 hello, my IRC crashed 02:22:15 *irc client 02:22:27 /kill songhead95 goodbye, my client didn't 02:22:45 wait what? 02:23:32 oh I see what you did there 02:24:23 Hmm. Looks to me like an IRC noob. 02:24:31 yes sorry. 02:24:35 Hello there, and welcome to Internet Relay Chat. 02:24:58 ah 02:27:42 ...so yes I am a noob 02:28:34 ようこそう、ね。 02:30:00 私は歓迎するが、感じがわからない日本語 02:30:28 Hah. 02:30:34 so I use google translate 02:30:56 Heheheh. 02:31:06 Yeah, figured. 02:31:30 That's some exceptionally weird grammar there. 02:31:59 mhmm sometimes I translate something in google translate to like 6 languages, then get it back to english 02:32:29 Eventually "What is a man? A dirty pile of lies!" turns into "How many? A pile dirty secret!? 02:35:31 Hmmm... could google translate be turing-complete? Looks like a job for esolangs! 02:36:02 No. 02:36:38 Sorry if I make stupid jokes. I am a noob to chat alltogether 02:36:47 Is okay. 02:36:58 Most of us were noobs at some point. 02:37:11 And stupid jokes are almost a pastime on IRC. 02:37:18 (seriously, have you read bash.org?) 02:38:13 Lol I haven't before but that is really funny! 02:40:06 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 ... 02:40:29 I don't think he realises the way to do that is be in chat. 02:41:01 some people _do_ try to read the manual first 02:41:46 oerjan: There's a manual? 02:41:55 Sure wasn't when I IRC'd. 02:42:21 i assume that would be bash.org. i haven't read it myself. 02:42:39 The IRC RFC :P 02:42:42 * oerjan whistles half-innocently 02:42:56 i almost read that 02:43:13 Gregor: Ah, that. 02:43:26 oerjan: bash.org is a major IRC quote server. 02:44:06 i may have had a slight suspicion of that fact. 02:45:18 There are never any new quotes in the top 100 02:45:19 :( 02:45:35 qdb.us is a modicum better than bash.org 02:46:02 More actively maintained, at least. 02:52:22 Huh. Until now, I thought Ocarina was a made up .. word thingy for some game 02:52:30 Nope. 02:52:35 Genuine musical instrument. 02:52:48 And not invented for the game either, according to wiki 02:52:55 Yup. 02:53:36 octarine is made up, however. 02:54:30 * Sgeo shouldn't have had to Google that 02:54:33 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 "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 http://shii.org/knows/Zybourne_Clock 03:31:53 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 i guess it means that the _logarithm_ is O(c^n) 03:52:35 which is not the same as O(2^(c^n)) 03:52:38 * Sgeo is still confuzzled 03:52:55 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 because 3^(c^n) = 2^(logBase 2 3 * c^n), so just a constant multiplier after you take the logarithm 03:55:14 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 http://asset.soup.io/asset/0453/8747_0991_800.png 04:02:47 bsmntbombdood is on qdb.us! 04:04:18 shocking! 04:04:25 (where?) 04:05:33 http://qdb.us/71165 04:07:46 word of god, that 04:10:14 -!- adu has quit (Quit: adu). 04:15:15 I got spam mail in base 64. 04:19:08 -!- adu has joined. 04:22:49 Sgeo: more than once 04:28:02 Sgeo: Yeah, most IRC denizens are. 04:28:18 * Sgeo looks for himself 04:28:29 *gasp* 04:29:01 I'm in 2 quotes (and a third that wasn't actually me) 04:29:08 All 3 are apparently sucking 04:29:17 http://qdb.us/264456 This one's a better quote, anyways. 04:29:18 The one non-me is the only one that's not negative 04:29:33 http://qdb.us/search?q=Sgeo&order=real_score&sort=desc&limit=25&approved=-1 04:32:21 http://qdb.us/301257 Freaking zzo38. 04:32:43 -!- MizardX has quit (Ping timeout: 276 seconds). 04:33:35 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 heck even i couldn't vote for that mess, and i seem to be the joke maker 04:38:10 I'm on 0 04:38:23 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 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 Instructions: Unconditional turn to cardinal direction, and the same on condition that R0 != 0. 12:14:31 ... Rotate R0 left by 1 place. NAND R0 and R1 and store to R0... 12:14:59 And instructions to store/load R0/R1 from one of cardinally adjacent to IP cells. 12:15:32 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 want to tell OKLOPORK 13:34:42 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 heh, uni friend wrote this interpreter thingie in clue, reading the language is like solving a fucking puzzle :P 14:44:17 (i guess that's sort of obvious) 14:55:10 oklopol, which language? 14:55:21 clue? 14:55:26 as in, self-interpreter? 14:57:22 wait what? That doesn't seems plausible for http://esolangs.org/wiki/Clue 15:01:03 other clue 15:01:03 and no not self-interpreter, just an interp for some random language 15:01:03 (actually the language called random, pun not intended) 15:01:23 heh 15:01:41 :) 15:01:53 oklopol, is either of those on the wiki? 15:02:08 http://esolangs.org/wiki/Random ? 15:02:11 as in, that one? 15:02:23 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 1 or a -1; cool thing is with clue, both work 15:02:34 yeah that's the language he made the interp for 15:02:38 in clue 15:02:40 oklopol, and in which clue? 15:02:46 if it wasn't the one on the wiki 15:02:53 as in, spec for the other clue 15:02:55 clue is not on the wiki yet, but it will be once i find the time to make a small spec. 15:03:07 oklopol, or do you mean the game Clue? 15:03:14 although it seems you can just pick up the language from the ski interp 15:03:28 no, my language clue i've been talking about for like years 15:03:34 oh 15:03:36 :P 15:03:51 oklopol, maybe another name to not collide with the existing language clue? 15:04:08 -!- cpressey has joined. 15:04:12 1. i had the name first 2. why not collide? 15:04:23 3. for my language, the name makes sense 15:04:32 cpressey, btw I think I worked out how to do *W butterfly for bignum in a sensible way 15:06:39 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 well, positive or 0 15:07:34 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 so the operation is pretty useless for those 15:07:42 non-portable 15:08:03 (other cell sizes would cause similar problems of course) 15:10:19 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 oklopol, in what language? 15:10:45 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 AnMaster: okay what the fuck 15:11:04 i have not, do not, and will not, ever, talk about any language other than clue 15:11:30 oklopol, oh? what about oklotalk? 15:11:35 you talked about some time ago 15:11:39 and lots of other languages 15:12:05 or did you mean "today"? 15:12:14 well so's your face 15:12:14 can permute parameters! 15:12:45 oklopol, how do you ensure this property? Named parameters? 15:12:59 well you can't actually call a function in clue 15:13:16 okay that helps 15:13:27 then bf have the same property! 15:13:56 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 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 yep 15:14:54 but i think the property is more interesting when it actually means something 15:17:31 oklopol, then how do you use the functions in question in clue? 15:17:34 if you can 15:17:45 can't* call the functions it *seems* to be a fairly useless property 15:18:47 well you see the paradigm is you give examples of computation, and you give functions the compiler can use 15:18:48 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 and it finds an implementation 15:19:12 so you can not in any way rely on specifics like the order of parameters 15:19:36 oklopol, does it error out if there is more than one possible function matching it? 15:19:59 well there would always be unless you define all possible combinations of parameters 15:20:02 as examples 15:20:07 no, it returns the first one it finds 15:20:14 it's not specified which one 15:20:35 what did you mean by that combination thing 15:20:43 oklopol, so does it interpolate the values between the examples? 15:20:56 what does that mean? 15:21:14 it just brute-forces definitions until it finds one that fits. 15:21:39 or at least it's not required to do anything more intelligent 15:22:10 oklopol, well, like say: sin(0)->0; sin(pi/4)->1/sqrt(2) sin(pi/2)->1 15:22:23 and it takes an average if given pi/6 or such 15:22:28 you can study my ski interp if you want to learn more. 15:22:39 err 15:22:39 no, that would be silly 15:22:45 oklopol, hm, nah you could give an example of what you mean 15:22:52 oklopol, weighted average of course 15:23:25 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 i can show you the append function maybe 15:24:10 oklopol, "a random" <-- insert joke along the lines if he designed that language 15:24:20 oklopol, that should be interesting 15:24:22 append ~ ; car; cdr; cons 15:24:39 means "append uses the functions car, cdr and cons, and its condition function is 'empty'" 15:24:48 then 15:25:09 append ~ {. [], [1, 2, 3] -> [1, 2, 3] . [], [4] -> [4] } 15:25:13 two examples of the base case 15:25:18 (separated by .) 15:25:28 mhm 15:25:42 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 example of recursive case, with :. being the call, : being the subcall 15:26:05 ah 15:26:18 that's it basically 15:26:27 oklopol, are there just those in the code or are there more examples you didn't paste here? 15:26:47 that's the whole append, you can write a shorter one ofc 15:27:03 oklopol, how do you call it or whatever later 15:27:03 as in 15:27:15 example of how it is used 15:27:33 well say you want a function that appends lists together 15:27:42 well you have that there don't you? 15:27:52 then you might have multiappend ~ ; append; ... 15:27:59 hm? 15:28:00 oh sorry 15:28:08 i mean an arbitrary amount of lists 15:28:20 [[1,2],[3,4],[5,6]] -> [1,2,3,4,5,6] 15:28:22 concat 15:28:25 oklopol, I mean example of how you cause two specific lists to be appended 15:28:29 to each other 15:28:36 you can't do that 15:28:44 oklopol, well, what about from user input then? 15:28:47 or something 15:28:55 well you could write a function that appends two lists and returns the result 15:29:07 oh well i haven't decided yet, probably there's a main function that takes user input as a list 15:29:12 oklopol, fine. What would it look like if it was supposed to use that function "append" 15:30:09 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 that is, getting the result [27,22,3,9,-3,4] 15:30:43 oklopol, using your above append function of course :) 15:30:48 that is what I'm wondering about 15:31:12 i think this should work 15:31:12 multiappend ~ {. [] -> [] } 15:31:15 multiappend ~ {:. [[1,2], [3,4]] -> [1,2,3,4] : [[3,4]] -> [3,4] 15:31:15 :. [[],[1],[]] -> [1] : [[1],[]] -> [1]} 15:31:15 multiappend ~ ; append; cons; car; cdr 15:31:53 oklopol, yes, and where do the data I provided go into that? :) 15:31:56 well you'd call the compiled function append, prolly 15:32:13 oklopol, eh? 15:32:18 you can put data into the functions by calling the python functions the compiler returns. 15:32:23 aha 15:32:25 that's really a non-issue. 15:33:24 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 yeah that should work for all lists of lists. 15:33:47 i can test it ofc 15:34:08 oklopol, err the original append function you gave doesn't take a list of list does it? 15:34:13 it takes two lists it seems 15:34:22 now I'm confused 15:34:38 oklopol, also how does the parameter order to it not matter, that I'm interested in too 15:35:55 [[1,2,3],[2,3],[3]] --> [1, 2, 3, 2, 3, 3] 15:35:59 seems to works 15:36:01 *work 15:36:18 had one error, the function that tests if a list is empty is called "empty", not "empty?" 15:36:34 AnMaster: well consider cons 15:36:50 i just give cons as a helper function, "you can use this function in any way, if you find it necessary" 15:36:54 if you swap the args to cons 15:36:55 hm 15:37:04 then the compiler will just use it, but swap the arguments. 15:37:16 oh? 15:37:33 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 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 but sofar no function has bee incorrectly implemented, all errors have been mine 15:38:13 well actually i don't think i've made any errors 15:38:20 oh well sure 15:38:43 but see 15:38:46 if i had append in a program 15:38:50 and i reversed its arguments 15:39:00 then all functions that use append would just be compiled with the new order of arguments 15:39:07 hm okay 15:39:16 otherwise they would be wrong, so the compiler would have to reverse them. 15:39:24 ah hm 15:39:43 oklopol, I guess compiling can take quite a bit? 15:39:53 even for fairly simple functions 15:39:54 0.13 seconds to compile the multiappend thing 15:40:00 9 seconds to compile my ski interpreter 15:40:06 1 second to compile the random interpreter 15:40:09 hm 15:40:18 so yeah, a fuckload of time for even simple tasks 15:40:34 but it's just a crappy python hack 15:40:37 the interp 15:40:42 well, yes considered how long it would take for most compilers 15:40:55 possibly you might beat g++ but that is all ;) 15:41:12 oklopol, is the source code for the interpreter online? 15:41:16 well 15:41:22 interpreter/compiler I guess 15:41:28 maaaybe i could put it up 15:41:59 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 i'll put the ski interp online too, you can just read that 15:45:22 for teh idiomatic clueness 15:45:46 oklopol, well, I suck at ski.. 15:46:03 okay i just more than doubled all compilation times by adding a tiny fix :) 15:46:33 oklopol, always keep falling when skiing downhill. I'm reasonably okay at it on mostly flat ground 15:46:45 now it can call a function with many copies of the same objec 15:46:45 t 15:46:45 flat is nicer 15:46:52 also called cross-country 15:46:56 oklopol, yep 15:47:05 I don't fall all the time there 15:47:31 and I'm scared of heights, which doesn't really help avoiding falling when going downhill 15:48:03 but, many of the helper functions i wrote are pretty basic and not ski-specific 15:48:03 how can you fall? 15:48:04 move your legs man 15:48:26 oklopol, err? I said when going downhill 15:48:29 not when cross country 15:48:41 still 15:49:10 still what? 15:50:03 -!- adam_d has quit (Ping timeout: 245 seconds). 15:51:34 -!- scarf has joined. 15:51:38 hi scarf 15:52:54 -!- kar8nga has joined. 15:58:48 AnMaster: do you open rar? 15:59:31 well anyway www.vjn.fi/oklopol/clue.rar 15:59:46 i'll make a spec and put it on esolang during march, hopefully 16:01:38 i'm assuming there won't be a massive surge of programs making that a de facto standard or anything. 16:02:55 hi everyone 16:03:09 CLUE INTERPRETER NOW ONLINE SOURCE SORT OF OPEN TOO. 16:03:17 link 16:03:27 www.vjn.fi/oklopol/clue.rar 16:03:55 oklopol: ooh 16:04:01 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 random, again, being the language random on esolang 16:05:03 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 wow at that SKI 16:05:50 is there anything significant at all in the identifier names? or are they just compared for equality? 16:06:15 just compared for equality 16:06:39 and are presumably builtins? 16:06:44 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 yep 16:06:55 stuff.py contains a list of builtins 16:06:56 and cons/car/cdr are library functions? 16:07:10 there are just builtins 16:07:15 ah, ok 16:07:16 those are builtins too 16:07:20 why do some have angle brackets, and others not? 16:07:30 what doesn't have angle brackets? 16:07:36 cons, car, cdr 16:07:38 ahh 16:07:40 whereas and do 16:07:41 well see 16:07:49 every function needs a "cond", which is 16:07:54 you can just have multiple helper lists 16:08:11 oh, angle brackets mean that that function's a good one to try as a condition 16:08:31 We need to invent branfuck 16:08:32 yep, and in fact it is what *will be* used as a condition 16:08:32 http://www.reddit.com/r/programming/comments/b5v3v/yo_just_print_like_hello_world_bro/c0l4545 16:08:39 that's something you could actually drop from the language 16:08:39 now I have to figure out how more-than-3 works 16:08:45 well "more than 3" 16:08:48 the guy who made the random interp just used there 16:08:52 for all functions 16:09:33 hmm, #0 and #1 refer to particular sorts of recursion? 16:09:40 nope, they are constants :) 16:09:47 heh, just like in INTERCAL 16:10:00 I've never seen something which has so much INTERCAL inspiration in the syntax and yet looks so different 16:10:07 :) 16:10:26 it's pretty different from everything, afaik. 16:10:38 still, if more than 3 is supposed to work on arbitrary integers, I don't have a clue how it works 16:10:46 if it's only meant to work on 0..5, it's obvious 16:10:47 oh well probably just on naturals 16:10:54 hmm, ok 16:11:04 oh well see 16:11:05 more than 3 ~ {. 4 -> 1 16:11:05 . 5 -> 1 } 16:11:11 this means 4 and 5 return 1 16:11:17 but they have to return 1 using the same rule 16:11:21 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 now I get it 16:11:33 that means it will have to make that the "default branch" and make it return the constant 1 16:11:46 because you can only test for one value in each conditional 16:11:54 there can be one default branch 16:11:56 yeah 16:12:26 basically it combines parameters somehow, and puts the result in the function, result is used to differentiate between branches, the {...} things 16:13:06 if only one of them contains multiple values, then that'll be the default branch 16:13:34 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 (if there's one) 16:14:01 hmm, I keep using the wrong mouse button 16:14:18 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 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 why not just ask a 4-dimensional dude to swap your left and right? 16:15:31 i c, i c 16:15:53 btw tell me if you touch clue, i actually like reading programs in it 16:16:05 probably the first language ever with that property ;) 16:17:02 i should probably add comments to the language... 16:17:28 i guess you could say "the following is a comment ~ ..." 16:17:42 no wait that won't work 16:17:43 theory: Google bought Youtube /just/ for leverage in getting rid of IE6 16:17:58 have to go for a bit -> 16:18:02 oklopol: use the comment as an identifier name 16:18:05 and give it a trivial definition 16:18:31 like this is a comment, isn't this program great? ~ { . 0 -> 0 } 16:18:38 but you'd need to repeat it again on the next line 16:18:57 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 AnMaster: That sounds as reasonable as anything, given that butterfly seems inherently a fixed-size operation. 16:26:15 mmm 16:26:57 well anyway www.vjn.fi/oklopol/clue.rar <-- downloaded 16:26:58 well actually the name of an identifier can contain arbitrarily many \n's 16:27:17 whitespaces are just stripped into " "'s 16:27:32 like "\n \t\n\n \n" -> " " 16:27:50 and yeah the repetition thing would be nice 16:28:12 the parser isn't very complete 16:28:58 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 cpressey, what about the one of ick? 16:29:39 it looked pretty okay considering the language it is supposed to parse iirc 16:29:54 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 there is that hack because you need infinite lookahead for some construct in intercal 16:30:04 *i coded 16:30:24 other than that it is just fairly complex lex and yacc iirc 16:30:46 scarf, right? 16:30:51 AnMaster: yep, the lex and yacc are tied into each other, although not quite as much as in gcc 16:31:08 scarf: so did you master the language already? :) 16:31:12 oklopol: not yet 16:31:22 I have work to do, even though I'm on a non-work connection 16:31:29 yarr 16:31:30 scarf, well... doesn't the yacc part depend on what output exactly the lex part produces in all cases? 16:31:42 AnMaster: yes, but also vice versa 16:31:44 -!- KingOfKarlsruhe has joined. 16:31:59 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 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 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 unless you meant in some other way? 16:33:04 AnMaster: I mean, the actual tokens produced depend on the current state of the parser 16:33:15 scarf, non-work connection? Public wlan? Finally have internet at home? 16:33:24 AnMaster: a friend's house 16:33:25 scarf, yeargh 16:33:36 I've been connecting from here for ages, just most people weren't paying attention 16:33:51 scarf, that means it is context dependant in some rather strange way doesn't it? 16:33:55 AnMaster: yes 16:34:00 scarf, you have a cloak though 16:34:02 how could I know? 16:34:10 to be precise, whether a paren-equivalent is opening or closing is context-dependant 16:34:17 and I was doing this from well before I was cloaked 16:34:38 -!- charlls has quit (Ping timeout: 245 seconds). 16:34:41 scarf, the reverse dns with something like bham in one part of it? 16:34:45 I thought that was uni 16:34:48 that one is uni 16:34:58 burning ham 16:34:59 the other one's virgin media 16:35:08 don't remember that one 16:35:24 brb 16:36:01 * scarf goes back to the Phorm website 16:36:12 I'm effectively polling it by hand to see if and when they decide to turn it on for virgin media 16:36:23 it'll be a distaster, but not one that people notice right away 16:36:27 *disaster 16:37:09 i need to add io to clue so i can make an irc bot 16:38:40 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 Hello world! ~ {. 0 -> 0 >> [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33] } 16:40:22 yep, makes sense 16:40:39 would you need to explicitly specify >> [] for other cases if you specify >> anywhere, or would that be assumed? 16:42:13 oh err 16:42:15 assumed 16:42:23 scarf, what is Phorm? 16:42:48 AnMaster: basically, it's a targeted advertising service 16:42:54 the controversial bit is the amazing way it operates 16:43:03 oh injection thingy 16:43:04 right 16:43:05 which basically involves multiple redirects for every single http request you make ever 16:43:26 and MITMing every website on the internet to inject cookies 16:43:32 scarf, that sounds like it shouldn't be legal for various reasons. 16:43:35 (it doesn't trigger on https, if you were wondering) 16:43:43 AnMaster: yep, some people think it isn't 16:43:44 Net neutrality comes to mind amongst other things 16:43:54 they haven't actually dared turn the thing on yet; there's meant to be an opt-out 16:44:11 scarf, so I assume it will be taken to court as soon as it is turned on 16:44:26 oh, someone will probably try 16:44:32 "try"? 16:44:38 okay, more interesting: echo n ~ {:. 5 <<[7] -> _ >>[7] : 4 -> _ } 16:45:00 AnMaster: they might not be able to get the funding 16:45:04 and of course, echo n ~ {. 0 -> _ } 16:45:25 what does the underscore mean again? 16:45:32 oh that's new 16:45:48 i just thought it might be nice to be able to say the return value doesn't matter 16:45:52 once you have IO 16:46:04 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 heh, it's a RealWorld 16:46:14 AnMaster: hmm, you mean a criminal rather than civil case? 16:46:24 scarf, ah right forgot that difference 16:46:24 you'd need to persuade the Crown Prosecution Service to take it 16:46:38 scarf: actually it's just the empty list, except you don't have to put an explicit #[] in the helper list 16:46:46 ah, ok 16:49:03 hmm okay i have sort of a problem 16:49:22 if <<[5,6] is an example, "if you get bytes 5 and 6 as input, ..." 16:49:22 then 16:49:27 how many should it read? 16:50:04 always two bytes, always till eof, always two, unless there are other examples with different lengths, in which case till eof? 16:50:22 (two in the case of an example of length 2) 16:50:38 well in any case maybe IO isn't the first thing i should add 16:50:46 oklopol, is that for stdin? 16:50:53 although i would definitely like to see pong in this. 16:50:58 would be so outta character 16:51:03 AnMaster: IO 16:51:06 err 16:51:08 yeah << is input 16:51:14 -!- adam_d has joined. 16:51:37 oklopol, line buffered is probably sanest for an esolang 16:51:44 and then I guess whole line makes most sense 16:51:47 but... i hate line buffered :-( 16:52:08 oklopol, well then, I can't work out sane semantics for it 16:58:08 gotta go -> 17:01:32 something's up with Yahoo mail, it seems 17:01:50 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 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 Ugh. 17:05:27 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 and the DNS is fine 17:06:00 hmm, working again now 17:06:02 that was suspicious 17:10:54 also, I just typed my root password in another channel by mistake 17:10:59 well, sudo-root 17:12:44 -!- Pthing has quit (Quit: Leaving). 17:13:40 scarf, so change the password now 17:13:46 I am, don't worry 17:14:03 actually, I changed it even before I typed it, somehow 17:14:12 as in, I typed the old password in-channel rather than the new one 17:15:16 heh 17:16:49 just one place left to change it; do you know how to change the master password for the KDE password wallet? 17:17:03 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 a publically-available password? 17:17:20 huh? 17:17:38 AnMaster: in this case, as an anti-spam measure 17:17:44 ah 17:17:52 the password and the place you have to enter it are in two completely separate places 17:18:04 scarf, what is it for? 17:18:14 guarding a file-upload server 17:18:20 ah 17:18:26 public one? 17:18:56 sort-of; public, but very specific purpose 17:19:02 oh? 17:19:11 it's for uploading Enigma levels 17:19:24 ah 17:20:39 hm? 17:20:57 I like that enigma game 17:21:48 miss piggeh 17:22:33 shut up hi augur 17:22:57 :( 17:23:12 whatd i do D: 17:23:23 interesting. SVG defines colours like "mediumspringgreen" 17:23:24 MissPiggy: when the next version comes out, you'll find many levels by me 17:23:31 scarf oh cool! what sort of levels? 17:23:45 (that one is rgb( 0, 250, 154) ) 17:23:45 mostly intelligence levels (as in, traditional puzzle-style) 17:23:48 I guess there's a turing machine in enigma now..... 17:23:51 but there are all sorts 17:23:51 http://www.w3.org/TR/SVG/types.html#ColorKeywords 17:23:55 quite a massive list 17:23:56 and no, I didn't add a turing machine 17:24:00 scarf well that's exciting! when does it come out? 17:24:07 MissPiggy: no release date yet, but they're getting closer 17:24:18 T_T 17:24:22 * augur runs away crying 17:24:26 they're in a string freeze for internationalisation at the moment 17:24:38 and if they're like a typical open source project, that's getting near a release 17:25:01 umm, it's a rather less strict sort of string freeze than typically, though 17:25:03 AnMaster: Darn, I missed that; I just read the bit about having to support the CSS names 17:25:24 Deewiant, well I don't know if it supports those embedded in css in the svg 17:25:30 Deewiant, or just in the svg directly 17:26:23 "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 the color depth of the display." 17:26:24 err 17:26:36 "removes any dependencies on the color depth of the display"? 17:26:36 Presumably in the SVG directly only 17:26:42 what does that mean exactly 17:26:42 -!- kar8nga has quit (Ping timeout: 256 seconds). 17:26:43 and how 17:27:28 I love the term "string freeze" for some reason. Sounds like it should be a kind of candy. 17:27:29 Deewiant, CSS3 seems to have these extra ones 17:27:36 but that is still a draft iirc 17:27:38 http://www.w3.org/TR/css3-color/ 17:27:44 and also it says draft there 17:28:15 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 Sgeo, go do it then 17:29:38 *shrug* 17:30:09 Deewiant, anyway most of those named colours would expand rather than save space 17:30:45 snow #fffafa 17:30:48 err sure... 17:31:10 snow varies widely and is in sunshine definitely extremely white 17:31:14 more white than that 17:31:38 also that was interesting 17:31:44 -!- Sgeo has quit (Quit: Homework time). 17:31:58 the text I actually selected and copied was: "snow #FFFAFA" 17:32:07 somehow it was lower cased when pasting 17:32:14 * AnMaster uses firebug on that thing 17:32:30 table.x11colortable td.c { 17:32:30 text-transform:uppercase; 17:32:30 } 17:32:31 heh 17:32:40 but why 17:32:46 and why wasn't it copied that way 17:37:25 -!- adam_d_ has joined. 17:37:26 Deewiant, ^ 17:37:51 What? 17:37:59 all of it 17:38:29 text-transform is just how to display it, of course it should copy the text itself 17:39:07 so a firefox bug there 17:39:27 -!- kar8nga has joined. 17:39:29 -!- kar8nga has quit (Client Quit). 17:40:14 on the other hand I don't know if the spec says it should not be processed when copied 17:40:24 No, it's not a bug. 17:40:29 It does exactly what I'd expect. 17:40:29 Deewiant, it isn't? 17:40:36 Deewiant, why does it make sense 17:40:36 And what I said it should. 17:40:41 to not copy the text transform 17:40:41 -!- adam_d has quit (Ping timeout: 256 seconds). 17:41:04 Because that's just a style note on how to display it 17:41:09 It's not the text 17:41:09 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 17:41:20 hm 17:46:15 -!- kar8nga has joined. 17:46:18 -!- kar8nga has quit (Client Quit). 17:46:29 Deewiant, you know that mycology's TURT test is broken right? 17:46:36 17:46:36 17:46:36 17:46:54 as in, if it wasn't for svg you couldn't even be sure the circles were there 17:46:58 imagine it rendered to bmp 17:52:30 Hmm, I thought it was white background with two dots 17:52:41 Maybe it's the same bug in CCBI's colour stuff ;-) 17:52:48 Deewiant, well I don't think the error is on my side 17:52:49 But I seem to recall that !Befunge rendered it as such 17:53:03 Deewiant, I don't have !befunge around to test with 17:53:41 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 it does nowdays but still... 17:54:22 Sure it did 17:54:30 Deewiant, back then? No 17:54:34 I recall one bug being that it didn't "clear paper with colour", it just reset the bg colour 17:54:43 Deewiant, reset it to what? 17:54:49 To what was requested 17:54:50 hm 17:54:52 ah 17:54:55 It just didn't overwrite the dots and paths etc 17:55:48 Deewiant, I think efunge currently has the least buggy turtle implementation 17:55:56 at least that I know of 17:57:42 wow I can not read python at all 17:58:02 looking at clue impl. and I am just like HUH?? 17:58:50 MissPiggy, it is somewhat compact python 17:58:55 -!- augur has joined. 17:59:03 o hai 17:59:05 MissPiggy, and uncommonly it uses lambda 17:59:22 for python that isn't quite as common normally as it is in that file 17:59:32 same goes for map 17:59:59 MissPiggy, the key to reading it is realising that indention defines the block 18:00:22 hehe 18:00:29 I know that much python but that's all 18:00:30 MissPiggy, no {} or comma-vs-period or such 18:01:06 MissPiggy, also python's OOP seems used in there 18:01:10 the implementation lacks abstraction in maaaany places, because most of the thing was coded while watching scrubs 18:01:35 oklopol, scrubs? 18:01:45 -!- lament has quit (Ping timeout: 265 seconds). 18:01:46 oklopol is a bit scary 18:01:58 in terms of writing code that does miracles while not even looking 18:02:17 -!- lament has joined. 18:02:51 miss piggehhh 18:05:27 -!- kar8nga has joined. 18:05:30 -!- kar8nga has quit (Client Quit). 18:22:28 Deewiant, there? Would you consider it allowed for FPDP/FPSP instructions to reflect on NaN and +/-inf? 18:22:46 after all the spec doesn't define it to use IEEE semantics iirc 18:23:29 IIRC the spec says something like "A (a b -- n) add fp numbers" 18:23:44 Deewiant, yes but that doesn't define it to be IEEE floating point 18:23:52 Yes that was exactly my point 18:24:07 Like all of Mike's, there is practically no spec 18:24:10 Deewiant, also does FPDP require two cells per value? I don't remember 18:24:37 I'm not sure how Mycology will react to reflection on those though 18:26:01 Deewiant, and FPDP spec doesn't say it has to be two cells 18:26:57 Of course not, that's just an implementation detail for 32-bit funges 18:27:10 (Who assume "double precision" = "64-bit") 18:28:08 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 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 D'oh 18:35:07 It's a silly name; "double what?" (Double the size of single, of course, but *still*...) 18:35:39 "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 They'll give you a burger with 64 discrete bits of bacon. 18:36:24 Of which one is the sign bacon. 18:39:02 !c printf("\u0082"); 18:39:14 Does not compile. 18:39:23 !c printf("\u00c0"); 18:39:26 À 18:39:30 !c printf("\u00c8"); 18:39:31 È 18:39:37 !c printf("\u00a8"); 18:39:38 ¨ 18:39:47 fizzie: IEEE 754-2008 calls it binary64, which is a bit less silly. 18:41:20 Deewiant: Yes, but on the other hand a "binary64 bacon cheeseburger" is more silly. 18:42:03 incidentally, why does unicodesnowmanforyou.com use javascript? 18:42:06 it seems to work just as well without 18:42:40 I think the scripts there are just google-analytics code. 18:48:01 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 I doubt mycology would like that 18:48:38 AnMaster: why? 18:48:55 scarf, because it would be a DS9K implementation 18:48:57 doh 18:50:03 scarf, or did you mean "why wouldn't mycology like that"? 18:50:20 well, it would not have inf or NaN but would reflect on those to begin with 18:50:42 heck technically the spec would allow me to change to any delta for those 18:52:17 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 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 I could do something like the "union with integer" trick, sure 18:53:47 but I don't think I should 18:54:02 it encourages bad programming practise in programs using FPSP/FPDP 18:54:04 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 "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 like hard coding constants 18:54:12 ;_; 18:54:14 which is unreliable 18:54:20 and depend on endianness and various stuff 18:54:26 augur 18:54:46 fizzie, :D 18:55:51 fizzie: I write all my scanning software in matlab. 18:58:00 I can't imagine an object balancing a little as possible in four dimensions 18:58:13 like in 2d you have something halfway off a cliff 18:58:36 and in 3d you have something 1/2 off a corner in both directions 18:58:43 so it's on by only 1/4 18:59:04 imagine things balancing on a point 18:59:07 in 4d you have something 1/6 or 1/8 off an object 18:59:11 a line, a plane, a cube.... 18:59:20 yes 18:59:22 I've done that 18:59:39 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 I made this earlier for someone else: http://img693.imageshack.us/img693/5504/lkjsdkf.png 18:59:45 -!- Pthing has joined. 18:59:48 cpressey, it is 19:00:00 -!- adam_d_ has quit (Ping timeout: 265 seconds). 19:00:06 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 gregor: I'm dealing with solid objects 19:00:43 Oh great, now tables with holes in them are gaseous. 19:00:56 I meant convex 19:00:57 :P 19:01:00 I should probably break from lunch before these unit tests drive me crazy. 19:01:03 But yeah, that puck would not stay on the table, 1/4 supported. 19:01:05 or for lunch, even 19:01:16 gregor: it would approach 1/4 19:01:27 Ahhh, 1/4 is the tipping point you're saying. 19:01:31 yes 19:01:39 or right behind it 19:02:25 but I can't imaging that king of interaction on 4D 19:02:28 imagine* 19:02:33 kind* 19:02:41 in* 19:02:53 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 great 19:03:53 I'm not sure if the approachable value in 4D is 1/6 or 1/8 19:05:04 I think 1/8 19:05:25 I would think so too 19:05:33 but then the interaction is happening on a 3D surface 19:07:30 it could either be 1/2^surfacedimensions or 1/(dimension-1)^dimension 19:07:36 er 19:07:50 *dimension 19:08:01 but I assume without testing that those are the same? 19:19:58 I think 1/8 too (1/2^d, where d is number of dimensions in contact surface). 19:21:02 Ah, I meant 1/d*2 - d being the contact surface's scope 19:21:54 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 what are you talking about? 19:51:35 tipping point? 19:52:26 yes 19:52:43 oh picture was relevant 19:52:58 -!- BeholdMyGlory has joined. 19:53:45 so what does "approaches 1/4" mean 19:54:13 you can approach 1/4 before I woudln't know what happens between falling and staying on 19:54:18 wouldn't* 19:54:27 approach 1/4 in what sense? 19:54:34 what approaches 1/4? 19:54:34 contact 19:54:44 the contact area 19:54:45 surface area of the object? 19:54:51 that's in contact with the table 19:54:57 yes 19:55:09 the surface in contact must be 2D 19:55:18 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 yes 19:55:43 we're assuming an object like a perfectly balanced disk 19:55:44 the surface in contact must be 2d? 19:55:46 what... 19:55:50 right, uniform density 19:56:00 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 that way, the centre of gravity is over the table even though most of the object isn't 19:56:42 and we assume the table is what shape? 19:56:42 scarf: That object is not uniform density, then, I think 19:56:45 why have a hold in the middle latger than the table? 19:56:50 cpressey: it is, but not convex 19:56:51 hole* 19:57:00 Wareya: ooh, good point, that isn't needed 19:57:07 you could just have a disc larger than the table 19:57:18 so I suspect that the missing assumption is that the table is infinitely large 19:57:26 Um, yes. 19:57:35 I'm assuming that the table is larger than the object, actually 19:57:36 Or at least that the object fits entirely on the table 19:57:39 I love that sort of assumption 19:57:46 yes 19:58:03 I'm thinking of a very specific kind of case; like the plate I have on the corner right here 19:58:21 is the edge of the table a (d-2)-dimensional line? 19:58:46 it doesn't matter as long as the table is flat and its coners are square 19:58:50 because then obviously 1/2 of the object must be supported 19:59:04 and I'm on the corner, not the edge 19:59:30 ohh. 19:59:33 now i get the picture 19:59:51 well let's see 20:00:00 scarf: I'm also assuming a 90 degree corner. 20:00:19 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 okay it's obviously 1/8 in four dimensions 20:00:22 It could be worked out 20:01:22 the surface is a ball one eight of which must be inside the cube 20:01:32 eighththth 20:01:48 it's 1/8 or 1/6 20:02:01 can't really visualize 5 dimensions, but it clearly grows exponentially 20:02:02 1/8 20:02:03 OK, if it's a disc, and a 60 deg corner, then 1/6. I was still thinking "book" though. 20:02:10 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 so 20:02:14 I'm thinking of the 4D case, though 20:02:19 that means almost none of it is supported 20:02:24 and yet it is balanced 20:02:30 Wareya, right? 20:02:31 it's not none 20:02:31 in four dimensions, 1/8 20:02:33 it's a singularity 20:02:46 or... 20:02:49 yeah, actually 20:02:54 I'd call the 1/4 a singularity 20:03:14 or, infinitely before 1/4 20:03:23 I can't tell...? 20:03:29 Limit, maybe 20:03:40 you do realize this is just whether the center is on the surface? 20:03:52 oklopol: Yes, well I mentioned that anyway 20:04:08 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 Wareya, am I not right about the balance in middle thing? 20:04:32 AnMaster: the other assumption: table is larger than object 20:04:58 rather, objects fits entirely on table 20:05:07 ah 20:05:22 http://img693.imageshack.us/img693/5504/lkjsdkf.png 20:05:30 cpressey, what if the object is heavier on one side 20:05:35 then it could stick out more 20:05:36 uniform density 20:05:40 oh that too 20:05:46 wasn't clearly stated at the beginning! 20:05:50 yeah cpressey, what if we make the problem even more boring 20:05:53 oh well* :D 20:05:59 ? 20:06:01 It's in your scrollback and/or the log, just not at the beginning 20:06:08 Wareya, also what if we don't have a equal height object 20:06:09 say 20:06:11 a cone 20:06:19 (that was to generalize what AnMaster said) 20:06:22 oklopol: the more interesting the problem, the more boring the result :) 20:06:23 it needs to have infinite rotational symmetry 20:06:23 then couldn't it stick out more than half 20:06:27 and it must be concave 20:06:27 a flat cone of course 20:06:32 er 20:06:33 convex 20:06:35 Wareya, and a flat top? 20:06:44 whatever :D 20:06:47 cpressey: i prefer "the more complicated the problem, ..." 20:06:49 -!- lament has quit (Ping timeout: 264 seconds). 20:07:02 Wareya, does it need a flat top or not? 20:07:06 and a flat bottom 20:07:10 oklopl, I take issues and I simplify parts of them to try to disprove things 20:07:17 it needs a 2D bottom 20:07:25 -!- lament has joined. 20:07:25 polgonal bottom 20:07:27 lsdkjasd 20:07:31 polygonal bottom 20:07:46 Wareya, so not a perfect circle? 20:07:52 as in, that picture 20:08:03 even if you need to ignore the "infinite number or sides" idea or a polygon 20:08:08 ah 20:08:16 and it doesn't need infinite rotational symmetry, it needs 90 degree rotational symmetry 20:08:27 Wareya, well this is boring. Too specific problem 20:08:37 okay 20:08:47 which agrees with oklopol's correction of cpressey's suggestion 20:08:54 Wareya, I don't know the 4D thing either 20:09:00 k 20:09:08 Wareya, but do a drawing in 5D for me :) 20:09:27 http://img651.imageshack.us/img651/3928/sagitor.png 20:09:47 what is that? 20:09:53 4d is pretty easy to visualize, because you just need to look at a 3d-segment 20:10:01 i mean the 4d case is 20:10:12 oklopol, yeah I have seen a 4D screensaver. Confusing! 20:10:14 then the collision is 3D 20:10:20 which I can't stand :( 20:10:28 stand -> deal with 20:11:19 Wareya, hm. isn't it basically that one specific point needs to be supported 20:11:30 not sure what the name of it is 20:11:34 the object must be smaller than the static one 20:11:40 AnMaster: "center of gravity" 20:11:44 cpressey, right 20:11:50 could only remember the Swedish word 20:11:52 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 and the static one should be analogous to a rectangle 20:12:11 oklopol, was some hypercube turning iirc 20:12:16 oklopl: I can deal with 4D, but not collision inside of it. 20:12:23 but you can also "visualize" 4d using color and density etc 20:12:30 yes 20:12:34 AnMaster: how's that confusing 20:12:40 Wareya, anyway yes I think it basically needs center of gravity to be supported 20:12:49 oklopol, not everyone finds 4D easy to think in! 20:12:54 that's not what I'm wondering, though. 20:12:54 oklopol, not everyone is like you 20:12:56 okay? 20:13:06 Wareya, well then what exactly are you asking? 20:13:22 I described it enough 20:13:23 -!- gm|lap has joined. 20:13:25 well i mean it's just a 2d projection of the movement 20:13:32 Wareya, how much of the thing needs to be supported 20:13:45 Wareya, well "whatever is enough to cover the center of gravity" is my answer 20:14:00 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 cpressey, yes quite 20:14:14 It mean, it's the geometric center. 20:14:58 now the question is, do we need a vector space, or could we also do it for measurable metric spaces? 20:15:23 Mmmmmmmmmaybe. 20:16:01 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 Since we apparently don't find 4D difficult to visualize :) 20:16:13 difficult *enough*, I mean 20:16:53 yeah 4d is for kids 20:17:35 oklopol, so do it in 93d 20:17:42 do what? 20:17:54 oklopol, anything at all 20:18:02 Wareya, btw what do you need this for? 20:18:54 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 that's at least some sort of center 20:19:26 it was just an idea 20:19:36 I was wondering what the fraction would be for the fourth dimension 20:19:40 whether it were 1/6 or 1/8 20:20:11 in the specific case of a shape with a convex, 2d base and 90 degree rotational symmetry along its vertical access 20:20:16 Wareya, now figure it out for 1d (I'm not even sure what it would mean there) 20:20:24 1d is 1 20:20:51 you can't have an object rotate in 1 dimension 20:20:59 indeed 20:21:15 1/1, 1/2, 1/4, 1/8 20:21:22 so it would make sense that it's 1/8 20:21:43 the sequence is 1/2^n as mentioned 20:23:26 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 so we have d-1 axes, and we take half of each 20:23:50 => 1/2^(d-1) 20:24:22 it would be easier to use the analog of a cyninder to the dimension 20:24:29 what? 20:24:32 than the analog of a sphere 20:24:34 oklopol, unit ball as in unit circle? 20:24:38 http://img693.imageshack.us/img693/5504/lkjsdkf.png 20:24:42 shouldn't that be unit sphere? 20:24:44 the disc is uniform, so we just need to consider the surface touching the table 20:24:47 or maybe not 20:24:49 which is a ball 20:24:58 if you use a sphere, the surface would be a singularity 20:25:01 and... you know 20:25:32 Wareya: it's a balance tipping point, you're dealing with a limit anyway. 20:25:43 yes 20:25:49 and if you deal with a limit and a singularity ,then what? 20:25:57 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 etc 20:26:14 that works 20:26:34 "singularity" is just another way to say "limit", isn't it? 20:26:39 no 20:26:49 a singularity uses a limit to describe itself 20:26:57 Where is the "singularity" in this sphere, then? 20:27:05 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 the contact area of a 3D sphere against a 3D rectangular prism can only be a singularity 20:27:26 so in 3d, you'd have a disc, in 2d, you'd have an etc 20:27:26 unless they intersect 20:27:40 oklopol, okay 20:27:45 so, what the fuck is a singularity? 20:27:51 size n 20:27:55 lim(n->0) 20:28:17 Wareya: so the contact area is lim(n->0), which sounds like a limit to me 20:28:18 on reals that limit is 0 20:28:27 the "singularity" of a computer screen is a pixel 20:28:49 of the scope of a* 20:28:49 sounds like some sort of intuitive nonstandard analysis 20:28:59 aka bullshit 20:29:04 :) 20:29:09 :D 20:29:34 http://en.wikipedia.org/wiki/Mathematical_singularity 20:30:27 Nothing discontinuous in the sphere/table setup, though. 20:30:44 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 if you have two colliding singularities, what do you do? 20:30:58 treat them as spheres, boxes? 20:31:27 Wareya: these singularities are not actually well-defined mathematical objects 20:31:39 well the ones the article talks about are 20:31:48 neither is an infinitely small point 20:31:58 which the surface of intersection with a sphere is 20:32:08 2infinitely small point"? 20:32:11 *" 20:32:18 yes 20:32:27 in any sensible measure of volume, a set containing just one point has measure 0 20:32:31 that's my use of the word in this case 20:32:35 so all points are infinitely small 20:32:51 Yet some points are infinitely smaller than others! 20:32:58 so why not just put the disc on the corner 20:33:10 that's what I was using to begin with 20:33:44 oklopol what's bullshit about that 20:35:03 MissPiggy, I prefer the term "science fiction". Whereever there is a singularity, there is a paradox caused by execessive quantum flux. 20:35:27 because people who talk about singularities in that sort of context don't have any idea what they're talking about 20:35:43 I have a proof for this, but my wormhole ate it. 20:35:53 oklopol, it's another way of using the word. 20:37:13 i mean what the fuck does "lim n-->0" mean, the point that n approaches as n approaches 0? 20:37:20 that sounds sensible 20:37:27 cpressey hehe 20:37:36 n is its size 20:37:46 the size of the OBJECT that we are calling a singularity 20:38:04 mesh size? 20:38:09 so do we have some sort of measure on these objects? 20:38:13 nonstandard analysis is just as much bullshit as ZFC 20:38:15 what's the size of 1? is it 1? 20:38:25 MissPiggy: there's nothing bullshitty about nonstandard analysis 20:38:33 (since there is an algorithm to translate proofs back) 20:38:35 there's a lot of bullshit about people doing it without knowing what it is 20:38:39 oklopol, what is the unit of "1"? 20:38:43 souds like all caluculus oklopol 20:38:52 people doing it all without knowing what it means 20:38:55 mostly 20:39:01 yeah, that's bullshit too 20:39:13 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 " 20:39:18 well sure, they're memorizing useful algorithms 20:39:27 but i mean for a mathematician 20:39:33 AnMaster: ok, that's actually a good joke 20:39:39 AnMaster: Um... it was a very small proof? 20:39:58 cpressey, -_- 20:40:03 Fermat joke 20:40:18 Lost on me, sorry. 20:40:24 OH 20:40:27 no it isn't 20:40:34 i mean you have to know the story 20:40:35 Hah. 20:40:51 I liked both cpressey's original, and AnMaster's correction 20:40:58 the correction wouldn't have been funny without the original joke 20:41:44 lol 20:41:55 scarf, you could have used the corrected one in place of the original 20:41:58 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 obviously = by definition 20:42:18 the original was funny too, though, and doing them in the other order wouldn't have worked 20:42:19 it's not vector space 20:42:28 scarf, true 20:42:29 then what is it? 20:42:31 it's real space - the one we don't know how to define 20:42:35 scarf, but just doing one would have worked 20:42:37 oh 20:42:42 that's discreete afaik 20:42:44 *discrete 20:42:47 okay 20:42:47 AnMaster: yes, but it wouldn't have been as funny cumulatively 20:42:50 by the way 20:42:51 two jokes are better than one 20:42:52 and who cares 20:42:54 wormholes 20:43:01 how does that interact with gravity 20:43:02 I mean 20:43:14 AnMaster: The higssdafjkshdfjklsdh boson did it 20:43:23 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 would that give earth gravity at the moon? 20:43:37 or what the heck would happen 20:44:20 AnMaster: since physics seems to happily accept the idea that gravity means curved space, ... 20:44:22 gravity is a field effect 20:44:38 is it a distortion of an object's inertia 20:44:45 cpressey, yes. But what would happen here 20:44:57 AnMaster: well, a wormhole is curved space, too, right? 20:45:07 Therefore wormholes are a kind of gravity. 20:45:11 hm 20:45:20 cpressey, holes that changes the topology too iirc 20:45:42 So they're gravity++ 20:46:00 heh 20:46:08 cpressey, so everyone would get crushed in wormholes? 20:47:03 It seems "reasonable" that it would be much easier to "fall" into one than to get out, anyway. 20:47:45 I mean, if it goes straight from Earth to Earth's moon, that's one hell of a curve. 20:47:47 Yet things get out. 20:47:57 so they? I have yet to see one 20:48:02 s/so/do/ 20:48:52 "Under the theory of quantum mechanics black holes possess a temperature and emit Hawking radiation. 20:48:56 " 20:48:59 http://en.wikipedia.org/wiki/Black_hole 20:49:01 lol 20:49:03 oh that yes 20:49:17 but a wormhole wouldn't have a event horizon iirc 20:49:39 a black hole contains a wormhole 20:49:42 from what I've read 20:50:18 hm 20:53:35 -!- oklopol has quit (Ping timeout: 265 seconds). 20:54:57 -!- charlls has joined. 21:01:36 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 Do you believe in the power of voodoo? 21:12:59 -!- augur has joined. 21:14:08 "Any undocumented functions in [the module] string should not be used." <-- okay, why do they need to point that out? 21:18:39 I wonder if they've documented the undocumented functions yaws uses, yet 21:22:50 Undocumented voodoo black holes. 21:27:22 That's where the flying nose demons live. 21:29:55 cpressey, what are those functions yaws uses? 21:30:05 I assume you mean the erlang yaws 21:33:18 Yes. It uses some Erlang-internal mechanism to parse HTTP headers, iirc. 21:34:51 cpressey, oh? 21:39:33 -!- oerjan has joined. 21:40:20 AnMaster: ... yes. 21:40:48 hm 21:43:16 absolutely not! 21:43:26 * oerjan now goes to find out what he was denying 21:45:48 night → 21:46:15 oerjan: that erlang has an undocumented function to parse HTTP headers 21:46:32 ah. 21:46:56 well that would _clearly_ be nonsense, since i read here the other day that ericsson document _everything_ 21:48:15 They even document the fact that you're not supposed to use undocumented functions. 21:48:20 theory: Google bought Youtube /just/ for leverage in getting rid of IE6 21:48:49 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 *it 21:48:59 oerjan: hmm, yes 21:51:05 08:29:21 cpressey, what about the one of ick? 21:51:06 08:29:39 it looked pretty okay considering the language it is supposed to parse iirc 21:51:17 isn't ick's parsing sort of hyper-advanced 21:51:42 parsing INTERCAL is hard 21:51:46 (going by vaguely absorbed discussions here) 21:52:01 CLC-INTERCAL's parsing is crazier, I think it's fully nondeterministic or something like that 21:52:18 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 ah oklopol 21:57:23 an oklopol 21:57:56 beware of the okloclones 22:05:53 on oklopol 22:09:59 ol' oklopol 22:11:22 -!- BeholdMyGlory has quit (Remote host closed the connection). 22:16:00 12:49:39 a black hole contains a wormhole 22:16:30 i've read that it contains a singularity 22:17:30 and that wormholes are very hard to stabilize, and tend to pinch off into singularities 22:21:28 wormholes cannot be stable because they need either exotic matter or dark energy 22:22:11 yeah 22:24:56 im a asrophisicist let me answer yourn question 22:25:19 theyre very stable 22:26:24 i may not be an astrophysicist, but i've read enough to suspect you're trolling 22:26:41 OTOH, creating or destroying wormhole between two points in same space would involve topology change... 22:26:52 HOW ON EArth did you guess that 22:27:26 tombom: because you are directly contradicting the wikipedia articles i browsed minutes ago? 22:27:55 yeah that was sarcasm as well, i thouight my terrible spelling might have been a clue 22:28:05 i don't know, maybe scientists are renowned for terrible spelling 22:28:19 tombom: i was _trying_ to ignore that, i didn't remember whether you were a dyslexic 22:28:40 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 you're an incredibly generous person 22:29:08 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 Hello 23:39:11 hi 23:39:38 Is anyone ever on the brainfuck chan anymore? 23:40:15 probably not 23:40:25 this one's used for all esolang discussion nowadays, it seems 23:40:33 Great language. 23:41:38 When I made a language, I had to make it cell based 23:41:55 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 Frankly, you'll find people more interested if you make something more bizarre. 00:09:37 yes! 00:10:28 what we need is a language based on _living_ cells 00:10:40 * MissPiggy skimmed a book on that 00:12:52 oerjan: we'll call it... brainfuck! 00:13:39 brainfuck on a living brain? 00:14:06 the cells will have to divide, naturally 00:14:56 it will be an imperative language 00:22:03 Idonno, something about cell division makes me think of evaluating expressions ... not sure why :P 00:22:37 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 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 hello! 01:10:46 HELLO 01:11:08 BYE 01:11:09 -!- songhead95 has left (?). 01:13:11 awwww 02:31:41 hi 02:32:22 hello! 02:32:59 -!- augur has joined. 02:34:47 Analysis of Noise and Audio Library and Sound Exchange for X11 02:35:11 I shall now write this, and submit it (as its acronym) to Google Code. 02:37:35 WHAT IF WOLFRAM ALPHA GOES SINGULAR? 02:38:10 http://www.wolframalpha.com/input/?i=can+entropy+be+reversed%3F 02:38:12 * MissPiggy giggles 02:38:42 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 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 wait what? 02:42:35 well what _else_ would you mean? 02:42:54 oh entropy 02:43:31 _lol_ 02:43:37 this underlines 02:43:40 I'm scared 02:43:57 it's your client 02:43:58 Wareya: it's a client thing 02:44:07 *bold* 02:44:12 *.* 02:44:21 I've always used ^b for bold 02:44:31 and ^u for underlines 02:44:59 Wareya: this channel censors colors, at least it used to. 02:45:49 testing 02:46:18 /italic/ 02:46:19 right, the ^b's didn't show up in the logs 02:46:27 ^b 02:46:37 MissPiggy: not shown any special in my client 02:46:48 nor mine 02:46:54 at least, not the terminal 02:47:49 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 *link in the topic 02:48:15 I know 02:50:53 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 goodnight! 03:14:05 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 glium 05:24:12 what's a glium? 05:28:47 Not a muilg 05:29:32 it's the singular of glia 05:29:49 Where can I buy these glium? Ebay? 05:31:32 :o 05:31:38 MY glium 05:31:40 MINE 05:31:55 Is it your precious? 05:32:08 i wanted to do some topology, but the lamp is depressed and i can't see :< 05:32:44 Sing the lamp a cheery song! 05:33:01 "Always look on the bright side of life" or something 05:33:19 Always look on the bright side of death! 05:33:22 * pikhq starts singing 05:34:20 i doubt it can be brought out of such a deep ression 05:34:59 guess i could just change the bulb 05:35:16 or, alternatively, i could just use the light from my computer screen 05:37:01 sort of unfortunate my windows theme is almost completely black 05:38:19 No wonder your light is depressed. Maybe it likes happy colours like yellow, or pink! 05:38:37 not gonna happen! 05:38:40 -!- mycroftiv has joined. 05:39:12 yellow at least, god that's an ugly color 05:42:14 ... Windows? 05:42:17 Oh, right. 05:42:28 That still exists, doesn't it? 05:45:16 vista is an okay os 05:45:20 pikhq: What OS do u use? 05:45:29 he uses cool hacker oses 05:46:01 amca: Gentoo. 05:46:27 With a somewhat quirky window manager setup. 05:46:34 Im using Fedora 8 >.> 05:47:26 pikhq: Which WM? 05:48:30 Ratpoison. 05:48:36 For managing *both* of my windows. 05:50:39 One would be the irc win. What's the other? 05:51:02 (if you dont mind me asking) 05:51:03 ... IRC window? 05:51:06 That's crazy talk. 05:51:10 the root window and xterm for screen obv 05:51:13 I have a terminal and a web browser. 05:51:21 3 windows then 05:51:22 Oh, right. The root window. 05:51:37 I always forget that that's there. 05:51:47 I only see it when I typo. 05:51:50 So, you are not using the term for irc? Telepathy? :) 05:52:08 No, I just don't have a dedicated IRC window. 05:52:16 I just have a terminal running screen. 05:53:05 can I ask which term u use? 05:53:13 i have a screen running terminal 05:53:15 urxvt. 05:54:31 bsmntbombdood: text mode linux terminal? 05:58:20 Which, the physical terminal, or the Linux virtual terminal? 05:58:20 :P 05:59:26 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 pikhq: Can I ask why you prefer urxvt over all others? 06:10:02 amca: Lightweight, supports Unicode. 06:10:25 Does it have tabs? 06:10:37 No, why would I want those? 06:10:45 Those require a mouse to use. 06:11:28 Ah, no they dont. I switch between tabs with +PageUp/Down all the time 06:11:44 s/alt/ctrl/ 06:11:50 They take up space on screen. 06:12:11 My entire screen is text ATM. 06:13:08 urxvt doesnt have a menu, then? Not even hidden one thatt appears when required? 06:13:44 the only oses i can stand are cell phone and calculator oses 06:14:03 i wish computer oses were less extendable and more good. 06:14:18 oklofok: What do you torture yourself with on your comp? 06:14:23 vista 06:14:36 i've tried windowses and ubuntu 06:15:00 ubuntu was too hard to use, you had to press multiple buttons to make things work 06:15:08 I think it has a hidden one that involves a mouse click of some sort. 06:15:08 Have you tried DOS 6.22 yet? 06:15:34 text-only ones are usually good, they are just ugly 06:15:48 oklofok: Ugly but usable. 06:16:56 sure 06:17:50 Perhaps Slackwafre 1.0 would be best? ;) 06:18:00 what's that 06:18:50 oops. Should be Slackware 06:19:02 One of the first Linux distro releases 06:20:17 i'm sort of fed up with linux, ubuntu had me constantly learning how things work, because they didn't 06:20:29 granted, i didn't have a very new version. 06:20:53 i don't want to learn irrelevant things 06:21:27 You want an OS to "just work". You dont need the complexity that flexibility brings? 06:21:35 yes 06:21:50 but my calculator can't handle flash :< 06:22:09 What calc is it? 06:23:05 ti-86, i don't actually use it much, i just said that because i just praised calculator oses. 06:23:10 nice and simple 06:24:02 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 (just like any calculator) 06:24:35 but that's a minor thing 06:27:01 What processor does TI86 run on? 06:27:23 no idea 06:28:24 i don't really care, i just know it runs the native basic very slowly 06:28:48 I think I have a TI84 which was an upgrade to the TI83 and runs on a z80 06:28:53 made this snake game in it, no way to make it fast enough to be challenging :< 06:31:02 I meant to make a snake one on mine, but got distracted and never finished it >.> 06:32:08 my attention span is about two hours for stuff like that 06:32:33 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 :) 06:34:23 You seem to be a kind of non-geeky geek. 06:35:43 maybe, maybe 06:38:15 hey guyses 06:38:22 oklofok especially 06:38:22 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 columns were continuations 06:38:46 me?!? 06:38:48 shit 06:38:52 you! 06:38:53 <3 06:38:56 * augur pounces oklofok 06:39:07 oh dear 06:39:12 ... oklofok, non-geeky? 06:39:27 Well. Maybe compared to some others here. 06:40:03 im writing this super humongoid article for wikipedia 06:40:03 omg 06:40:05 oklofok: ski thing sounded interesting 06:40:51 augur: what about? 06:41:08 controlled grammars 06:41:20 amca: i implement ski in pretty much everything i touch, because it's nice and simple, and very, very pure. 06:41:54 :) 06:41:55 (always ski, never sk, i think i is important for purity) 06:42:05 i for purity? 06:42:07 It's just skk. 06:42:15 yep, it's more coincidence that i happens to be implementable in terms of s and k 06:42:21 there's mathematical reason to have all thre 06:42:23 *three 06:42:27 ? I would have thought sk was more pure than ski 06:42:45 amca: try reading the proof that all expressions can be expressed as SKI some time 06:42:47 purity != minimalism 06:42:50 the i is very necessary there 06:42:55 *all lambda expressions 06:43:05 well s and k can express anything, i'd say sk is mathematically purer, ski is programmatically purer. 06:43:07 or maybe what augur said. 06:43:12 all i know is ski > sk. 06:43:24 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 oklofok: Do you normally write your expressions in lambda calc first then convert to sk? 06:46:06 amca: I know I do 06:46:09 except I convert to ski 06:46:19 Unlambda has an i, and why else would you convert? 06:46:22 sorry,, I forgot the i 06:46:41 oklofok: Do you perform I/O with your SKI? 06:46:46 ok, so i = ``skk, but who cares 06:47:05 pikhq: obviously not :| 06:47:22 you can use Unlambda I/O, but that's rather impure and (probably deliberately) convoluted 06:47:23 oklofok: But it's so very simple to do in a purely functional manner. 06:47:24 `ii is important 06:47:25 No output. 06:47:27 metaphysically 06:47:34 scarf: Bah. 06:47:35 pikhq: how then? 06:47:38 Lazy K I/O. 06:48:00 amca: i don't write ski at all, usually. 06:48:06 i write it in other things. 06:48:11 *implement 06:48:27 oklofok: You use a prog lang that compiles to ski? 06:48:38 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 right 06:48:58 The program *returns* a lazy list of church numerals representing the output in UTF-8. An EOF is represented by 256. 06:49:08 yeah obviously 06:49:23 Viola. Lazy K I/O. 06:49:26 amca: no, i don't write programs in ski. 06:49:32 not big ones 06:49:35 its his native language, amca. it really is. 06:49:47 augur: That's zzo38. 06:49:57 ;) 06:50:01 Well, either that or x86 machine code. It's hard to tell. 06:50:49 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 Why do ski machines tend to use church numerals? Why not lists of booleans for numbers?? 06:51:02 and then oklopol has to discover them 06:51:10 amca: Because church numerals are much nicer. 06:51:10 amca: arithmetic's easier, and it's mathematically nicer 06:51:36 ok, I suppose decrement's slightly easier with lists of booleans; but addition and multiplication are easier with church numerals 06:51:42 (a list of booleans for numbers is a *royal pain* to deal with functionally) 06:51:59 Shorter programs with church numbers? 06:52:45 pikhq: oh, I thought you meant unary 06:52:52 writing it in /binary/ would be really ouch 06:53:10 scarf: He said booleans, so, yeah. 06:53:14 *Pain*. 06:53:23 I was assuming end of list / not end of list 06:53:27 otherwise you need a marker for the end 06:53:47 really, though, binary may translate well into wires, which is why computers use it 06:53:49 hey, if your design is modular enough, the implementation of numbers will be hidden. 06:53:52 but it translates badly into functions 06:54:16 i guess you still have to implement the operations, tho... 06:54:35 oklofok: ... *SKI*. 06:54:54 yay exercise one done... i should probably close the irc window at some point 06:54:54 Your best chance of doing it modularly is passing the implementation as an argument. 06:55:03 :P 06:55:05 scarf: Could always have a "false" value for end-of-list 06:55:17 pikhq: have you seen my bf in python lambdas? 06:55:23 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 i did exactly that, long list of lambdas as arguments 06:55:56 pikhq: that's how I write relambda 06:56:03 scarf: An actual list with a "nil" value? 06:56:05 I/O gets abstracted and passed in as arguments 06:56:15 pikhq: well, OK 06:56:34 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 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 so, the result of all operations is either an infinite loop (not good), or defined 06:57:03 scarf: Uh... 06:57:05 so if you have a typical false value (say `ki) for your cdr 06:57:12 then you can take its head and tail 06:57:16 (typically both i, in this case) 06:57:34 so you get false = [true | true] 06:57:47 there should be a language where all flow control relies on the detection of infinite loops 06:58:08 scarf: You represent your list as: (end-of-list-p, (car, cdr)) 06:58:32 pikhq: heh, then you're effectively using 1-hot-ternary-coded-binary 06:59:16 nil is (True, (I, I)) 06:59:46 yep, that would /work/, but it's effectively the same thing as just using ternary 06:59:57 Well, yes. 07:00:40 and you probably couldn't write multiplication, say, anywhere near as effectively as with church numerals 07:01:14 oklofok: hmm, istr finding something like that on the esolang wiki, an esolang based on solving the halting problem 07:01:38 Can you perform binary ops on church numerals? (and, or, xor, etc) 07:01:57 not easily, but why would you want to? 07:02:03 -!- lament has quit (Ping timeout: 240 seconds). 07:02:04 Yes, but probably not *easily*. 07:02:31 link if so, i doubt it's done in an interesting way. 07:02:43 Binary ops aren't exactly useful things on non-binary numbers. 07:02:55 So you can easily do blitting 07:03:36 ... 07:03:50 amca: why would you be using the bits of a number to encode pixels in memory? 07:03:54 Blitting, in a language without anything beyond stdin and stdout? 07:03:55 you'd do blitting via array copies 07:04:04 -!- lament has joined. 07:04:08 -!- tombom has joined. 07:04:11 scarf: List copies, really. 07:04:27 well, yes 07:04:31 or tuple copies 07:04:34 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 the two data structures are rather different in SKI 07:04:49 pikhq: For sprite movement etc. I suppose in a functional language, raytracing would be more appropriate rather than blitting 07:04:59 amca: There are no graphics. 07:05:13 why? 07:05:14 amca: There aren't even, really, stdin and stdout. 07:05:27 There is the argument, and there is the result. 07:05:32 *That's it*. 07:05:55 Why cant the result be the video frame every 1/60 seconds? 07:06:42 Well, it can. You could, of course, have the result be a raw video dump just fine. 07:06:48 But you're not doing blitting. 07:06:59 Hence my comment about ray-tracing 07:07:12 Blitting is a very specific technique used soley because binary operators are fast in low-level languages. 07:07:16 amca: you're thinking incorrectly here 07:07:25 Alternatively, if you were doing blitting, the result could be instructions to video hardware to perfom the actual blitting 07:07:26 you're thinking "blitting is fast on a computer, so it should be fast on an SKI machine" 07:07:37 you can get the same effect, sure, but you wouldn't do it via copying bit-blocks 07:07:41 you'd be copying lists instead 07:07:44 SKI doesn't have binary operators at all. 07:08:00 SKI can do implementations of them, but they are slow. 07:08:02 sorry, logging out and back in, the mouse focus here has gone insane 07:08:19 Because your computer is *pretending* to be a SKI machine, and this process is slow. 07:08:31 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 (well, it's actually much faster than anything else you could find, but that's beside the point.) 07:09:03 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 amca: But blitting is fast largely because you are directly modifying state. 07:09:13 -!- scarf has joined. 07:09:20 In SKI, there is no state. 07:09:26 There are only S, K, and I. 07:09:36 I have no idea how the bottom toolbar can have stolen mouse capture like that... 07:10:06 olsner: neither of those really uses the halting detection for anything 07:10:21 they're just bf with halting detection, and bf without infloops 07:12:14 pikhq: Have you heard of the Reduceron? 07:12:25 amca: Yes, the graph reduction machine. 07:13:52 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 oklofok: yeah yeah 07:14:42 amca: But clearly if you evaluate the same function with the same arguments, you will get the same result. 07:15:40 oh i missed the "looks like what i'm ..." thing, probably you realized that too 07:15:44 i mean something like 07:15:56 you can't even write a program that halts, directly 07:16:01 everything just goes into an infloop 07:16:10 but, this will be detected, and things will return 07:17:11 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 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 either jcp wants many routers, or people don't like blowjobs anymore. 07:34:46 hi oklofok 07:35:19 hi adu 07:35:54 I've made a breakthrough with my language! 07:36:50 hi adu. What's your language? 07:37:08 cool! i have this vague recall that we talked about some language of yours, but can't remember what it was :) 07:37:08 I don't need to design, build, nor implement any part of it! brilliant! 07:37:23 Droscript 07:37:44 okay i don't think i've heard that name at least 07:38:09 I have some rudimentary documentation of it here: 07:38:15 http://drosera.co.cc/ 07:39:17 i have a new programming language too, currently undocumented, but i still like advertising it: www.vjn.fi/oklopol/clue.rar 07:39:53 i hate rars 07:40:29 sorry about that. 07:40:52 ugh, now i have to search through hundreds of downloads to find 5 files 07:41:06 i hate rars 07:41:11 ;) 07:41:29 i could reup in some other format, but my connection is pretty slow. 07:42:10 lzma is much more opensource than rar 07:43:22 but anyways, my language was supposed to by a Pythonic Haskell 07:43:32 i don't really care about open sorcity. 07:43:36 *sourcity 07:43:50 Blasphemer! 07:44:28 :) 07:44:46 adu: "supposed to by a" = " supposed to be a"? 07:44:52 yeah 07:45:22 -!- madbr has quit (Quit: Radiateur). 07:45:30 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 amca: yes, i can't type 07:46:52 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 like i can never experience the freedom of hating some file type because it's closed 07:47:55 big peeve: "Trusted" computing 07:48:11 the ultimate in closed source 07:48:28 What is "trusted computing"? 07:48:55 don't google it 07:48:59 http://www.gnu.org/philosophy/can-you-trust.html 07:49:43 adu: Are you a private concubine or RMS? 07:49:49 or = of 07:50:07 uh no 07:50:13 i just like him 07:50:30 can I be an open source/free software advocate who nevertheless thinks that RMS is crazy? 07:50:31 RMS is my hero 07:50:38 yes 07:50:42 many ppl do 07:50:56 I do 07:51:02 you can be a U.S. patriot who hates Obama 07:51:34 you know, the saying: "I love my country, but I fear my government" 07:52:08 trusted computing sounds like a great idea 07:52:18 if everyone wants to be a part of it 07:52:23 oklofok: can I give you a language to shoot yourself with? 07:52:30 :) 07:52:57 -!- tombom has quit (Read error: Connection reset by peer). 07:53:01 sort of like socialism in that sense 07:53:09 although i guess in a different direction 07:53:16 -!- tombom has joined. 07:53:24 oklofok: if by "Everyone" you mean 0.0000001% of netizens, then yes 07:53:41 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 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 i really don't think that's true 07:54:18 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 i think and hope it would fail horribly 07:55:00 bbl university 07:55:04 no, i'm saying the only people who it benefits is 0.0000001% of netizens 07:55:18 and that has nothing to do with what i said 07:55:22 so naturally those would be the people who want it 07:55:43 -!- tombom_ has joined. 07:56:02 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 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 oklofok: :o 08:49:33 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 oklopol! 09:47:28 -!- kar8nga has joined. 09:47:55 meeeeeeeeeeeeeeeeeeeeeee 09:48:56 wanna learn about minimalist grammars? :D 09:49:05 no time. 09:49:08 :( 09:49:13 it wont take long! 09:49:59 come to #minigram :D 09:50:17 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 yay i just conquered the topologist's sine curve, the boss of level 1 in topology. 11:30:24 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 :P 11:32:58 i don't even remember its definition, although i do remember what i'm supposed to do to kill it. 11:33:43 hopefully i can get some better weapons before the sphere 11:34:00 currently i'm basically fighting with my bare hands 11:40:35 augur: i read #minigram, i'm following the lecture sofar 11:40:52 -!- BeholdMyGlory has joined. 11:45:15 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 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 "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 scarf, hi there. What sort of things would you recommend to work with VHDL on linux? 15:05:32 AnMaster: I use GHDL as a simulator, with gtkwave 15:05:56 I doubt there are free synthesizers around, though; all the ones I've seen tend to be nastily expensive 15:05:58 scarf, thanks. Will start a course in a few weeks about digital circuits & VHDL (basic level course) 15:06:10 although they generally run just as well on Linux as on Windows, which is interesting 15:06:31 I expect the uni has stuff for the labs. But having something to experiment with at home seems useful 15:06:36 (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 scarf, what is a synthesizers in this case? Something to program real hardware? 15:07:19 AnMaster: pretty much 15:07:23 something to simulate it is just fine for me to begin with 15:07:36 to be precise, it generally generates a file used to program the hardware 15:08:03 ah 15:08:30 scarf, so a compiler to something that can be loaded into an FPGA basically? 15:08:43 yep 15:08:55 synthesizers are also often very slow 15:09:08 they can take half an hour to run for the little toy chips that they let undergraduates use 15:09:14 scarf, and you download it over a serial port or such? 15:09:24 and well over a day if you're trying to fit a lot of data onto a medium-sized chip 15:09:30 and you nearly always download over JTAG 15:09:41 which generally needs special software, and a driver for the JTAG cable 15:09:43 oh interesting 15:09:51 scarf, why jtag? 15:10:10 AnMaster: it's the standard very-low-level interface to reprogrammable hardware, nowadays 15:10:26 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 *up 15:10:30 When I programmed PIC12* it was generally done over serial port. 15:10:32 serial would be rather higher level 15:10:40 (PIC12F627 or something such iirc) 15:10:46 (maybe 629?) 15:11:33 (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 scarf, well yes, you latched some leg high to make it enter programming mode 15:12:09 iirc 15:12:26 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 since my circuit used serial port for other purposes during normal operation 15:12:32 when the device normally only uses 5V 15:12:35 it was natural to do it over the same interface 15:12:40 but with a jumper iirc 15:12:48 that you moved to a programming mode 15:12:52 which is a really clever solution to stopping people entering programming mode by mistake 15:13:07 scarf, I don't remember the details 15:13:20 anyway I do remember I had to move a jumper to do it 15:13:23 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 scarf, I also remember that the interrupt routine that read serial data was a pain to code. 15:13:56 not really, if you understand interrupts 15:13:59 you had to get timing right and make it finish before the next piece of data arrived 15:14:16 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 scarf, back then I barely did 15:14:40 scarf, also, there is no built in support for serial data in PIC12F* series 15:14:54 iirc there is in some more advanced models 15:15:02 AnMaster: even on the 16F series, it's just a buffer for one byte 15:15:10 umm, two bytes under certain circumstances, I think 15:15:12 scarf, no buffer thingy here on 12F 15:15:24 which means that you don't have to poll/respond to interrupts quite as often 15:15:32 but which still means that you have to do most of the work yourself 15:15:46 scarf, also remember you have very very limited memory, both ram and flash 15:15:54 AnMaster: yes, I know 15:16:07 I probably know more about PICs than you do 15:16:08 -!- tombom__ has joined. 15:16:23 I've even built a PIC programmer from components before, and written long programs for them in asm 15:16:35 scarf, true for more advanced models at least. But isn't the 16F series vastly more advanced than the 12F series? 15:16:48 not vastly, I wouldn't say 15:16:56 it has more random features that most people don't use 15:16:57 but that's about it 15:17:01 also, often more pins 15:17:29 scarf, more registers iirc too? 15:17:43 a bit, not all that much though 15:17:51 you might get maybe 100 bytes or so of memory on a high-end model 15:18:48 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 it's a standard trick, I've used it myself 15:19:22 -!- tombom_ has quit (Ping timeout: 248 seconds). 15:19:49 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 scarf, yes true, still somewhat tricky to code for me back then 15:20:01 you could probably combine the methods and only use 6 pins, but that would just be confusing 15:20:57 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 No I don't remember how I connected them. But it was somewhat confusing to get it to work 15:21:37 ouch, driving 12 from 5 seems painful; even connecting it as a K_5 can only do 10 pins 15:21:52 scarf, it was possible though 15:22:01 oh, you can do 20 with a K_5 15:22:02 so it is possible 15:22:22 K_5? I don't remember that term 15:23:38 AnMaster: complete graph on 5 vertices 15:23:41 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 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 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 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 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 The weird part, to me, is what "falls" means in 4D :) 15:33:33 fizzie: read up on I²C some time, it's just as fun 15:33:43 fizzie, what? really? 15:33:44 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 basically, there are two wires, clock and data 15:33:58 fizzie, this is the cable you connect to the box attached to the serial cable? 15:34:01 that you are talking about 15:34:16 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 and the clock ends up in sync 15:34:31 fizzie, I have a TI black link cable 15:34:36 came with my TI-83+ 15:34:38 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 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 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 fizzie, heh :D 15:35:14 and from everything else's point of view, it's as if only one of the devices was actually sending 15:35:15 AnMaster: Some of the home-built ones do that decoding on the processor, by just connecting those into suitable pins. 15:35:22 so it sort-of fixes conflicts retroactively 15:36:18 fizzie, wait? so it is left to the computer cpu to try to make sense of the protocol? 15:36:58 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 scarf: That's nifty. 15:37:25 fizzie, the signal levels and such are compatible ? 15:37:45 fizzie: yep, I think it's rather neat 15:38:29 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 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 cpressey: all the standard assumptions break if you don't assume a ground reference 15:40:46 which means designing a truly 1-wire protocol could be relatively tricky 15:40:56 scarf: ;) 15:42:25 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 fizzie, ah 15:43:49 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 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 fizzie, ouch. 15:44:23 fizzie: not just that, in standard practice they /do/ 15:44:37 the RS232 port on a typical computer ought to be +/- 9V 15:44:48 anyway these days I think USB cables are used 15:44:51 right? 15:44:57 there's a chip called the MAX232 that converts RS232 logic levels to/from standard ones, it's pretty standard nowadays 15:45:17 for calculators I meant 15:45:19 mean* 15:46:08 which reminds me (somehow, can't explain why): new erlang version out yesterday. yay. And quite a lot of documentation improvement 15:46:28 plus this release is the first after they switched from the cathedral to a more open development process. 15:47:17 scarf: I always wanted to abuse that chip to do something related to voltage boosting that it was never designed for 15:47:38 heh 15:47:44 AnMaster: let me guess, the distribution grew... 90 megabytes this time? 15:47:54 probably possible, there's likely a datasheet somewhere 15:48:00 AnMaster: I use GHDL as a simulator, with gtkwave <-- why does this pull in gnat 15:48:03 I mean 15:48:03 and good datasheets are as general as possible 15:48:08 is there actually someone using ada? 15:48:09 wth 15:48:13 AnMaster: who knows 15:48:17 VHDL is very ADA-like 15:48:25 ghdl gnat-4.3 gnat-4.3-base gtkwave libgnat-4.3 libgnatprj4.3 libgnatvsn4.3 15:48:25 it wouldn't surprise me if bits of the parser were shared 15:48:31 and I didn't even list gtkwave there 15:48:33 just ghdl 15:48:35 one of the design goals of VHDL was actually to make it look like ada 15:48:37 it pulled in all those deps 15:48:43 *Ada 15:48:57 scarf, One* 15:48:58 (I bet gtkwave is on the recommended list, because there's no point in producing simulation data you can't view) 15:49:02 TI switched to usb cables for the calcs, yes. 15:49:13 No, Erlang/OTP dist only grew by 1.4 megabytes. Drat. 15:49:24 cpressey, har 15:49:36 It's supposed to double every time! Or something 15:49:46 cpressey, if they switch from .gz to .bz2 or .lzma it would shrink 15:49:52 of course that would break compat 15:49:54 so they would never 15:50:03 Not that there ever were any problems with official TI serial cables, those did the right thing. 15:50:12 and if they did they would provide new and old formats for quite a few releases 15:50:27 .pax.lzma! 15:50:41 suuure 15:52:28 anyone know any open source tool for simulating analogue AC circuits btw? 15:52:43 Yeah, isn't that Moore's law: the size of Erlang doubles every 18 months? 15:52:53 fizzie, heh 15:53:35 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 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 pax! 16:17:25 Oh gawd pax 16:17:53 pix of teh pax 16:18:25 it is funny how gnome somehow puts a harddrive icon on my desktop for sshfs file systems 16:18:30 that I mounted from command line 16:18:32 bbiab 16:23:17 oh this is so sad, erlang's build system isn 16:23:22 isn't* -j2 safe 16:23:38 it tried to execute the erlang compiler before the runtime was built 16:26:52 wtf 16:26:57 That is pretty sad, considering. 16:29:16 cpressey, exactly 16:31:19 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 heh.......................................... 16:37:42 cpressey, hah 16:37:56 cpressey, not how I saw it 16:38:37 cpressey, looked like a reference to 16:39:12 wasn't he supposed to have wings on his shoes or something 16:43:12 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 Fast in the way a grumpy person snapping at you is fast. 16:43:57 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 cpressey, err " 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 It's not fast so much as its SUDDEN. 17:43:31 cpressey, idea for a future befunge: / and \ swap meanings based on direction of travel 17:52:42 AnMaster: That's a great idea, but it breaks a lot. 17:52:51 cpressey, well yes 17:53:03 cpressey, oh btw I find the colour scheme on http://catseye.tc/projects/funge98/doc/website_funge98.html rather unreadable 17:53:23 the light green on the gray-patterned bg 17:53:34 I preferred the old yellow based one 17:53:45 AnMaster: Well, you can go to the source page, or you can tell your browser to ignore the CSS 17:53:55 cpressey, like is still on http://catseye.tc/projects/funge98/library/TURT.html 17:53:59 http://catseye.tc/projects/funge98/doc/funge98.html 17:54:08 cpressey, source page? I just clicked the spec link on http://catseye.tc/projects/funge98/ 17:54:15 like I have always been doing 17:54:21 ah there it is 17:54:41 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 cpressey, not the one at the top 17:54:57 True, there shoul;d be a link there too 17:54:58 cpressey, under the heading "Documentation" 17:55:28 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 Hm, since TURT still says "Under development" :) 17:56:41 aaargh 17:56:48 cpressey, that would break the nice TURT quine 17:57:01 Yeah, I know. 17:57:20 (for anyone who missed it http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/tquine.php) 17:57:24 So are people really mixing up left and right or is that some SVG thing 17:57:29 which is btw an awesome domain name 18:00:06 cpressey, it was some svg thing 18:00:12 cpressey, weird coordinate system in svg 18:00:31 cpressey, but it seems like people treat the coordinate system as navigational 18:00:35 and I did too 18:00:40 'k, that makes more sense. 18:00:42 but when re-implementing it and reading my old code 18:00:50 I wasn't aware that I had taken some shortcuts 18:01:01 (ab)using that it would be inverted 18:01:11 thus no need to convert the value when calling sin/cos 18:01:18 thus I assumed it was mathematical 18:01:22 not navigational 18:01:32 and 0 = east made it more probable too 18:02:12 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 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 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 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 C99 is basically fixing undef and adding some new non-colliding things 18:05:53 very few C90 programs can't compile unmodified as C99 in my experience 18:06:05 sure, there will be some corner cases 18:06:30 Yeah, C99 was pretty well defined to minimise breakage. 18:07:51 AnMaster: I agree. 18:08:10 Plus there are a bunch of Be- names that could be riffed on. 18:08:31 cpressey, and interestingly enough befunge111s would be way less capable than befunge98s 18:08:39 unless you add a lot new stuff 18:09:00 since the s versions are defined to be "only new commands, any commands in previous versions are excluded) 18:09:04 But what would you think of deprecating some of the uglier parts? 18:09:05 s/)/"/ 18:09:11 cpressey, such as? 18:09:53 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 hm 18:10:13 cpressey, what? 18:10:23 cpressey, t is pretty well defined. And no one implements the error in t 18:10:35 An implementation could make t, i, o, and = Funge-98 compatible. Or not. 18:10:35 which is that t doesn't move the child ip one step first 18:10:42 meaning that t will be the first thing it executes 18:10:45 It doesn't matter that it's well-defined 18:10:59 It's optional, that's the more important consideration. 18:11:07 And optional things should go in fingerprints. 18:11:17 Optional things like having two dimensions. 18:11:31 fizzie: That's not optional in *Be*funge. :) 18:11:34 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 (well duh for the last part) 18:11:55 Well, the replacement for = would also be well-defined in a fingerprint. 18:12:04 cpressey, in what way? 18:12:15 Probably refer to POSIX system(). 18:12:32 cpressey, then these would need three different fingerprints at least. Maybe 4 18:12:34 So, POSIX-dependent, but many OSes try to implement POSIX these days. 18:12:44 cpressey, efunge used to implement i but not o until recently 18:12:50 nowdays it implements both 18:13:05 AnMaster: could be a couple of different fingerprints. I'm not picky about that. 18:13:11 it doesn't implement t, since ATHR will be superior and actually be able to use both cores 18:13:48 cpressey, the fingerprint implementing T would still change @ when loaded? 18:13:49 or? 18:14:05 since both @ and q seems odd if not 18:14:23 Well, @ can be defined in such a way that its semantics don't change. 18:14:52 @ removes the current execution context (EC). The program ends where there are no more ECs. 18:15:03 Therefore in single threaded Befunge, @ ends the program. 18:15:04 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 cpressey, right 18:15:23 cpressey, that causes havoc for ATHR 18:15:43 since you can have multiple ips from t in a single ATHR thread 18:15:52 -!- charlls has joined. 18:16:03 and there can be multiple ATHR threads (of course) 18:16:21 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 cpressey, well what happens in your option if we have two fingerprints AAAA and BBBB. AAAA provides DE, BBBB provides EF. 18:17:37 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 then: 18:17:48 we load AAAA, we load BBBB, we unload AAAA 18:17:52 now what is E mapped to 18:17:55 AAAA right? 18:18:15 that is the current de-facto standard 18:18:38 I'd have to refresh on how fingerprint unloading is defined. 18:18:39 treating it as "unload one instruction from each of the stacks, one stack for each of A, B, C, D, ..., Z 18:18:53 I thought you could only unload the most recently loaded. 18:18:58 cpressey, well that exact detail (unloading out of order) is a bit unclear in the spec 18:19:19 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 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 OK, well 18:21:02 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 18:21:09 cpressey, well? 18:21:18 The spec is a mess wrt unloading so that makese sense 18:21:45 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 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 but still 18:22:45 Do you happen to have a link for the FING spec? 18:22:51 sec 18:23:00 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 http://rcfunge98.com/rcsfingers.html#FING 18:23:12 AnMaster: Thanks 18:23:17 cpressey, not the most detailed spec of course 18:23:26 fizzie, indeed 18:23:46 I think that's even the improved FING. 18:23:53 Um, yeah, that's not terribly informative 18:24:03 fizzie, well the bad one was called FNGR 18:24:12 OK, well 18:24:27 cpressey, anyway here is how Deewiant, me and some other people interpret things: 18:24:36 I'm very tempted to establish some new semantics for ( and ) which are better but break minimally 18:24:36 one stack of function pointers (or lambdas or whatever) per A,B,C,...,Z 18:24:38 AnMaster: Yes, but I think even the FING spec got some of those corner-case empty-stack clarifications later on. 18:24:42 FNGR's fixed to comply with the specs, by making it highly untame 18:24:52 hmm, what's the term 18:25:06 cpressey, fingerprints push function pointers on these stacks (depending on which ones it define) 18:25:09 scarf: BLOODTHIRSTY. 18:25:14 scarf: (I guess you mean "feral".) 18:25:16 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 fizzie: yes 18:25:20 that's it 18:25:42 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 fungot uses FING nowadays, but it used to use FNGR because FNGR was the first fingerprint-remapping fingerprint I came across. 18:26:09 fizzie: these unique items make us invincible! 18:26:28 fungot: Yes, I'm sure FING makes you invincible. Sigh. 18:26:29 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 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 there is nothing on D any more 18:26:39 That bot is sometimes so insulting. 18:26:41 -!- kar8nga has joined. 18:26:43 cpressey, does that make sense? 18:27:07 AnMaster: Yes, that makes sense. 18:27:22 further it is useful 18:27:43 That *might* be what was meant, in the spec, tho I'm not at all convinced of that. 18:27:45 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 AnMaster: heh, pushed back to 2011 already? 18:28:17 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 The semantic stack stuff seems to be the de-facto interpretation. 18:28:24 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 scarf, a different one altogether 18:28:29 I gave up on mine 18:28:31 oh 18:28:31 I think even I did fingerprints like that in GLfunge98. 18:28:33 cpressey is considering it 18:28:36 and he called it that 18:28:48 -108 was just clarifications, wasn't it? 18:28:52 of all the ambiguities in the spec? 18:28:56 cpressey, wonderfully complex. But what would the new semantics then? 18:28:59 scarf: It's mainly that the number 111 is much cooler than 110. :) 18:29:04 scarf, yes but the result was suboptimal 18:29:08 cpressey: agreed 18:29:10 cpressey, you should wait to 666 then 18:29:17 ;P 18:29:26 The spec explicitly allows for unloading things that haven't been loaded yet 18:29:32 and what Deewiant said 18:29:39 Deewiant: cpressey: The spec also explicitly says that ) can unload a fingerprint "even if that fingerprint had never been loaded before". 18:29:44 Deewiant: You're a bit derivative! 18:29:53 Deewiant, fizzie: Yes, that's bizarre. 18:30:09 wasn't that for NULL to work correctly? 18:30:10 cpressey, what would the new semantics be for ( and ) though 18:30:11 Deewiant: Perhaps even integral. 18:30:11 Actually, that suggests the spec intended something similar to the defacto behaviour that's out there 18:30:39 fizzie, augh 18:30:51 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 fizzie: Right, I wasn't reading context, just AnMaster's highlight and a line or few up 18:31:12 Deewiant, hey don't do that. ehird always complains when I do that 18:31:26 Deewiant, never mind that he does it himself sometimes 18:31:41 also, I have to get out and clear away the snow 18:32:03 AnMaster: I'm not ehird 18:32:15 Deewiant, and? 18:32:27 you missed the joke completely 18:32:36 It just seemed like you didn't feel about it very strongly yourself 18:32:38 anyway: I'll be back in an hour or so (hopefully, it has snowed quite a lot though...) 18:32:44 Deewiant, I don't 18:33:19 Bleh, gitweb's commitdiff display isn't very befunge-friendly; it's far too line-oriented. 18:33:23 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 AnMaster: 'K, have fun in the snow :) 18:33:41 fizzie, file a feature request! 18:33:49 cpressey, .... I have started to hate it 18:34:02 http://git.zem.fi/fungot/commitdiff/2d306563bb6d998d208c78d6400168b0ef633ae7 changes (incidentally) from FNGR to FING, but the changes are not so very clear. 18:34:02 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 cpressey, it has been the snowiest and coldest winter for over 100 years according to SMHI 18:34:30 (SMHI is something like gov weather agency thingy, not sure what your equiv is over there) 18:34:50 → 18:35:14 Over here it's only the coldest it's been in 20-30 years or so 18:35:36 Although in snow amount, I think it was around 50; I can't remember exactly 18:39:42 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 that... 19:38:49 was heavy 19:39:31 Deewiant, I think this was for mid-Sweden 19:39:48 the north parts had worse years more recently 19:40:06 and definitely some temp records earlier 19:41:02 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 while the average coldest and snowiest were for "over 100 years" 19:41:48 still, last weekend was much worse than this evening 19:49:46 cpressey, so what would the moved toi= be used for now? 19:50:13 cpressey your idea of something like FING? 19:50:42 cpressey, or something else? 19:52:49 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 of course this should be completely optional for the core language 19:53:16 but any fingerprint trying to do that currently would give something extremely feral 19:53:27 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 And t, o, i, = would be undefined 19:54:20 For opaque stack values, yes, I think that could be defined, somewhere between tame and feral, closer to tame. 19:54:28 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 does that make it clearer? 19:54:48 Yes. 19:54:48 well it uses two cells for 32-bit funges 19:55:16 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 Or, ALL std instructions would have a clause like that. 19:55:50 Popping any object that isn't an intval -> some behavior 19:55:51 cpressey, not reflect. More useful would be: "fingerprint-defined and/or implementation-defined" 19:55:53 it could reflect 19:56:02 but it could also do something sensible for, say, floats 19:56:15 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 cpressey, :\$ and so on are well defined 19:56:32 cpressey: Leaving toi= undefined is annoying given that the rest of ASCII is all reserved ;-) 19:56:32 of course 19:56:54 Deewiant: the idea is that the implementer can choose to try to be -98 compatible, or no 19:56:55 cpressey, and yes perhaps all std ones should 19:56:57 it would be nice 19:57:10 cpressey, think along the lines of the rather detailed ATHR spec 19:57:29 cpressey, and there MUST be a security considerations section *somewhere* in there ;P 19:57:35 cpressey: Won't there be incompatible changes? 19:58:02 Deewiant: only small ones, on the scale of the ones between 93 and 98, is the current plan 19:58:29 plus moving tio= out to fingerprints 19:58:31 That's still incompatible 19:58:44 Deewiant, sure, but 98% of the befunge93 programs work in 98 19:58:45 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 for 1.99% of the remaining one just skipping SGML spaces is enough 19:59:14 It just seems a bit of a shame that there's a "hole" in the definedness of the ASCII instructions 19:59:15 Deewiant: it's a small incompatibility which can be addressed by an implementation 19:59:17 for 0.01% or so you have them depending on stuff like "f reflects" 19:59:54 AnMaster: I don't think there are 10000 Befunge-93 programs 20:00:08 Deewiant, well, I have seen no ends of variations of hello world in it 20:00:38 cpressey, So allowing a fingerprint with opaque types to result in "fingerprint defined" behaviour might be a bad idea 20:00:40 hm right 20:00:41 Probably not /that/ many 20:00:56 Deewiant, of course not 10000 hello world! 20:01:00 there are some other programs 20:01:02 AnMaster: not a bad idea so much as a feral fingerprint... 20:01:08 cpressey, true 20:01:12 AnMaster: Yes, but there are likely less than 100 programs in total :-P 20:01:19 The strategy here is not so much to disallow things or discourage them as to give them names :) 20:01:23 Deewiant, no actually my guess is more around 200-300 programs 20:02:14 Deewiant, the list on http://catseye.tc/projects/befunge93/ is quite long. And I have seen quite a few programs elsewhere 20:02:19 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 so yeah above 100 definitely 20:02:26 less than 1000 probably 20:02:46 -!- MizardX has quit (Read error: Connection reset by peer). 20:02:54 cpressey, nice name for it 20:03:15 AnMaster: Regardless, 0.01% == 0% 20:04:14 Deewiant, okay. Well I have seen one programs I think that depended on f reflecting 20:04:28 three or so that depended on non-SGML spaces 20:04:39 other ones worked 20:04:56 Mycology depends on 80x25 loading to detect Befunge-93 20:05:09 (Although not that insistently) 20:05:18 Deewiant, true, but these ones had .bf extension 20:05:21 not .b98 20:06:23 cpressey, another use case for opaque values: {socket,Fileno} 20:06:38 cpressey, cfunge currently validates it against a list for SOCK 20:06:42 Yes. Certain std instructions like swap should be handle opaque values, too. 20:07:00 certainly swap, dup, g and p definitely should 20:07:19 all those that just move the data around and don't care what it means 20:07:21 Oof, enforcing that'll be a pain 20:07:30 With 32-bit funges that implement FPDP 20:07:46 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 Deewiant, an implementation would be free to do it either way for FPDP. I mean, it doesn't say either way 20:08:20 if the fingerprint defined that "it must use opaque values", well then it would be clear 20:08:35 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 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 cpressey, and I agree, befunge should not be object oriented 20:09:55 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 efunge might 20:10:22 basically, utf8 with just libc will be a pain 20:10:41 There would be no requirement to support it. But nothing stopping implementations from using it either. 20:10:57 cpressey, and everything except POSIX.1-2001 + the mmap option are optional deps for cfunge 20:11:07 which means NCRS is optional, since it needs ncurses 20:11:23 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 cpressey, iirc Deewiant claimed he was able to read the spec as unicode input 20:11:36 UCS-64 XD 20:11:45 I think it is UCS-4 which is 32-bit 20:11:50 cpressey: That doesn't help with using the high characters for anything other than ' and " 20:11:52 never heard of UCS-64 20:11:54 Er 20:11:54 AnMaster: ^ 20:11:59 Deewiant, true 20:12:10 Yes, UCS-4 is UTF-32 20:12:17 also the spec says that implementations can do whatever they want above a certain limit 20:12:20 err 20:12:21 ? Well, the 98 spec leaves enough undefined that it is mostly OK with unicode 20:12:25 except it also iirc gives an uper limit 20:12:42 No it doesn't 20:12:46 "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 sure it does 20:12:50 It claims there are no characters above 2,147,483,647 20:12:51 Yeah 20:12:54 Oh, darn 20:13:00 but 20:13:03 Completely forgot about that one 20:13:04 Also, it claims there are characters below 0 20:13:08 Or allows 20:13:18 cpressey, well, funge-space is signed 20:13:26 you could use signed 64 bit IO or something I guess 20:13:29 Yeah, just map everything above 2^32-1 to a negative number ;-P 20:13:58 hm 20:14:06 2^31-1 = 2,147,483,647 isn't it? 20:14:19 doesn't look so random that limit after all 20:14:19 Right, thinko 20:14:50 anyway, a strange limit I agree 20:14:59 but quite esoteric in a certain way 20:15:27 It just seems like Funge-98 was originally specced as 32-bit but then partially updated to allow any bittiness 20:15:47 maybe 20:16:28 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 Hm, q might be deprecatable too, since it only makes sense in concurrent 20:16:59 cpressey, then it would have to be moved to the same fingerprint as t 20:16:59 AnMaster: Yes. Much of y will now be undefined, I think. 20:17:00 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 Ilari: Yes, i and o 20:17:48 cpressey, not much. Just handprint, maybe version number, oh and = op paradigm I guess.., the beglad thingy 20:17:52 that's all isn't it? 20:17:54 Deewiant: That impression is correct, it went to "at least 32-bit" 20:18:19 Which would imply that bignum funge need to have some way to represent bignums in dumps... 20:18:25 Well, handprint and version number are inherently implementation-defined anyway :) 20:18:27 Ilari, not at all 20:18:33 Ilari, since it is dumped to plain text 20:18:47 it is perfectly fine to do %256 20:19:03 at least, that is what I do currently, otherwise it doesn't work even for a 32-bit funge 20:19:08 (Or at least the new fingerprint for those instruction should say that) 20:19:24 cpressey: I'd keep the handprint there, it's amusing if not useful 20:19:38 cpressey, what about allowing #! starting line optionally? 20:20:02 you know, like #!/usr/bin/fbbi or possibly #!/bin/fbbi when funge becomes really popular! 20:20:15 CCBI already implements that 20:20:20 what? 20:20:20 Due to user request 20:20:25 doesn't that break stuff 20:20:35 It's not enabled by default, only if you pass a switch 20:20:37 ah 20:20:44 well that works with no spec modification then 20:20:56 also strange user request 20:20:59 Yes, like most implementation-specific extensions :-P 20:21:14 I can actually not imagine anyone would *request* such a feature like that 20:21:50 Why not :-P 20:22:13 Maybe they wanted to write befunge CGIs 20:24:07 cpressey, yeaaaah, no 20:24:40 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 executing #!/ would result in a division by zero, which could be handled specially :) 20:24:58 with async update of funge space to actually not make it completely grind to halt of course 20:25:50 cpressey, so each would have a local copy and updates would be sent over infiband or such 20:25:52 :D 20:25:54 cpressey: Oh, one char which isn't reserved by Funge-98 is tab, maybe you could use that for something amusing 20:26:01 cpressey: Division by zero is well-defined in Funge-98 20:26:16 Deewiant, tab = 4 spaces wide! 20:26:25 of course scarf isn't here 20:26:33 doesn't he prefer mixed indention iirc 20:26:34 AnMaster: Pushes 4 spaces on stack? ;-P 20:26:48 Deewiant, well, that depends on preferred tab width 20:26:51 Or just "pushes an implementation-defined number of spaces on stack" 20:26:55 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 cpressey, btw iirc ehird said he wanted an n-dimensional funge 20:27:07 that is 20:27:12 cpressey: At least 2, Mycology included 20:27:15 Nefunge 20:27:21 Er, well not as the second instruction 20:27:22 was the name of that experiment 20:27:29 (n-dimensional) 20:27:33 At least 1, for that 20:27:57 cpressey, one that isn't restricted and where a program can go into any dímension it wants 20:27:59 Deewiant: Well, it wasn't a very serious suggestion anyway. 20:27:59 dimension* 20:28:14 so vector length would have to have some different handling for it 20:28:20 should probably be a fungoid though 20:28:43 with something like ",...,z,y,x" 20:28:44 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 vectors become more like hash tables (x: 3, y: 3, z: 3, d4: 3, d5: 3, ...) 20:29:45 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 (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 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 (and not crashing on any input of course, OOM is somewhat excused from that) 20:35:32 What do you mean by extensibility, exactly? 20:36:03 For CCBI I'd say it's: correctness, fingerprint/extension support, speed 20:36:19 Deewiant, "being able to do things like ATHR and what not without going insane" 20:36:45 But no TRDS? ;-P 20:36:47 Deewiant, it is designed with things like ATHR and the better MVRS we considered in mind. 20:37:01 Deewiant, I think that might be possible perhaps. I won't do it though 20:37:04 but feel free to do it 20:37:19 Deewiant, I think it is nearly impossible when combined with ATHR though 20:37:25 since there are no single ticks any more 20:37:29 with async threads 20:38:07 and any command would take some time to register in other threads 20:38:38 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 and IIPC at least need a way to break deadlocks 20:39:00 -!- augur has joined. 20:39:24 Deewiant, so basically, when going for ATHR I made TRDS virtually impossible 20:39:44 Deewiant, do you agree with that? 20:39:51 Baah, I'm sure CCBI2 can manage both ;-) 20:39:59 Deewiant, both used at once? 20:40:08 Deewiant, anyway, remember the ATHR spec is still somewhat in flux 20:40:10 Might as well 20:40:26 I have figured out that some stuff didn't work at all and such 20:40:43 the core parts (not the books thing) is mostly well defined by now 20:41:31 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 there, pushed an update to one of the test cases for ATHR 20:45:42 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 Deewiant, oh and the locking in D will be fun. Does it have a pthreads interface or how is it done? 20:46:36 The runtime implements threads and fibers and whatever 20:46:50 Deewiant, and thread safe hash tables? 20:46:52 Of course I could bind to pthreads but no reason t o 20:46:54 to* 20:47:09 Deewiant, in fact: plenty of reasons *not* to 20:47:19 AnMaster: You mean thread-safe Funge-Space? Probably will have to lock 20:48:05 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 this is required because erlang has no true CAS 20:48:16 being message oriented 20:48:41 and doing every write through a gen_server would be slow 20:49:12 thus, it uses public ets table normally (erlang internally does some locking as required here) 20:49:20 and only serialises it for ATHR CAS 20:49:26 (and it's G/P) 20:49:40 What if you give a negative value as the iteration count for k? 20:49:52 cpressey, well. that's one of the UNDEFs in mycology 20:49:59 cpressey, iirc cfunge and CCBI does different things 20:50:10 I think cfunge reflects and CCBI takes the absolute value 20:50:13 or something like that 20:50:25 No, they both reflect 20:50:28 cpressey, mind you, k currently is unable to execute exactly one iteration 20:50:35 Mycology just tests for absolute value taking 20:50:51 cpressey, based on stuff you previously said/wrote iirc 20:51:19 cpressey, as in 0kab pushes b. 1kab pushes aab 20:51:20 iirc 20:51:33 Deewiant, you better explain the mess he caused and why 20:51:37 I don't remember the details 20:51:37 ;) 20:52:07 I don't remember the details either 20:52:12 ah yes 20:52:21 Basically, k doesn't move past what it executes unless the iteration count is 0 20:52:25 Can't remember why 20:52:27 ah yes 20:52:28 that was it 20:52:39 ? 20:52:41 cpressey, anyway that means that just executing it's instruction once is impossible 20:52:46 Oh 20:53:24 Deewiant, didn't Mike Riley dig up some old cats-eye test suite or something? 20:53:28 There was some issue with all ways of doing it 20:53:34 Oh, it may have been because of that 20:53:40 yes I think so 20:53:52 k is so dumb 20:54:07 cpressey, k is quite useful actually for some things 20:54:11 It should probably be popping the instruction off the stack instead of getting it from the path 20:54:35 cpressey, that would help for nested k 20:54:36 like 20:54:42 >22kk^ 20:54:53 cpressey, tell me where that one goes up 20:55:09 * AnMaster watches cpressey's head explode 20:55:24 cpressey, anyway changing k that way *now* is sure to break things 20:55:40 since people actually use k outside test suites 20:56:15 Please don't mess with k, I'll have to go through mycotrds again :-) 20:56:22 -!- jcp has joined. 20:56:23 Deewiant, you use it there? 20:56:26 poor you 20:56:44 but yeah, changing it now would break sooo much 20:57:01 but perhaps it should be done for the 1k case 20:57:03 so it works 20:57:11 I'm not sure. 20:57:18 So 2k executes three times but 1k once? :-P 20:57:42 Deewiant, no, so that 2k executes 2 times and so on... ;P 20:58:18 I think there are still some strangenesses even with that 20:58:25 Mostly when using strange instructions with k 20:58:30 Can't remember what 20:58:30 Deewiant, anyway I think perhaps there was just a bug in that cats eye test suite 20:58:39 might explain why I never found it elsewhere 20:58:53 Wait, >22kk^ ? 20:58:56 Deewiant, and yes there are some issues with where k^ goes up and so 20:58:59 cpressey, yep 20:59:03 cpressey, figure that out 20:59:34 cpressey, or why not >12345kkj abcdefg 20:59:36 On the first k 20:59:39 that ones looks even funnier 20:59:42 cpressey, wait, what? 20:59:54 "where it goes up" - maybe I don't understand? 21:00:16 cpressey, so everything for nested k executes on the first k? 21:00:33 -!- lament has quit (Ping timeout: 240 seconds). 21:01:02 AnMaster: You probably meant something like >22kk^^^^^^^^^ 21:01:15 Or did you? 21:01:18 AnMaster: k executes in one tick 21:01:22 Deewiant, that doesn't cause any other issues 21:01:28 cpressey, yes. But at which location 21:01:34 AnMaster: I think in CCBI it'll go past the first ^ ;-P 21:01:43 Deewiant, strange 21:01:46 AnMaster: ? Where the instruction is, of course ? 21:01:56 cpressey, so what does: >12345kkj abcdefg do= 21:01:59 s/=/?/ 21:02:07 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 Jumps far to the right... 21:02:23 like 20 cells 21:02:39 I don't understand the argument that we couldn't understand something more intelligent than us 21:02:49 cpressey, so it keeps executing j even after the first iteration of the outer k? 21:02:51 No, like 4+3+2+1 cells I guess 21:02:52 he says a goldfish couldn't understand us, just like we couldn't understand AI 21:02:59 AnMaster: yes 21:03:04 cpressey, notice that there are two k:s there 21:03:05 nested 21:03:05 but it's just an analogy.... what's the justification 21:03:05 cpressey: After the first j, the IP's position will have changed and the inner k sees a different instruction 21:03:26 Deewiant: the tick hasn't expired yet, so the IP hasn't moved 21:03:31 err 21:03:40 Ah, that's an interesting way of looking at it 21:03:45 cpressey, so you mean the jump move is only applied after the tick is done? 21:03:53 yeargh 21:04:07 that will be like impossible to change to in cfunge 21:04:08 "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 cpressey: But it's not moving by its delta here 21:04:28 indeed 21:04:29 I'm sure the 1st IP in the 2nd sentence meant to be "instruction" there 21:04:35 it is being forced ahead 21:04:54 cpressey: E.g. the # instruction: "moves the IP one position beyond the next Funge-Space cell in its path" 21:05:08 I don't think "by its delta" was meant to be prescriptive. the point was that it moves 21:05:12 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 cpressey: I meant that it's not the normal every-tick move, it's an additional move induced by an instruction 21:05:46 Well, if you interpret it like that, k has different and interesting semantics, yes. 21:05:58 cpressey, yep, and I think that is what everyone done so far 21:06:05 which caused quite a lot of issues with k 21:06:11 "reasoning by analogy" seems like a flaw 21:06:12 If you don't interpret it like that you'll be breaking a lot of Concurrent Funge-98 programs as well ;-) 21:06:32 OK, so k will be undefined too. 21:06:39 argh 21:06:43 cpressey, that is going too far 21:06:58 I thought we were defining the undefineds ;-) 21:07:03 yep 21:07:09 k isn't optional 21:07:26 I'm okay with tio= being handled these way 21:07:45 I'm okay with them because you need to ask y whether they're available anyway 21:07:47 OK, then define it in a way that doesn't break any programs. 21:08:04 cpressey, almost impossible, and I'm okay with breaking some programs 21:08:09 for the undef parts 21:08:14 just not too many 21:08:28 Just keep it as it is now and say something about nested k 21:08:30 call it path of least issues maybe 21:08:39 Deewiant, the issue with 1k though... 21:08:42 "something" 21:09:03 Could just disallow nested k. I doubt anyone uses it 21:09:07 cpressey: Well, I prefer my interpretation ;-) 21:09:12 AnMaster: I don't mind that 21:09:30 If you want, define negative arguments as executing exactly that many times ;-) 21:09:52 I.e. for n < 0, k executes the instruction |n|-1 times and doesn't move past it 21:10:03 cpressey, take a look at http://sprunge.us/MbCj?c (cfunge's k implementation) 21:10:34 cpressey, for nested k I think ccbi does something quite different 21:10:37 Special-casing kk? Tut, tut. :-P 21:10:42 Deewiant, yep 21:10:50 CCBI does exactly nothing, it just executes it as normal 21:10:59 Which leads to rather unintuitive semantics 21:11:00 Deewiant, that didn't work out though 21:11:03 Deewiant, exactly 21:11:08 Yes it works out 21:11:09 Deewiant: what does it do instead of moving past it? Act like # 21:11:11 It's just not intuitive :-P 21:11:44 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 Deewiant: So, you'd change the semantics for positive count? 21:12:18 No, for negative 21:12:47 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 Hence 1k has the net effect of executing twice 21:13:06 ooh that is a good idea 21:13:18 My proposal: for negative, execute |n|-1 times, otherwise behave the same. 21:13:19 for negative counts define it to execute and skip over 21:13:35 Deewiant, that's brilliant 21:13:37 Or |n| and skip over, whatever 21:13:41 Deewiant: Oh, I thought you were proposing something that would allow you to execute the instruction exactly 0 times 21:13:45 I'd prefer |n|-1 and not skip 21:13:49 cpressey, oh, 0k does that 21:13:51 cpressey: That's what 0k does 21:13:57 cpressey, I think it was specced somewhere 21:13:58 0k is like # 21:14:01 yep 21:14:04 that was it 21:14:05 Yes, explicitly specced 21:14:21 Wait, I thought that was the problem, that 0kX executed X once 21:14:30 because it follows 0k 21:14:33 No, 0k executes zero times 21:14:35 1k executes twice 21:14:36 cpressey, no the issue is that 1kX executes X twice 21:14:44 The problem is that there is no way of executing once 21:14:47 exactly 21:14:52 Oh, ok. 21:15:16 But yeah, defining the negatives would do it 21:15:19 cpressey, still pretty similar issue. Just somewhat more wtfy 21:15:20 OK, then that mostly makes sense. 21:15:21 :) 21:15:27 My proposal is just general: alternatively all negatives could execute once, if you prefer :-P 21:15:37 still, nested k is a nested can of worms 21:15:54 Yeah, I'm pretty sure nested k should just go undefined. 21:15:55 You're so negative ;-P 21:16:01 Deewiant, hah 21:16:14 (Pun actually not intended) 21:16:24 suuuuuuure... 21:16:39 I realized it at about the same time as you responded 21:17:05 the negative = once, would be somewhat harder to use, not that that is necessarily a bad thing. 21:17:38 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 nor is it automatically a good thing I think 21:17:42 since this is *NOT* intercal 21:21:50 Is the behaviour of ># X Y to execute both X and Y, or just Y? 21:21:50 wtf, I was at the painful end of a static discharge.... against a plastic surface 21:21:54 how could that even happen 21:22:05 Oh, the static is revolting. 21:22:12 cpressey, eh? 21:22:13 hah 21:22:16 the great electron uprising you know 21:22:20 right 21:22:32 cpressey, anyway it would execute X and Y, alternatively break lots of things 21:22:42 Huh. I was pretty sure it skipped X. OK. 21:22:44 well, probably few programs use it 21:22:52 cpressey, well you told us before it didn't 21:22:57 I might have your mail around still 21:23:11 That makes sense, I was misremembering. 21:23:28 cpressey, it does? 21:23:58 cpressey, what email do you use? so I can search for it 21:24:08 oh wait never mind 21:24:15 found a folder called "funge" 21:24:21 it might be related 21:24:51 hm the mail is not there 21:24:52 strange 21:26:02 seems to be some funge stuff in "other" and "misc" and "assorted" too 21:26:16 really should come up with a saner organisation for my email 21:26:18 cpressey: # says "funge-space cell" not "instruction" 21:26:34 As far as implementations go, it's about 50/50. Mycology aborts early on if that executes only Y. 21:26:42 AnMaster: gmail, for several years 21:26:50 ah found the mail 21:28:07 well then due to what Deewiant said it doesn't apply actually 21:28:42 but anyway, the relevant section was: http://pastebin.ca/1810777 21:29:12 k does say "next instruction". 21:30:07 indeed 21:30:16 that makes that a non-issue :) 21:30:24 That might be why I was thnking that 21:31:48 cpressey, fungot and mycology are the largest befunge98 apps I know of 21:31:49 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 shut up ;P 21:32:16 fungot isn't that big is it? 21:32:17 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 (who would want to toast their own land) 21:32:43 also "we are looking to achieve a shorter life span" is pretty funny 21:32:52 forgot where it came from 21:32:59 fizzie explained it before 21:33:14 Something like "go there only if you are looking to achieve a shorter live span" 21:33:26 life* 21:35:17 right 21:35:54 anyway, the befunge turt quine is another semi-major app 21:36:03 s/app/program/ 21:36:11 and then there are a number of smaller testing programs 21:36:45 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 there was that mine sweeper game in 98 that I never finished 21:41:10 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 http://catseye.tc/projects/fbbi/eg/cgi.b98.cgi was supposed to be one 21:43:07 on my current host, I'd need an interpreter written in PHP though 21:45:08 apparently fbbi supports -script to interpret the hashbang line 21:45:31 heh 21:46:42 Hmm, CCBI might've picked it up from there then 21:48:07 I love when I can say "apparently" about stuff I've done 22:01:40 -!- cheater2 has joined. 22:03:05 night → 22:23:16 -!- kar8nga has quit (Remote host closed the connection). 22:25:57 Tia sez: gbhhhh 22:26:41 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 It does not. 23:25:43 :( 23:25:46 It's supposed to 23:25:57 What happens, exactly? 23:26:10 I mean, after the bug in whatchamacallit, the easter egg, is fixed 23:28:14 Oh, I just assumed it didn't because nothing ever works on Windows. 23:28:28 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 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 I try to figure out how to add natural numbers represented as sets 05:21:38 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 yo bitches 05:40:23 ! 05:44:12 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 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 Where element_of={[<#]&>#;not/(not/@)}; 05:48:52 And not=({0}!(0.0))|(0.1); 05:53:56 -!- coppro has joined. 06:03:06 zzo38: you should help work on the formal grammars pages. :D 06:19:37 What formal grammars pages did you mean? 06:20:43 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 http://toolserver.org/~soxred93/pages/index.php?name=Augur&namespace=0&redirects=noredirects 06:22:55 those are the ones i created recently, i also modified the TAG, CCG, and Indexed Grammar pages 06:23:08 you should contribute some stuff regarding some other formalisms 06:24:41 Which ones should I contribute? 06:24:52 anything you want! 06:24:56 just not controlled grammars 06:25:00 since im working on that page 06:25:01 :P 06:25:07 OK. 06:25:24 Unfortunately I don't know enough about formal grammars to write a Wikipedia article 06:29:15 Ah! PHP works now on Hackiki. 06:30:22 thats ok, zzo38, its a opportunity to LEARN about them. :D 06:30:54 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 What does "WOT" means 06:31:24 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 Web of Trust 06:31:27 mywot.com 06:31:30 and then you can go research them, etc. 06:31:45 thats what im doing for the categorial minimalism stuff, and for the control grammar stuff 06:32:03 OK 06:32:06 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 if not, go find info about it and put it up 06:34:02 There's something about Reddit that my computer doesn't like 06:34:03 :( 06:34:13 ok im going to play some wipeout 06:35:04 And I'm on Hackiki now 06:35:08 -!- zzo38 has quit (Quit: zzo38). 06:36:17 redbull is THE official drink of the early Wipeout games. :D 06:36:22 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 i shouldnt be sleeping 07:23:33 :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 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 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 um there is a major distinction: INTERCAL actually _exists_. 12:39:26 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 well, I Wanna Be The Guy _also_ exists, i believe 12:40:20 and i had heard of it (on this channel), so... 12:40:26 it does exist 12:40:52 i am referring to P.D.Q. Bach, who regretfully doesn't (and never did). 12:41:36 -!- FireFly has joined. 12:42:02 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 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 is there any esolang where writing tac would be easier than writing cat? 15:09:48 (in case you don't know, tac is like cat but reverses the order of the lines) 15:10:13 scarf, know any such esolang? 15:20:33 Any stack-based one with only line-based I/O, presumably 15:27:30 -!- cpressey has joined. 15:37:24 If INTERCAL's the PDQ Bach, which one's the Victor Borge? 15:39:38 Deewiant, how so? tac doesn't reverse the stuff inside a given line 15:39:44 it only reverses the order of lines 15:39:59 AnMaster: Thus the restriction for line-based I/O 15:40:16 Deewiant, indeed, but still it would be as simple as doing one read then one write and so on 15:40:18 Although I guess it's still easier to print them out as they come in 15:40:18 after each other 15:40:20 Yeah 15:40:44 so that is not a valid answer to my question then 15:41:49 It mightn't've been in any case, if no such language exists 15:42:20 Deewiant, err "mightn't've"? 15:42:32 might not have 15:42:34 right 15:55:55 AnMaster: Cyclexa would be like that if not for a hack that meant that both ways were equally easy 16:03:07 scarf, hm *looks* 16:03:19 AnMaster: nothing to look at 16:03:24 but it treats memory as a stack 16:03:30 scarf, no wiki page? 16:03:43 no, vapourware 16:03:56 scarf, describe it then, since you obviously know about it 16:04:21 AnMaster: think stupidly generalised regex 16:04:33 uhu 16:04:41 I can't quite imagine what that means 16:40:25 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 /BA(M*)!/ 16:43:27 * AnMaster notes that FILE is too C-dependant 16:43:47 cpressey: well, think of "B" in a regex as meaning "if the current string starts with B, remove it; otherwise fail" 16:43:48 I'm not sure how to implement all of r, w, a, r+, w+, a+ in erlang 16:43:52 some I can do 16:43:56 that's what it means in Cyclexa 16:44:04 now, B^ means "add a B to the start of the current string" 16:44:07 but for some I'm unsure what the hell the distinction is supposed to be 16:45:21 scarf: Sounds kind of like the regex version of an unrestricted grammar (or relatively unrestricted) 16:46:26 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 cpressey, it seems related to positioning of the stream 16:46:50 cpressey: + means both readable and writable 16:47:04 scarf, but then why not rw 16:47:10 and why is there r+ and w+ 16:47:11 and r positions at start, w truncates the file then there's only one position, a positions at end 16:47:17 shouldn't they be eqiv then? 16:47:20 nope 16:47:26 r+ lets you read from the start, or write at the start 16:47:33 w+ truncates the file 16:47:40 but after writing to it, you can read back what you just read 16:47:43 Yay C. 16:47:45 well, that is tricky, I need to manually emulate w+ I think 16:48:25 -!- MigoMipo has joined. 16:49:04 *read back what you just wrote 16:49:04 I've yet to run into a non-eso language that doesn't support those six modes trivially 16:49:14 Deewiant: VHDL? 16:49:24 but then, hello world is awful in VHDL 16:49:48 Deewiant, well there is no "read+write+truncate", I need to do some manual truncate after for that mode 16:49:55 scarf: It's not really a programming language 16:49:57 Deewiant, does mycology test all 5 modes or just some? 16:50:07 Deewiant: what a weird statement 16:50:10 Just one or two I think 16:50:21 Deewiant, how irritating :P 16:50:22 it's just not intended to program computers, which is why it's so different 16:50:25 scarf: Well, I haven't used it 16:50:37 Well yeah 16:50:52 s/eso/eso computer programming/ 16:51:10 I don't see why programming should be restricted to computer programming in general, though 16:51:26 Not in general, but in the context of file I/O... 16:51:38 well, OK 16:51:57 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 (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 Deewiant, interesting mycology result on half-implemented FILE: 17:25:50 BAD: 00S reflected 17:25:50 GOOD: closed file with C 17:25:50 GOOD: reopened file in append+read mode 17:25:54 that loops forever 17:25:57 until ctrl-c 17:25:58 those lines 17:26:14 "Whoops" 17:28:01 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 http://sprunge.us/jjKh 17:28:25 Probably just the S error handler goes to the wrong place 17:29:06 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 hm interesting API 17:32:18 file:position(IoDev, cur) to set the possition to the current one and get the current abs position 17:32:26 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 Deewiant, tell me if you want me to test any fixed version, preferably before I implement S. 17:35:26 which is soon 17:35:44 I can easily break it in a local CCBI 17:36:11 right 17:36:14 no need then 17:37:17 -!- amca has joined. 17:38:16 Deewiant, is FILE byte based or unicode based? 17:38:28 this poll also goes to fizzie 17:38:42 I guess unicode might break fungot's use of FILE 17:38:42 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 AnMaster: The spec says 17:40:45 ah right 17:41:15 Deewiant, does mycology test that? 17:41:24 ^style 17:41:24 Available: agora alice c64 ct* darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube 17:41:25 Probably not 17:41:31 ^irc 17:41:33 I think it just wrote text, not binary 17:41:37 ^style irc 17:41:37 right 17:41:37 Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 17:41:48 Deewiant, testing value above 255 would be a good idea 17:41:56 * cpressey was getting sick of that game 17:41:58 It's UNDEF 17:42:06 no 17:42:07 "# Functions W and R write cells as bytes, any cells containing values greater than 255 will have the top bits stripped. " 17:42:14 from http://rcfunge98.com/rcsfingers.html#FILE 17:42:24 Deewiant, so doesn't look undef to me 17:42:26 Oh, darn 17:42:33 Deewiant, unless he added that after 17:42:38 He did 17:42:40 But anyway 17:43:01 that operation is somewhat confusing 17:43:11 it isn't modulo 256 is it? 17:43:24 Yes it is 17:43:28 right 17:43:36 It says nothing about negative numbers though :-P 17:43:43 You need a special bit stripper to properly strip off the "top bits". 17:45:30 cpressey, har 17:45:40 Deewiant, well lets assume something for them -_- 17:51:37 There's that thing about FILE that you got negative values for bytes >= 128 on some interpreter. 17:51:54 fungot only uses values in the [0, 127] range, doing multibyte values in a base-128 sort of way. 17:51:55 fizzie: that's simple to understand. :p fnord/ news/ fnord/ fnord/ fnord/ fnord, that is). 17:52:53 fizzie: What interpreter is fungot running on? 17:52:54 cpressey: even bawden rees point out in the third argument to dynamic-wind calls a continuation from outside the environment itself... 17:53:22 cpressey: last I heard it was cfunge, and before that rc/funge 17:53:25 but I'm not sure 17:57:11 That's what I heard too 18:02:14 Does it matter that the rcfunge homepage doesnt say what rcfunge is for? 18:02:59 It has the manuals, which do say 18:06:49 heh 18:08:01 amca: that's typical of the rc/funge documentaion 18:08:04 *documentation 18:08:39 Yes, fungot started on RC/Funge, then migrated to cfunge. 18:08:40 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 http://git.zem.fi/fungot/commitdiff/75359446b1d88ef6644b88f3fa879d2f8d683592 was needed to make it work on cfunge. 18:09:46 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 why is my FILE G in cfunge so complex 18:11:17 -!- charlls has joined. 18:11:35 oh it tries to emulate fgets() but treating all of \r \n \r\n as newlines 18:11:36 I think 18:11:58 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 hm maybe 18:13:20 efunge can't yet run it 18:13:37 due to missing SOCK and FING and STRN 18:14:23 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 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 after a few mycology runs 18:14:51 fizzie, s/theological/philosophical/ 18:15:12 I just used to do 'ccbi mycology.b98; rm -f *.tmp' 18:15:21 Deewiant, sure but still 18:16:58 -!- sebbu2 has quit (Ping timeout: 264 seconds). 18:17:52 now why the hell do I have pop_gnirts, push_list and push_gnirtses in efunge... 18:18:07 and for push_list I would need to reverse it 18:21:23 push_gnirts(Stack, String) -> 18:21:24 lists:reverse(String, [0|Stack]). 18:21:34 now that is a wonderful implementation 18:21:37 agree cpressey? 18:22:15 also *watches confusion grow amongst Deewiant, fizzie and scarf* 18:22:35 * cpressey didn't remember a lists:reverse/2 18:23:09 cpressey, oh so you became confused too? 18:23:18 see erl -man lists of course 18:23:59 I recognise it, being used to Prolog 18:24:18 although it's a bit non-obvious what reverse does there, I agree 18:24:55 scarf, well, it reverses the first list then appends the second 18:25:08 gotcha 18:25:09 since it is a BIF it should be pretty well optimised too 18:25:36 (BIF = Built In Function. Means it is implemented (in C probably) by the runtime) 18:26:23 Because the compiler can't recognize and optimize lists:reverse(List) ++ Tail. 18:27:06 That's a bit silly 18:27:15 -!- kar8nga has joined. 18:28:27 cpressey, really? How strange. 18:28:43 I'm being somewhat facetious. 18:28:47 pretty sure it does. It certainly does optimise [H] ++ Tail into [H|Tail] 18:28:54 read that somewhere (official docs iirc) 18:29:31 cpressey, har 18:29:35 It's certainly possible to write "sufficiently clever compilers", but you rarely encounter them in the world at large. 18:30:59 Deewiant, what does G do on EOF? 18:31:05 it seems cfunge reflects on that 18:33:09 I can't tell you anything beyond what the spec says 18:33:21 What's that "b" returned by FILE's G in http://www.rcfunge98.com/rcsfingers.html#FILE ? 18:34:05 Can't remember 18:34:13 Maybe nothing 18:34:43 Deewiant, does mycology assume G trims the trailing whitespace? 18:34:44 err 18:34:48 trailing newline I meant 18:35:07 fizzie, it is number of bytes 18:35:18 that is, the length of the 0gnirts 18:35:24 (excluding the 0 it seems) 18:35:29 Oh. That wasn't very obvious. 18:35:29 Why do you ask me instead of mycology 18:35:41 BAD: G didn't read 'foo\n' 18:35:42 but 18:35:46 dumping it shows it did 18:35:47 huh 18:36:55 * Deewiant awaits the "Deewiant, ^" 18:37:03 oh found it 18:37:23 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 The pit viper falls into a pit. How pitiful. Isn't that the pits? 18:38:52 :-) 18:38:56 fizzie, :) 18:39:18 Deewiant, btw, I think we have another bug with R reflecting causing the program to go to the wrong place 18:39:48 Deewiant, basically look at: http://sprunge.us/IfWW 18:40:22 it is not infinite here 18:40:26 it stops after that point 18:43:18 well at least I got this in: 18:43:22 true = Bytes =< 0 18:43:34 why? Because that way I throw an exception if it isn't true 18:43:48 which means I can move all the error handling for this function to one place 18:44:06 err fix the order of >= 18:44:14 >= 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 What language is this? 19:02:49 Wow, typing the keys on the keyboard feels so light 19:02:53 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 Sgeo: Your fingers get vibrated numb? 19:08:02 It's physically hard pushing on the snow blower 19:08:48 * amca doesnt live where snow falls, so didnt realise 19:09:06 I think the snow blower is crap, tbh 19:10:17 Yes, you should switch to a snow-sucker. 19:13:24 Or perhaps even a snow-melter. 19:14:34 A snow-sublimator. 19:14:55 It blows cool, dry air on the snow, and the snow sublimates into that air. 19:16:06 Or increase global warming 19:17:39 Unfortunately, increasing global warming has all sorts of negative effects... :-> 19:18:19 where is alise 19:18:52 ouch, good point 19:20:45 Won't he be here tomorrow, or is he usually here on Fridays? 19:22:09 idk 19:22:26 he's usually here friday evening 19:22:30 although not most of the day 19:26:59 Is alise still a he? 19:29:44 -!- charlls has quit (Ping timeout: 240 seconds). 19:35:36 Deewiant, pushed the FILE for cfunge (both trunk and supervisor-tree) 19:35:52 What language is this? <-- what language is what? 19:35:59 AnMaster: s/cfunge/efunge/? 19:36:04 Deewiant, err yeah 19:36:06 typo 19:36:17 Whatever language they were talking about? 19:36:29 Sgeo, when? 19:36:36 When I said that 19:37:00 well, then the channel had been idle for a bit over 15 minutes, so none I guess 19:37:32 Well, whatever language they were talking about 15min before I said that, then 19:37:58 Sgeo, befunge and/or erlang 19:38:17 Sgeo, if it was the discussion I was involved in 19:38:26 * Sgeo doesn't even remember 19:38:32 why do you even care then 19:38:33 and 19:38:35 just scroll up 19:38:51 even though it is still on screen 19:38:59 just over half a page ago now 19:39:44 Deewiant, anyway: might be time to update the mycology results page soon. Perhaps include efunge too :) 19:40:03 Deewiant, note that only supervisor-tree has TURT 19:40:11 but in general it is less stable 19:42:34 by the way, funny misreading: 19:42:38 GOOD: 34V is 5 19:42:39 became 19:42:40 GOOD: 34V is 5A 19:42:44 Deewiant, ^ 19:42:45 XD 19:43:45 (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 oh btw, I wonder why CPLI doesn't do polar form 19:46:43 Interestingly, 6.8 ohms is one of the standard values for resistors, too 19:47:03 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 good old E12 19:47:09 just read it in in binary mode 19:47:13 so you get it all on one line 19:47:39 cpressey, oh yeah, probably a hidden message there! 19:49:15 hm, I think this requires a fingerprint ACDC that would implement various electricity related calculations 19:50:17 of course there are more operations than there are upper case letters, especially for AC 19:52:48 cpressey, btw if you are interested in efunge: bzr branch lp:~anmaster/efunge/supervisor-tree 19:53:10 cfunge would be at bzr branch lp:cfunge 19:53:24 (yay for vendor creep, better to say it before someone else does) 19:53:59 (lp: of course is a short hand for https://something.launchpad.net/) 19:55:14 AnMaster: o with that mode removes only trailing spaces 19:56:15 (Well, and trailing newlines / form feeds) 19:56:19 Deewiant, on each line 19:56:40 Deewiant, so while you couldn't check trailing newlines/ff at the end of the file 19:56:53 you could check if it removed spaces at the end of all but the last line 19:57:06 Deewiant, also if FILE was available you could check it fully 19:57:28 (of course, FILE could be intentionally lying if the interpreter detected mycology) 19:57:37 (but that seems rather unlikely) 19:57:58 Mycology doesn't really try to handle being lied to ;-P 19:58:10 true 19:58:32 fizzie, btw, do you use G or just R for your FILE usage? 19:58:56 AnMaster: I think I use G for some of the ^command persistence things, since it was easier there. 19:59:11 (It's a line-based format.) 19:59:36 hm 19:59:49 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 So yeah, I think you could detect it in that way, you're right 20:00:17 Deewiant, yep 20:00:50 fizzie, you see: 20:00:55 "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 and since I (for various reasons) use raw files... 20:01:45 default size for read_ahead is 64 kb 20:01:46 hm 20:01:51 Nothing performance-intensive in fungot uses G, though; just the initial state-loading. 20:01:53 fizzie: aaargh... this bug can't be found that easily... but i probably will 20:02:03 ^style 20:02:04 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 20:02:07 ah 20:02:10 not ct any more 20:02:12 explains it 20:02:40 why doesn't FILE have an option for transparent gzip :/ 20:02:46 that way it would have been trivial in erlang 20:02:56 since there is (for some reason) built in support for that 20:03:00 just a flag to file:open 20:03:27 (doesn't work with read+write of course= 20:03:30 s/=/)/ 20:03:51 ^style nethack 20:03:52 Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal) 20:04:08 fungot, what do you sound like with the nethack style? 20:04:09 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 fizzie, how much would readahead benefit fungot for R though? 20:04:31 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 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 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 That fact about yetis sounds a bit suspicious. 20:05:31 Nurses are trained to touch it. 20:05:38 It's true that some yetis are full of hot air. 20:05:49 ...well, it's the sort of thing that sounds true. 20:05:56 in NetHack, it is true 20:06:42 It seems to be; it's from rumors.tru. 20:08:05 fizzie: I know a lot about NetHack; I can normally guess whether a rumor is true or false 20:08:35 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 What's that cockatrice-related false rumor? 20:08:50 fizzie: you read rgrn? 20:09:00 uorygl: there's one about wielding a lizard corpse against a trice 20:09:09 That sounds like it. 20:09:11 scarf: Yes. In fact, I noticed one of your posts there recently. 20:09:36 There's two others: "A cockatrice corpse is guaranteed to be untainted!" + "A dead cockatrice is just a dead lizard." 20:10:08 why would you read rgrn 20:10:15 even if you did play nethack 20:10:18 Why would you not 20:10:37 * cpressey shakes his head at all of USENET 20:10:39 it's full of sad, sad people 20:11:13 who dedicated their life to nethack, think they're the ultimate authority on it, and actually aren't even very good 20:11:32 rgrn's tactical advice isn't so much bad, as twenty years out of date 20:11:44 but the newsgroup as a whole has been getting better 20:12:15 I also haven't felt the tone to be pompous at all, which is what your description makes it sound like. 20:12:59 the pompous people are the devteam, and they hardly ever say anything 20:14:16 -!- wareya has joined. 20:14:55 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 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 how much are continuous reads? 20:15:08 and how much is random access 20:15:24 with rgrn, who can tell? 20:15:26 There's not much continuous reading at all. 20:15:39 ah well 20:15:47 fizzie, you don't use t do you? 20:16:18 in NetHack, it is true <-- how can yetis be full of hot air 20:16:26 as in, what does that actually mean for playing 20:16:33 AnMaster: it means, that if you eat one, you might be full of hot air 20:16:38 which is the message for gaining cold resistance 20:16:43 aaah... 20:16:57 AnMaster: No t there, right. 20:16:58 if they weren't full of hot air, they'd be hurt by the cold 20:17:07 and that seems wrong for yetis 20:17:10 fizzie, hm. 20:17:41 The messages are always so punny; your health currently feels amplified for shock resistance. 20:18:08 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 Mhm, maybe not; the sub-interpreters (bf, ul) are pretty slow, after all. 20:19:28 indeed 20:19:33 -!- MigoMipo has quit. 20:19:42 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 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 That's a strange thing to say. 20:19:59 fizzie, ATHR isn't done yet 20:20:22 If you really want to be enterprisey, find a use for TRDS 20:20:24 parts of it works 20:20:28 Deewiant, har 20:20:28 What's better than time travel, after all 20:20:45 -!- MigoMipo has joined. 20:20:52 Deewiant, well, why not have 2 time dimensions 20:20:56 that sounds even better 20:21:03 two or more of course 20:21:08 Go ahead and spec it then ;-P 20:21:16 Deewiant, first tell me what the hell that even means 20:21:32 ooh wait, maybe like having the third dimension be the time dimension 20:21:52 so trefunge but every tick creates a new layer and move all ips there. 20:22:00 but then something-something to travel in it 20:22:17 Deewiant, what about that ^ 20:22:40 You were doing okay until the "something-something" 20:23:04 hah 20:23:10 In any case, rgrn is one huge bundle of pleasantness compared to unmoderated comp.lang.c. 20:23:11 I can't work out the something-something 20:23:22 fizzie, rgrn? 20:23:35 rec.games.rougelike.nethack? 20:23:36 rec.games.roguelikes.nethack 20:23:41 right, almost 20:23:47 Or is it roguelike 20:23:48 Whatever 20:23:51 AnMaster: Yours is in fact more right. 20:23:56 fizzie, more right? 20:24:00 so it isn't right either? 20:24:09 Well, it is right. 20:24:11 ah 20:24:15 The hamming distance is lower for mine 20:24:16 But it is also more right than Deewiant's. 20:24:24 -!- charlls has joined. 20:24:26 Unless a swap is cheap 20:24:31 err 20:24:36 what? 20:24:37 Or is it hamming distance 20:24:41 Edit distance, whatever 20:24:48 Edit distance from what? 20:24:56 From rec.games.roguelike.nethack 20:25:02 to what? 20:25:06 Oh, right, I completely unsaw AnMaster's typo. 20:25:12 indeed I didn't notice it either 20:25:14 rec.games.rougelike.nethack and rec.games.roguelikes.nethack 20:25:23 How can people not notice these things :-P 20:25:37 Deewiant, I can't spot it reading quickly 20:25:41 how can anyone spot it 20:25:47 the different length is harder to miss 20:26:15 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 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 "NRGR"4( 20:26:51 for low swappedness it is hard to notice even 20:26:58 I can read it often enough, yes, but I still notice every typo 20:27:05 cpressey, what the heck would that do ^_^ 20:27:13 cpressey, as in, spec it! 20:27:42 -!- amca has quit (Quit: work). 20:28:02 cpressey, possibly it should make it so that the IP can have it's stack values identified on exit? 20:28:20 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 YAFM and YAAD? 20:28:57 Deewiant: Yet Another Funny Message, and Yet Another Annoying Death. 20:29:01 fizzie, YAFAP? 20:29:05 Alright 20:29:11 AnMaster: Yet Another First Ascension Post. 20:29:15 ah 20:29:17 AnMaster: Generally you should call F only once. :p 20:29:37 fizzie, I never posted my first ascension 20:30:00 -!- coppro has joined. 20:30:12 It's a bit debatable if it's "Yet Another (First Ascension) Post", or "Yet Another First (Ascension Post)". 20:30:18 If the latter, you could do it even later. 20:30:25 fizzie, how so? 20:30:33 oh right 20:30:40 misunderstood what "later" was relative here 20:31:09 I didn't post my first ascension :( 20:31:28 You could even post a YAFAP-2 of some non-first ascension, followed by a YAFAP-1 of the first ascension. 20:31:31 I haven't ascended so I'm still good 20:33:02 Deewiant, how far have you reached? 20:33:06 in nethack 20:33:12 Mooz has a YAFAP in rgrn, for those who remember/know the person. 20:33:26 Not far 20:33:32 Can't remember 20:33:41 It's not very special, but first ascensions aren't so often. 20:34:04 I've completed the quest once. 20:34:51 I don't think I've got as far as receiving it 20:35:03 Deewiant, work harder at it! 20:35:13 It's not exactly a priority for me ;-P 20:35:28 You finished ADOM and Angband and everything else too? 20:35:55 it used to be difficult to ascend 20:35:57 now it's quite easy 20:36:00 step 1. ignore rgrn 20:36:04 step 2. join #nethack 20:36:17 step 3. play on NAO and ask people for help when necessary 20:36:36 That's hardly proper 20:36:53 -!- daef has joined. 20:37:13 hi there 20:37:23 Hello. 20:37:26 just played around with brainf*** the first time 20:37:53 threw together a bunch of characters that output the current cell in decimal 20:38:04 so if the current cell holds the value 123 20:38:15 it output's "123" (the three characters) 20:38:33 Now write a program that does the same thing except without messing up any other cells. :P 20:38:41 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 About how long is it? 20:39:06 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 uorygl: it messes up nothing - but it needs the next 9 cells to be empty (clear's them by itselve) 20:39:15 !bf ,[.,]!Hello, world! 20:39:30 uorygl: you know that's impossilbe 20:39:36 where's EgoBot? 20:39:39 ^bf ,[.,]!Hello, world! 20:39:39 Hello, world! 20:39:48 Of course. 20:39:52 ++++++++[>++++++++<-]>[-<++>]<----- // schreibt die zahl 123 in die erste zelle 20:39:55 >[-]++++++++[>[-]<[->+<]>-]<<<<<<<<< // lschen der nchsten zellen 20:39:57 never mind that, where's alise? 20:39:58 [->+<]>[>+<-<+>]>[>>>>>[->+<]>+<<<<< // der eigentliche code 20:40:00 ++++++++++<[->>+<-[>>>]>[[<+>-]>+>>] 20:40:03 <<<<<]>[-]>[-<<+>>]>[-<<+>>]<<]>>>>> 20:40:05 [<<<<+++++++[-<+++++++>]<-[<+>-]<.[- 20:40:08 ]>>>>>>[-<+>]<-]<<<<<<< 20:40:27 first line writes 123 20:40:33 second line clears next 9 cells 20:40:43 oerjan: I don't know either, I'm worried 20:40:55 following 5 lines do the work, clean everything up and set the pointer back to the initial 123 20:41:15 You finished ADOM and Angband and everything else too? <-- no 20:41:19 but slash'em of course 20:41:39 >_< 20:41:54 hi oerjan 20:42:00 IVAN. 20:42:08 daef: it looks relatively standard, and there's nothing obviously wrong 20:42:13 kk 20:42:25 what does the [>>>] do? seeing an unbalanced loop makes me suspicious, as that code shouldn't really need one 20:42:34 thought there must be a easier way to do it 20:43:02 -!- cheater2 has quit (Ping timeout: 246 seconds). 20:43:06 scarf: well, there are of course a million possible innocent explanations *knock on wood* 20:43:06 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 ah, ok 20:43:30 needed for my version of an if(is_zero... 20:43:35 division in BF is painful 20:43:40 didn't know anything better 20:43:50 my first approach was this one (works!) 20:44:00 >>[-]>[-]>[-]>[-]<<<<<:clear 20:44:00 [>->+<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]+:code 20:44:00 <[>[-]<[-]]>[<<+<[<+>-]>>>-]<<<<<-]> 20:44:00 [-]>[<<+>>-]>[<<+>>-]<<< 20:44:01 I'm pretty sure there's a better division algorithm on the Esolang wiki. 20:44:03 there's an article on brainfuck algos on our wiki 20:44:11 [[e:Brainfuck algorithms]] IIRC 20:44:15 my second one is this one 20:44:16 >>[-]>[-]>[-]>[-]<<<<< 20:44:16 [->>+<-[>>>]>[[<+>-]>+>>]<<<<<]>[-]> 20:44:16 [-<<+>>]>[-<<+>>]<<< 20:44:20 umm, http://esolangs.org/wiki/Brainfuck_algorithms 20:44:24 second one got the unbalanced loop 20:44:34 hi AnMaster 20:44:46 but it's much shorter and doesnt dup around the values from a to b,c and back... 20:44:48 there's a division algo by Calamari there that only needs four temporaries 20:44:59 i need five... damn 20:45:00 :) 20:45:09 and which is balanced 20:45:27 where can i find it - so i can study it? 20:45:37 at the link above 20:45:41 w8 20:45:46 i only need 4 20:45:54 cells 0 and 1 are the values 20:45:58 Darn, I forgot to finish speaking. 20:45:59 IVAN. 20:46:04 2 and 3 get the result 20:46:07 It is an iter vehemens ad necem. 20:46:14 4 and 5 are tmp 20:46:22 where 4 always stays zero 20:46:38 so i only "invent" cells 2345 20:46:43 that are 4 tmp cells 20:47:53 i cannot find a link... *scrollscroll* 20:48:46 http://esolangs.org/wiki/Brainfuck_algorithms 20:48:49 there, I've repeated it for you 20:48:51 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 the version on the wiki much looks like my first approach 20:51:51 but my second one is definetly faster 20:52:06 the first one may optimise better, because it probably optimises into polynomials 20:52:11 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 scarf: what do you mean? 20:57:35 daef: some BF interps are less naive than others 20:57:39 and some can be very fast indeed 20:57:57 generally speaking, a highly optimised BF interp is faster on balanced loops than unbalanced loops, due to the "polynomial optimisation" 20:59:49 okay 21:00:05 so i now translated the version from the wiki: 21:00:07 >>[-]>[-]>[-]>[-]<<<<< 21:00:07 [>>+<<-]>>[<[>>+>+<<<-]>>>[<<<+>>>-] 21:00:07 <[>+<<-[>>[-]>+<<<-]>>>[<<<+>>>-]<[< 21:00:07 -[<<<->>>[-]]+>-]<-]<<<+>>] 21:00:12 I'm not sure if we have any BF optimisation experts here, though 21:00:25 alise knows a bit about it, but he's missing atm 21:00:26 and this one is my first approach: 21:00:27 >>[-]>[-]>[-]>[-]<<<<< 21:00:27 [>->+<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]+ 21:00:27 <[>[-]<[-]]>[<<+<[<+>-]>>>-]<<<<<-]> 21:00:27 [-]>[<<+>>-]>[<<+>>-]<<< 21:00:39 not quite identical 21:00:43 they really look nearly the same :) 21:00:55 the algo looks different, although that might just be an illusion 21:01:20 just watched them @ work - seen to work quite the same way 21:01:58 my last two loops are just to get the results in the place i want them 21:02:07 so they dont really "do" anything 21:03:03 I'm not sure if we have any BF optimisation experts here, though <-- as in bf compiler optimising 21:03:10 yes 21:03:10 or as in golfing bf code? 21:03:15 um, compiler optimising 21:03:17 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 I know some of the compiler optimising stuff 21:03:27 neither Calamari nor Keymaker's here, though 21:03:28 lifthrasiir is the expert on it 21:03:28 cpressey: that's it 21:03:33 scarf, ^ 21:03:34 and then change loops into multiplications 21:03:39 AnMaster: ooh, right 21:03:42 scarf: OK... but I don't see what's "polynomial" about it :) 21:03:45 scarf, remember esotope-bfc 21:03:48 Oh, ok 21:03:52 cpressey: because the multiplications turn into more multiplications 21:03:56 and you end up with polynomials 21:04:04 scarf, quite 21:04:33 Hrm. It's 9 PM in ehirdland. 21:04:38 Wonder what's up? 21:04:47 pikhq, this looks like dire news indeed 21:04:58 AnMaster: ? 21:05:10 pikhq, about ehird not being here at this time 21:05:21 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 cpressey, ? 21:07:31 cpressey, I don't quite get the reference 21:08:30 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 . 21:10:24 daef, anyway, what is the optimising stuff you need help with there? 21:11:44 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 however I don't think it ever optimises to integer division, because that is very tricky 21:12:11 multiplication yes 21:13:02 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 in principle you could turn it into a lookup table, since it uses a finite number of cells :D 21:13:47 oerjan, interesting idea 21:14:01 (assuming finite cell size of course) 21:14:04 oerjan, wouldn't it grow exponentially or such? 21:14:12 oerjan, also input 21:14:23 superexponentially probably... 21:14:25 but a given piece of linear code 21:14:30 oerjan, oh true 21:14:39 AnMaster: there is no point in optimizing across input 21:14:44 imo 21:15:06 oerjan, sure there is, of course not for that cell 21:15:09 but for other cells yes 21:15:22 -!- charlls has quit (Read error: Connection reset by peer). 21:15:37 you probably want to shift input and output to early and computations to late 21:15:49 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 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 meaning that likely it will just end up as s nop 21:17:41 AnMaster: sry 21:17:48 was sunk in the code from the wiki 21:17:55 ah, no problem 21:17:59 trying to translate it to as much highlvl i can 21:18:05 to understand what he really does 21:18:12 complete code... 21:18:14 hmm 21:18:14 AnMaster: put ,[>,][<] in front? :D 21:18:29 um ,[>,]<[<] 21:18:32 containing the code to clear - which is not needed in this example - i guess 21:18:58 oerjan, also it was on irc, would need to remove the [daef] prefix from it 21:19:02 -__ 21:19:04 -_-* 21:19:29 AnMaster: oh, you're planning to run in-between on it? 21:19:32 AnMaster: silly you, [daef] at start of program is a comment 21:19:34 (what a weird name for a bf interp, btw) 21:19:51 oerjan, it might infinite loop since [] is a loop 21:20:00 AnMaster: at the start of the program, it's a header comment 21:20:03 scarf, it made sense at the time 21:20:07 nothing runs, because the current cell is 0 21:20:07 AnMaster: http://pastebin.com/raw.php?i=w9wQAmGJ 21:20:14 scarf, yes but look, it was split over multiple lines! 21:20:17 daef, thanks 21:20:21 np 21:20:51 err wth, that ends up like this: 21:20:55 >[-]++++++++[>[-]<[->+<]>-]<<<<<<<<< 21:20:57 when wgetting 21:21:03 lawl 21:21:08 complete fail of "raw" 21:21:12 tr is your friend 21:21:15 -!- MigoMipo has joined. 21:21:24 daef, it aslo has a doctype and some headers 21:21:26 or maybe lynx 21:21:37 can't it convert HTML to plaintext in batch mode? 21:21:39 * AnMaster copy pastes 21:21:58 fail... 21:22:09 ah yes, lynx -dump file.html 21:22:17 daef, the code produced: http://sprunge.us/EQhd 21:22:19 i pasted the raw because i thought it should be ease to fetch from the shell 21:22:24 sure, that one wasn't perfect 21:22:34 daef, I dare say esotope-bfc will manage better 21:22:37 How about esotope-bfc or whatever the better one was 21:23:07 http://sprunge.us/DURO is esotope 21:23:41 A bit better 21:23:58 Deewiant, butp[-6] += ((7*p[-5])-1); 21:24:00 is pretty wtf 21:24:08 unneeded () there 21:24:08 the second one fits on my screen :) 21:24:13 AnMaster: Yours gets it as well 21:24:16 p[-5]+=255 + 7*p[-4]; 21:24:30 <3 sprunge 21:24:32 lol 21:24:35 where's that from? 21:24:36 Deewiant, yes but mine doesn't use that extra () around that expression 21:24:39 ahh 21:24:41 i see 21:24:48 AnMaster: esotope obviously brackets every expression 21:24:54 that's for the number to ascii 21:25:01 (Binary expression) 21:25:02 daef, in your original code? No clue. both of those do things like sort the instructions and merge them 21:25:02 i guess 21:25:05 and expand loops 21:25:07 and what not 21:25:14 I note that esotope doesn't optimize non-relatively-addressed cells into locals 21:25:14 daef, basically there is no way to tell what comes from where 21:25:29 That would be hard, but not impossible 21:25:32 what is in my original code? 21:25:38 daef, what? 21:25:51 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 what do you mean by that? 21:26:03 sry - english isn't my mother tongue 21:26:25 daef, I mean, the compilers reorders stuff like: >>+<<+ into +>>+<< then into [0]++ [2]++ 21:26:27 and such 21:26:38 okayokay 21:26:39 daef, and sometimes move instructions to the other side of a loop 21:26:52 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 when it doesn't matter 21:27:05 and what i see 21:27:07 ^show hello 21:27:11 hm? 21:27:12 ^show 21:27:12 echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble 21:27:15 ^show hw 21:27:15 >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+. 21:27:23 ffs 21:27:34 since i've always seen bf as "current cell" - i've seen "moving the pointer costs time" 21:27:54 but when you "compile" it with absolute adresses 21:27:55 here is another (same?) hello world: 21:27:56 >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-] 21:27:57 <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. 21:28:00 that doesnt count 21:28:18 daef, and that code produces this: http://sprunge.us/gbXQ 21:28:25 now that is impressive isn't it? :) 21:28:34 i see 21:28:36 :) 21:28:42 not bad 21:29:22 why can't it compile my code to s("123");? 21:29:28 it's static too 21:29:44 as long as there is no "," it should always be possible 21:29:56 daef, sure, but it doesn't do full tracing 21:30:01 k 21:30:10 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 then figure out dead stores 21:30:17 No; so long as there is no "," and it doesn't halt, it is possible. 21:30:19 Erm. 21:30:21 It does. 21:30:25 pikhq, well yeah 21:30:29 It's impossible to prove whether or not it halts. 21:30:39 sry - that's correct 21:30:42 old problem... 21:30:46 daef, I can tell you the issue with your 21:31:01 should have known that :D 21:31:06 do { 21:31:06 p[1]=p[0]; 21:31:06 p[0]=0; 21:31:06 p[1]+=255; 21:31:06 p+=1; 21:31:07 } while (p[0]); 21:31:09 there 21:31:15 daef, that is an unbalanced loop 21:31:32 yes - it is 21:31:47 daef, I think it maps to [>[-]<[->+<]>-] 21:31:52 what my code does 21:31:59 when the first cell is 123 21:32:01 and well, unbalanced loops are tricky to get right 21:32:03 it expands it to: 21:32:12 123,3,2,1,3 21:32:18 where the last one is the length 21:32:24 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 then it outputs the 1 21:32:37 123,3,2,2 21:32:40 * pikhq waits on clang -O3 -S LostKng.c. 21:32:44 since in general there isn't much you can do. Sure if it is a constant one at the start... 21:32:47 Curious what code you get out of that. 21:32:50 pikhq, from esotope? 21:32:53 the nice thing about BF is to let your code move along the data 21:33:05 AnMaster: Yeah. 21:33:10 so unbalanced stuff can make things very interesting - in my opinion 21:33:26 pikhq, well not sure. I think mine managed a few things esotope didn't in lostking, and the vice verse 21:33:41 daef, sure, but it inhibits optimisation 21:33:56 sure, you could try to track if you could figure out if it was a constant 21:33:59 AnMaster: I'm curious what assembly is made. ;) 21:34:02 but that is somewhat hard still 21:34:22 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 but i've never built a complete AST 21:34:29 pikhq, I'm curious as to ram usage. I certainly never managed to compile it with gcc locally 21:34:36 pikhq, I used tcc to test that it was valid c 21:34:54 AnMaster: That's because GCC uses *massive chunks* of RAM for compilation. 21:34:57 daef, in bf? impressive! 21:35:03 AnMaster: NO 21:35:04 pikhq, indeed. 21:35:06 *g* 21:35:09 daef, ah, still not too bad 21:35:10 AnMaster: in C# :D 21:35:11 Clang is about as good at C compilation and optimisation, and doesn't use chunks of RAM. 21:35:22 Also, only took a couple of minutes to compile. 21:35:26 daef, well I'm happy I didn't write it 21:35:37 I coded C# and well.... it's better than C++ certainly 21:35:40 but that is all I can say about it 21:35:45 and made a boolean-tester too - so you could test "2>1" 21:35:50 (and I hate C++) 21:36:01 with and,or,xor,constants,comparison... 21:36:03 pikhq, what specs? 21:36:13 pikhq, sempron 3300+ with 1.5 GB RAM here 21:36:23 pikhq, system runs at 2 GHz 21:36:24 it was a quite straightforward piece i wrote because school was boring for a few hours 21:36:51 AnMaster: Phenom II X3 710, runs at 2.8 GHz. 21:36:51 mhm 21:36:52 4 GB RAM. 21:37:00 Only one core in use, of course. 21:37:02 pikhq, quite a lot faster then 21:37:20 pikhq, what? why no parallel compilation? 21:37:26 it should be possible 21:37:40 to do local optimisations on different halves 21:37:43 AnMaster: ... *Single file*. 21:37:46 pikhq, yep 21:37:57 It's theoretically possible, but not done by any compiler. 21:38:00 pikhq, nevertheless I think it should be possible once you built the AST 21:38:06 hm 21:38:25 Because the big gains are gotten from telling Make to run multiple compilers at once. 21:38:33 true 21:38:52 pikhq, reminds me of a sad thing. erlang's build system broke at make -j2 21:38:56 which is pretty sad considering 21:39:23 (it was trying to run the erlang compiler before the runtime was completely built) 21:40:08 That is pretty dang sad. 21:40:22 pikhq, yeah, I think it was only with some rare configure options 21:40:30 and damn hard to reproduce 21:40:44 one should think a trivial language should be easy to optimize - but it doesn't seem so... :) 21:40:45 so I blame autotools 21:41:02 daef, well, brainfuck is a lot easier to optimise than befunge certainly 21:41:09 befunge is self modifying after all 21:41:10 and 2D 21:41:23 AnMaster: read about it a time ago i think 21:41:32 fast interpreters yes, and fizzie was working on a JIT compiler for it 21:41:40 fizzie, did you give it up? 21:41:42 or what happened 21:47:38 i just re-read http://de.wikipedia.org/wiki/Befunge - now i like it :D 21:47:59 is that 93 or 98? 21:48:02 93 isn't TC 21:48:09 due to finite space 21:48:14 98 can be TC 21:48:22 AnMaster: w0ot? 21:48:37 TC = turing complete 21:48:44 daef, there are two major versions of befunge: befunge-93, the original, Befunge-98 the newer one 21:48:51 kk 21:48:57 I mainly dealt with befunge-98 (implementing it twice) 21:49:01 what's the difference in the definition 21:49:10 pretty large ones 21:49:19 http://catseye.tc/projects/funge98/doc/funge98.html 21:49:22 is the spec for 98 21:49:24 AnMaster: You forgetting bashfunge? 21:49:26 is is quite massive 21:49:36 Deewiant, intentionally. It was 93+a-bit 21:49:45 Still more than 93 21:49:55 94,32 at most 21:50:02 94.32* 21:50:09 :-P 21:50:50 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 Deewiant, remember, it's funge-space was 200x*, that is 200 wide but infinite high. No negative funge-space 21:51:06 daef, 98 can have non-limited cell size 21:51:16 AnMaster: kk 21:51:20 daef, one of the implementations I wrote is bignum 21:51:26 Unlimited cellsize and space 21:51:35 (And stack, yes) 21:51:38 daef, of course, in practise that will never be TC on any real computer 21:52:21 AnMaster: that's clear 21:52:30 but i thought cell's were limited in the spec 21:52:33 from what i've seen 21:52:56 daef, not exactly no. Or rather, for the "size of cells" value returned by y I return -1 21:53:01 it seems to work fairly well 21:53:13 The spec doesn't allow nor disallow it 21:53:19 also the plan is to allow it for befunge-111 21:53:33 and since it isn't forbidden currently it's fine 21:53:33 i have to read the whole spec when i'm awake 21:53:47 daef, there are some inconsistencies in it 21:53:57 that is one of the reasons we are planning befunge-111 21:54:10 cpressey here is the author of previous befunge versions 21:54:20 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 cpressey: nice work! 21:54:48 *sigh* 21:54:57 Why does glibc suck so much? 21:55:10 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, aims to truly move Befunge into the realm of distributed HPC" 21:55:39 I have a program that literally *just uses a system call* that still links in 624k of library if statically linked. 21:55:41 this of course scares me 21:56:03 pikhq, start files? 21:56:10 pikhq, or what is going on 21:56:32 AnMaster: 624k of libraries for the function "syscall". 21:56:34 AnMaster: what's ATHR? 21:57:02 daef, a fingerprint (loadable extension) for befunge-98 that provides async threads. It is work in progress 21:57:24 pikhq: Is that why my ghc binaries are always at least ~500k? 21:57:31 daef, the goal is to be able to make full use of multiple CPU cores. 21:57:39 kk 21:57:49 cpressey: No, GHC doesn't try to statically link against glibc. 21:57:51 daef, of course this is pretty insane. But then what isn't :) 21:58:12 GHC statically links against all Haskell libraries and the Haskell runtime. 21:58:17 (note: not in 6.12. 21:58:17 ) 21:58:22 AnMaster: as long as it works - it's not insane - it's genious 21:58:24 pikhq: Ah well, bloat by any other name... 21:58:32 daef, well parts of it works, parts do not 21:58:33 (might also be true if something MIGHT work - once...) 21:58:38 yet 21:59:01 daef, http://sprunge.us/MUQO is the work-in-progress spec 21:59:11 Hackiiiiiiiiiiiiiki 21:59:27 I need a favicon for Hackiki 21:59:33 Gregor, hi there. Fix egobot and hackego 21:59:36 Gregor, both are down 21:59:36 :( 21:59:41 Dobleve te efe 22:00:10 that was an interesting reaction 22:00:20 -!- EgoBot has joined. 22:00:41 -!- HackEgo has joined. 22:00:58 ah 22:01:11 AnMaster: how should i imagine - two threads - asynchrounously- altering their codebase with p-commands 22:01:19 completely unpredictable result i smell 22:01:25 Anywho 22:01:29 Hackiiiiiiiiiiiiiki 22:01:31 I need a favicon for Hackiki 22:01:44 daef, with some medicine against headaches nearby perhaps? ;P 22:02:42 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 after all, most parts apart from the books/mutex thingy works already 22:03:50 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 daef, huh? 22:04:05 i have to catch some sleep for tomorrow 22:04:07 mhm 22:04:13 have fun 22:04:22 heh I noticed I had forgot I wrote this: 22:04:25 nice place here - might come back to idle a bit :) 22:04:29 "The "extended ISBN numbers" mentioned may be any number in the range valid for 22:04:29 the Funge cells. For bignum funges this means the library is clearly Hilbert's 22:04:29 Library." 22:04:37 what an incredibly lame joke 22:05:00 worst part is of course that I wrote that myself 22:05:05 dave hilbert - the mathematician? 22:05:25 daef, yeah, by analogy to the "hilbert's hotel" 22:05:41 that is used to demonstrate what is meant with infinites 22:05:48 and infinites of various sizes 22:06:10 i never studied - so i've never HEARD about him - just remeber him from screwing around through the intertubes... 22:06:10 http://en.wikipedia.org/wiki/Hilbert%27s_paradox_of_the_Grand_Hotel 22:06:35 daef, well, without a decent amount of math that may not be quite as fun 22:06:54 define: a decent amount of math 22:08:15 one day I want to go to that hotel 22:08:58 MissPiggy: and ask everyone for a penny? 22:09:04 MissPiggy: you're in it! This planet and all its celestial bodies are room number 1. 22:09:11 Er, and all its artificial satellites. 22:09:12 MissPiggy, quite. Anyway that is a strange way to solve "Infinitely many coaches with infinitely many guests each" on wikipedia 22:09:19 The Moon is room number 2. 22:09:29 Room number 3 is still under construction. 22:09:53 I mean, it already exists, fully constructed. But we're not sure which one it is yet. 22:10:24 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 then load them all back into one coach 22:10:43 now it is reduced to a problem you already solved above 22:10:44 :) 22:10:45 That's an efficient way to do it. 22:10:57 What's Wikipedia's way? Powers of prime numbers? 22:11:06 uorygl, something like that 22:11:25 "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 uorygl, it also seems to suggest some other ways 22:11:53 "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 4935 of coach 198 goes to room 4199385 of the hotel." 22:12:01 That is a strange way of doing it, especially since it puts multiple guests in room 15. 22:12:04 which is a solution I haven't seem before 22:12:41 uorygl, how? 22:12:47 uorygl, oh that isn't 5n 22:12:51 that is copy failure 22:12:54 it is 5^n 22:12:54 Oh. 22:12:56 and 3^n 22:13:00 And p^n. 22:13:04 yes 22:13:10 blame firefox and/or xchat 22:13:27 I elect to blame you instead. But anyway. 22:13:39 That's a slightly less strange way of doing it. 22:13:41 uorygl, I reflect that blame so you take the whole of it 22:14:04 I also reflect the blame, so it forms a standing wave in the resonant cavity between us. 22:14:40 (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 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 There's a whole infinity less hotel than was claimed! 22:20:58 pikhq: heck, there's even a whole infinity _times_ less hotel than was claimed 22:21:23 So there is. 22:21:53 There's an entire logarithm... um... infinitely less amount. 22:22:03 uorygl: no there isn't! 22:22:06 cantor's theorem 22:22:20 Hmm. 22:22:34 "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 (today's Befunge-111 spec excerpt) 22:23:00 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 Well, let me rephrase that. 22:23:30 cpressey: You probably want "sum of" there 22:23:37 uorygl: um not if you use von Neumann representation, i think 22:24:04 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 Also, I think that's the first time I've ever heard Hilbert referred to as "Dave". 22:24:28 I like. 22:24:35 uorygl: right, like the rationals 22:24:45 Exactly. 22:24:58 there isn't a _well-ordered_ such set, though 22:24:59 Wait, how do I know that the rationals are such a set? 22:25:15 uorygl: because i said so, silly 22:25:28 Because every countable ordinal number is the limit of countably many ordinal numbers. 22:25:34 Whew. Disaster averted. 22:26:02 uorygl: um that's not the argument i know, and i don't see how that helps 22:26:35 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 Deewiant: Yes. Thanks. 22:26:46 especially since, if it's a successor ordinal, you have to include itself in the limit 22:26:59 Well, if it's a successor ordinal, it's obvious. 22:27:05 Take the previous ordinal and stick one more on the end. 22:27:30 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 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 Oh, so you can just take the enumeration and pick a rational number for each element. 22:28:33 uorygl: hm that might work 22:28:49 yep 22:29:57 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 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 hm ... yeah 22:31:26 *starts 22:31:28 So. I am now a constructive proof that omega^omega can be embedded in the rationals. 22:32:11 uorygl: you need a constructive way to pick a counting, though 22:32:18 (which exists, of course) 22:32:31 You are now a constructive proof that omega^omega is countable. 22:32:50 ^^^^^^^^^^^^^^^^^^^ 22:32:54 Actually, you're an enumeration of omega^omega. 22:32:58 I am now confused by your anthropomorphism. 22:33:41 zygohistomorphic anthropomorphism? 22:34:00 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 Now I am an axolotl. 22:34:13 *elements in cantor normal form 22:36:44 hm, you can identify that with the natural numbers by using the products p_n ^ m 22:36:55 p_n = n'th prime number 22:37:06 q.e.d. 22:37:26 oerjan: you're an enumeration; you're supposed to start stating numbers. 22:37:26 *products of 22:37:34 o.k. 22:38:28 n should start at zero so we get omega^0, m should start at 1 22:39:27 Have you stated an ordinal number yet? 22:39:33 0, 1, omega, 2, omega^2, omega + 1, omega^3, 22:40:30 3, omega*2, omega^2 + 1, omega^4, omega + 2, 22:40:37 0 -> 0 22:40:38 1 -> 1 22:40:39 omega -> 2 22:40:43 2 -> 1/2 22:40:46 omega^2 -> 3 22:40:59 omega+1 -> 2 1/2 22:41:06 omega^3 -> 4 22:41:08 3 -> 2/3 22:41:18 omega*2 -> 2 2/3 22:41:32 omega^2 + 1 -> 3 1/2 22:41:35 omega^4 -> 5 22:41:46 omega + 2 -> 2 3/5 22:42:02 This could get tiring. 22:42:19 omega^5, omega^3 + 1, omega^2 + omega, 4, omega^6, 22:42:35 yes it could :D 22:42:51 I should come up with an actual mapping. 22:43:13 well my counting is clear enough, anyway 22:43:44 Okay, I'll describe the second half of the mapping first. 22:45:53 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 basically whenever p1/q1 and p2/q2 are neighbors, the next between them is (p1+p2)/(q1+q2), iirc 22:46:50 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 come to think of it, i'm sure this (and the resulting tree) has been discussed on this channel before 22:49:10 Hey, you described my algorithm a second before I described mine. 22:49:45 "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 (today's Befunge-111 spec excerpt) 22:49:46 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 huh? 22:49:47 On a scale from "lame" to "inhumanly terrible", how lame is http://hackiki.org/favicon.ico 22:49:49 *think 22:50:09 Gregor: lame. 22:50:25 If your scale also included "perfect", it would be that. 22:50:31 But I'm violating the rules just by saying so. 22:50:34 Gregor: i was hoping for something with an axe in it 22:50:47 ... with ... an axe? 22:50:52 oerjan: start at 0, and initially do nothing but add or subtract 1. 22:50:53 for hacking, of course 22:51:27 AnMaster: What "huh" 22:51:33 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 Deewiant, I don't get what the point of that bit is 22:52:14 I mean, I understand what it means once adding the missing "P" 22:52:43 Missing "P"? 22:53:01 Anyway, he defines what a path is. There is no point beyond that in that excerpt. 22:53:16 Deewiant, missing of I meant 22:53:22 Deewiant, but what is a path? 22:53:26 and why do we need it 22:53:26 oerjan: oh, that's very true. 22:53:30 What he defined 22:53:36 Deewiant, why do we need it though 22:53:48 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 aha 22:54:07 Though the median-thingy of -1/0 and 1/0 is 0/0, not 0/1. 22:54:11 That probably makes sense. 22:54:32 oh hm 22:54:52 so you'll need to include 0/1 at the start, then 22:54:57 uorygl, what are you doing there dividing with zero!? 22:54:58 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 without a limit 22:55:10 AnMaster: i suggested it 22:55:17 AnMaster: / doesn't mean division here! 22:55:20 oerjan, why and what does it actually mean 22:55:29 It means tuple. 22:55:53 AnMaster: a "formal" fraction, to start enumerating the rest of the rationals in any way you want 22:56:01 uh, don't you usually write that (x_1,x_2,...,x_n)? 22:56:09 what's a formal? 22:56:12 uorygl, ^ 22:56:13 what does formal meahn 22:56:21 Yes, but we're writing it x/y instead of (x,y). 22:56:24 MissPiggy, "not informal" 22:56:29 what does it mean 22:56:31 I'm guessing "formal" means "pretend" in this case. 22:56:34 MissPiggy: it has the form of a fraction, but not the meaning? 22:56:35 MissPiggy, "not not formal" 22:56:42 stop it anmaster 22:56:46 this is a serious question 22:56:50 har 22:56:52 There, that's what it means. Having the form of a fraction but not the meaning. 22:57:01 okay thank you 22:57:23 oerjan, are you doing cantor's zig-zag thingy? 22:58:01 AnMaster: no, this is a different way, which can be adapted to put _any_ countable ordered set into the rationals 22:58:10 oerjan, oh? 22:58:47 oerjan, what is this way called? 22:59:00 AnMaster: i'll try to find the wp article 22:59:12 that works too I guess 23:00:52 http://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree i think 23:02:12 Construct a binary search tree out of the set. Map it onto its Stern-Brocot tree. 23:02:30 Just for kicks, I thought I'd write enough of a libc to support LostKng.c 23:02:31 oerjan, cantor's zig-zag is a lot easier to follow 23:02:47 AnMaster: for enumerating rationals, yes 23:03:34 oerjan, indeed 23:07:22 write down a rational, then interpret the resulting ASCII string as a base-256 numeral 23:07:28 fuck cantor 23:08:29 how crude :D 23:08:41 fuck cantor he was insane and a liar 23:08:45 set theory is false 23:09:11 I have disproved cantors "theorem" using magic sequences 23:09:36 explain 23:09:44 there are no sets. there is just a vast sea... of cantor trolls. 23:10:36 well some cranks, too. 23:11:00 they are indistinguishable by the fundamental quantum principle known as poe's law. 23:11:12 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 in fact several symmetries will interchange them, such as turning the sea upside down. 23:12:23 oerjan: Which Poe is that named after? Edgar Allen? 23:13:09 Billy Dodifur Poe 23:13:17 *Dodifer 23:13:38 cpressey: it is hard to determine that, because the law is metacircularly self-applying 23:15:53 ah there _is_ a poe's law named after edgar allan too 23:16:10 * pikhq can has LostKng in 92K. 23:16:17 (note: after UPX) 23:18:28 Hmm. Any idea how much memory LostKng actually needs? 23:18:31 write down a rational, then interpret the resulting ASCII string as a base-256 numeral fuck cantor how crude :D <-- wonderful 23:19:15 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 pikhq, no. Try massif? 23:19:50 or unary 23:19:51 -!- scarf has quit (Remote host closed the connection). 23:19:55 two symbols - digit and separator 23:20:04 AnMaster: massif? 23:20:06 **/*** 23:20:09 Wassat? 23:20:10 fuck teh worlde? 23:20:12 pikhq, valgrind --tool=massif 23:20:27 AnMaster: LostKng. 23:20:38 I want to know how many *Brainfuck cells* it needs. 23:20:38 pikhq, yep. But if compiled to C 23:20:43 oh I see 23:20:49 pikhq, well, add a counter 23:20:50 And I don't want to play *every branch of the game*. 23:20:52 with a max value 23:20:56 ah okay 23:21:10 I still don't want to play *every branch of the game*. 23:21:27 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 Need a BF abstract-interpreter 23:22:11 pikhq, eh? 23:22:25 AnMaster: I've got the C code from esotope-bfc here. 23:22:27 pikhq, it won't help past a unbalanced loop 23:22:35 pikhq, an* 23:22:37 I'm wondering if it even *uses* relative memory accessing. 23:22:50 If it doesn't, then I can just grep for the largest number used. 23:22:53 Yeah, I'm thinking, abs interp of BF is kind of hard for unbalanced loops 23:22:56 pikhq, it does 23:22:59 pretty sure it does 23:23:30 AnMaster: LostKng after optimisation of it through esotope? 23:23:45 I at least didn't *see* any. 23:23:56 pikhq, do you know what to look for? 23:24:04 pikhq, see how it works 23:24:06 at the top 23:24:16 iirc it uses a pointer p as "current" or such 23:24:28 that's what in-between does 23:24:47 so that gives a[2] = 2 23:24:50 as abs 23:24:50 and 23:24:56 p[3] = 2 as relative 23:25:07 Oh man. Deewiant: Does mycology test for y's ability to perform "pick"? I sure hope not. 23:25:18 cpressey: Yes, it does. 23:25:31 AnMaster: It uses "p" as a pointer to the array and does everything in terms of it. 23:25:34 cpressey, of course it does. And it's a useful feature 23:25:39 pikhq, there you are then 23:25:40 It doesn't rely on it though 23:25:53 pikhq, as soon as it move p you change the relativeness 23:26:03 So, I can look for actual modification of p. 23:26:16 pikhq, there will be a lot 23:26:31 Yup, it actually modifies p. 23:26:33 Well, then. 23:26:43 of course it does 23:26:44 No guarantees. 23:26:59 It doesn't have to. 23:27:18 There's only 645 modifications of p in the program. 23:27:19 Deewiant: Um, given that y can push a variable number of value onto the stack, ... how does it work??? 23:27:28 pikhq, similar for in-between iirc 23:27:34 around 700 or so I think there 23:27:43 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 Deewiant: Crikey! OK... 23:28:06 -!- MizardX- has joined. 23:28:18 Which is a reasonable assumption, although I suppose some OS might allow messing with a program environment variables behind its back 23:28:23 program's* 23:28:26 Deewiant, EVAR? 23:28:32 AnMaster: "behind its back" 23:28:34 Deewiant, I dread EVAR + ATHR + y 23:28:38 30,000 it is, then. 23:29:04 I suppose some interpreter might also modify its own environment variables randomly but... meh 23:29:30 Deewiant, oh and gdb to mess with the env vars 23:29:58 "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 Or at least, a very undefined corner: 16-bit cells. 23:30:30 -!- MizardX has quit (Ping timeout: 260 seconds). 23:30:30 AnMaster: Yeah, I suppose you're right 23:30:35 -!- MizardX- has changed nick to MizardX. 23:30:48 cpressey, they are forbidden iirc 23:30:48 cpressey: Any size works decently well 23:30:56 oh wait, 2 23:30:57 hm 23:31:07 cpressey, well I suggest -1 there for "bignum" 23:31:14 since well, we don't have "infinity" 23:31:21 Mycology requires at least 10 bits though, since it's so big 23:31:21 I also like how "infinity" is mentioned, but not how to represnt it. 23:31:34 cpressey, there is no MAX_BIGNUM 23:31:35 If you have a floating-point Funge? 23:31:43 thus I suggest -1 for bignum 23:31:55 for floating point: I pitty those programmers 23:32:03 pity* 23:32:06 who have to code in it and who have to use it 23:32:12 Deewiant, with extra t 23:32:26 Mycology would probably run fine with a floating-point Funge 23:32:38 Deewiant, depends on precision 23:32:49 Yes, of course, a 1-bit wouldn't work. 23:32:54 Deewiant, also division would give strange results 23:33:20 Yes, it would 23:33:33 For certain values of "strange" 23:34:00 Deewiant, strange as in "mycology would probably bail out early on if division didn't produce expected results 23:34:03 " 23:34:10 Maybe 23:34:20 Can't remember if it tests floored division 23:34:22 Probably does 23:35:34 night 23:36:42 -!- MigoMipo has quit (Remote host closed the connection). 23:41:32 -!- MigoMipo has joined. 23:43:28 Hooray, ridiculously small LostKng. 23:52:37 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 It might not be very user-friendly to have y return a 32-gigabyte cell value, though. 23:53:17 16 gigabytes, I mean. 23:54:03 Why would a bignum have a maximum value? 23:54:34 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 A number that takes 32 GB is a very big number :P 23:57:25 Gregor: Only 16 GB! I miscalculated there. 23:57:36 (One of the bits of the limb count is used as a sign bit.) 23:57:45 A number that takes 16 GB is a very big number :P 23:59:09 Well, unless you want to reserve the description "very big" for Graham's number and his friends. 2010-02-27: 00:00:13 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 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 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 http://www.solidcolorneckties.com/index.cfm/fa/items.main/parentcat/30607/subcatid/73650/id/422493 Need 03:26:35 get it, immediately 03:27:41 I don't actually know how to tie a bow-tie :P 03:27:51 Fix that. 03:28:24 yes! 03:33:53 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 clearly it's solid as opposed to liquid, here 03:37:53 the white plasma neckties never really caught on 03:37:56 food -> 03:39:06 fish-bowl bow ties, eh? 03:40:30 I have gas-color neckties. 03:40:38 They're clear, inflatable plastic. 03:41:17 awesomes 03:41:24 sounds like something for a rave 03:41:30 I wonder how the light would act... 03:51:30 Oh no ... 03:51:34 They only have it in pre-tied :( 03:51:36 That's so much lame. 03:52:39 like a clip on 03:52:44 clip-on? 03:53:59 I assume so 03:55:26 I'm not sure if it's worth it now :( 03:59:00 ...make your own? 04:00:03 Make my own ... bow-tie ... 04:00:42 seems plausible 04:00:46 why not? 04:31:39 -!- oerjan has quit (Quit: Good night). 04:39:44 -!- zzo38 has joined. 04:39:49 GAME OF SPIDER-WEB IN DARK!! 04:45:12 zzo38: Caching isn't broken, it just doesn't know that your script uses randomness. 04:45:31 Gregor: Is there a way to disable caching though, in the header output or something like that? 04:45:57 zzo38: See zzo38: http://hackiki.org/wiki/features.caching 04:46:01 Just so you know, I have made some kind of fix to the script. 04:46:04 http://hackiki.org/wiki/adventure_ideas 04:46:17 Select the [AGAIN] link for another random 04:47:29 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 Would that work? 04:47:54 Just touch a file if you use randomness. 04:48:16 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 O, so I would just use touch on the current file, then? 04:49:20 Should I write: touch('bin/'.$filename); 04:49:34 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 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 Good point :) 04:50:30 -!- madbr has joined. 04:51:40 Like, if I could do "headers\nnocache\n\n" if you programmed Hackiki to support a function like that 04:51:44 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 Well, simply to make Hackiki complete, of course. 04:55:07 :P 04:55:18 Hackiki is supposed to be /simple/ :P 04:55:51 Yes, simple, but it should be complete, too. (Will setting a cookie do it?) 04:56:51 O, and feel free to edit my list of adventure ideas for Furryscript now that it is on Hackiki. 04:57:47 I read the cache description, does "same everything" include cookies? 04:58:20 I'm setting it up as a header. 04:58:33 OK 04:58:34 No, it doesn't, the scripts can't (currently) read cookies. 04:58:43 OK, thanks 04:59:02 Gregor: Not true. They can read them with Javascript. 04:59:03 ;) 04:59:07 furryscript? 04:59:07 Besides, if it included cookies then the cache would border on useless. 05:05:31 zzo38: If a page sets the header X-Hackiki-Cached: No, then it won't cache. 05:54:16 byeee 05:54:17 -!- Oranjer has left (?). 05:59:04 Given a magical HTTP server that can set the URL of the client anytime it wants, what would you do? 06:00:00 In terms of AJAXiness 06:00:50 n/m 06:16:37 -!- MizardX has quit (Ping timeout: 276 seconds). 06:19:27 It's strange when people say that they've disproved a theorem. 06:19:58 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 (Speaking of inconsistency, my past participle of "prove".) 06:20:30 they just "disproved," you know. 06:20:33 Any of the above. 06:21:11 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 It's pretty much what I thought and/or remembered. 06:30:32 Skolem's paradox. 06:30:49 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 No; an "uncountable set" in the model is really just a set where the enumeration is not in the model. 06:35:10 OK. I can set the header X-Hackiki-Cached 06:35:27 I have noticed that header when using netcat to connect to Hackiki. 06:36:28 Hay, it works! Thanks 06:38:39 And about disproving a theorem, well, there are many ways to do it. 06:40:43 I have a proof that I am the pope! 06:41:12 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 Q.E.D. 06:41:57 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 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 You just don't understand proof by contradiction. :P 06:43:03 if you're perfect, there's no oddity 06:43:34 if your argument follows proof of contradiction structure, then you've just proved that 2+2≠4 06:43:35 so nothing can be both odd and perfect same time 06:43:53 er. 2+2≠5 06:43:58 Proof by contradiction that 2 + 2 = 4: 06:44:10 Suppose 2 + 2 != 4. This contradicts the fact that 2 + 2 = 4. Therefore, 2 + 2 = 4. 06:44:36 uorygl: That's like self-reasoning, isn't it? 06:44:58 I object, I'm using the integers modulo 3 and it only goes up to 2 06:45:14 clearly 2 + 2 = 1 06:45:22 I agree. 2 + 2 = 1. 06:45:30 OK, sorry. I guess that's reasonable. But you have to specify, because otherwise it is not assumed!! 06:45:35 4 is just an ugly way of writing 1. 06:46:06 四 06:46:59 does turing's incompleteness theorem mean you're not allowed to use proofs by contradiction? 06:47:27 lament: As far as I know, it doesn't *always* disallow it, at least. 06:47:33 Turing has an incompleteness theorem? 06:47:37 godels 06:47:39 same thing 06:50:01 Well, why would it mean that? 06:50:24 A proof by contradiction doesn't say "if this were true, ZFC would be inconsistent". 06:50:37 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 Did you know, that spider-web in dark is a good way to stop the war? 06:52:51 lament: it just says not everything is provable, right? 06:53:18 (I am not familiar with goedel's theorem so much, btw) 06:53:23 Well, there are two of the theorems. 06:53:36 Yes it is right not everything can be provable 06:53:37 there are certainly provable things, in the rendering I'm familiar with 06:53:47 I think the first one says that any sufficiently powerful consistent theory has statements that are true but not provable. 06:54:04 The second one says that if a sufficiently powerful theory has a proof of its own consistency, it is inconsistent. 06:54:35 good summary 06:55:32 You know, I once saw some argument that went like this: 06:56:28 Can you add an axiom to TNT that proves its own consistency? 06:57:47 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 Which is a really, really dopey argument, because the Goedel statement is not false for all theories. 06:58:15 (Even if "theory" means "theory capable of expressing arithmetic", as I glossed.) 06:58:22 zzo38: well, what's TNT? 06:59:21 TNT = Typographical Number Theory 07:00:17 TNT + "TNT is consistent" is almost certainly consistent. 07:00:35 OK. I guess I thought so 07:00:36 The theory X where X = TNT + "X is consistent" is not consistent, I think. 07:00:49 OK 07:02:49 A cute theory is ZFC + "ZFC is inconsistent". 07:02:58 OK 07:03:12 Gracenotes :D 07:04:19 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 Maybe. I am just confirming that I read it and don't have a disagreement of it 07:06:09 A cute response is OK + "OK is inconsistent". 07:06:10 * uorygl coughs. 07:06:12 Do you know how to add natural numbers represented as sets? 07:06:19 To what? 07:06:21 OK + "OK is inconsistent" 07:06:28 Aww, how cute! 07:07:12 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 Hmm... 07:07:47 zzo38: whats your definition of successor there 07:07:59 successor={#|[#]}; 07:08:05 because succ {} = {{}}, and succ {{}} = {{},{{}}} 07:08:07 The successor of X is X union {X}, I'm sure. 07:08:23 Yes, that's the same thing I just wrote, but in words 07:08:49 ok so then if 0 = {}, then succ {} = {} u {{}} = {{}}, such {{}} = {{}} u {{{}}} = {{},{{}}}, etc. ok, i see. 07:09:06 Yes 07:09:24 im used to seeing it be succ x = {x,{x}} 07:09:30 * uorygl straightens out his mind. 07:09:48 Okay. X + Y is X union {X + y : y is in Y}, I think. 07:10:12 OK, let me think about that a bit 07:10:39 i think your definition is fine 07:10:54 each number is the set of all numbers below it 07:11:06 augur: Yes, that's the usual way 07:11:13 And is the way I am using 07:11:15 It's a recursive definition, of course. 07:11:18 yes 07:11:19 thats what i just said :P 07:11:38 I know 07:11:43 ok then 07:14:08 And how should a pair be represent as a set? 07:14:20 (x,y) = {{x},{x,y}} 07:15:01 OK, that seems to work. I can add it into the esolang wiki page [[Hyper Set Language]] 07:15:28 Hmm. I found some philosophy forums online. 07:15:31 Reading them makes me ill. 07:16:32 I think one post said that the philosopher is a minus sign or phallus seeking Sophia. 07:17:06 The poster ought to have been banned on sight for saying anything so vacuous. 07:18:22 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 (0,0) is the same as 1. 07:20:00 And (0,1) is the same as 2. 07:20:07 And there are no other noteworthy equivalences. 07:20:41 Sorry, I think I made a mistake. Let me look again 07:20:47 Maybe I am a bit tired 07:21:02 Or maybe not. 07:21:05 Let me see again 07:21:42 Maybe I did or didn't make a mistake. Well, I will think of it tomorrow today I sleep 07:21:55 uorygl: I understand you, though. 07:22:18 Now figure out how to make a linked list. 07:22:21 Hint: it's really easy. 07:22:50 Yes, I can figure out, it is easy. 07:23:16 Just like the right part of the pair is the next pair of the list, isn't it? 07:23:39 Right. 07:24:11 You have Cartesian products and tagged unions. With those, you can implement ADTs. With those, you can implement... a lot. 07:26:39 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 Yes I can see, you can implement a lot. 07:27:44 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 In ZFC, there is no set of all single element sets of single element sets. 07:29:57 Now I have to think how to make the definition of sum you wrote, in Hyper Set Language. 07:30:00 Call that set S; it would have to have {{S}} as an element, which is not allowed. 07:30:55 OK, I understand. Of course, ZFC is not the only set theory 07:31:15 There is also another set theory I have read about on Wikipedia that allows the set of all sets 07:31:22 That sounds like NF. 07:31:35 I want to see a type theory thingy based on NF. 07:34:03 Yes, NF was the one I was thinking of. 07:36:43 -!- zzo38 has quit (Quit: Riichi.). 07:43:56 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 popquiz 08:15:40 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 BEHOLD http://en.wikipedia.org/wiki/Controlled_grammar 10:49:30 augur, that term reminds me of "controlled substances" 10:49:45 ;D 10:49:47 which explains a lot about linguistics :P 10:50:05 controlled grammars are almost exclusively CS. 10:50:14 i just posted that article tho. 10:50:21 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 also a lot of "citation needed" in various parts of it of course 10:52:30 the whole thing is basically from the two cited links. 10:53:04 augur, aha! no _notable_ sources then! 10:53:13 (or something) 10:53:24 it was incredibly hard to find information on any of these formalisms 10:54:04 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 s/other/ 10:54:29 s/\//\/\/ 10:54:32 aaargh 10:54:38 XD 10:54:44 s/\/$/\\/\// 10:54:46 err 10:54:48 not even that 10:54:49 hahahahaha 10:54:51 s/\/$/\\\/\// 10:54:52 even 10:54:57 I think that might be correctr 10:55:01 correct* 10:55:02 now we know how to get anmaster stuck in an infinite loop :D 10:55:10 augur, or I just do: 10:55:24 /other/s#$#/# 10:55:25 there 11:22:07 -!- kar8nga has quit (Remote host closed the connection). 12:05:15 ^source 12:05:15 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 http://en.wikipedia.org/wiki/Minimalist_grammar 12:50:20 :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 thus making me think that my STRN in efunge was silently dropping a letter 13:45:47 spent about 10 minutes debugging that before I found out the cause 13:54:35 ouch 13:57:33 exactly 13:57:36 hi scarf btw 14:01:10 wow, security update for sudo, you don't get those often 14:01:50 local privilege escalation, as well 14:02:03 saw it and updated 14:03:11 yep, it isn't exploitable with the default config, though 14:03:22 -!- oerjan has joined. 14:03:53 scarf, well, my config is close to default iirc 14:04:22 basically, the bug is that if you grant permission to arbitrary people to edit a particular file via sudoedit 14:04:34 then arbitrary people can run an exectuable named sudoedit in any directory 14:04:52 which they could have written themselves 14:05:13 if you aren't granting permission to sudoedit particular files, everything's fine 14:05:38 I never used sudoedit 14:06:23 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 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 hmm, interesting 14:07:11 those are quite security sensitive so... 14:07:15 su should be incredibly simple, shouldn't it? call out to PAM to verify auth, suid to whatever user that it 14:07:16 *is 14:07:21 sudo is quite a bit more complex 14:07:28 scarf, PAM would need to be verified 14:07:30 as well 14:07:34 yep 14:07:43 I think proving PAM correct is more interesting than proving su correct 14:08:00 yep 14:08:15 and that depends on the actual pam config in use too 14:08:48 but you could probably at least prove each module correct 14:09:07 and the framework itself I guess 14:09:31 if you have doen that, proving any specific setup correct shouldn't be too hard 14:10:40 -!- BeholdMyGlory has joined. 14:10:50 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 ooh, darcs 2.4 is out 14:33:44 a darc time for humankind 14:43:26 -_- 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 Where's alise? 16:23:13 haven't seen him this weekend at all 16:23:13 I'm worried 16:23:29 hello 16:23:36 -!- Sgeo_ has changed nick to Sgeo. 16:24:05 I would like if alise came on 16:33:35 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 Deewiant, would using opaque values in SOCK break anything do you think? 16:50:53 for mycology or other apps 16:51:12 Mycology prints them, at least 16:51:16 hm okay 16:51:57 Deewiant, it doesn't for the FILE handles iirc 16:54:55 So it doesn't 16:54:58 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 so 16:55:36 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 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 Deewiant, didn't you complain about that too some time ago? 16:58:33 might have been about ncurses API using macros 16:58:47 That's not really the fingerprint's fault, though 16:59:03 Deewiant, well, it could have used another abstraction... 16:59:20 Sure, but it specifically wanted to be a curses binding :-P 17:00:12 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 aahhh seems to have found it 17:00:38 long live full text search with man 17:00:44 man 7 socket has it 17:00:54 "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 who would run a funge program as root heh 17:04:59 I love FerNANDo 17:06:28 Actually on Linux that means having CAP_NET_ADMIN... 17:06:58 Well, that capability is enough to make total mess of networking, but.. 17:07:51 Ilari, true, but in my experience capabilities are rarely used 17:07:57 it's usually root or nothing 17:08:09 sure, the support is there but few use file caps or such 17:10:29 scarf, why did you quit? :( 17:10:36 We were having so much fun in IRP#IRP 17:10:42 asiekierka: before you could correct your mistake 17:10:58 the funny thing is, I didn't even swap the mouse buttons just to confuse you 17:11:07 Please enable IRP interpretation capabiities in #esoteric. 17:11:07 I've had them that way round for a while, because the left one is unreliable 17:11:20 asiekierka: nothing says I have to interpret IRP queries here! 17:11:37 -!- asiekierka has set topic: 0 days since last topic change | 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 Please enable IRP interpretation capabiities in #esoteric. 17:11:50 >:D 17:11:54 -!- AnMaster has set topic: 0 days since last topic change | 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 asiekierka: you can't just cahnge the topic like that 17:11:59 as in, it doesn't work 17:12:04 the topic isn't a binding contract 17:12:17 (nor would putting "this topic is a binding contract" in the topic work, not even against Agorans) 17:12:18 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 | 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 whoopies 17:12:34 missed your next message 17:12:41 Sgeo: I love your reasoning there 17:12:49 -!- asiekierka has set topic: 0 days since last topic change | 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 | 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 There is a 1024 byte limit on URLs 17:13:57 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 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 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 | 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 Will that work, scarf? 17:14:14 AnMaster: But do they matter? 17:14:19 asiekierka: err, no 17:14:29 and stop messing with the topic 17:14:31 scarf, this is reality in Second Life 17:14:32 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 | 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 scarf, http://wiki.secondlife.com/wiki/User:Kelly_Linden/lsl_hacks 17:14:44 Deewiant, well, out of band data can't be received with that API then 17:14:46 FFS with the topic 17:14:58 Sgeo: probably 17:15:13 this reminds me of the whole concept of a client-side website 17:15:16 Deewiant, not that that bit matters in practise. SO_DEBUG can't be done either 17:15:18 which works vaguely P2Pishly 17:15:23 I want to make an esolang about video tapes 17:15:27 Deewiant, reuseaddr can be done, haven't yet checked the other ones 17:16:18 AnMaster: For example SO_DEBUG, how can you do "socket debugging" through the SOCK API anyway? 17:16:29 Deewiant, good point 17:16:42 So these kinds of options you can just ignore 17:16:47 Deewiant, anyway: so_reuseaddr, so_keepalive and so_broadcast seems supported 17:16:50 the other ones: not 17:17:30 any ideas how could a magnetic medium (VHS tapes, audio cassettes...) -based esolang work 17:17:37 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 they are even completely different erlang modules 17:18:17 oh dontroute exists too it seems 17:18:46 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 And how do you plan on setting MSG_OOB through the SOCK API? 17:20:52 -!- kar8nga has joined. 17:20:54 Note: I have no idea what out-of-band data is 17:20:56 Deewiant, impossible afaik 17:21:08 which means that feature will be inaccessible 17:21:23 Deewiant, anyway the remote endpoint could send out of band data I guess 17:21:27 and yeah I have no clue what it is either 17:21:31 It basically means ignore out-of-band data if it's disabled 17:21:47 Deewiant, I can't get at out of band data with the erlang api it seems 17:21:48 at all 17:22:16 (which indicates it is rarely used) 17:23:34 Deewiant, it seems related to the URG TCP (or possibly IP?) flag 17:23:39 For TCP, OOB data generally maps to the URG flag/pointer. 17:23:44 right 17:23:56 Arr, I blame the slowish N900 keyboard. 17:24:08 But it's not much used. 17:24:13 right 17:25:02 Telnet uses it for sending some things, I think. 17:25:07 mhm 17:27:11 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 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 at least that is the plan 17:27:27 and for FILE it is already the case (since FILE is implemented) 17:34:44 AnMaster: Explicitly disallowed or implementation-defined? 17:36:14 Deewiant, explicitly undefined behaviour 17:36:42 which means using a handle from another thread could map to nasal demons 17:38:19 Aye. 17:39:33 you could have a separate thread to handle handles 17:39:38 and all the other threads call out to it 17:41:57 scarf, well of course 17:42:24 Deewiant, also the spec allows that handle 1 in one thread might be different from handle 1 in another thread 17:42:28 in efunge this is the case 17:42:40 and sock might have overlapping handles with file too 17:43:11 anyway, I wish it could be done as opaque socket objects 17:43:34 but really, it is currently more pain that it is worth. 17:44:21 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 it should be fairly straightforward though 17:50:39 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 It is, don't know how 17:52:02 See the source of things like GMail :-P 17:52:35 Sgeo: We call it "AJAX". 17:53:12 Is there a way to do it without .. that XML function thingy? 17:53:12 I don't 17:53:19 ait that's not submitting a form is it? 17:53:20 Yes, again don't know how 17:53:29 can javascript POST as well as GET? 17:53:29 It only has XML in the name. 17:53:37 It has jack shit to do with actual XML. 17:53:49 Was about to say that it has cross-browser issues, but I know the browser being used 17:54:06 MissPiggy: I'm fairly sure it can 17:54:08 I think javascript can POST a form yes 17:54:12 Actually, I don't off the top of my head, but I can check 17:54:24 Is there a way to do it without .. that XML function thingy? <-- You can use an iframe 17:54:27 a bit ugly, but works 17:54:35 otherwise XHR would be the only way, AFAIK 17:54:45 XMLHttpRequest is supported by pretty much everything but IE 6. 17:54:56 (Need to use the nearly-equivalent XMLHTTP for that) 17:55:31 And yes, you can post with it. 17:56:15 pikhq, no it isn't 17:56:26 pikhq, for example: lynx, links, w3m 17:56:34 afaik none of them supports XMLHttpRequest 17:56:46 yes but you can only do a POST to your own server 17:56:47 AnMaster: XD 17:56:48 elinks might, though. 17:56:51 I think what I'm using is essentially Gecko 17:56:53 it is not possible to post to another server is it? 17:56:54 pikhq, *maybe* 17:57:13 what if you wanted to post to another server 17:57:35 "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 Sgeo, why? 17:58:01 MissPiggy, I think POST via JS is quite impossible atm, dunno about HTML5 17:58:17 Hm, misunderstood what it was saying 17:58:28 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 using XMLHttpRequest that is 17:58:51 I thought that was part of the point of it. 17:58:56 same domain or something 18:00:31 FireFly: XMLHttpRequest allows it. 18:00:48 uh, cross-site I meant* 18:00:49 -!- SimonRC has quit (Ping timeout: 265 seconds). 18:00:55 As does the spec. 18:03:29 what about iframes? 18:03:46 I imagine you could GET from a different server using an iframe 18:03:51 but what about POSTing? 18:06:31 You could use JS to click on a button in the iframe? 18:07:06 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 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 I didn't ever see the spam-links so I couldn't take a look at what they did exactly. 18:15:47 fizzie: It was. 18:16:01 I wget'ted it and poked around. 18:16:05 Nasty bit of work. 18:16:38 Was it XHR-driven? 18:16:45 -!- fxkr has left (?). 18:16:49 Think so. 18:17:27 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 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 with some javascript 18:18:50 so it used a real form and submitted it 18:18:57 using javascript 18:26:00 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 hi there again 19:47:20 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 daef, what is that hack btw? 19:48:08 daef, I hope it is all legal too 19:48:17 otherwise I don't want to hear about it 19:49:11 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 so we found where the signal comes from 19:50:03 no no no this sounds bad 19:50:15 it sounds fun xD 19:50:20 we do no harm 19:50:24 we destroy nothing 19:50:32 i guess it files under "okay" 19:51:24 nevermind 19:51:43 what's the best way to understand belonge-app's that go further than hello world? 19:52:01 i've seen the game of life implementation on the german wikipedia 19:52:10 it looks really bad :) 20:08:22 -!- MigoMipo has joined. 20:20:20 daef, "belonge"? 20:20:24 did you mean befunge? 20:20:34 sry - braindead 20:20:44 daef, and the GOL in befunge, well I haven't traced it myself 20:20:48 s/belonge/befunge/g 20:20:49 but you would try to trace it 20:21:06 if it is the famouse 93 one it shouldn't be completely impossible 20:21:16 where do i get a nice visualising interpreter`? 20:21:18 of course befunge-93 tends to be as compact as possible 20:21:23 due to the limited space they had 20:21:29 wich was 25x80 20:21:35 err make that 80x25 of course 20:21:39 already read that 20:22:04 daef, befunge-98 programs have 2^32*2^32 at least, and thus tend to be a lot less compact :) 20:22:09 as for visual interpreters, no idea 20:22:13 Mooz had a very nice "syntax-highlighted" bit of Befunge(-93, mostly); coloured blocks with comments for each colour. 20:22:14 but it should be possible to write that 20:22:26 Unfortunately I don't think that thing is in the web any more. 20:22:30 a interpreter shouldn't be that hard 20:22:36 (for 93) 20:22:37 daef, befunge93? trivial 20:22:41 befunge-98 is hard 20:22:42 however 20:22:50 an 2dimensional IP, a stack - ready 20:22:52 just use the trace output from an existing interpreter with that feature 20:23:04 daef, and various commands operating on those 20:23:08 sure 20:23:09 anyway. 20:23:09 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 lol 20:23:39 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 fizzie: the longer the wand the better. 20:23:58 cfunge can produce output like: 20:24:00 tix=0 tid=0 x=26 y=15: > (62) 20:24:01 tix=0 tid=0 x=27 y=15: : (58) 20:24:01 tix=0 tid=0 x=28 y=15: # (35) 20:24:36 it should be possible to use the coordinates to draw a trace 20:24:52 I'm sure there are many -93 interpreters that can show the playfield and stack, and single-step through code. 20:24:59 well sure 20:25:04 but not draw nice traces on it 20:25:26 If they can single-step you can get a trace easily 20:25:47 (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 then single stepping and watching it might be more useful 20:26:21 fizzie, what about that glfunge? ;P 20:26:22 t was which one? 20:26:24 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 AnMaster: Shamefully dead. 20:26:33 daef: Fork another IP 20:26:38 daef, lock-step threads 20:26:46 kk - 93 already had that? 20:26:48 rounds on a round-robin schedule 20:26:48 No 20:26:50 daef, no 20:26:52 kk 20:26:57 i think the GOL is 93 20:27:17 daef, it is 93 that also works just fine in a 98 interpreter 20:27:49 Modulo minor inconsistencies 20:28:12 :) 20:28:33 Deewiant, the life one? no? 20:28:38 it runs perfect iirc 20:28:56 of course it runs so fast so you can't really follow it in cfunge 20:29:01 Oh, we were talking about a specific program; my bad 20:29:08 Deewiant, yep 20:29:37 Deewiant, in ccbi I get about 10 FPS or so 20:29:42 in cfunge it is just a blur 20:29:48 How do you count those FPS :-P 20:29:56 Deewiant, updates of screen per second 20:30:11 Yes, that is the definition of FPS 20:30:18 How do you count it, with a stopwatch? 20:30:47 Deewiant, sleep && kill on the same line as starting ccbi 20:31:00 Deewiant, then counting how many it drew 20:31:09 Heh 20:31:13 Deewiant, counting it under my breath give roughly the same result 20:31:22 Deewiant, indicating it was a reasonable approx 20:31:27 How many FPS for cfunge, then? 20:31:28 yes, ccbi is that snow 20:31:36 Yes, I know CCBI 1 is slow 20:31:39 Not snow, though 20:31:41 Deewiant, haven't yet tested the sleep and kill method on it 20:32:31 hm wtf, cfunge ignored that signal 20:32:31 I think I "benchmarked" with "game of life for K seconds, output redirected to file, measure size of generated output files". 20:32:35 not supposed to happen 20:32:54 What are you killing it with, SIGXCPU? :-P 20:32:54 so - starting a movie 20:32:59 Deewiant, SIGINT 20:33:03 but ctrl-c works 20:33:07 which means this makes no sense 20:33:25 Deewiant, also what is SIGXCPU now again? 20:33:34 eXceeded CPU 20:33:36 (time) 20:33:57 Deewiant: eXtreme CPU. 20:34:11 Yes, that; sorry, my mistake. 20:34:16 For eXtreme programs. 20:34:25 Written using eXtreme Programming techniques., 20:34:26 eXtreme Funge-98 20:35:01 XFunge is not a bad name, though people might expect an X Window System GUI in it. 20:36:01 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 Deewiant, actually, ccbi seems slower now... 59 frames for 10 seconds. 20:36:41 ooh, "XFunge"? there's a funge with an X gui? 20:36:50 Deewiant, also it was due to a trivial typo in the command 20:37:01 olsner, I don't implement that fingerprint 20:37:25 Deewiant, and 758 frames from cfunge for the same time 20:37:47 that is grepping for those ..................... lines GOL uses to separate the drawings with 20:37:51 then doing wc -l 20:38:03 (yes I use grep -F) 20:38:19 I use fgrep but that's just me 20:38:22 92K ccbi.out 20:38:22 1,2M cfunge.out 20:38:44 Deewiant, last I looked fgrep on linux systems were either a symlink or a two-line wrapper script for grep 20:39:02 (#!/bin/sh\ngrep -F "$@") 20:39:08 exec grep ... even 20:39:32 /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 And not a symlink 20:39:41 actually using du -bsh would be more fair: 20:39:43 90K ccbi.out 20:39:43 1,2M cfunge.out 20:39:51 ccbi managed even less ;P 20:40:01 Yeah, take off the -h and watch them both change :-P 20:40:13 91959 ccbi.out 20:40:13 1163264 cfunge.out 20:40:14 yep 20:40:28 Deewiant, but without -b it will be rounded to whole blocks on disk 20:40:31 or something like that 20:41:03 Deewiant, let me re-run it with -b to cfunge 20:41:03 :P 20:41:15 hm strange 20:41:16 oh wait 20:41:28 redirecting to file already made it fully buffered 20:41:33 of course -b won't help then 20:42:27 (well 769 frames with -b. but 758 vs. 769 from a single run of each isn't statistical significiant) 20:42:46 (especially as the cpu is running on dynamic speed and it's a dual core system and what not) 20:42:48 GNU grep has a separate fgrep executable, though it's compiled from a two-line .c file: 20:42:49 #define FGREP_PROGRAM 20:42:49 #include "grep.c" 20:42:57 fizzie, haha 20:43:01 I guess they're hoping for better optimizations there. 20:43:10 fizzie, XD 20:43:48 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 fizzie, anyway I don't have jitfunge handy so can't test it 20:44:04 against there 20:44:07 these* 20:44:16 and I hope it won't be as dead as gl-funge! 20:44:52 I thought it already was :-P 20:45:28 :( 20:45:32 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 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 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 I get about 54 frames in 10 seconds from it 20:48:55 just below ccbi 20:49:09 lets try longer intervals 20:50:14 ah found it, seems related to using -KILL instead of -INT 20:50:21 meaning it couldn't flush the buffer before exiting 20:50:42 I get 98 (efunge) vs. 103 (ccbi) for 20 seconds 20:50:58 RestrainedLife is no more. Long Live RestrainedLove! 20:50:59 also erlang seems to always use unbuffered for stdout or something 20:52:24 1565 from cfunge for 20 seconds 20:52:26 RC/Funge-98 appears to get a decent in-between result 20:52:49 Deewiant, I can try it in a bit. It is hard to compare different cpus 20:52:53 No idea if I've compiled it with optimizations or anything though... 20:53:06 Deewiant, I assume your ccbi binary is compiled with full optimisations? 20:53:13 I used your official binary you see 20:53:15 AnMaster: Of course I ran them all myself 20:53:21 and cfunge with full optimisation 20:53:29 and efunge with hipe at o3 20:53:31 Full optimizations but it is upx-compressed which gives it a constant slowdown at start 20:53:43 Deewiant, fine, but it still beats erlang runtime 20:55:35 Yeah, you might get a frame or two more if you feel like un-UPXing it, but nothing significant 20:55:45 Deewiant, I don't have upx installed 20:55:57 Easy enough to install if you feel that much like it 20:56:13 nah, isn't it different algorithm in closed and open versions? 20:56:35 No clue? I just use arch linux's package of it 20:56:36 I don't know which you used but I know which this distro would ship (open only) 20:56:43 Deewiant, on ubuntu laptop atm 20:56:51 and my arch linux desktop is much slower 20:56:54 And it doesn't really matter, either it can decompress it or not :-P 20:57:22 sempron 3300+ at 2 GHz vs. core 2 duo at 2.66GHz 20:57:24 no match 20:57:50 Deewiant, anyway, did you build your cfunge optimised and with 32-bit cells? 20:58:02 No clue 20:58:58 now running it again for cfunge with better optimised build 20:59:05 (inexact bounds) 20:59:12 and no t support 20:59:30 In other words, a noncompliant build ;-) 20:59:41 Deewiant, with that build I now get 2097 frames from cfunge for 20 seconds 20:59:51 that is more than 100 FPS! 21:00:13 Deewiant, fine, rebuilding with exact bounds 21:00:23 Now implement the same algorithm for Conway's game of life in C and smile at your 10000 FPS ;-) 21:00:33 Deewiant, har 21:00:44 Deewiant, now just use hashlife 21:00:50 and watch it grow way way higher 21:00:51 Yep 21:01:15 Deewiant, with no t support but with exact bounds I get 1934 frames for 20 seconds 21:01:25 Hmm, pretty big difference 21:01:32 Oh right, it p's all over the place 21:01:58 Deewiant, (t,exact):1565 (-t,exact):1934 (-t,-exact):2097 21:03:41 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 ... as exact bounds 21:04:00 Quite 21:04:52 I wonder what cpressy would say on the exact bounds issue 21:05:04 Deewiant, I somehow doubt that fbbi would pass mycoedge+fixed 21:05:14 heheh 21:05:24 Does efunge? 21:05:30 Deewiant, of course it does. 21:05:49 Okay, so then I know of three interpreters that do :-P 21:06:01 Deewiant, the one lifthrasiir (?) wrote passed too iirc 21:06:12 Which one? 21:06:18 Deewiant, forgot it's name 21:06:18 pyfunge? 21:06:22 maybe 21:06:33 I'm pretty sure it doesn't implement that... but maybe I'm wrong 21:06:37 Haven't tested them properly after all 21:06:52 Deewiant, of course the exact bounds is somewhat... fudged... in the case of multiple ATHR threads 21:07:20 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 :-D 21:07:30 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 Always return (0,0) - (0,0): "sure it was valid before the program was loaded" 21:07:48 it is just that updates from *other* threads might take some time to reach 21:07:52 Deewiant, har 21:08:00 Deewiant, I need this for wraparound too 21:08:05 it was one hard problem to solve at that 21:08:21 Did you do it majorly differently from cfunge, then? 21:08:31 Deewiant, well yes of course it was 21:08:53 Deewiant, plus it differs in trunk and supervisor-tree branches quite widely 21:09:07 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 fizzie, who are "they"? 21:09:22 In other words, they're not selling your argument. 21:09:26 Deewiant, indeed 21:09:27 Nor apartment. 21:09:32 or that 21:09:33 How'd I manage that, one wonders. 21:09:35 Presumably whoever lives here. 21:09:39 I mean, there. 21:09:41 (Gah.) 21:09:44 Deewiant, nor augment 21:10:02 somehow I read "argument" as "augment" first 21:10:12 Great success by all parties involved 21:10:23 Deewiant, which made me even more confused when I found it was "argument" 21:10:39 :P 21:17:06 That was one conversation-killing exchange. 21:31:47 Hmm. I have discovered an issue with Esotope-BFC. 21:31:59 It doesn't handle wrapping correctly. 21:38:02 pikhq, wrapping? 21:38:11 pikhq, as in 255 -> 0? 21:38:29 pikhq, then rest assured that I'm 99% sure in-between does :P 21:39:19 -!- impomatic has joined. 21:39:26 Hi :-) 21:40:08 hello 21:41:50 AnMaster: Link to in-between? 21:42:24 pikhq, site is probably down. Due to no longer having that server 21:42:26 or domain 21:42:32 could push it to launchpad 21:42:38 (in a bit) 21:42:41 (a bit busy now) 21:42:46 Mmm. 21:47:10 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 anaglyph? 21:48:55 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 MissPiggy: What doesn't work, the link or the anaglyph? 21:49:44 it doesn't look 3D 21:50:49 I think I know what the problem is. There wasn't much depth to the scene and I used the flash. 21:51:14 I don't think flash should be any problem 21:51:45 * 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 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 hehe 21:52:02 3D shadows! 21:52:55 impomatic, use a tripod and some bg light. 21:53:01 impomatic, and no flash 21:53:21 -!- MigoMipo has quit (Quit: Page closed). 21:53:31 impomatic, also what software did you use for it? 21:53:42 AnMaster: thanks I'll try that. I used Gimp 21:53:47 impomatic, huh 21:54:04 impomatic, oh and create a panorama with hugin while you are at it 21:54:17 use a panorama head to avoid parallax of course 21:54:28 (I wish I had such a head for my tripod) 21:54:37 (I only have a ball head :/) 21:55:17 What's a panorama head? 21:55:21 Hmmm... what's a panorama head? I assume it slides from side to side? 21:55:58 I used a mini tripod with positions marked out on the table. 21:56:40 I converged the shots slightly to at a point on the wall. Maybe they shouldn't converged on the foreground? 21:57:17 "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 hehe 21:57:25 (from http://gopher.floodgap.com/overbite/) 21:57:36 Mmm, gopher. 21:57:43 pikhq, the text was funny though 21:57:49 the proper version is at gopher://gopher.floodgap.com/1/overbite/ 21:58:04 also "heavily" = 3 images 21:58:06 I think 21:58:15 oh 4 21:58:15 someone should show that to zzo38 21:58:18 unless he knows it already 21:58:29 scarf, I assume he knows overbite 21:58:36 but it is unlikely he will use it 21:58:36 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 he use his own browser doesn't it? Based on xulrunner 21:58:58 pikhq: wait, what? 21:59:01 what? 21:59:05 I commented upon that bug too 21:59:10 so no 21:59:16 *shrug* 21:59:30 All I know is that I'm looking at a Gopher page in modern Gecko. 22:00:07 so am I 22:00:34 I use lynx though 22:00:40 it is better for gopher 22:00:49 (in general) 22:01:05 overbite probably helps firefox become as good 22:01:50 What's poor about it? 22:02:07 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 fizzie, did someone ask it? 22:02:46 oh I missed the question 22:02:49 impomatic, ^ 22:02:51 sorry 22:04:36 -!- Sgeo_ has joined. 22:04:38 Thanks, I'll take a look on eBay 22:05:58 impomatic, well, that is for panoramas only 22:06:03 impomatic, not needed for 3D images at all 22:06:07 -!- Sgeo has quit (Ping timeout: 265 seconds). 22:06:22 impomatic, plus it needs to fit your tripod of course 22:06:35 not sure if the mounting is standard or not 22:07:37 Wikipedia has some decent Anaglyphs http://en.wikipedia.org/wiki/Anaglyph_image 22:07:56 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 12:20:48 s/belonge/befunge/g 22:42:34 i hear the name befunge started as a similar typo. although i don't know what it was a typo of. 22:42:54 "before", apparently 22:43:40 that typo makes no sense on qwerty, at least... 22:44:12 It's kind of like how some people can typo "argument" for "apartment" 22:44:22 hm 22:44:52 so closer to the chair, then 22:45:11 Probably 22:46:05 dammit i've got into this habit of chewing my tongue :( 22:47:24 -!- tombom has quit (Quit: Leaving). 22:51:32 oerjan: My Oxford Dictionary of Euphemisms says tongue means "an enemy prisoner captured for interrogation"; strange thing to chew. 22:52:14 yummy 22:52:45 On the other hand, 'chew' is listed as "to practice fellatio", so... 22:54:01 the prisoner better hope the interrogators are not using that dictionary 22:54:02 I chewed a pack of paperclips :( 22:54:12 now I've run out 22:54:18 ?!? 22:54:36 paperclip candy? 22:54:54 Project Paperclip 22:54:59 I also chewed up a few of the PCI slot guards from my PC case... 22:55:14 Asztal: are you a bot? 22:55:19 Asztal: Have you polymorphed to a xorn, perhaps? 22:56:27 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 not by accident 22:56:52 they're just very more-ish :) 22:58:01 fungot: You're a bot; would you eat paperclips? 22:58:02 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 ^style 23:08:01 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack* pa speeches ss wp youtube 23:09:09 I rather like the nethack style. It's not very good at making sense, but it's occasionally funny. 23:09:24 "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 http://www.youtube.com/watch?v=iHlHitIc7pY 06:24:33 x used to love that game 06:24:39 can't imagine why o_o 06:25:05 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 augur??? 06:34:03 o hai 06:34:10 its awesome is why! 06:34:12 :( 06:34:19 augur can you tell me seriously 06:34:23 what 06:35:27 is stuff like qualia just bullshit in the same bag as astrology, reincarnation and e-meters? 06:35:42 yes and no. 06:36:50 ?? 06:36:54 you can't do that 06:37:00 it depends on what you mean by qualia. 06:37:02 illegal move 06:37:16 THIS ARE PHILOLSOPHY 06:37:19 IS NO ILLEGAL MOVES 06:37:29 Qualia are somewhat less bullshit, in that it *can* be used sanely in philosophical discussions. 06:37:35 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 However, they are (inherently) inobservable. 06:38:14 pikhq, all the arguments that try to argue qualia exist make me think of that 'invisible dragon in my garage' story 06:38:42 well its true, right 06:38:52 there is nothing to qualia, really 06:39:25 qualia is what an intelligent system does when it does with its senses. 06:39:37 but theres nothing more to them than that 06:39:38 MissPiggy: Except that the subjective experience of redness most certainly does exist in some sense. 06:39:53 The brain processes input and produces this experience. 06:40:06 what is the difference between experiencing and believing you're experiencing 06:40:10 thats the question i think 06:40:39 It's pretty near impossible to discuss scientifically, though. 06:40:59 (mostly because we don't have sufficient access to the workings of the human brain) 06:41:21 (... I should also note: nearly impossible *at the moment*. Technology could change that, in principle.0 06:44:22 it just seems like a made up thing to make people feel better, like reincarnation and free will 06:45:27 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 ... All it is is the interpretation of input by our brains. *That's all*. 06:47:43 It's about as real as gravity, but much harder to *do* anything with. 06:48:15 (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 I am experience the subjective experience of what the hell does any of this mean 06:49:21 So, alise is still MIA? 06:49:26 uorygl: Yes. 06:50:07 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 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 ? 06:51:51 (or possibly a family of states) 06:51:53 Very roughly, yes. 06:52:22 (well, some might say "the neuron state is the representation of the qualia", but whatever.) 06:52:28 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 oh so neuron state is syntax 06:52:57 and the qualia is semantics 06:52:58 ? 06:53:13 Decent interpretation. 06:53:55 I suppose the semantics are just a matter of the brain interepreting its own state 06:54:17 and there is no some kind of mystical dual universe where souls exist and they 'feel' things 06:55:14 Not at all. 06:55:26 Just your brain doing stuff. 06:57:56 great! 06:59:14 Kinda funny how the only way thoughts are perceived is by producing more thoughts. 06:59:29 Except when they produce action that produces perception. But that's not really perception of thought. 07:04:49 hm 07:10:32 -!- bsmntbombdood has quit (Remote host closed the connection). 07:13:22 MissPiggy, whats your OS 07:14:06 im on mac os 07:14:26 awesome 07:14:31 wanna collaborate on a videogame? 07:14:34 what game 07:14:44 a first-person space adventury game 07:15:00 that sounds cool 07:15:06 but what would I do ? I am not good with computer 07:15:13 lame 07:15:42 ill teach you opengl 07:15:55 im gonna probably use the unity engine 07:16:06 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 hi 07:31:03 -!- alise has changed nick to asiekierka. 07:32:09 hey 07:32:29 should i change the topic to reflect the latest alise sighting 07:35:40 alise!! :) 07:35:47 you are not alise fuck you 07:35:48 ugh 07:35:53 what a dick 07:37:31 who's alise 07:37:32 even 07:37:53 alise is ehird. 07:38:15 noooo uorygl you ruined it D: 07:38:16 I thought it was actually him 07:38:27 and I have been worrying about this today 07:38:42 EHIRD? 07:38:44 oh man no 07:39:27 Oops, I ruined it. 07:39:39 Yes 07:39:47 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 | 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 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 Deewiant, in the erlang api this is one single call 10:28:56 So don't do anything until you need to bind... 10:28:59 like you just call listen(), instead of socket(), bind(), listen(), ... 10:30:05 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 XD 10:30:30 Deewiant, also this means reflecting may happen later than expected 10:30:35 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 Deewiant, hm. I haven't tried that. What about dropping the quotes? 10:31:04 in the second one 10:31:11 No difference 10:31:25 hm.. 10:31:49 Deewiant, I think I saw something to do that some time ago 10:31:55 but I don't remember where 10:31:58 But you don't remember what or where ;-P 10:32:13 I've been googling for it for a while now with no luck 10:32:25 Deewiant, indeed... 10:33:13 Every use case I can find seems to have hard-coded args, nothing like this 10:33:34 (Typically running ${PROG} --version or suchlike) 10:33:48 Deewiant, tried shell syntax for it? 10:33:56 What do you mean? 10:34:00 Deewiant, I mean, "${ARGS[@]}" 10:34:07 Eh 10:34:10 I doubt it'll work :-P 10:34:15 Deewiant, worth a try perhaps 10:34:19 Sure 10:34:28 Deewiant, hm isn't there a list type thingy? 10:34:31 Syntax error 10:34:52 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 Deewiant, no I mean as in list() 10:35:38 oh maybe it maps to the same below 10:35:44 NOTES: A list in cmake is a ; separated group of strings. 10:35:47 true 10:35:56 Deewiant, but what about extracting from that? 10:36:00 How? 10:36:15 well, I haven't really used lists in cmake 10:37:01 Deewiant, try the cmake mailing list? 10:37:03 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 Deewiant, that would be silly 10:37:33 It's the only option I can think of 10:37:56 Deewiant, what about list and not using quotes when using it? 10:38:42 Amazing, I'd somehow not tried that pair 10:38:54 I wonder if this breaks if one of the arguments contains a semicolon 10:39:00 Yep, it does 10:39:31 Deewiant, did it work if the arguments did not contain semi-colons? 10:39:35 Well I don't think I'll be needing semicolons so I guess I'm good 10:39:37 AnMaster: Yes, thanks 10:39:50 quite odd really when you think about it 10:39:59 I guess if the user has a directory containing semicolons in its name that's their fault :-P 10:40:00 Deewiant, what are you using cmake for btw? 10:40:14 CCBI2 10:40:23 I see 10:41:51 Deewiant, so you are making progress with it? All D bugs blocking it fixed? 10:42:15 No, I just decided to not implement the thing which requires those bugs to be fixed 10:42:28 Deewiant, and what was that thing? 10:42:32 At least not yet; maybe when it's the only thing left I'll come up with something better 10:42:41 Per-IP fingerprint constructors 10:42:50 Deewiant, errr what would they do? 10:43:19 don't you load the fingerprint per-ip anyway? 10:43:25 E.g. MODE's constructor and destructor switches stack<->deque 10:43:36 I see 10:43:50 And yes, but the constructors/destructors are currently called only when the global loaded count is/becomes 0 10:44:16 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 Deewiant, but isn't that controlled by one of the instructions of MODE rather than by loading/unloading the fingerprint? 10:44:29 No, it's not 10:44:39 Deewiant, oh deque 10:44:41 not queue 10:44:42 misread 10:45:10 Flipping the mode would be too extensive if it had to copy the stack every time 10:45:15 hm 10:45:21 Expensive* 10:45:22 Gah 10:45:41 Deewiant, but if you are aiming for high speed here, why are you implementing that stuff at all? :P 10:46:09 Because as I said a few days ago: CCBI aims for correctness > fingerprint support > speed 10:46:13 right 10:46:20 TRDS comes first, then speed :-P 10:46:29 Deewiant, and I'm quite confident you can't beat cfunge then at speed 10:46:41 We'll see 10:46:43 unless you do JIT-ing suddently 10:46:57 but JIT doesn't really work if you support t 10:47:03 Befunge is kinda hard to JIT 10:47:21 Deewiant, with a single IP you can do it like fizzie was doing. 10:47:34 Yes, but we need the TRDS support and everything ;-P 10:47:38 with multiple IPs... well I doubt it is possible to gain anything with it 10:48:05 I guess one could JIT while only one IP exists 10:48:16 sure, that could work I guess 10:48:18 Deewiant, also, how abstracted is your stack? 10:48:39 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 Deewiant, llvm! 10:48:59 True enough 10:49:11 still what about your stack abstraction 10:49:12 Last I checked my stack was fully abstracted 10:49:35 Deewiant, so, { and } aren't implemented as using memcpy() or similar? 10:49:36 ;P 10:49:47 No, they aren't 10:49:57 That might change if it seems problematic 10:50:28 Deewiant, well, cfunge's stack is quite well optimised in most parts 10:51:09 abstracted yes, but the abstraction contains lots of befunge-specific functions 10:51:27 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 Deewiant, advanced/non-advanced is all afaik 10:51:50 Meh 10:52:03 Deewiant, write a patch! file a feature request! 10:52:13 I don't care enough 10:52:17 heh 10:52:31 -!- sebbu has joined. 10:53:02 Is it summarized somewhere what exactly happens in the configure/build steps respectively? 10:53:14 Deewiant, how do you mean? 10:53:32 Configure runs the CMakeLists, build does what? 10:53:36 you could set the verbose flag in the advanced config section to make it output what commands are executed 10:53:45 I mean semantically what does it do 10:53:57 If I put a command foo in CMakeLists, is it always run at configure time 10:54:07 If so, what exactly is run at build time 10:54:16 Deewiant, I guess it says in the docs? Like "execute_process runs the thingy during configuration" or such 10:54:37 to run at build time you would use a custom target 10:54:51 cfunge uses one of those iirc 10:55:25 for generating man page using help2man 10:55:29 So essentially build time is what's defined in add_executable / add_library / add_custom_*? 10:55:40 Deewiant, basically yes 10:55:54 Deewiant, there is the install() one that maps to make install of course 10:56:12 Yeah, there's install time separately, true 10:56:24 And I think there was some post-install thing in one of the add_custom_* too 10:56:42 possibly, when i use those I check the docs 10:56:46 s/i/I/ 10:56:49 err 10:57:11 s#/i/I/#/ i / I /# 10:57:17 :-D 10:57:55 Deewiant, now rewrite the last one using / as the separator instead of # :P 10:58:23 -!- tombom has joined. 10:59:00 s/(i)/ \1 /i 10:59:32 Deewiant, err what? 10:59:35 that doesn't work 10:59:43 Deewiant, it results in "poss I bly" 10:59:54 wait 11:00:00 It modifies your s/i/I/ command 11:00:00 what does the i modifier do now again? 11:00:07 Not the original string 11:00:37 i is case-insensitive 11:00:39 aha 11:00:47 Deewiant, well, you need g to make that work then 11:01:00 Yes, I just realized 11:01:22 nice way to do it though 11:01:49 Alternatively s/([iI])/ \1 /g of course 11:02:02 But, I'm leaving for a few hours now -> 11:02:30 cya 11:02:59 * AnMaster tries to figure out in which order the BSD style socket API functions are called 11:03:47 is it socket -> bind -> (connect|listen) ? 11:04:06 -!- BeholdMyGlory has joined. 11:06:54 Yes, though you don't necessarily need to bind before connecting, IIRC. 11:33:25 fizzie, ah, but is it allowed? 11:33:49 fizzie, also, can you call setsockopt() both before and after listen()/connect()? 11:33:54 Or only before? 11:34:28 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 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 hrrm 11:50:15 fizzie, and what about udp. How is it done 11:50:26 again, erlang offers a very high level API for it only 11:51:12 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 fizzie, and what about bind() on them? 11:52:44 I mean, how do you listen to an UDP socket with the BSD API 11:53:13 bind assings the local address. You don't need to (and can't) call listen/accept. 11:53:45 But specifying the remote address with connect makes the socket only receive packets from that address. 11:53:46 so you do socket() -> bind() -> recv() ? 11:54:15 Yes, or socket-bind-connect-recv if you want to talk with only one host. 11:54:22 hm 11:55:10 If you don't specify the remote side with connect, you'll recv all packets targeting the address you bound to. 11:55:17 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 for udp 11:55:40 You can do that manually if you want, though. 11:55:45 oh wait, I think open() has it 11:55:48 in one of the options 11:55:58 ah no, it is what local IP to bind to 11:56:23 And I think connecting an unbound UDP socket also does the "bind to random local port" thing. 11:56:31 hm 11:56:49 for open(): "If Port == 0, the underlying OS assigns a free UDP port, use inet:port/1 to retrieve it." 11:58:01 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 that is the default mode 11:58:21 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 man 7 udp's second description paragraph (at least in my man pages) is reasonably complete. 11:59:56 fizzie, oh and you can get erlang to automatically group tcp streams into various packet formats for you, like "line-based", "" "asn1" "fcgi" "sunrm" "tpkt" and a few other ones 12:00:34 I suppose it's logical that Erlang makes communications easy. 12:01:08 fizzie, well, it just makes emulating the low level stuff in efunge hard 12:01:16 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 for most apps I guess this higher level API is nicer 12:01:55 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 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 fizzie, hm? 12:03:12 I think broadcast is supported by erlang 12:03:23 at least there is an option for it, with the note that it only applies to UDP 12:03:30 (and not to TCP or SCTP) 12:03:44 (or maybe to SCTP, let me check gen_sctp manual) 12:03:50 Yes, but I mean serving many unicast clients with one socket using the SOCK fingerprint. 12:04:20 hm not sctp I guess 12:04:30 fizzie, you could use bind()? 12:04:35 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 like socket() -> bind() -> recev() ? 12:04:43 recv* 12:05:03 That helps only if you never need to send anything. 12:05:52 fizzie, oh good point 12:06:13 fizzie, well, I don't have connect() for UDP in erlang, so I will have to emulate that... 12:06:34 Yes, even the undesired aspects of it. 12:06:51 heh 12:07:13 -!- lament has joined. 12:07:16 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 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 C(s ct prt addr -- )Open a connection 12:08:10 where ct is 1=AF_UNIX, 2=AF_INET 12:08:18 and 1=AF_UNIX is broken 12:08:27 since we can't know length of addr 12:08:32 without knowing what family we have 12:08:50 Right. I guess you could extend that by defining 0=AF_UNSPEC, but it might not be worth it. 12:08:54 as the note says on the rc page: 12:08:58 "ct=1 and pf=1 are a broken spec and should not be implemented. Usage of either of these should reflect." 12:09:19 There aren't very many UDP servers written with Funge-98 anyway. 12:09:23 fizzie, it would be better to just design a high level API that also could support unix socket and inet6 12:09:48 and possibly sctp 12:09:58 not that anyone uses it, which is a shame 12:11:06 If you wish, though you could do a far better low-level API than SOCK is too. 12:11:24 fizzie, but then I would have to write a test suite 12:11:53 plus you would need to rewrite fungot to make use of it 12:11:54 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 and I would have to implement it in cfunge 12:12:25 I don't really feel like dealing with C currently 12:13:30 fizzie, why did the bot put * around "wield"? 12:13:44 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 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 ^style 12:13:51 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack* pa speeches ss wp youtube 12:14:10 save game before it is too late? 12:14:16 that is quite un-nethacky 12:14:18 -_- 12:14:48 Yes, well: 12:14:50 rumors.fal:They say that the best time to save your game is now before it's too late. 12:14:57 It's classified as "false", too. 12:14:58 aha 12:15:56 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 and I refuse to go for a low level API 12:16:34 plus TCP and UDP would be a nice way to check how much various interpreters depend on fingerprints being 4 letters 12:16:35 heh 12:17:38 cfunge and efunge themselves should handle it. I'm not so sure about the maintenance scripts for the fingerprint system. 12:20:02 fizzie, do you need to call shutdown() before you call close()? 12:20:10 for TCP that is 12:20:25 since erlang API does have shutdown() and close() for TCP 12:21:03 and cfunge seems to first use shutdown() with SHUT_RDWR, then close() 12:21:12 I don't remember why 12:24:03 I'm not sure either. I think the main benefit of shutdown() is that you can half-close the connection. 12:24:33 But I think just close() without a shutdown will do the clean TCP connection tear-down. 12:28:40 huh, erlang doesn't provide a poll() interface? I'm 100% sure it uses epoll and kqueue internally if available 12:28:57 but it seems it abstracts such things away from the high level API? 12:32:33 -!- MizardX has joined. 12:33:59 I think you are supposed to use multiple threads or some such instead 12:34:12 fizzie, that would make it hard to provide a nice interface for polling sadly 12:34:38 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 fizzie, there still? How does this sound http://sprunge.us/cBWI 12:54:09 of course very early draft 12:54:16 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 happy australian mailing list reminders day? 18:07:02 also, that was ehird 18:07:07 yay, at least he's still alive 18:08:09 okay 18:08:17 -!- ehird has joined. 18:08:22 -!- ehird has changed nick to alise. 18:08:26 hi! 18:08:33 Oh, my life. 18:08:35 #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 | 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 wb alise 18:11:31 Thank you. 18:11:53 Hi alise 18:20:35 -!- asiekierka has joined. 18:20:46 Oh no, it's ehird 18:21:14 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 alise: In #esoteric? 18:59:27 Yes, in here. 19:00:12 "M' sxat' vid' l' lingv'.", I say in horrifically butchered Esperanto. 19:00:37 Lovely! Now translate. 19:00:46 I'd like to see the language. 19:01:28 Well, it's not /intentionally/ esoteric, but it does require a Ph.D. to understand... 19:01:43 Or ehirdness? 19:01:50 Same thing. 19:01:55 Right. 19:02:01 Hey, Epigram's mailing list is hosted in the university of the county I am in! 19:02:32 DEPENDENTLY-TYPED BUDDIES 19:02:54 pikhq: Anyway, it's the same dependently-typed fuddlepip I've been on about for ages. 19:04:55 alise: Fun. 19:05:21 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 My language can do the freaking impossible! 19:05:36 alise: Hah. 19:05:53 pikhq: But it can actually compute it! 19:06:01 Admittedly for /tricky/ things you need to give it some proof mon. 19:06:07 alise: So, your language is total? 19:06:08 But still, coooool. 19:06:27 pikhq: Yes - but it doesn't check all inputs, total languages can still have infinite input and output sets, lilke Nat. 19:06:33 Also, with the partiality monad it's turing-complete. 19:06:41 Mmm. 19:06:45 Here's the definition of equalilty: 19:06:48 *equality 19:07:09 data _===_ : {a:*} -> (x:a) -> a -> * where 19:07:15 ===-refl : x === x 19:07:31 i.e., (a === b), where a and b are values of any type, is a type. 19:07:45 If a and b are the same, then there is a value of that type (===-refl). 19:07:45 o.o 19:07:47 Otherwise, the type is empty. 19:07:59 Since types = statements and values = proofs... 19:08:00 Tada! 19:08:15 "The same" means "indistinguishable", btw, i.e. the normal forms are the same. 19:08:37 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 pikhq: So, uh, how much of that did you understand? 19:09:22 Uh. I'm not sure I grok the definition. 19:10:59 * is the type of types 19:11:28 (foo : t) -> is the same as t -> but we bind the /value/ of the argument to foo in the type 19:11:32 (not at runtime, it's the dependent magic) 19:12:11 {x} is just like x except the argument is inferred, i.e. the compiler works out the value 19:12:18 we don't need to specify it 19:12:27 the data clause is just like haskell's gadt 19:12:49 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 so within the constructors we have x bound to the first value 19:13:03 so we do, basically 19:13:08 YepIndeed :: Equal x x 19:13:19 i.e. ===-refl is a value of type x === x, and there are no other constructors 19:13:27 so we cannot construct a value of type x === y unless x and y are the same 19:13:28 Q.E.D. 19:16:44 pikhq: Get it? 19:18:36 pikhq: Am I to take that as a no? :P 19:18:56 WHOOHOO 19:19:16 MissPiggy: wat 19:19:18 alise in Coq you can use ifte on anything with two constructors 19:19:39 So you couldn't ifte an x === y by my definition? 19:19:39 so bool {true,false} and P + Q {inl pPrf, inr qPrf} etc 19:19:43 Uber-lame. 19:19:50 :| 19:19:58 don't you see? 19:20:05 Don't I see what? 19:20:17 My definition is better because it uses the proper curry-howard view of types anyway :|. 19:20:22 lol 19:20:35 my d 19:20:48 wat 19:22:00 pikhq: ping 19:22:38 pikhq: you displease me 19:22:42 anyone else want to hear me blab? 19:23:41 -!- impomatic has joined. 19:23:47 Hi :-) 19:24:00 Yo. 19:25:09 lol] 19:25:11 :( 19:25:16 alise is fed up o fme 19:25:22 because I tried to talk about my own stuff 19:25:25 i'm not I just already 19:25:31 explained everything I was gonna :) 19:25:32 I just alread the whole thing 19:25:34 also ifte is yours you mmean? 19:25:37 *mean 19:25:39 as opposed to Coq's 19:25:42 SO THE LAMENESS IS ON YOUR PART 19:25:42 I just already the whole thing I was gonna 19:25:50 okay sry :D 19:25:52 didn't know yo 19:25:52 no my algebra is mine 19:25:52 you can 19:26:03 ifte is from coq and it's not lame ! it's good 19:26:08 it's like in haskell if could do 19:26:22 say f :: Either a b, if f then p else q 19:27:13 yes but 19:27:26 mine is the /real/ meaning of if then else, i.e. if /true/ 19:27:39 and truth in such a lang is presence-of-value 19:27:51 the construct you mention may be more useful 19:28:02 but mine lets you write things like "if x < y" with < : a -> a -> * and have it work coherently 19:28:08 which is jawsome 19:28:15 i think that op would be useful that you mention under a different name 19:29:31 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 MissPiggy: right but we're trying to import type-level truths into value-level conditionals 19:34:44 alright 19:34:49 fact is this is a useful operation I'm sure you can't deny that branching on (x < y) is common 19:34:52 ifte looks like a good op too though 19:34:59 what's your take on typeclasses, in a dependently typed setting anyway? 19:35:16 typeclasses suck anywhere :/ 19:35:34 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 They are useful but they have such complications, even functional dependencies result in lots of ambiguity. 19:36:32 Has anyone actually formalised them, I wonder? 19:36:57 hmm mixfix operators could do with a character signifying whitespace 19:37:08 _[_]^:=_ 19:43:15 alise: Sorry, doing a kanji review. 19:43:44 Kanji re-JEW 19:44:28 Not all that Jewish. 19:45:08 So I'm using the Unicode minus sign − instead of - for subtraction. 19:45:13 I may or may not be Unicode-mad. 19:45:18 Oooh. 19:46:45 pikhq: That definition of _===_ I gave you? That's not the /real/ definition. 19:46:52 Wanna see the /real/ definition? 19:46:57 Sure. 19:47:04 יהודי חוזר יפנית 19:47:35 Gregor: How Jewish of you. 19:47:58 data _≡_ : {a:∗} → (x:a) → a → ∗ where 19:47:59 ≡refl : a ≡ a 19:48:04 pikhq: Behold the Unicode, bitch. 19:48:07 Erm 19:48:10 I got it slightly wrong 19:48:16 alise: Mmm, Unicode. 19:48:24 data _≡_ : {a:∗} → (x:a) → a → ∗ where 19:48:24 ≡-refl : x ≡ x 19:48:31 אני חושבת שאני מפנה הישראלי, אני חושב שאני מפנה הישראלי, אני באמת חושב כך 19:49:24 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 No. 19:49:37 Let me rewrite it in Haskell + some notation. 19:49:39 Hooray, I fail. 19:49:43 pikhq: You know GADTs, right? 19:49:48 That'd help -- your notation is dense. 19:49:56 alise: Somewhat. 19:51:06 data Eq :: forall a. (x:a) -> a -> * where 19:51:06 Constructor :: Eq x x 19:51:07 19:51:07 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 Oh, and we can give value arguments to types. 19:51:29 Just accept that. 19:51:43 Oh. 19:51:46 So: "Constructor :: Eq 2 2", and "Constructor :: Eq (2+2) (3+1)" but not "Constructor :: Eq 1 2". 19:51:53 That's fairly straightforward. 19:52:01 Since values = proofs and types = logical statements, voila! 19:52:05 Reddit is slow today :-( 19:52:08 -!- scarf has quit (Remote host closed the connection). 19:52:26 pikhq: Oh, you want me to BLOW YOUR FREAKIN' MIND? 19:52:30 Do you know what Leibniz's law is? 19:53:00 I do, but please inform this gentleman, as he is a Mongolian. He doesn't even have a cow! 19:53:37 http://en.wikipedia.org/wiki/Identity_of_indiscernibles 19:53:42 your fucking Mongolian can read WP bitch :| 19:53:50 Hah. 19:54:31 Oh, okay. 19:54:39 leibniz : {a:∗} → {P : a → a} → {x:a} → {y:a} → {x ≡ y} → P x → P y 19:54:41 Read out, 19:55:13 You just did Leibniz's law in your language. 19:55:15 "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 That's beautiful. 19:55:17 *P y." 19:55:19 As a function: 19:55:32 * MissPiggy agrees with pikhq 19:55:56 "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 pikhq: The best part? Here's the definition (proof). 19:56:07 leibniz = _ 19:56:12 The compiler can PROVE IT AUTOMATICALLY. 19:56:17 :D 19:56:18 This isn't just theory; Agda does it. 19:56:22 *Agda does it 19:56:30 This might be a pain to implement. 19:56:55 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 agda doesn't do that :S 19:57:09 (... In the sense that Haskell is a pain to implement well.) 19:57:14 MissPiggy: yeah it does 19:57:17 I've seen the definition 19:57:23 youcan't write leibniz = _ 19:57:30 sec 19:57:31 lemme find it 19:57:43 -!- MigoMipo has quit (Read error: Connection reset by peer). 19:58:51 http://www.cs.nott.ac.uk/~nad/repos/lib/src/Relation/Binary/PropositionalEquality/Core.agda 19:58:58 it's either sym, trans or subst; I forget whicch 19:59:21 http://www.cs.nott.ac.uk/~nad/repos/lib/src/Relation/Binary/PropositionalEquality.agda some more properties including subst_2 19:59:26 (subst on 2-adic functions) 19:59:56 ? 20:00:05 what 20:00:13 one of those IS leibniz just named funny and under a wall of types 20:00:19 if you expand all the types it does come out to the type I showed 20:00:23 the definition is not = _ 20:00:38 it's = refl 20:00:39 same thing 20:00:43 not the same :P 20:00:53 lol 20:01:03 -!- lament has quit (Ping timeout: 240 seconds). 20:01:37 -!- lament has joined. 20:05:29 {a:∗} → {x:a} → {y:a} → ({P : a → a} → P x → P y) → x ≡ y 20:05:32 is more interesting 20:12:05 alise: does your language have * : *? 20:12:36 Also, did I miss the #esoteric-priv stuff? 20:19:02 Yes. 20:19:04 uorygl: And no. 20:19:08 The other way around. 20:19:21 It has ∗ : ∗n 1 20:19:23 and you missed it 20:19:28 * uorygl nods. 20:19:50 I'm not sure how to split Set/Prop though, what symbols, whether to have a supertype etc 20:19:53 I wonder if I can get my hands on the #esoteric-priv stuff somehow. 20:21:36 Ask MissPiggy for the complete log. 20:22:05 MissPiggy, may I please have the complete log? 20:33:13 -!- impomatic has quit (Ping timeout: 264 seconds). 20:46:31 MissPiggy: did you give it to uorygl? 20:46:46 I don't seem to have received it. 20:48:12 -!- MigoMipo has joined. 20:48:16 bad MissPiggy, bad! :P 20:48:28 * MissPiggy pout 20:55:53 foo : {a:*} -> {x:a} -> {y:a} -> ({P : a -> a} -> P x -> P y) -> x === y 20:55:54 foo {_} {x} f = f {x ===} _ 20:55:57 Proven, beeyotch. 20:55:59 I think. 20:56:18 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 http://igoro.com/archive/human-heart-is-a-turing-machine-research-on-xbox-360-shows-wait-what/ 21:08:46 old :P 21:09:22 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 That was too easy, and didn't feel treelike 21:20:29 -!- MizardX has joined. 21:28:35 -!- zzo38 has joined. 21:31:13 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 (fork\I) is simply "the set of all single element sets". 21:34:07 I also want to know if you know any other set paradoxes. 21:34:16 (Other than Russell paradox) 21:34:25 set of all ordinals 21:34:36 although it is very similar 21:38:09 OK, I found it, and I found out its similarity 21:41:39 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 But you can get the successor of that, too (successor/naturals) 21:42:22 And even (successor%naturals) 21:45:44 I prefer the "Nostalgia" skin in Wikipedia but esolang wiki doesn't have that one 21:51:05 set of all natural numbers: 21:52:58 data ℕ : ★ where 21:52:58 0 : ℕ 21:52:58 S : ℕ → ℕ 21:53:22 for the unicode challenged 21:53:26 data N : * where 21:53:26 fizzie, Deewiant: http://sprunge.us/cjVA <-- early draft for that 21:53:28 0 : N 21:53:30 S : N -> N 21:53:30 hi alise 21:53:32 imma make a video game :D 21:53:38 alise, you weren't here the last few days 21:53:41 what happened 21:53:49 AnMaster: I wasn't, and I'd rather not talk about it. 21:53:56 okay 21:56:12 AnMaster: Nothing much to worry about, though. 21:56:16 augur: What game? 21:56:47 some sort of space piloting game that puts you in a situation like Farscape 21:56:56 OK 21:57:44 zzo38: basically you're stuck in a far off part of the universe having to escape some crazy super powerful dudes 21:57:53 and your ship is all fucked up so it doesnt do quite what you want it to do 21:57:53 pikhq, any opinion on http://sprunge.us/cjVA ? 21:58:11 but you dont have money, you have to work using your only resource: your ship 21:58:12 it is a rather early draft of course 21:58:18 no details about most commands yet 21:58:23 and you can do various things to that end 21:58:41 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 AnMaster: Looks less painful than BSD sockets. 21:59:24 pikhq, and actually usable, SOCK has many parts that aren't actually accessible due to stupid design 21:59:35 alise: I have not seem the notation "data N : *" before 21:59:48 zzo38: It's an ehird-ism. 21:59:52 No it's not. 21:59:55 it's an Agda-ism 21:59:56 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 :P 21:59:59 Oh, okay. 22:00:11 zzo38: It's dependent type theory, which is isomorphic to intuistionistic logic. 22:00:19 *intuitionistic 22:00:25 Basically, it's computable logic. 22:00:46 Dependently-typed programming language <=> intuitionistic computer proof system 22:01:15 "data N : * where" just defines the set N (* is read as "set", : is read as "is a"). 22:01:16 AnMaster: Wait, there was already a sockets API for Befunge that did that? 22:01:24 AnMaster: *Eeeeew*. 22:01:28 It's just defining the set N inductively, pretty much. 22:01:50 pikhq, yes, the one fungot uses 22:01:50 AnMaster: they say that shopkeepers don't read, so that his mouth as a cloud, by samuel taylor coleridge) 22:01:55 ^source 22:01:56 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 22:02:03 Mmm. 22:02:15 "They say that shopkeepers don't read, so that his mouth as a cloud." 22:02:18 Wisdom for the ages. 22:02:30 fizzie, mixed up ones I guess? 22:02:38 fizzie, but from what ones? 22:02:47 Wondered lonely as a cloud will be the last bit. 22:03:29 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 pikhq, anyway look at SOCK: http://rcfunge98.com/rcsfingers.html#SOCK 22:03:41 pikhq, spot the multiple issues 22:03:47 There, I made it make sense. POETICALLY 22:04:09 alise, :P 22:04:25 <==> 22:04:39 <=(o_o)=> 22:05:36 pikhq, so yes I'm aiming for a somewhat higher level and more advanced API than that 22:05:52 I do need some help with figuring out the best interface for SCTP however 22:05:55 any SCTP expert here? 22:06:01 "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 I have only used SCTP a tiny bit 22:07:01 fizzie, what? it added cloud to make it poetical? 22:07:10 >_< 22:07:19 or is this some famous poetical work? 22:07:33 * AnMaster prefers prose 22:08:12 I never ever liked poetry 22:08:24 -!- jcp has joined. 22:08:39 (yes I'm aware of prose poetry) 22:08:54 (it is a border case, some instances are okay, some are not IMO) 22:09:59 You don't know "I wonder lonely as a cloud"? 22:10:13 Also, /me slaps AnMaster about a bit with the Rime of the Ancient Mariner. 22:10:21 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 MissPiggy: is there any actual problem with supertypes? 22:12:55 ?? 22:12:58 after all (exists e. e) ... 22:13:13 so why can't we say N = N* intersect {0}? 22:13:21 no dependent lang seems to allow such constructions 22:15:28 Union, not intersect. 22:17:12 Meh. 22:20:03 "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 yyou can do it alise 22:23:13 MissPiggy: Howso, in Coq or Agda or similar? 22:23:53 well union is either 22:24:00 so make a coercive subtyping 22:24:41 http://upperandlowercase.com/musicvariant2/ _what- 22:24:42 *what_ 22:25:01 MissPiggy: but do agda and coq allow you to make such a subtyping? 22:31:18 -!- oerjan has joined. 22:31:30 yo alise! 22:31:35 Greetz. 22:31:49 MissPiggy: Please give oerjan the complete -priv log, if that's okay. 22:36:31 A spider-web in dark is a good way to stop the war 22:36:42 what? 22:36:50 "M' sxat' vid' l' lingv'.", I say in horrifically butchered Esperanto. 22:37:11 is ' legal not-before vowels? 22:37:25 I don't know Esperanto language very well what does that mean please? 22:37:45 I'd like to see the language. 22:37:47 oerjan: Actually, you're not supposed to omit the ending of every word. :P 22:38:43 well naturally 22:39:00 -!- tombom has quit (Quit: Leaving). 22:39:27 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 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 X* is X-without-0; is there similar notation for X-without-negatives? 22:47:28 is that X^+? 22:47:38 damn i'm tired... 22:48:00 I use X\{0} 22:48:12 that's X-without-0, i.e. X* 22:48:17 I'm wondering about X-without-negatives 22:48:21 in math? R^+ is R without either negatives or 0, afair 22:48:24 pretty sure it's X^+ yeah 22:48:29 oerjan: mm 22:48:54 oerjan: so clearly R^{+{-*}} is what I need 22:49:06 where -* means "with 0", being the inverse of * 22:49:08 :P 22:49:08 Naturals without zero: naturals_without_zero=naturals!1; 22:49:15 *facepalm* 22:49:19 X^+_0 maybe 22:49:33 oerjan: wat :D 22:49:44 well, not literally 22:49:56 oh wait I want Q+ not Q+ with 0 22:50:07 I don't like X* for X\{0} 22:50:18 i do so tough :P 22:50:24 why 22:50:35 I find it aesthetically pleasing. 22:50:40 ??????? 22:50:42 especially since X* has other meanings, especially if X is a vector space 22:50:50 that has nothing to do with the set being zeroless 22:50:51 (dual space) 22:51:06 oerjan: yeah but i don't care about that :) 22:51:11 MissPiggy: it's just notation 22:51:18 notation is inherently arbitrary 22:51:19 JUST NOTATION?? 22:51:24 how dare you 22:51:28 "nothing to do" doesn't matter is what I mean 22:51:36 no notation has anything to do with what it represents 22:51:43 we pick aesthetically pleasing, memorable notation, and that's it 22:51:53 you could equally argue that no word means anything 22:52:05 no word has any relation to its meaning 22:52:50 * MissPiggy uses morphology to disagree 22:53:14 well let's consider "not black" 22:53:18 we think this has a relation to "black" 22:53:28 but the concept being expressed is /everything/ just to the exclusion of black 22:53:45 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 so "not black" relates to the word "black" but its meaning does not relate to the meaning of "black" 22:54:21 what ! 22:55:15 i guess i just stepped into the lovely deep-end of things i don't really know shit about 22:55:53 alise you read On Denoting by Russle 22:56:03 * MissPiggy needs to as well 22:56:08 ? 22:56:13 what are you kids talking about 22:56:49 WORDS 22:59:02 /what/, I don't have \top and \bot in emacs 22:59:10 fuck that shit 22:59:23 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 what did i miss since migomipo left? 23:06:13 22:58 < MissPiggy> AAAAAAAA 23:07:25 * oerjan read \bot as lambdabot, and wondered why you'd expect it in emacs 23:12:08 http://2.bp.blogspot.com/_mmBw3uzPnJI/S2Ltvwxm04I/AAAAAAABAQU/qcggMUcrims/s1600-h/ipad_12.jpg 23:12:12 iPAD 23:16:24 MissPiggy: i thought of some two-dimensional notation for dependent types 23:17:34 yay 23:17:35 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 the f : goes on the dividing line 23:20:25 I must go 23:20:39 farewell 23:20:44 * Sgeo can't seem to copy from a PDF 23:20:46 Bye MissPiggy 23:21:03 MissPiggy: do you like the notation though? 23:22:22 I ond't undesrtand it 23:22:31 MissPiggy: well 23:22:42 basically there's a line, and above is the dependent section; below, the normal section 23:22:55 normal section is all the types, none of the names, connected by arrows; drab and usual 23:23:04 above, in the locations of dependent arguments, the names we bind them two 23:23:14 I don't see how that could work 23:23:33 A -> _ -> _ 23:23:34 -------------- 23:23:37 Set -> A -> A 23:23:43 it's just like huh? 23:24:02 not like that 23:24:04 like this 23:24:24 ehird are you likey to be on tommorow if not when 23:24:57 A 23:24:57 ----------------- 23:24:57 Set -> A -> A 23:24:59 MissPiggy: maybe 23:25:00 dunno 23:25:04 know 23:25:08 if not tomorrow, then say before the end of next week 23:25:15 okay 23:25:17 anyway 23:25:20 wait 23:25:21 that notation SUCKS :P 23:25:23 bye 23:25:26 one final thing before you go :| 23:25:31 nope sorry 23:25:35 * MissPiggy has quit () 23:25:39 pah :P 23:26:17 dot dot dot 23:26:22 oh :D 23:26:26 A x 23:26:26 === : --------------------------- 23:26:27 Set -> A -> A -> Set 23:26:29 IT IS GOOD NOTATION LOVE IT 23:26:49 youandouanpfb 23:26:56 what :D 23:27:01 -!- zzo38 has quit (Remote host closed the connection). 23:27:01 one thing which is good is implicit binding 23:27:10 but it's also hard 23:27:11 what do you mean by that? 23:27:24 to not make it confusing 23:27:50 why don't you get some sleep 23:28:05 what does that say ehird 23:28:10 Oranjer: it says things 23:28:13 MissPiggy: don't want to :D 23:28:14 what things 23:28:17 but what do you mean by implicit binding 23:28:19 oerjan: things. complicated 23:28:25 oerjan??? 23:28:29 :( 23:28:46 mwahahaha. 23:29:01 erm 23:29:02 Oranjer 23:29:03 :D 23:29:11 -!- MissPiggy has quit (Quit: Lost terminal). 23:29:16 but what does it say, ehird? 23:29:24 it's an anagrram 23:29:33 really? 23:29:34 it says your mom 23:29:41 :( 23:29:45 Oranjer: no, you are 23:30:32 I am....what 23:30:34 what 23:31:06 an agrram 23:31:21 delightful my existence must be 23:32:06 Eb tsum ecnetsixe ym lufthgiled 23:32:08 Nope, not an anagram 23:32:27 I know! 23:32:36 wonki, hey, haha 23:33:59 I'm becoming dissatisfied, I think, with the usual GADT method of defining inductive types. 23:34:02 It feels to specialised. 23:36:15 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 Nat : Set 23:36:44 Nat = data zero : Nat 23:36:45 succ : Nat → Nat 23:36:45 23:36:45 however, leans too much to the right for my liking; and besides, does this even make sense? 23:36:54 Doesn't Nat expand indefinitely? If not, what does "data" actually mean? 23:38:17 -!- Gracenotes has joined. 23:42:11 ehird: what is it 23:42:24 It's complicated. You wouldn't understand. 23:42:29 goddammit 23:42:34 Oranjer: Okay, let me rephrase. 23:42:58 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 oh, okay 23:43:23 -!- Azstal has quit (Ping timeout: 245 seconds). 23:43:24 is there a place that does? 23:43:28 as in, a link? 23:43:49 Nat = Fix (\t -> data Zero | Succ t) 23:43:55 -!- Asztal has joined. 23:44:11 * oerjan ducks 23:44:32 Oranjer: Well... it's dependent type theory. 23:44:47 But good luck. You need a strong backing in functional programming and some backing in logic. 23:44:59 oerjan: I have this slight feeling that that is not well-defined. :P 23:45:08 Also, bah; I despise non-G ADT syntax. 23:45:24 At the very least, "Nat = Fix (\t -> data Zero : t; Succ : t -> t)". 23:45:31 But yes, I considered "data a where ...". 23:45:38 I dislike it; we shouldn't need such arbitrary binding of names. 23:45:46 um the whole point is you _don't_ have t as the result before using Fix 23:46:35 \t -> data Zero | Succ t would be something like an anonymous type constructor 23:46:44 right but remember all this must be total 23:47:00 regular function-level "fix : (a -> a) -> a", at least, is totally verboten 23:47:03 that's total enough, you could name it 23:47:20 Fix : (Set -> Set) -> Set 23:47:21 fix here means smallest fixpoint of types 23:47:29 prove it; Fix f = ...? 23:47:35 I'm not doubting, I'm just curious 23:48:08 well it's just what i _think_ inductive data types are defined as in denotational semantics 23:48:19 while codata uses largest fixpoint 23:48:32 -!- coppro has joined. 23:49:26 **** YEAH! 23:50:06 i don't know what restrictions there are on the Set -> Set, like you say, to make it work 23:51:47 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 or i could be horribly wrong :) 23:53:02 GO CANADA 23:54:48 oerjan: if so that would be nice 23:54:52 as a theoretical underpinning 23:54:56 data ℝ : Set where 23:54:56 ℝ : (f : ℚ⁺ → ℚ) 23:54:56 → {{ε₁:ℚ⁺} → {ε₂:ℚ⁺} → abs (f ε₁ - f ε₂) ≤ ε₁ + ε₂} 23:54:56 → ℝ 23:54:58 I think I have that rigght 23:55:00 *right! 23:55:13 Fuck yeah, definin' the computable reals 'n shit 23:57:50 hey, ehird's back 23:57:55 yeah - long story. 23:58:07 suffice to say there are now _two_ crises in my life. 23:58:10 O_o 23:58:29 being replaced by your female alter ego isn't one of them, I presume 23:58:54 oops, my name changed back. 23:58:57 -!- ehird has changed nick to alise. 23:59:04 --no, that would merely be interesting 23:59:16 are we talking full sex change here or just ephemeral gender switch? 23:59:43 not sure 23:59:58 I'd hesitate to call either one a crises -- though sometimes it can be a *pain in the ass*. ;)