00:01:17 -!- augur has quit (Client Quit). 00:02:02 -!- augur has joined. 00:05:11 -!- kar8nga has quit (Remote host closed the connection). 00:14:34 -!- jcp has joined. 00:15:27 -!- jcp has quit (Client Quit). 00:34:52 -!- Pthing has joined. 00:44:41 -!- immibis has quit (Quit: #dsdev on irc.blitzed.org exists). 01:24:40 -!- Azstal has quit (Ping timeout: 240 seconds). 01:25:04 -!- augur has quit (Ping timeout: 258 seconds). 01:30:03 -!- Sgeo_ has joined. 01:31:19 -!- Sgeo has quit (Ping timeout: 256 seconds). 01:35:44 -!- cheater2 has quit (Read error: Connection reset by peer). 01:36:09 -!- cheater2 has joined. 01:46:28 -!- augur has joined. 01:50:44 -!- sshc has joined. 02:06:09 -!- Sgeo_ has changed nick to Sgeo. 02:11:01 Arrgh... 02:11:15 -!- cheater2 has quit (Ping timeout: 246 seconds). 02:11:18 Somehow, somewhere, a closure is returning its *bound variables*. 02:11:23 Instead of a thunk. 02:12:10 use assert? :P 02:15:16 Thunk 0x6382a0 is not a valid thunk. 0x6382a0 = {tag = 4198720, union {func = 0x638300, data = 0x638300} 02:15:28 ... A tag of 4198720. 02:15:47 Note: enum {THUNK_UNEVAL, THUNK_EVAL} tag; 02:27:14 pikhq, use valgrind 02:27:29 AnMaster: Interacts very poorly with my code. 02:27:31 pikhq, disable the gc for a bit so you can use valgrind to track this 02:27:48 pikhq, what about mudflap then? 02:28:15 The issue is that somehow, someone is trying to dethunk a closure. 02:28:16 pikhq, anyway I found valgrind a must-have when coding C 02:28:23 What's a thunk? 02:28:33 * AnMaster thunks Sgeo on the head 02:28:34 THAT! 02:29:00 night 02:29:06 struct thunk {enum {THUNK_UNEVAL, THUNK_EVAL} tag;union {closure func;void *data;};} 02:30:09 pikhq, what is the value of those enum values 02:30:13 as in, their integer values 02:30:18 AnMaster: 0, 1. 02:30:34 C enums is a poor substitute for atoms 02:30:42 enum {THUNK_UNEVAL, THUNK_EVAL} is the enum declaration... 02:31:44 pikhq, anyway without a memory checker I doubt you can find this 02:31:49 anyway,* 02:32:01 AnMaster: It's really simple. 02:32:05 oh? 02:32:12 This is an issue that a *type system* would catch. 02:32:16 hah 02:32:37 pikhq, unless it is due to the gc reclaiming when it shouldn't 02:32:38 The thing is, 0x6382a0 is a pointer to a *closure*, not a thunk. 02:32:38 or such 02:32:52 pikhq, well that explains things 02:32:56 pikhq, are you using void* 02:33:01 if not you should get warnings 02:33:03 in C 02:33:18 I'm using void* when it makes sense, yes. 02:33:24 pikhq, that explains it 02:33:25 dethunk results in a void*. 02:33:36 you won't get type checking when doing void* 02:33:45 Yes, I'm well aware. 02:33:52 That is, in fact, where my bug is coming from. 02:33:53 that's the *point* of void* eve 02:33:54 even* 02:34:15 pikhq, when using void* think not just twice, think at least 5 times 02:34:24 The Active Worlds SDK represents instances as void* 02:34:24 void* is necessary for polymorphism, and it makes things very difficult. 02:34:27 Why, I do not know 02:34:58 pikhq, is it? 02:35:15 pikhq, why not use a structure containing a void* 02:35:47 that way you can get an outer level check at least 02:35:48 I have a couple. They are closure and thunk. 02:36:12 pikhq, anyway, why not use a tagged struct 02:36:43 That would be much agony. 02:36:53 pikhq, this would be similar to/inspired by tagged words in lisp compilers and tagged tuples in erlang programs 02:37:09 I am doing nasty things to C ATM. 02:37:19 pikhq, doing those would be nasty too 02:37:22 so there you are 02:37:26 night really → 02:37:28 is 'C' your little ass-to-mouth whore? 02:38:26 * pikhq looks for anything that *doesn't* return a thunk 02:38:45 (aside from my thunks, which absolutely should not return a thunk) 02:51:33 I still don't know what thunk is supposed to mean >.> 02:56:58 Sgeo: It's a lambda that takes 0 arguments. 02:57:00 In essence. 02:57:30 main.c:99: error: void value not ignored as it ought to be 02:57:37 Type-checker doing something. 02:58:14 So what's the point? 02:59:00 Lazy evaluation. 03:00:18 -!- Asztal has joined. 03:03:47 main.c:360:1: error: unterminated argument list invoking macro "global_thunk" 03:03:50 Yeah, thanks GCC. 03:03:59 I totally needed to know which line the EOF was on. 03:04:04 Not where the macro invocation was. 03:04:18 That would be totally useless to my attempts to figure out what you're talking about. 03:05:43 * pikhq sees everything nice and terminated. 03:05:50 * pikhq thinks GCC is smoking something. 03:14:02 Well, I went ahead and made as much of it as I could typesafe. And now I get no type errors. 03:14:10 Hooray? 03:36:20 -!- Pthing has quit (Remote host closed the connection). 03:41:44 -!- SimonRC has quit (Ping timeout: 256 seconds). 03:47:01 * pikhq is still amused by the lambdas with thunks that compile them from S and K. 03:50:35 -!- SimonRC has joined. 03:52:22 In a way, I am JIT'ing parts of this program... 03:52:26 :P 04:08:48 * Sgeo is practically uncyberstalkable 04:08:56 Even knowing my real name is useless 04:09:20 My nick name suffices. 04:09:42 Is the first result on Google my Wikipedia User: page? 04:09:47 Yup, so it is. 04:10:02 You're a yogurt product? 04:10:02 Followed by a pastebin and some nomic stuff. 04:10:12 * Sgeo is playing with pipl.com 04:10:18 http://www.forallvent.info/uploads/media/Ross_Stanton_Putting_microbes_to_work_-_Part_II.pdf 04:10:23 Sgeo: Abuh? 04:10:44 "PIKHQ in a yoghurt product. Other studies have identified the presence of whey protein-derived antimicrobial pep- tides, which were released following ..." 04:10:49 Oh, in 04:10:58 Still, you're in a yoghurt product! Awesome 04:13:04 -!- Asztal has quit (Ping timeout: 240 seconds). 04:13:08 You're a yogurt product? 04:13:11 L@L 04:13:56 Latl? Laughing atout loud? 04:14:27 -!- Asztal has joined. 04:14:43 Sgeo: XD 04:17:02 Someone say something 04:17:08 NEVER 04:17:09 Oh, shoot. 04:17:10 I think I'm +Deaf 04:17:29 If you haven't confirmed that you're not by now, you are :P 04:18:01 * Sgeo waits for people to assume they can talk behind his back, and repeatedly refreshes the log 04:18:22 * Sgeo undeafens self 04:18:40 That was fun 04:21:24 -!- lifthrasiir has quit (Ping timeout: 256 seconds). 04:47:33 -!- MizardX has quit (Ping timeout: 260 seconds). 04:47:56 -!- lifthrasiir has joined. 04:49:28 -!- coppro has quit (Changing host). 04:49:29 -!- coppro has joined. 04:53:10 -!- lifthrasiir has quit (Ping timeout: 276 seconds). 04:53:57 -!- lifthrasiir has joined. 04:58:36 -!- lifthrasiir has quit (Ping timeout: 258 seconds). 05:00:08 -!- lifthrasiir has joined. 05:02:07 -!- augur has quit (Ping timeout: 256 seconds). 05:08:21 -!- lifthrasiir has quit (Ping timeout: 246 seconds). 05:09:23 -!- lifthrasiir has joined. 05:30:24 -!- augur has joined. 05:39:57 Which is better/worse, Java or C#? 05:40:12 About on par with each other, really. 05:40:25 C# has some advantages over Java, Java has some advantages over C#... 05:40:44 And they're rather similar languages, design-wise. 05:40:52 They're both utterly insufferable ^^ 05:41:03 -!- jcp has joined. 05:41:11 I kind of like C# 05:41:14 C# is a nice language. Java is a nicer runtime 05:41:18 s/nice/nicer/ 05:41:26 pikhq, I haven't really encountered material about Java's advantages. What are they? 05:41:36 Sgeo: Ubiquitous. 05:41:41 Ah 05:41:48 That's a massive one. 05:42:41 Java's come full cycle to everyone hating on it, but it has lots of advantages. For starters, it's everywhere. You do not need a Windows box to get every feature of Java. Decent applets are a huge plus. Standard, direct access to hardware. 05:44:09 It's not an exceptional language, though. 05:44:13 Nor, really, is C#. 05:44:20 yeah 05:44:37 Both are really hung up on bad models 05:44:50 C# gives you proper lambda instead of the hack of "object with a single method", though. 05:46:06 yeah, as I said, C# has nicer language features 05:46:08 "bad models"? 05:46:46 Sgeo: like the lack of anything that isn't in object 05:46:50 *in an object 06:32:35 coppro: Java has things that aren't objects. 06:32:42 Like int. 06:32:57 pikhq: I meant the lack of globals 06:33:19 it adds nothing to the languages 06:33:36 and in fact makes them worse 06:33:49 since people stick their global state in a class, call it a singleton, and think they're clever 06:34:26 singleton is possibly the single best example of an anti-pattern that doesn't even get an excuse due to the grandfather rule 06:34:45 Yeah, singleton is pretty retarded. 06:35:08 "Objects allow you to prevent global state. So, let's pretend to have global state." 06:35:35 goto is probably the biggest anti-pattern ever, but only because there is better technology 06:35:54 s/goto/goto for primary flow control/ 06:36:07 there is 0 excuse for singletong 06:36:10 s/g// 06:36:20 goto for primary flow control has been considered an antipattern for a few *decades* now. 06:36:28 my point exactly 06:36:36 I said 'ever', didn't I? 06:36:53 but when it was originally conceived (i.e. when computers were first used), it was valid 06:37:01 The debate is over whether or not it's acceptable for exceptional cases in C... (jumping to a single point of cleanup before returning) 06:37:15 Yeah. 06:37:27 I'm of the position that goto is not automatically a sin 06:37:40 It stopped being valid about the time that the compiler was invented. 06:37:48 yep 06:37:50 coppro: Automatically? No. 06:37:57 But you damned better be careful. 06:38:03 agreed 06:38:42 Much like global state. 06:38:48 yep! 06:40:59 man, I wish I could get accepted to University every week for the rest of my life. I've felt like a big sigh these past few days 06:41:49 -!- oerjan has joined. 07:02:39 * Sgeo has an awesome (read: horrible) idea: PSOX.NET! 07:03:15 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:07:53 [00:06:20]stop using a combine harvester when a pair of scissors will do 07:07:57 err, wrong channel 07:08:17 still, possibly good advice 07:08:32 probably 07:12:12 i knew i was doing something wrong trimming my moustache, but i wasnt sure what 07:14:52 mycroftiv: is it upside down? 07:15:17 not unless im standing on the ceiling 07:15:40 too bad. you might have started a new fashion. 07:20:36 AnMaster: The latter. Well, the former too, I guess. 07:21:32 No comment on PSOX.NET? 07:21:38 not worth commenting on 07:21:49 it's too horrible to contemplate 07:22:14 also, I can't remember what PSOX is, and I'm trying to cover that up 07:26:04 my favorite google result for psox is: http://www.lycaeum.org/mv/anagrams/PARALINGUA.cgi?article=Taschoskeluipa 07:31:07 coppro, http://esoteric.voxelperfect.net/wiki/PSOX 07:31:38 It was abandoned due to lack of interest, even among esolangers 07:32:23 oh right, that thing 07:36:49 -!- zeotrope has quit (Ping timeout: 256 seconds). 07:53:15 Night 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:22 -!- oerjan has quit (Quit: leaving). 08:00:47 So - and I shall take up this theme again later - wherever you are to locate your notions of validity or worth or rationality or justification or even objectivity, it cannot rely on an argument that is universally compelling to all physically possible minds. 08:00:47 -!- Azstal has joined. 08:00:47 Nor can you ground validity in a sequence of justifications that, beginning from nothing, persuades a perfect emptiness. 08:00:47 Oh, there might be argument sequences that would compel any neurologically intact human - like the argument I use to make people let the AI out of the box1 - but that is hardly the same thing from a philosophical perspective. 08:00:57 http://lesswrong.com/lw/rn/no_universally_compelling_arguments/ 08:03:50 -!- Asztal has quit (Ping timeout: 272 seconds). 08:27:07 -!- kar8nga has joined. 08:41:53 -!- whtspc has joined. 08:55:10 -!- cheater2 has joined. 09:13:20 -!- MigoMipo has joined. 09:37:44 -!- FireFly has joined. 09:38:37 -!- soupdragon has quit (Quit: * I'm too lame to read BitchX.doc *). 09:48:09 AnMaster: The latter. Well, the former too, I guess. <-- context? 09:52:20 -!- Azstal has quit (Ping timeout: 265 seconds). 10:12:55 -!- tombom has joined. 10:16:25 i don't think i've ever wanted globals in java 10:16:30 sounds like a silly thing to want 10:21:00 Global as in outside of class scope? 10:22:33 yeah 10:22:46 actually i don't think i've ever needed global state 10:22:53 Having everything inside a class feels very much like a Java thing, yes :P 10:23:08 what would you ever use global state for? 10:23:57 Hopefully nothing, and if you really need it, you just have to create a dummy class with public, static variables 10:27:04 i suppose that's the singleton pattern the conversation i'm responding to was mocking. 10:27:56 static variables are weird, if i need "globals", they will obviously just be global in some context, so i'll just wrap the whole thing into some sort of object. 10:33:54 -!- BeholdMyGlory has joined. 10:47:43 I tend to avoid using such dummy classes, yes 13:02:21 -!- clog has joined. 13:02:21 -!- clog has joined. 13:02:48 AnMaster: Context was you own comment, why ask me? It was about that NSOCK thing, anyway. 13:03:02 fizzie, ah that 13:03:25 fizzie, so you might use it? well okay. It won't happen straight away, lots to do at university currently 13:04:14 I might, though there's no shortage of other improvements fungot is lacking. 13:21:08 -!- fungot has joined. 13:21:55 fungot: So... how does this new ircd feel like to you? You know, since you're a piece of code too. 13:21:55 fizzie: teh tv one. i must get the hell out of those is a field if and only if the strings are tuned a fifth apart 13:22:38 It must have made him a bit confused; that didn't make much sense. 13:35:56 -!- Ilari has quit (Quit: Changing server). 13:38:31 -!- Ilari has joined. 13:43:46 Heh... By default irssi has TLS cert verification disabled. And at least one of servers in IPv6 rotation is busted (does not respond). 13:55:09 -!- kar8nga has quit (Remote host closed the connection). 13:56:22 -!- Pthing has joined. 14:21:30 -!- tombom_ has joined. 14:23:52 -!- tombom has quit (Ping timeout: 248 seconds). 14:36:42 -!- oerjan has joined. 14:40:11 Hopefully nothing, and if you really need it, you just have to create a dummy class with public, static variables 14:40:41 iirc this argument chain started with someone pointing out that that possibility is a horrible hack 14:41:10 Huh, no swat 14:41:12 compared to allowing actual globals 14:41:30 Well, I tend to avoid using that hackish solution anyway 14:42:15 * oerjan gives FireFly a whack with the saucepan instead ===\__/ 14:42:21 ow 14:42:25 it's been unused for so long 14:58:56 I think Java doesn't support globals for same reason it doesn't support functions... 15:00:08 -!- soupdragon has joined. 15:09:54 * Sgeo really wants to know the argument Eliezer uses to get the human to let the AI out of the box 15:14:57 yeah especially how much it is a cheat... 15:15:11 I doubt that it is a cheat though 15:15:25 and moreover, whether it would have worked if used by a real AI 15:15:29 he probably just thinks on his feat.. 15:15:38 *feet? 15:15:44 also he said that he thought he could do it, so he put himself to the test 15:16:04 hm? 15:16:05 and he got it right for the first few times, but he couldn't do it for cases with much higher amounts of money 15:16:16 so it's not just the 2/2 success rate 15:17:08 however the tests on others are much more impressive 15:17:23 tests on others? 15:18:37 -!- kar8nga has joined. 15:18:44 i don't understand how applying the test to _yourself_ can be done rationally, at all 15:19:01 especially not more than once 15:19:34 testing your self it means like you think you can do something -- so try and do it, to make sure 15:19:50 or did you mean specifically AI box yourself? 15:19:57 AI box of course 15:20:07 what else are we talking about? 15:20:17 ah when I said he tested himself.. the thing he is testing is his ability to win the AI box game (against someone else) 15:20:54 -!- kar8nga has quit (Remote host closed the connection). 15:21:13 um then something is wrong here... i haven't heard about him ever _losing_ it, so what's this "he couldn't do it for cases with much higher amounts of money" thing? 15:21:29 oh he wrote about losing it on lesswrong 15:21:38 where? 15:21:49 I'll try and find it, 15:22:29 this must have been after i last heard about it, i guess.. 15:24:00 * oerjan doesn't read lesswrong that much 15:24:16 -!- rodgort has quit (Quit: Coyote finally caught me). 15:24:37 -!- rodgort has joined. 15:24:53 * soupdragon just "found" it very recently.. 15:25:58 I figure the argument can't be that great or he'd have convinced himself and would not be suspicious of AIs. 15:26:16 heh that's an issue too 15:26:21 huh? 15:26:50 soupdragon: if it's an argument that can be applied generally, then it should be possible to apply it against EY himself 15:27:11 yeah but why would he not be suspicious of AIs if he knew they could convince him to let them out? 15:27:13 and so it should possible to convince _him_ to let the AI out 15:27:21 that just seems like another reason to be scared 15:27:36 how very meta 15:28:12 no, I mean he ould have convinced himself during the first experiment 15:28:59 *would 15:29:37 this is frustrating I thought the one I was looking for was in the coming of age series but it's not 15:30:01 AnMaster: I think the cooling behaviour is because of better airflow, though it may be a sign that your battery is charging continuously, which probably isn't good 15:30:19 SimonRC, better airflow likely 15:30:36 SimonRC, computer reports it isn't charing 15:30:39 charging* 15:30:46 lol 15:30:48 as in, it hasn't hit the "start charging again" level 15:31:14 SimonRC, using the tp_smapi module you can set thinkpads to only start charging once you go below a certain level 15:31:55 There were three more AI-Box experiments besides the ones described on the linked page, which I never got around to adding in. People started offering me thousands of dollars as stakes - "I'll pay you $5000 if you can convince me to let you out of the box." They didn't seem sincerely convinced that not even a transhuman AI could make them let it out - they were just curious - but I was tempted by the money. So, after investigating to make sure 15:31:55 they could afford to lose it, I played another three AI-Box experiments. I won the first, and then lost the next two. And then I called a halt to it. I didn't like the person I turned into when I started to lose. 15:31:59 http://lesswrong.com/lw/up/shut_up_and_do_the_impossible/ 15:33:30 he says also 'I did it the hard way' which I assumed was the case 15:33:33 would "the linked page", be http://yudkowsky.net/singularity/aibox, the top google hit for "AI box experiment"? 15:34:02 good grief, not adding that in there seems intellectually dishonest to me. 15:34:16 hm? 15:35:24 soupdragon: the top page on the internet which people reach if they _search_ for "AI box experiment" contains no mention of these "three more" experiments. i find that intellectually dishonest. 15:35:33 oh 15:36:00 well if you ask him why he'll probably convince you that it isn't :P 15:36:25 sheesh 15:40:04 -!- MizardX has joined. 15:43:01 -!- MigoMipo has quit (Read error: Connection reset by peer). 15:44:22 didn't like? :9 15:45:05 i've just started reading your link 15:45:24 it's you lots fault that I read this blog by the way!! 15:45:30 It's not out of my own personal choice 15:46:11 well given that i learned about this blog here, and do _not_ read it regularly, i find that claim somewhat dubious :D 16:02:29 -!- facsimile has joined. 16:03:33 -!- soupdragon has quit (Killed (NickServ (GHOST command used by facsimile))). 16:03:36 -!- facsimile has changed nick to soupdragon. 16:16:01 -!- MigoMipo has joined. 16:28:31 people on youtube are so fucking stupid 16:29:09 fuk!!!! 16:29:18 first reply 16:31:39 fu queue 16:36:33 -!- jcp has joined. 16:37:13 "far queue"? http://www.theregister.co.uk/2000/05/19/bofh_discovers_voice_recognition/ 17:00:09 -!- kar8nga has joined. 17:07:57 -!- SimonRC has quit (Ping timeout: 246 seconds). 17:17:22 -!- MigoMipo has quit (Ping timeout: 272 seconds). 17:17:24 -!- MizardX- has joined. 17:18:41 -!- SimonRC has joined. 17:19:46 -!- MigoMipo has joined. 17:19:52 -!- MizardX has quit (Ping timeout: 248 seconds). 17:19:53 -!- MizardX- has changed nick to MizardX. 17:30:49 Collection 1892 reclaimed 301312 bytes ---> heapsize = 356352 bytes 17:31:00 It's like the most inefficient cat program ever! 17:36:03 -!- cheater3 has joined. 17:36:56 -!- cheater2 has quit (Ping timeout: 248 seconds). 17:39:09 pikhq: most inefficient cat program? sounds like a challenge! 17:39:29 olsner: Well, I could *make* it more efficient if I wanted to. 17:39:50 *inefficient? 17:40:37 I have probably seen worse one... 17:40:53 GC_DONT_GC=1. 17:41:01 I suppose the challenge is to find the language that makes the least efficient most efficient cat program 17:43:08 With GC_DONT_GC, it uses 466 megs of RAM. 17:46:49 Hmm... This cat program I found looks pretty funky (I wrote it back in 2007)... Obivously uncommented, but at least variables have somewhat descriptive names... 17:47:52 -!- Asztal has joined. 17:47:56 Does it leak memory like a sieve? 17:48:06 Of course it does. :-) 17:48:25 And with the language, there's no choice but to leak memory like a sieve... :-) 17:48:30 Like, "all malloc, no free"? :P 17:49:20 Yup... 17:49:29 And no gc either... :-) 17:52:10 Heh. 17:58:15 what we need for real slowness is a language in which the entire input and output are each treated as a single number 17:58:30 and no way to modify numbers faster than decrement/increment 17:59:08 and preferrably only in peano arithmetic 17:59:09 and, critically for cat, you cannot do direct copying of input number to output 17:59:22 oerjan: That's even crazier than the entire input and output being treated as a single function. 17:59:23 possibly they are in different formats 17:59:29 :P 17:59:46 input in base-pi, output in base-e 18:00:05 ouch 18:00:43 I don't know how to use anything beyond simple integral bases, that would be really interesting to grok 18:01:08 even -1/0/1 trinary/ternary is esoteric enough to be painful 18:01:20 olsner: It's very... Non-trivial. 18:01:48 http://www.dwheeler.com/essays/bases.html this looks relevant 18:02:45 pikhq: the entire input and output a single function isn't that bad for lazy-K, precisely because of laziness 18:02:46 In case anyone wants to take a look at that program: http://pastebin.ca/1773280 18:03:16 hmm, you'd need some nice encoding to map stream-of-bytes to whole numbers... the trivial base-256 interpretation doesn't work well with streams of zeroes, for instance 18:03:30 oerjan: Yeah. 18:03:58 And given that I'm trying for a subset of Lazy K... Works just fine. 18:04:23 (*Trying*. It seems that something's amiss in the infinite list.) 18:04:54 olsner: the thing we discussed on the wiki a little while ago should work modified for this: base 256 with digit 256 instead of 0 18:05:47 hmm, looks like I never bothered to actually do anything with input in my single-combinator language, but there're some stubs for it (was going to work just like lazy k) 18:05:56 oerjan: i.e. base 257? 18:06:15 olsner: no! the multiplication is by 256 at each step 18:06:16 The program that generates an infinite list of As and Bs works just fine, but anything with input seems borken. 18:06:59 but the digits are 1-256. this allows you to distinguish strings of different length cleanly 18:07:10 hmm, does that really work? 18:07:44 yes. there's even a wikipedia article 18:08:22 http://esoteric.voxelperfect.net/wiki/Talk:Unary, wp link at the end 18:09:37 Oh, sweet. It would seem to be a bug in my parser. 18:09:53 If I strip out all irrelevant chars, it works just fine. 18:10:43 (in that program thoese stands for that codepoint (yes, Unicode abuse). :-P 18:12:27 And the prime number generator managed to get up to 2.5G. 18:12:39 oerjan: cool 18:13:05 Whee, Chrome's frozen again 18:13:42 no wonder with these temperatures 18:14:51 anyone remember about that crytographic interpreter? 18:15:07 the idea was that you give it some encrypted program and it doesn't understand it, but it prints out the right answer 18:15:19 hasn't that been proven impossible? 18:15:21 i.e. you can't just look at a backtrace to see what the program was 18:15:28 oh! is there an impossibility proof? 18:15:58 I don't know for sure, or if it's just generally considered impossible 18:16:41 :S 18:16:43 I think the interpreter needs to "understand" the program in order to run it, which basically means it isn't encrypted at all 18:17:26 Wow: from valgrind: "==13568== total heap usage: 2,090,158 allocs, 2,090,158 frees, 125,608,436 bytes allocated". And that's for 80 bytes to copy! 18:17:52 there are some algorithm encryption methods but they are limited in power 18:18:21 Hmm... Probably good part of that isn't permanently used... 18:18:33 on the other side, i recall there was some impossibility result to the effect that there had to be properties of the original program source you could detect beyond its behavior 18:19:09 i.e. no encryption could hide everything except the I->O mapping 18:19:58 CTRL+C'ing it after 80 bytes: ==13574== in use at exit: 206,768 bytes in 13,669 blocks 18:20:12 there still seemed to me to be a large open area between those extremes, though 18:31:10 -!- ztirf has left (?). 18:36:33 I wonder if you can extend the non-integer base numeral systems to bijective ones like you can for integer bases 18:37:15 this sounds bad though: "The base e is the most economical choice of radix β > 1 (Hayes 2001), where the radix economy is measured as the product of the radix and the length of the string of symbols needed to express a given range of values.", we are after all aiming for low efficiency here 18:40:44 the differences between bases are probably tiny when you factor in the number of bits to encode one digit. 18:41:00 yeah 18:41:16 as in, for integer bases they cancel out exactly, i should think 18:42:26 for power-of-two bases it will be exactly the same, otherwise there will be some waste if you use an integral number of bits for each digit 18:42:42 "==19952== malloc/free: 0 allocs, 0 frees, 0 bytes allocated. 18:42:43 " 18:42:53 Heheheheh. 18:57:45 At least it is _slow_: For copying 1024 bytes: user time 24m20.143s... 19:00:37 And estimating from earlier test, it needed about 2.5MB of memory... 19:02:30 And total allocations being something like 15GB... 19:13:57 good thing: Google chrome makes like 10 processes and splits your tabs amongst them 19:14:10 bad thing: it puts 90% of the tabs into one of the processes 19:14:50 It groups them by site, doesn't it? 19:15:05 yeah 19:15:40 -!- cheater3 has quit (Read error: Connection reset by peer). 19:15:55 -!- cheater2 has joined. 19:17:28 -!- zzo38 has joined. 19:19:57 'Pataprogramming.... is that like Forth in any way? 19:21:43 and despite that process having 100 tabs from the same site in it, it still gets loaded with a few more 19:22:13 It really makes the whole thing of "If one tab crashes or freezes, the rest are ok" a lie 19:22:23 I suppose I'm lucky that I didn't open 100 tabs from each of 10 forums and have most of them end up in one Chrome process 19:22:46 Sgeo: well, it's true with a few dozen open 19:22:51 And also in the list of ideas, it is mentioned the magic system in RPG, that using it like that. While I think that won't work well in that RPG, the Icosahedral RPG uses something that is almost similar, but not really.... 19:23:32 Sorry, I found the log now. 19:24:43 Maybe if you prefer, you could reprogram Google Chrome (Chromium for the generic/open-source version) to allow you to select which tabs in which processes 19:25:29 SimonRC, if you do that, give me a copy 19:25:36 :D 19:27:52 huh? 19:37:39 -!- Asztal has quit (Read error: Connection reset by peer). 19:38:13 -!- Asztal has joined. 19:39:15 No one knows what happened to ehird? 19:39:26 No. 19:39:49 Which one is that skull? 19:41:06 * oerjan concludes that zzo38 is a headhunter picking us off one by one. poor ehird. 19:42:22 No. 19:42:38 In reality, I don't actually know either. 19:42:52 well you would say that, wouldn't you. 19:43:50 * Sgeo should probably make a program to determine if ehird's been absent like this in the past. 19:44:52 yes he was, but not this long (2 weeks today?) 19:45:08 and he didn't want to explain why 19:45:25 Can't you just look it up the logs? Maybe you need to read each file to check using regular expressions in each file 19:45:25 Maybe he's starting to... get a life! *shrugs* 19:46:52 Ehird. Life. *Right*. 19:47:03 Just a suggestion :P 19:57:01 * pikhq wonders where the bottleneck is in his horridly inefficient code. 19:57:21 From the looks of things, its the fact that S and K get dethunked for everything. 19:57:31 pikhq, but you got it working? 19:58:42 The parser is broken and I'm not sure why. 20:01:27 Instead of ignoring characters not in "SKI()", it... Returns. 20:02:24 paste? 20:03:02 hmm, what if you read input as bijective base-256, then convert to a base-pi quaternary floating-point, accept output as a base-e trinary floating-point number, then output it again as bijective base-256 20:03:26 obviously, nice peano stuff in the middle to prevent too much efficiency 20:04:19 peano stuff + floating point feels so ugly 20:04:30 well, yeah, that's the point 20:04:44 i was afraid of that 20:05:48 if you could figure out a specific number of decimals (would that be pinals/natals for base-pi/base-e?) that would represent all integers unambiguously, that would get rid of the floating-point at least 20:06:34 sudden intuition says that might actually be a difficult problem 20:07:13 yes, but quickcheck doesn't immediately object to only going down to 1/pi and 1/e 20:07:54 hm maybe 20:12:44 hmm, for the least significant digit you have (x*pi + rest), where 0 <= rest < pi, and x is some pinary number (i.e. the non-least significant digits) 20:14:21 -!- soupdragon has quit (Quit: * I'm too lame to read BitchX.doc *). 20:14:22 then you choose a digit to minimize (rest - {0,1,2} * pi^0), and I think that remainder is at least less than 1 20:14:52 then again, x*pi is not at all guaranteed to be an integer, so rounding on that thing does something tricky 20:15:40 i'd think base pi digits are 0,1,2,3 20:15:47 maybe you could just brute-force it and keep outputing decimals until the result when converted back and rounded produces the original input 20:15:53 oerjan: right, that's what I meant actually 20:16:01 base-e has 0,1,2 though 20:16:38 might be easier to just truncate down 20:17:18 the rounding operation could be a lot of things, really 20:19:15 hm, really you just start at the highest power pi^k <= n, subtract the right multiple of pi^k and iterate with the remainder 20:19:34 it could specified as something "clever" instead of floor/ceil/trunc/round, but very creative rounding functions might require corresponding modifications in the conversion code 20:20:00 always leaving something < pi^k for the next step, so < 1 after k = 0 20:20:11 right, the question is when to stop, since you're not guaranteed to ever reach zero with the remainder 20:20:42 but < 1 is enough if you round... up, i think 20:22:05 hah, look at that, with ceiling, it passes quickcheck when stopping at k = 0 20:22:49 in fact you are guaranteed never to reach zero, as soon as you have any digit /= 0 for power > 0. because pi is transcendental. 20:23:15 as is e, btw. 20:23:21 indeed 20:24:48 assuming you use an exact representation. 20:25:36 I don't, and that will cause problems for large inputs 20:26:12 would basically need an arbitrary-precision floating point library to ensure that the conversion from arbitrary-precision integer to base-pi is correct 20:26:19 yeah 20:26:51 well given that the statest goal is to be as slow as possible... :D 20:26:55 *stated 20:27:42 also, computable reals instead of floating point, perhaps 20:28:19 any slowness that is not required for correctness I think is cheating, but this seems to be required for correctness :D 20:28:21 the transcendentality should mean you never get in trouble with comparing for equality there 20:29:19 might become one of the only languages where implementing 'cat' is subject to rounding errors :) 20:29:19 -!- MissPiggy has joined. 20:29:53 with floating point it might be problematic to determine what precision is necessary to avoid rounding errors 20:29:59 'cat' is basically implementing a base-pi to base-e conversion, by whatever means the language provides for maths 20:30:19 There will be a tutorial for this language, right? 20:30:27 I haven't been following the chat 20:32:52 so far i've been thinking of unbounded bf + weird i/o, if only because bf has the right relationship to peano arithmetic 20:32:52 computable reals sound like it could work with something lambda calculus-like 20:32:52 but that is of course boring 20:32:52 In your opinion, in a Forth program which way is better for the CHAR command working, as in the example 0 CHAR *42 . . is it better the way gforth does it or in the other way? 20:33:25 hm right they may have to be implemented inside the language for doing the base-pi to base-e conversion 20:33:49 Sgeo: we've just partially covered the I/O system so far, what the actual language will look like is completely unknown 20:34:26 while they also need to be used in the actual interpreter for converting between bytes and language format 20:34:27 I've been leaning towards something LC-like, just because that makes it easy to make lists and integers hard 20:35:46 that has the disadvantage that it's easy to avoid using unary other than in the final encoding/decoding 20:35:47 What is LC-like? 20:36:36 Lambda calculus. 20:36:39 OK 20:36:41 well, "easy". it _is_ possible to implement binary in LC, after all 20:36:47 right, you would like unary to be required somewhere, since the numbers will be huge 20:36:58 might become one of the only languages where implementing 'cat' is subject to rounding errors :) 20:37:00 * Sgeo sees no good reason for LINQ to Entities not to support .Single() grr 20:37:01 What language is this about? 20:37:08 (and the rest of the long discussion above :P) 20:37:11 FireFly: shh, it doesn't exist yet 20:37:18 But... it sounds interesting :( 20:37:43 I asked in ##csharp , and they basically said I could just use .Count or make a list 20:37:43 FireFly: we're pondering how to make a language where cat is intrinsically horribly slow 20:37:43 And that is its main concept? 20:37:45 indeed 20:37:58 Well, I guess that's one way to design a language.. 20:38:18 FireFly, I saw them talking about base e and base pi 20:38:21 so, input and output are encoded using a huge number in base pi and e, respectively. 20:39:23 the tricky part is *intrinsically*, but it's partially solved by having the interpreter translate input and output into inefficient esoteric formats 20:39:23 Stop having equally long nicks both starting with o :( 20:39:23 so cat needs to convert - but the most efficient arithmetic operations are increment/decrement 20:39:25 MWAHAHA 20:39:32 NEVER 20:39:43 FireFly, for me, they're differently colored nicks 20:39:50 :( 20:40:01 I don't want my IRC window to look like a rainbow 20:40:37 me neither, i chose a color scheme with nicks black on white 20:40:57 white.. background? ._. 20:41:01 yes 20:41:05 That's.. horrible 20:41:06 hmm, you could have de/increment-base-pi and de/increment-base-e where each function just interprets an internal number differently (i.e. you can do base-e operations on the number you received as base-pi) 20:41:06 IMHO 20:41:22 I wonder if that's enough to achieve anything 20:41:37 argh 20:41:52 oerjan? 20:42:12 note that base-pi and base-e are both intrinsically _ambiguous_ representations... 20:42:12 in that system you would not have access to the actual representations, except that it's place/value and the operations do carrying etc based on the "base" of the operation 20:42:28 i _really_ don't want something to be interpreted as both :D 20:43:07 * Sgeo interprets oerjan 20:43:27 except of course we've mostly elected to use "greedy" representations, i guess 20:43:41 * Sgeo didn't elect anything this year 20:43:51 (maximal most significant digits) 20:43:53 I think, if there's a 3 digit in the base-e representation, that's just 3*e^i, and a base-e operation would do something to normalize that when it happens to touch the number 20:44:00 Well, I guess I'm electing to be unproductive to this channel :/ 20:44:17 base-pi-as-base-e is the tricky case since base-pi has another digit 20:44:38 Sgeo: hey someone has to do the puns when i'm actually discussing 20:44:44 of course the tricky part is proving that this is a complete set of operations 20:45:48 Wait 20:45:55 and since the base is not integral, you can't just "carry" the overdigits (i.e. in base-10, a 10 could just be carried into the next digit, no such luck if the digit is 3 and the base is 2.78) 20:46:00 Hmm 20:46:20 What happened to the quaternary idea? 20:46:23 * Sgeo doesn't know how non-integral bases work :( 20:46:29 FireFly: base-pi is quaternary 20:46:33 0,1,2,3 :) 20:46:35 Ah 20:46:43 I thought you meant quaternary as in quaternions 20:46:48 Would be much more interesting :D 20:46:51 And probably slower too 20:46:53 Sgeo: messily 20:47:38 now that I've mostly grokked base-pi maybe base-ijk can be the next one to try 20:47:42 What's the point of octal? Why specify 3 bits per digit? 20:48:01 Also, how can I learn base pi? 20:48:27 Sgeo: http://en.wikipedia.org/wiki/Non-integer_representation 20:48:38 Sgeo: it's the highest power-of-two base that doesn't require you to invent new digits? 20:48:57 oerjan, ah 20:48:59 olsner, ty 20:50:36 Also reasonable unit sizes, such as bytes of 9 bits, or words of 36 bits, are nicely represented by a fixed number of octal digits. 20:50:42 -!- Slereah_ has quit (Ping timeout: 240 seconds). 20:50:58 bytes of 9 bits? 20:51:29 hooo, how about this though: all internal arithmetic is based on a *different* transcendental base - I'm not holding my hopes up on making that actually work, but what if you can only do arithmetic by reintrepreting those base-e/base-pi numbers as base-q, for some esoteric q 20:51:48 * pikhq attempted to execute LostKng.lazy. 20:52:04 It segfaults the official Lazy K interpreter. 20:52:08 -!- Slereah has joined. 20:52:17 * oerjan is only half able to follow olsner at this time 20:52:28 Sgeo: If your words are 36 bits, it is nice to have bytes of 9 bits so that you get an integer number of bytes in a word. 20:52:42 Why are there words of 36 bits? 20:52:47 Stack overflow in the parser. 20:53:42 oerjan: the input number is sum(digit[j] * pi^j), but arithmetic operations read and write as sum(digit[j] * q^j) - same digits, different meaning 20:53:54 Sgeo: i am usually thinking of octal as an older cousin of hexidecimal, from the time when it wasn't a given that computer address lengths should themselves be powers of 2. i'm not sure how historically accurate that is... 20:54:07 Sgeo: "This word length was just long enough to represent positive and negative integers to an accuracy of ten decimal digits (35 bits would have been the minimum)" is Wikipedia's unsourced rationale: http://en.wikipedia.org/wiki/36-bit_word_length 20:54:37 All because he doesn't make the parser tail-recursive. 20:54:44 And of course it's divisible by six, and there were those six-bit character encodings. 20:55:13 you'd have to calculate an output number base-q, but the output routine reads the digits as base-e (with some kind of handling of overdigits, since q > e) 20:55:34 pikhq: hey getting tail recursion right is hard in lazy languages... 20:56:03 oerjan: The parser of the lazy language? 20:56:09 Which is written in a strict language?' 20:56:13 oh 20:56:17 (namely C++) 20:56:23 well then not 20:56:25 oerjan how is tail recursion a concept in a lazy langeag? 20:56:38 MissPiggy: You can still tail recurse. 20:56:41 It just doesn't mean much. 20:56:46 pikhq, well it doesn't mean anything 20:56:50 so it's not a concept? 20:57:08 Sure it is. 20:57:46 It's just that the strictness of things also comes into it. 20:57:51 there, it's now a language where I have no idea whatsoever how to write a 'cat' program in it 20:59:34 * oerjan officially runs away from this language screaming 20:59:40 -!- Pthing has quit (Remote host closed the connection). 20:59:57 it just seems like the appropriate thing to do 21:00:28 Hey, you're still here 21:00:40 i didn't say i was going to run far 21:00:43 True 21:00:52 Plus, you may have a laptop 21:01:08 indeed, technically i have. i just never move it. 21:01:34 My laptop tends to move between the table next to my bed and my lap 21:02:23 -!- adam_d has joined. 21:02:31 hmm, implementing an increment operation on non-integral-base numbers seems kind of tricky, maybe it should be up to the program to handle that then 21:04:02 otoh, you can't let the program interpet numbers in a base that's convenient to it 21:04:42 Is this an increment by one or increment by base? 21:04:49 Increment by base doesn't sound tricky at all 21:04:56 it would be by one, of course 21:05:05 it's all integers actually 21:05:21 increment by base is just as tricky as increment by one, just shifted one position 21:05:49 d'oh, yes, the first position is base^0 which is an integer 21:06:45 -!- zzo38 has quit (Quit: zzo38). 21:06:59 Lazy K: You too can use 1.5G of RAM to compute 2^150! 21:07:59 2^150! is a rather large number, after all. 21:08:14 i say! 21:08:18 -!- adam_d has quit (Quit: Leaving). 21:08:53 2^150, not fac(2^150). 21:09:36 food -> 21:09:48 '@'@::**:*:*:** 21:10:22 Also, 15 seconds of 100% CPU usage. 21:11:02 Deewiant: Why '@'@ there? 21:11:29 Because it doesn't optimize the linear form, as I've oft said 21:11:55 Oh, so you were *cheating*. Well, then. 21:12:45 You thought I'd write something like "::**:*:*" instead of "::::****" manually? :-P 21:13:06 You never know, about people. 21:13:15 I suppose not 21:13:58 -!- MissPiggy has quit (Quit: MissPiggy). 21:30:37 Deewiant, where is the source to that tool? 21:32:14 Didn't you take a copy of it last time we talked about it? 21:32:29 -!- MissPiggy has joined. 22:06:52 -!- tombom_ has quit (Quit: Leaving). 22:30:52 -!- kar8nga has quit (Remote host closed the connection). 22:35:58 -!- MigoMipo has quit (Ping timeout: 272 seconds). 22:56:14 -!- oerjan has quit (Quit: Good night). 23:11:34 -!- madbr has joined. 23:24:14 awesome, I caused an assertion failure in mpfr since I exceeded the maximum number of bits (actually, an integer overflow in the precision variable) 23:25:12 It's rather curious how little the garbage collector actually frees. 23:28:35 * Sgeo is contemplating how PSOX.NET would work 23:28:42 Completely different from PSOX 23:29:27 It would seem that all my thunks retained values in their closure even after being allocated. 23:29:40 Meaning the poor, poor garbage collector couldn't collect much garbage. 23:31:27 * Sgeo collects pikhq 23:31:28 * pikhq looks for other memory leaks. 23:34:51 Down to 53 megabytes to compute 2^150. 23:35:06 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:35:10 Which is smaller by a few orders of magnitude. 23:39:41 Whose was that interesting language "Clue" being discussed uh.. yesterday, I think? 23:39:57 mine 23:40:01 Oh, right 23:40:04 * FireFly wants a public build 23:40:43 once i make the parser, i'll prolly put the interp up on the wiki 23:40:52 also once i've cleaned it up a bit 23:41:19 exam in 7 hours, after that i have a month of not being insanely busy, so might have the time 23:41:36 Ah 23:41:45 Well, good luck with the exam 23:42:57 multivariate calculus, probably my weakest spot in all the land 23:43:35 oklofok: what's difficult about it? 23:44:03 oklofok what about Solomonoff induction? 23:44:10 mostly the part where i actually need to integrate something :P 23:44:13 regarding Clue 23:44:18 okay yeaah integration is very hard 23:44:25 I agree with that 23:45:27 can you integrate log x? :D lbh hfr vagrtengvba ol cnegf ol erjevgvat vg nf bar gvzrf ybt k 23:46:09 you know how mandelbrot set is uncomputable, but you can still approximate it to very fine accuracy 23:46:18 well Solomonoff induction is also uncomputable.. 23:46:25 err umm. no, i don't remember 23:46:28 so you can probably compute it to very fine accuracy 23:46:56 This sounds interesting. I wish I had math courses beyond high school calculus 23:47:24 I think the main thing multivariable calculus does is introduce the partial-d? 23:47:39 so you have dy/dx and partial-dy/partial-dx now 23:47:58 and then in more advanced calculus you get deltay/deltax 23:47:59 Time to sleep, nighty 23:48:17 -!- FireFly has quit (Quit: Leaving). 23:50:06 do you know what I mean about solomonoff induction :( 23:51:03 we prove basic results on vector field potentials, and then there's the theorem about generalizing substitution for multivariate functions, the course is not actually about integrals, that's just what i'm afraid of 23:51:27 Well, rot13.lazy runs in constant (low) space now... 23:51:49 I do believe I'm at the point where any memory leaks are the fault of the executed program. 23:52:06 also the substitution thing is not proven. the course is sort of a mix of useful stuff for physicists and such, and of more rigorous stuff 23:52:28 oklofok: ahh you do proper maths 23:52:41 you're lucky, 23:52:44 hmm, converting to and from these non-integral bases was quite slow indeed 23:53:04 my stuff is just sort of being show how to do scribbling in the way that mathematicians do 23:54:40 huh, at uni? 23:54:45 yeah 23:55:06 some guy stands at the front and copies a bunch of equations from a bit of paper, then a class of a 100 people copy down his version 23:55:32 then we go to a different room and do the same thing 23:55:40 it's pretty silly, but it kills the day 23:55:42 this is pretty much the only course where we don't develop the theory from scratch (apart from the actual logic) 23:56:18 it's not like I have something better to do than pretend to do mathematics 23:56:25 :P 23:56:50 and kinda hard to just quit after you've spent a few years already 23:56:50 what sort of homework do you have, "calculate determinant of this matrix here"? 23:57:11 no 23:57:35 the last homework was copy a page of notes out but add 'y' in a few places 23:57:39 there's this guy from like honduras or something, always complaining about how our uni is so theoretical and boring, unlike his university, where they did more concrete stuff like solving equations. 23:57:52 (they didn't phrase it in.. quite, that way.. but that's essentially what I did) 23:57:53 what? :P 23:58:48 * oklofok feels patriotic.