00:26:03 -!- NihilistDandy has quit (Ping timeout: 240 seconds). 00:28:08 -!- NihilistDandy has joined. 00:30:52 -!- fizzie has quit (Ping timeout: 240 seconds). 00:36:59 -!- fizzie has joined. 00:41:20 * pikhq is convinced that automotive engineers are assholes. 00:42:01 Why the hell should it be even slightly difficult to do maintainence on an engine? 00:42:33 And why the fuck do I need to jack my car up to get to the battery? 00:42:46 And why should it be a time-consuming affair to replace a headlight? 00:42:49 Assholes, I tell you. 00:43:17 Holy shit, Bitcoins have exploded in value. 00:43:34 FML for not predicting this 00:43:37 congratulations investors 00:43:47 I could have eightfolded my money :( 00:43:49 PAH 00:43:57 Although it might be the dollar decreasing in value instead >:) 00:44:12 bitcoins the good and stable currency 00:44:22 except when it deflates 00:44:30 invest always 00:45:22 -!- zzo38 has joined. 00:46:07 Someone on another IRC told me that all IRC clients and all IRC servers follow the standards/RFC. However, I think on this channel, someone told me that mine is the only one that does, and that you hate it for that reason? 00:47:00 I thought that very *few* IRC servers actually followed a strict reading of the RFC. 00:47:25 And no clients even give a fuck. 00:47:51 -!- TeruFSX has joined. 00:48:13 -!- elliott has quit (Ping timeout: 250 seconds). 00:48:21 pikhq: Really? I think someone on this channel, has, in the past, told me that my client follows the RFC closer than others (and that they hate my client for those reasons). I think it has to do with embedding commands inside of messages, or something like that? I don't remember exactly 00:49:15 Like ACTION this, for example. 00:51:03 Are you sure??? 00:58:31 *sigh* 00:58:40 People actually ship code with -Werror enabled. 00:58:54 The stupid is palpable. 01:01:26 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:03:41 pikhq: Yes I have seen that. Unfortunately, the warnings that I do want to make into errors (I don't want all warnings to be errors), I cannot control separately from the other warnings/errors. 01:04:06 (What I do is I just keep them as warnings.) 01:04:33 I think the code I have seen with the -Werror is something to do with PXELINUX if I have remembered correctly. 01:04:46 -Werror is just fine when you're developing software. 01:05:21 However, it is positively broken and wrong when you ship the source code with -Werror plugged into your build system. 01:05:38 -Werror? 01:05:41 You never know when a GCC version is going to come along and add a new warning. 01:05:51 Phantom_Hoover: It makes all warnings into errors. 01:06:19 There are some warnings I do not want to make into errors. There are also some warnings I want to suppress. However, not all warnings are controllable. 01:06:51 That *includes* things like a function being made deprecated... 01:11:20 Do you know about what I have done in the past the Icosahedral RPG (where a "mana" is a mathematical kind of thing)? I think that WotC should copy it (as long as they do not violate my license) and call it Advanced D&D. 01:18:10 What is your opinion on this matter? 01:24:43 -!- Patashu has joined. 01:24:51 -!- elliott has joined. 01:29:11 oh man, a homestuck update that Sgeo hasn't even bugged me about yet 01:29:19 that gives me the opportunity to! 01:29:23 lol 01:29:24 an opportunity which i will waste oops 01:32:40 I have no idea what's going on in the last panel 01:33:05 That's because you didn't pay attention for a single second of your binge and, as such, have no recollection of prior panels of any sort. 01:34:45 Sgeo: http://www.mspaintadventures.com/?s=6&p=005508 01:34:55 Everyone else: Don't click that unless you've read Homestuck or are completely sure you never will. 01:35:51 Ah 01:36:14 Someone got a syntax error and posted the message to some public forum. Someone else answered by saying that their problem is that the software they were using was not designed to help, it was designed to teach you arbitrary "syntax". 01:36:25 Sgeo: It basically all ties in with the "circumstantial simultaneity" shit. 01:40:19 Sgeo: I assume you've been keeping track of the events in the banner of the page. 01:40:30 Yes 01:40:37 I suspect you have not so, in my thoughtfulness, I have prepared a face to pal-- damn. 01:46:39 -!- copumpkin has joined. 01:48:18 Someone claimed he was the fastest computer programmer, and the reason is that he tosses anything that interferes with productive programming, with apparently includes *all* language and *all* programming tools. 01:48:43 -!- SimonRC has quit (Ping timeout: 260 seconds). 01:55:56 And zzo38. 02:00:42 how do you program without syntax 02:01:00 I don't know. 02:01:29 it could always be like scratch 02:01:36 where you plug statements/expressions/functions together like jigsaw pieces 02:02:09 There are other systems, too, that you connect commands together to program. 02:03:05 that's the only thing I can think of - because the GUI controls what input is valid, you cannot give invalid input 02:03:16 But he meant I think, apparently, one where you can think at the highest level and program at the lowest level; and that you have no arbitrary keyboard, because you can configure all the keys to suit you; and I don't know what else. But it involves machine codes. 02:06:17 -!- Phantom_Hoover has quit (Quit: Leaving). 02:16:28 -!- azaq23 has joined. 02:18:58 -!- comex_ has changed nick to comex. 02:25:28 comex: you forgot the ico 02:25:47 shadow of the colossus? 02:26:00 comexico 02:37:42 -!- pikhq has quit (Ping timeout: 240 seconds). 02:38:03 -!- pikhq has joined. 02:41:19 -!- Ycros has quit (Quit: No Ping reply in 180 seconds.). 02:41:29 -!- Ycros has joined. 02:50:23 -!- TOGoS has joined. 02:51:17 -!- TOGoS has left. 02:53:08 -!- pikhq has quit (Read error: No route to host). 02:53:33 -!- pikhq has joined. 02:53:43 That was... Strange. 02:57:47 -!- elliott has quit (Read error: Connection reset by peer). 03:02:07 jesus, I get so frustrated while talking to people on #perl... 03:02:23 or any programming language channel.. 03:08:06 -!- elliott has joined. 03:08:22 argon situation 03:09:49 * Sgeo floods #esoteric with Halon 03:10:10 Hmm, that's not actually unambiguous, is it 03:12:22 Halon 1301 03:13:31 Hmm, darn, from what I'm reading, Halon flooding isn't actually that dangerous 03:14:49 * elliott reads The Dionaea House 03:19:31 That was... less scary than I was expecting. 03:26:34 -!- poiuy_qwert has joined. 03:30:47 -!- poiuy_qwert has quit (Client Quit). 03:33:35 -!- azaq23 has quit (Ping timeout: 252 seconds). 03:34:44 -!- azaq23 has joined. 03:34:55 " 03:34:55 Ever wondered who is "on top of the Pyramid?" He gives us a clue. The bloodline he represents is well 03:34:55 above the Rothschild's in power and in the hierarchy and is extra-terrestrial in origin. The 13 bloodlines 03:34:55 we have been talking about thus far on this website and others, with the Rothschild's in a top position 03:34:55 together with the Merovingian Nobility, are quite low rank in the Big Pyramid Structure, and are the 03:34:57 ones playing a power game here on Earth, only aware of parts of the Big Game (a need to know basis). 03:34:59 The bloodline "Hidden Hand" is supposedly belonging to is way more advanced and higher rank." 03:35:01 I'M LEARNING TODAY 03:38:19 says atlantis is real within paragraphs, this is great 03:40:02 paranoid schizophrenic? 03:40:12 Homestuck Music Team <3 Walk Smash Walk 03:40:38 Patashu: Or troll -- what kind of Illuminati member would decide to engage people on /Above Top Secret/ of all places? 03:40:39 http://www.bibliotecapleyades.net/archivos_pdf/dialogue_hh.pdf 03:40:50 but this is interesting in its insaity :) 03:40:53 [asterisk]insanity 03:41:03 You'd have to be a really dedicated troll to obsessively come up with complex conspiracy theorieds 03:41:17 Patashu: they don't -- they just have to make up consistent bullshit in reply to questions 03:41:31 and these guys lap it up so it certainly paid off 03:41:41 But that's tedious if you don't actually believe it 03:41:43 Why bother 03:41:55 Patashu: Why troll in the first place? 03:42:04 Schadenfreude. 03:43:07 " Still, even then, you are choosing the Negative 03:43:08 Polarity with your own Free Will decisions, with a little 'help' and direction from us. Souls are 03:43:08 Harvestable in either 'extreme' of the Polarities, one could say." 03:43:11 Aaah, schadenfreude. Best kind of freude. 03:43:51 apart from insurance fraud 03:43:57 [asterisk]freude 03:44:15 [[ 03:44:15 ATS: Is the Messiah alive today? 03:44:15 HH: There is no "Messiah". Stop looking outside of yourself for 'salvation'. 03:44:15 Is there what you might call a 'Christ Consciousness' alive, then yes, in a manner of speaking. Though 03:44:15 not in your 3rd Density (dimensional) awareness.]] 03:44:15 YES 03:44:20 straight to the fourth-dimension bullshit 03:44:24 this ticks all the fucking boxes 03:45:23 HH: Who says it is the 'true' line? There were Ruling-Bloodlines long before your 'Yahweh' and his 03:45:23 'Christianity' arrived on this planet. Yahweh is 'a' Creator, not 'The' One Infinite Creator. There 03:45:24 are other and Higher 'gods' than him. Ultimately, All, are a part of The One, and either consciously, 03:45:24 or unconsciously, exercising their Free Will to Create. Begin to study 'outside of the box' for a True 03:45:24 understanding of the Creation. 03:46:13 -!- pikhq_ has joined. 03:46:19 STOP SUCKING DAMMIT 03:46:23 no 03:46:30 fuk u 03:46:32 OK, does this have a purpose? 03:46:37 zzo38: does what 03:46:57 Is it anything at all like gnosticism? 03:47:05 dunno, ask http://www.bibliotecapleyades.net/archivos_pdf/dialogue_hh.pdf :P 03:48:00 -!- pikhq has quit (Ping timeout: 258 seconds). 03:48:14 I think that "gods" and "Gods" are different and therefore you have to tell them apart to possibly understand what it means. 03:48:30 So far, doesn't seem very gnostic. 03:48:47 [[ATS: Surely if ruling elite families exist and your a member of one then you must be controlling global 03:48:48 events through world governments - tell us 1 major government action from any country that going to 03:48:48 occur in the next 5 days. 03:48:48 I won't be surprised when you refuse to do so. 03:48:48 HH: [on Sept. 10, 2008]: I am not at liberty to discuss such intimate immediate detail, [...]]] 03:48:50 LOOK AT MY SURPRISE 03:48:52 LOOK AT IT 03:49:10 Yes, I know, doesn't seem very gnostic. 03:49:20 O, it is Spanish, too? 03:49:26 oh, apparently the stock markets should have imploded? 03:49:34 zzo38: ? 03:49:40 I am not good at reading Spanish, sorry. So I will read English file. 03:49:48 zzo38: http://www.bibliotecapleyades.net/archivos_pdf/dialogue_hh.pdf is not Spanish 03:50:13 The primary property of gnosticism is the belief in some form of secret knowledge that can be imparted upon you via some divine intermediate (commonly, Jesus, but others are claimed), thereby gaining you salvation. 03:50:25 pikhq_: naw, you just have to be born into 03:50:25 THE 03:50:26 FAMILY 03:50:27 This is just crazy. 03:50:34 elliott: As I said, not very gnostic. 03:50:37 "San Francisco and Damascus, will be uninhabitable by the end of 2010" 03:50:38 hehehehe 03:50:40 that happened 03:50:54 I didn't know San Francisco ever became inhabitable. 03:50:55 :P 03:50:59 arf 03:51:10 if you just Put Random Words in Uppercase then you can be Just Like This Guy 03:51:17 " 03:51:17 That is all I have time for at present. I have a Sacrifice I must attend now. 03:51:17 No, not really." 03:51:25 ILLUMINATI GUY MAKES SUCH FUNNY JOKES HA HA 03:51:37 meh, http://973-eht-namuh-973.com/ looks vaguely more interesting than this 03:51:46 crappy reddit post, none of this stuff is mysterious or scary 03:51:56 http://973-eht-namuh-973.com/coloured%20site/start/2.jpg oh what 03:51:57 My Preference is to capitalise Nouns, as such is the proper Practice in our Language. 03:52:23 Why Not Just Capitalize Every Word? 03:52:47 http://973-eht-namuh-973.com/coloured%20site/start/4.jpg oh cool 03:52:59 I don't see the relevance of anything they wrote in this document, so far. 03:53:02 Sgeo: We All Have An Important Job To Do 03:53:10 darn, I butchered that 03:53:12 Sgeo: Such is improper. The historical Practice is to only capitalise Nouns, much as German does now. 03:53:21 lets just capitalise nothing 03:54:05 ACTVALLY, LET'S DO THIS PROPERLY. THERE ARE NO LOVVER-CASE LETTERS. AND ONLY THE LETTERS THAT THE ROMANS VSED ARE PERMISSIBLE. 03:54:13 * Sgeo counts 3 trolls who have said that 03:54:16 http://973-eht-namuh-973.com/coloured%20site/start/10.gif 03:54:23 hey its an aeroplane 03:55:18 http://973-eht-namuh-973.com/coloured%20site/start/evokation/the_evocation_first.htm 03:55:19 jesus 03:55:39 "JUPITER EQUALS 99 AND 99 EQUALS JUPITER" 03:55:42 ok 03:56:01 I can see what they might say about people being traded by governments, although it is probably only true to a small extent. What what does Polarity have to do with it? 03:56:16 elliott: Jupiter? 99? What...? 03:56:43 zzo38: god knows 03:58:00 Is it inappropriate to say <3< Vriska? 03:58:17 One day I will lock myself into a cupboard and it will be the best cupboard because Sgeo won't be in it. 04:04:00 OK, you are never free because you are stuck on this planet (and to a greater extent, the universe), but I think you can be free in different ways, isn't it? They also seem to believe in some version of the Apocalypse??? The Biblical reference is correct, and it is just metaphorical. And it doesn't mean that now is this time? 04:04:36 I like to write statements and then append a question mark? 04:04:45 I am not sure what a "Christ Consciousness" is, here. 04:04:53 CakeProphet: I think the pdf may have broken zzo38's brain 04:04:58 Eh, they've already denied empiricism and logic; useless to attempt to reason with them. 04:05:03 Do you like to use a lot of question marks???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????/ 04:05:13 says the ex-christian (that's your role forever now) 04:05:15 No. But I think that's grand? 04:05:16 zzo38: no i prefer slashes/////// 04:05:47 > 'test' 04:05:47 : 04:05:48 lexical error in string/character literal at chara... 04:05:49 elliott: Ah, fuck you. 04:06:02 oh right 04:06:05 Haskell has C-style strings. 04:06:07 pikhq_: >:) 04:06:12 CakeProphet: C-style? :P 04:06:14 too. much. Perl. 04:06:18 that's hardly something unique to C 04:06:20 > 't' 04:06:20 't' 04:06:22 > ['t'] 04:06:22 "t" 04:06:35 And I don't really think you can call Haskell's String to be C-style. 04:06:36 haskell couldn't really use '' for strings, because String = [Char] 04:06:37 elliott: as in, '' is character literal. All of the languages I've been using lately (read: Perl, bash) don't work like that. 04:06:42 pikhq_: yeah, a better word is "retarded" 04:06:48 LINKED LIST OF MACHINE WORDS HERP DERP 04:06:59 oh wait 04:07:01 A linked list of Char is *not* the same as a null-terminated chunk of memory. 04:07:02 it isn't even an unboxed list 04:07:09 "Yahweh is 'a' Creator, not 'The' One Infinite Creator. There are other and Higher 'gods' than him." Does that mean there are an infinite number of levels? 04:07:18 so each char is an allocation NICE 04:07:18 pikhq_: its arguably the only thing worse 04:07:26 zzo38: god over djinn eh 04:07:34 pikhq_: I was referring to syntax not implementation. 04:07:38 pikhq_: Text really needs to become the new String :) 04:07:46 pikhq_: as soon as we get some kind of generic container typeclass story going 04:07:53 CakeProphet: Syntax is merely aesthetic. 04:07:54 so that we won't lose all list operations because of it 04:07:59 pikhq_: doesn't mean it's irrelevant 04:08:03 pikhq_: ...okay? 04:08:13 Are Javascript's problem syntactic or ... something else? 04:08:28 I'm thinking that my language will have a Javascript reminiscent syntax 04:08:31 javasctipt has a pretty unoffensive syntax in my mind. 04:08:34 Sgeo: Just a large number of poor decisions. 04:08:42 elliott: Can it have some kind of command to tell it what to do, if ' ' and " " and so on is found in a source file, then? 04:08:44 Entirely *understandable*, considering the circumstances, but still. 04:08:47 Hmm, such as? 04:08:58 * Sgeo wants to avoid making poor decisions 04:08:58 zzo38: well, there is the OverloadedStrings extension... 04:09:04 Sgeo: no block scope 04:09:15 idiotic object system that's half-class, half-prototype 04:09:19 Sgeo: One problem is some Javascript systems will do wrong thing when you add line breaks inside of commands can have doing wrong thing. 04:09:20 bad syntax 04:10:06 -!- pikhq has joined. 04:10:10 What if I convert blocks to lambdas, do I avoid neglecting block scope? 04:10:18 Or am I misunderstanding you 04:10:37 Or what you mean by "block" for that matter 04:10:39 > "I like to end my sentences with INFINITE QUESTION MARKS" ++ (repeat '?') 04:10:40 "I like to end my sentences with INFINITE QUESTION MARKS???????????????????... 04:10:41 Uhh, yes, you could wrap the body of every if statement in a (function(){...})() 04:10:43 But that would be insane 04:10:46 Sgeo: block = {} 04:10:48 js only has function scope 04:10:53 if you declare a variable three blocks nested in 04:10:56 it's there for the rest of the function 04:10:56 I don't think the object system is too bad, prototype-based is not bad to me. And the Mozilla extensions to Javascript have some new thing such as __proto__ to access *and change* the prototype of an object, often useful. However you cannot do multiple inheritance. There is other thing too. 04:10:57 elliott, is that insane for CSP? 04:11:08 Sgeo: i don't think you actually know what you're doing, what are you doing 04:11:14 elliott: If you use "let", it is local to the block. If you use "var", it is function scope. 04:11:23 zzo38: let is not widely supported afaik 04:11:32 that is a mozilla extension, or at least from one of the newer badly-supported standards. 04:11:45 I thought CSP woud entail having a lot of lambdas after being converted to CSP 04:11:53 Sgeo: don't you mean cps 04:11:58 Yes 04:12:03 what are you actually doing 04:12:18 Ultimately, though, the problems with Javascript all spring from how Brendan Eich was forced to design and implement it in 10 days and make it superficially similar to Java. 04:12:27 Making a language to convert into a pseudobytecode that will be read by an interpreter in LSL 04:12:33 Sgeo: you said javascript 04:12:57 My current thoughts are leading this language to have a syntax reminiscent of Javascript 04:13:04 you mean a terrible syntax 04:13:07 elliott: so I'm going to make a language that is somehow a cross between Perl and Haskell. WATCH. 04:13:08 awesome great 04:13:11 There are, however, problems with Javascript. 04:13:17 CakeProphet: vomiting 04:13:22 CakeProphet: btw i wrote a signal thing that can play audio 04:13:23 What are the problems with Javascript syntax? 04:13:30 Sgeo: it sucks 04:13:44 elliott: you should let me see that so I can figure out how to play audio in Haskell sensibly. :D 04:13:57 -!- pikhq_ has quit (Ping timeout: 276 seconds). 04:13:58 *clap* *clap* *clap* that's not useful to me! 04:14:02 CakeProphet: but you'll just steal it and use it to make an inferior codebase :) 04:14:06 Sgeo: yep, but i don't really give a shit 04:14:08 Sgeo: The rule about semicolons. And that lambda functions require the long word "function" which if used a lot, will make a lot of long text. 04:14:20 elliott: nope. I will analyze and determine if I can make a superior system, and if not, use yours. :D 04:14:24 Well, I think my lambdas will be more like Fancy's lambdas 04:14:38 |string somestring| { ...code here... } 04:14:43 CakeProphet: well mine is currently one file. :) 04:15:08 elliott: is that your metric of good code? I've heard there are lot of Perl programs that are one file. 04:15:15 CakeProphet: but here it is: http://sprunge.us/ZGhA 04:15:19 and no, I mean it's literally less than a hundred lines 04:15:27 and the vast majority is trivial instances 04:15:32 Maybe like this is OK: (y,x=x;x*y) means to take the current value of "x" and take one parameter "y" to return their product. 04:16:04 CakeProphet: btw, I used Float rather than Double because otherwise i would have to do conversion 04:16:10 CakeProphet: this way i can output as thirtytwo-bit directly 04:16:10 And if you want statements then you use {} instead of () 04:16:14 and pulseaudio handles the conversion 04:16:16 and yeah pulseaudio sucks 04:16:21 lame. 04:16:31 CakeProphet: well there is no point using more precision if you will just throw it away 04:16:36 nobody uses >thirtytwobit pcm files :) 04:16:38 yeah I know. But why not use alsa? 04:16:45 CakeProphet: because the alsa binding looked ten times as painful 04:16:50 ...well, right. 04:16:52 the portaudio one is bitrottent and would not even compile 04:16:54 and undocumented as fuck. 04:16:56 [asterisk]bitrotten 04:17:05 I can always make it "pluggable" later, if you look you will see how trivial the pulse-using code is :P 04:17:06 it's just main 04:18:10 elliott: why are there all of these instances that generate errors? 04:18:41 CakeProphet: because they are impossible to implement 04:18:43 :t properFraction 04:18:44 forall a b. (RealFrac a, Integral b) => a -> (b, a) 04:18:46 so 04:18:57 (Float -> a) -> (b, (Float -> a)) 04:19:00 given properFraction on a 04:19:02 protip 04:19:03 you can't do it 04:19:05 same for (==) 04:19:08 can't compare functions 04:19:10 Another thing is the way the "new" command works in Javascript, I do not like it so much. 04:19:11 can't convert a function to a rational 04:19:13 etc. etc. etc. 04:19:21 the numeric typeclass hierarchy in prelude sucks 04:19:24 but it's what we have to work with, so 04:19:34 elliott: but you needed to implement those typeclasses to implement more useful ones basically? 04:19:42 yeah 04:19:47 hmmm, okay. 04:19:55 RealFloat is a real doozy, but it gets us atan2 :D 04:20:12 CakeProphet: anyway, "cabal install pulse-simple" and you can run that program 04:20:27 sin = (sin .) --...what? 04:20:37 oh... nevermind :P 04:20:51 sin f = \x -> sin (f x) 04:20:53 sin = (sin .) 04:20:57 yes I see now. 04:21:15 similarly, (liftA2 f) in this context is sugar for the obvious 04:21:20 i.e. a "fork" 04:21:29 Perhaps helped to make BookRecord={title,author;this.title=title;this.author=author;}.makeClass({toString:(;this.title+" by "+this.author)}); 04:21:36 ...I must get back into my Haskell brain. 04:21:47 ?unpl liftA2 (+) 04:21:48 liftA2 (+) 04:21:50 would be a slightly better system than what Javascript currently has. 04:21:50 grr 04:21:53 ?unpl liftM2 (+) 04:21:53 (\ d e -> d >>= \ b -> e >>= \ a -> return (b + a)) 04:21:56 gah 04:22:00 CakeProphet: basically 04:22:05 foo = liftA2 op 04:22:06 in this context 04:22:07 is 04:22:14 foo f g = \x -> f x `op` g x 04:22:46 kind of like `on` but with two functions instead of one it seems. 04:23:07 :t liftA2 04:23:08 forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c 04:23:13 specialised to the function instance of applicative functors :) 04:24:01 :t on 04:24:02 forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c 04:24:13 also this works 04:24:15 let foo = seconds 9 ((sinew 440 + sinew 554 + sinew 659) * (fromIntegral . fromEnum . (== 0) . (`mod` 2) . truncate)) 04:24:19 makes it turn off/on every second 04:25:26 there seemed to be a function to do something like that called every in yaxu's library 04:25:42 but it took a function parameter and I'm not entirely sure what that function did 04:26:01 let foo = seconds 9 ((sinew 440 + sinew 554 + sinew 659) * (fromIntegral . (`mod` 900) . truncate . (* 900))) 04:26:02 pleasing noise 04:26:02 but he would often do something like every 3 (<~ 4) ... 04:26:08 CakeProphet: it's not quite the same here 04:26:12 in that there's no "triggering" 04:26:14 just filtering a signal off 04:26:19 right. 04:26:25 that sort of stuff can be built on top 04:26:50 now, time to do fourier transforms :D 04:26:55 well, 04:26:59 not yet. eventually. 04:27:11 what do you need fourier for? 04:27:23 I think you need to use FFT to do a filter? 04:27:26 maybe not. 04:27:55 I'll go through my notes and see if there's a way to implement filters in time-domain. 04:28:18 http://hackage.haskell.org/package/fft 04:28:20 there's yer binding 04:28:36 there's also http://hackage.haskell.org/package/pure-fft but it's pure-haskell and older 04:28:41 with a binding the age doesn't matter so much if it compiles 04:28:44 since you can still use the newer library... 04:28:59 http://hackage.haskell.org/packages/archive/fft/0.1.6/doc/html/Math-FFT.html 04:29:13 Also, you could just write your own damned FFT, it's not *that* hard. 04:29:18 pikhq: but slow :) 04:29:26 CakeProphet: I kind of wish there was "standard" music production software that worked like this 04:29:33 elliott: Well, yes, the efficiency bit is the only hard bit. :P 04:29:41 CakeProphet: Well, I suppose Max/MSP /is/ really quite similar to the Text thing yaxu did. 04:29:45 elliott: plenty exist, but none are really what I would call standard. 04:29:45 But still. 04:29:50 CakeProphet: I mean something people actually used ;) 04:30:10 some people actually use stuff like Reaktor and Max/MSP 04:30:21 Or maybe, is better having "this" to be an actual argument to the function, similar how Python has it. And then, .makeClass should take two parameters, one is the methods, and the other is properties. And then when making object, add all properties to object with the same name as the properties of "methods", that call them with that object as its first parameter. 04:30:23 but that's more in the visual programming domain. 04:30:24 CakeProphet: I wouldn't say Reaktor is similar. 04:30:50 As a programmer, the only thing I've been able to open up and actually produce some simple sounds with before tearing my hair out is Max/MSP. 04:31:03 I have work with PureData. 04:31:15 Everything else, my patience stops, uhh, anywhere beyond a boring trivial piano roll. 04:31:15 csound is similar I'd say, minus the functional programming aspect. 04:31:27 PureData is like Max/MSP but less usable :D 04:31:31 ...yes. 04:32:34 -!- Kustas has joined. 04:32:44 there might be a way to calculate a bandpass filter without using fft though... 04:33:12 but you really need filters to produce anything interesting. additive synthesis takes forever and isn't anywhere as natural sounding. 04:33:39 what are you talking about, 04:33:40 well, there are other methods of course... but subtractive synthesis (aka use filters on pulse waves and white noise and whatnot) works very well. 04:33:41 let foo = seconds 9 . sum $ [ 04:33:41 sinew 900 * (fromIntegral . (`mod` 2) . truncate . (* 90)), 04:33:41 sinew 659 * (fromIntegral . (`mod` 4) . truncate . (* 80)), 04:33:41 sinew 440 04:33:41 ] 04:33:43 sounds awesome ;D 04:33:48 -!- sebbu2 has joined. 04:33:48 -!- sebbu2 has quit (Changing host). 04:33:48 -!- sebbu2 has joined. 04:33:49 heh, okay. 04:33:57 by awesome, I mean it sounds like noise 04:33:58 but it's nice noise 04:34:01 good luck producing music people will listen to on that. 04:34:11 I'm genuinely impressed that I'm actually able to grok the examples I'm seeing here. 04:34:19 CakeProphet: who cares what other people would listen to 04:34:38 pikhq: spoiler: i have no idea what i'm doing either 04:34:43 CakeProphet: "Noise" is a legit musical genre. Need I say more? 04:34:48 sinew :: Float -> Signal Sample 04:34:48 sinew hz = sin . ((2 * pi * hz) *) 04:34:48 in case anyone was confused 04:34:49 I'm aware. :P 04:34:56 pikhq: Depends how you define legit ;) 04:35:05 I'm just saying, filters are pretty essential tools of electronic music. 04:35:12 elliott: "People actually make and listen to it". 04:35:30 "Music" is, of course, harder to define. 04:35:37 pikhq: I am sure by that standard, there is a musical genre called baby-fucking vomitcore. 04:35:42 (Best genre??) 04:36:15 But I'm going to go out on a limb and call it "sounds made for aesthetic purposes". 04:36:32 Seems sufficiently broad. 04:36:33 -!- sebbu has quit (Ping timeout: 252 seconds). 04:36:36 "well that isn't vague at all" 04:37:08 Hey, "music" is quite a broad topic. 04:37:20 elliott: so 90 and 80 are sufficient amplitude values? 04:37:30 Hmm. Minor issue... 4'33" might not count. 04:37:38 CakeProphet: you're reading it backwards 04:37:42 I remember in csound I had to use numbers that were somewhat larger. 04:37:48 it timeses the time (in seconds) by 90 04:37:50 truncates it 04:37:52 modulos it 04:37:54 and then takes the result 04:37:58 so the result is like 0 or one 04:37:59 oh 04:38:01 or 0 or one or two or three or four 04:38:05 and it timeses the sine wave by that 04:38:05 well, what do you do to get an audible result? 04:38:09 CakeProphet: use a sine wave :) 04:38:17 remember that "one" is a perfectly good value 04:38:22 that would just give the sine wave back untouched 04:38:37 uh... I mean 04:38:56 1 is not going to audible. 04:39:19 at what point do you add an amplitude value to get an audible result? 04:39:22 Is 4'33" not counting as "music" an actual fault in the definition, though? 04:39:38 pikhq: I would say yes, actually. 04:39:51 CakeProphet: nothing is going to be audible if you don't have some kind of wave 04:39:56 Well, fuck. Music is undefinable. 04:40:07 elliott: ...I'm not even talking about the inclusion or exclusion of a wave. 04:40:14 CakeProphet: then i do not know what you are talking about 04:40:19 I'm saying, at what point do you amplify the signal to produce a sound that can be heard? where is the volume? 04:40:19 Fuck you, John Cage! 04:40:19 if we didn't work with aristolean logic this wouldn't be a problem 04:40:20 :P 04:40:53 CakeProphet: erm, depends how loud the signal is 04:42:23 elliott: so how and at what point do you specify how loud the signal is? 04:42:37 i do not understand the question. 04:42:43 in my experience it would be amp*sinew(440) 04:42:54 ...written in Haskell notation :P 04:43:11 i do not understand 04:43:14 sry 04:43:36 -!- Ycros has quit (Read error: Connection reset by peer). 04:43:38 so the amplitude of all of your sign waves is 1, and you get audible playback? 04:43:40 -!- Ycros has joined. 04:43:42 *sine 04:43:54 ?hoogle openBinaryFile 04:43:54 System.IO openBinaryFile :: FilePath -> IOMode -> IO Handle 04:43:59 CakeProphet: yeah 04:44:38 pikhq: what's an easy way to chuck a bunch of Floats to a file in little-endian thirty-two bit format 04:44:42 in haskell 04:45:11 :t fromIntegral 04:45:12 forall a b. (Integral a, Num b) => a -> b 04:47:29 elliott: I'm assuming you know how amplitude works right? 04:47:51 I just... don't see how you don't understand my question. 04:48:03 well, it's almost six am and i need sleep. 04:48:05 so that is probably how. 04:48:38 ...oh, yes, most likely. 04:51:35 ".ress is not a TLD, http://ip.add.ress is not a possible address. tldr, fake EDIT: not fake, i misunderstood" 04:51:36 oh reddit 04:51:39 never change 04:53:55 http://www.reddit.com/r/AskReddit/comments/hp3vr/whats_the_scariest_wierdest_most_mysterious_web/c1x9so1 04:53:59 HOUSE OF LEAVES LEADS TO HOUSE PURIFICATION 04:54:19 "If you consider yourself sensitive in a... Spiritual... Manner" has to be the best opening to anything ever 04:55:30 Perhaps that "dialogue_hh.pdf" can be taken metaphorically and with possible errors in the same way the Bible can be taken in this way. 04:55:37 man, I have that book 04:55:40 it's odd 04:56:03 copumpkin: House of Leaves? 04:56:07 yep 04:56:08 i keep meaning to read it sometime. 04:56:16 but there are a lot of books on that list. 04:56:37 I haven't read it, but have leafed through it 04:56:48 rimshot 04:56:58 the only thing that could make it better is 04:57:00 WERE YOU IN A HOUSE AT THE TIME 04:57:39 http://www.reddit.com/r/todayilearned/comments/hpduk/til_about_the_deep_web_what_it_contains_and_how/c1xa5l1 I hate everyone 04:58:21 Sgeo: funny. that's how i feel sometimes. sometimes because of you 04:58:24 but why that comment in particular 04:58:30 the whole thread is idiocy 04:58:35 elliott: YES 04:58:45 copumpkin: OMFLAUGH 04:58:55 COPUMpkITS TOO MUCH FOR MY VEINS 04:59:08 elliott: if the highest absolute value that you're outputting to PulseAudio is 1, that's an inaudible signal in 32-bit signed floating point LPCM.. 04:59:22 CakeProphet: no, its not 04:59:25 CakeProphet: im outputting floats in general 04:59:28 http://upload.wikimedia.org/wikipedia/commons/d/d1/IAO-logo.png 04:59:29 i have a tip 04:59:31 for the us govt 04:59:36 when youre making your freaky spy-on-everything operatinos 04:59:41 don't use the fucking all-seeing eye 04:59:41 just 04:59:43 don't 04:59:45 why do you even do that any more 04:59:49 are you TRYING to get conspiracies 04:59:52 elliott: yes, but in your example you're only outputting sinew, which has an amplitude of 1. 05:00:00 you don't multiply it by anything. 05:00:31 CakeProphet: dunno then :) 05:00:40 CakeProphet: maybe because it goes negative 05:00:44 its interpreted as a wraparound 05:00:59 ..no I don't think so. 05:01:05 i'm just thinking wildly 05:01:18 negative values are quite common in an audio signal represented by floating points with a centerpoint at 0 05:01:25 yeah 05:01:48 hmmm, weird. 05:01:56 I will have to play with this some other time. 05:02:13 and MAKE A MORE AWESOME signal processing library than you 05:02:32 though with shittier Haskell code, most likely. 05:02:45 and /way/ less point-free style. 05:03:45 oh come on 05:03:50 theres no point free style apart from in the instances 05:03:52 which are just boilerplate code 05:03:54 this isn't even a library 05:03:56 this is a five second hack 05:04:29 well, I assumed you were going to work on it more. 05:05:12 also, for some reason I've seen cos instead of sin used more often in signal processing... I have no idea why though. 05:05:25 it shouldn't matter as long as you use one or the other. 05:10:01 i love internet arcana. 05:10:46 I guess I should read House of Leaves, I haven't read anything in physical book form in a while. 05:11:01 elliott: so do you "implement" RealFrac because you want Floating, or..? I don't really know the numeric typeclass hierarchy. 05:11:14 CakeProphet: yeah 05:11:22 I basically just implemented everything Double has 05:11:35 so that everything worked as long as you didn't try and do the impossible :) 05:11:38 CakeProphet: really, all of this is just nicety 05:11:44 you can easily write it without these instances 05:11:46 they are just syntactic convenience 05:11:49 right. 05:11:51 would you ever take the sin of a signal itself? 05:11:53 i'm not sure but I doubt it. 05:12:04 but this way you can say pi*signal 05:12:05 and it works 05:12:05 the only thing somewhat useful in Floating would be ** 05:12:06 maybe. 05:12:12 but really even division is rare. 05:12:17 yeah 05:12:48 where is ^ defined actually? 05:12:56 ^ is Integral right? 05:13:06 and ** is the floating point version. 05:14:00 ^ is 05:14:03 (^) :: (Num a, Integral b) => a -> b -> a 05:14:07 it'll just be defined recursively 05:14:15 with * 05:14:17 so it's not in any typeclass 05:16:45 it seems using FFT will require an actual sampled signal unfortunately. 05:18:11 so there will be the pure functional approach and then another module for working with a sampled signal. 05:18:24 CakeProphet: erm, a function + the sample rate == sampled signal 05:18:29 just only call at the relevant multiples 05:19:07 but either way the result of a FFT will have to be represented by [Float] or [Complex] 05:19:29 no, it could easily be a signal 05:19:47 (\x -> resultList !! truncate (x*samplerate)) 05:19:55 I was about ask... are you suggesting I use !!? 05:20:00 (or even interpolated) 05:20:10 CakeProphet: Well, I mean, you want something to load a PCM file into a Signal anyway 05:20:19 Which would be effectively the same idea as this 05:20:29 that's not very efficient at all though. 05:21:09 How is it less efficient than a list 05:22:37 because when you convert Signal back into a list for playback you're calling that function for each sample increment, which is O(n**2) 05:22:44 I think. 05:24:20 CakeProphet: you could easily memoise it :) 05:24:24 oh wait 05:24:25 you mean 05:24:29 (\x -> fft foo !! truncate (x*samplerate)) 05:24:30 fuck no 05:24:31 I mean 05:24:35 let xs = fft foo in (\x -> xs !! truncate (x*samplerate)) 05:24:40 that way it'll cache results as they're computed 05:25:04 so if you only access it at reciprocal of samplerate increments, it'll be exactly the same as a list 05:25:11 CakeProphet: or do you mean that it'll have to do "tail" x times? 05:25:13 well right 05:25:16 you could use a non-list type as the result 05:25:19 lists suck anyway :) 05:25:42 I just think the !! would incur performance overhead. 05:26:26 whereas manipulating it directly as a list would be more efficient. 05:26:28 right, so use a non-list type :) 05:26:34 or, yes. 05:27:34 but what could replace list? 05:27:35 CakeProphet: you could instead do a continuous fourier transform :D 05:27:40 also, an array would work fine 05:27:45 ...lol, continuous? 05:27:45 that's probably what FFTW and the like operate on natively 05:27:50 CakeProphet: yeah :D 05:27:53 can Haskell do calculus? 05:27:54 CakeProphet: then it's a function already, not a list ;D 05:28:00 um as much as anything 05:28:04 numerically approximated, of course 05:28:11 i don't think Automatic Differentiation with dual numbers would apply here 05:28:17 and certainly not symbolic 05:28:24 All these things that HH said is about as good as any religion in general. It should not be considered different to that. HH has some insanity but that is what helps him to come up with these perspectives! And it is not all bad, either. Yet, like any religious text, you should not take everything literally. It should be questioned, and so can everything be questioned. 05:28:25 i'm joking btw :) 05:28:41 elliott: I had hoped so. 05:29:19 CakeProphet: who knows though -- maybe it would work :D 05:29:45 hmm, I wonder whether this caving story thing will get scary soon 05:31:52 elliott: it seems that Math.FFT mostly uses CArray 05:31:52 zzo38: Like all religious texts, it should be taken as 100% bullshit unless shown otherwise. 05:33:01 pikhq: In the same way that other religious texts can be taken as 100% bullshit, yes, so should this one, of course. 05:35:08 elliott: actually, do you think CArray would be a good type to use throughout instead of lists? I don't think so because I need signals to be possibly infinite. 05:35:57 CakeProphet: you realise haskell has arrays, right? you do not have to use CArray unless you are interfacing with c code manually 05:36:04 see data.array. 05:36:14 the same problem applies though. 05:36:35 I think lists are fairly decent for discrete things, and functions are good for continuous things... and usually it's more comfortable to work in the land of the continuous 05:36:56 additionally: I wouldn't worry about performance at this stage. 05:38:05 As always, premature optimisation is the root of all evil. 05:38:44 the main problem I'd have with fft is that it uses CArray, so I'd need to partition my signal into "chunks" of some sensible length. 05:39:26 CakeProphet: right... Well, you know, it may be better to write your own FFI to start with. 05:39:33 Get the interface you want then work on optimising it. 05:39:38 I mean, see http://hackage.haskell.org/packages/archive/pure-fft/0.2.0/doc/html/Numeric-FFT.html 05:39:48 I dunno whether it is lazy though 05:39:49 Probably not 05:39:55 Can't tell from glancing at http://hackage.haskell.org/packages/archive/pure-fft/0.2.0/doc/html/src/Numeric-FFT.html#fft 05:41:13 hmm, this story may be starting to get a little frekay 05:41:14 [asterisk]freaky 05:42:32 HH claims to be working in other solar systems... that is complete nonsense. However, I suppose it works because of higher "Densities", whatever that means. Obviously that is also nonsense. (See? It is the same kind of nonsense and metaphorical and other qualities like other religious texts, just more modern.) 05:42:57 :) 05:44:46 zzo38: http://xkcd.com/386/ 05:44:49 "I still harbor the fantasy that there is a hidden entrance to the other side of the passage and years ago Spanish explorers hid their treasures in the cave and sealed up the entrance. And it has remained untouched until we find it! B has a more realistic, although more mundane theory. He figures there is more cave on the other side. We'll see who is right." 05:46:12 ooh, this is starting to get spooky :) 05:46:43 elliott: I do suppose B does have a more likely and more realistic theory. However, looking is still the correct way to see who is right (or maybe you are both wrong). 05:47:38 zzo38: i'm pretty sure this story is fiction in the horror genre, so more realistic probably means less likely :) 05:48:39 -!- oerjan has joined. 05:48:46 elliott: O, well, I was not answering the question from that perspective. But from that perspective, perhaps you are right about that. (It still doesn't necessarily mean either of those two theories are correct, though>0 05:49:06 s/>0/)/ 05:49:14 zzo38: I think a bunch of treasure left my explorers would be a rather crappy ending to a horror story :) 05:49:17 [asterisk]left by 05:49:22 hi oerjan 05:49:49 grmbl morning 05:50:26 oerjan: aha, a decent measurement of your wake-up time >:) 05:50:32 unless you just mean morning as in time of day... 05:50:42 definitely morning 05:50:53 "We immediately noted the presence of the breeze blowing out of the hole, and the rumbling." 05:50:56 brr ;_; 05:50:59 oerjan: wat 05:51:01 elliott: I suppose you might be correct about that. Which could mean both theories are incorrect, in the context of this story. 05:51:20 * oerjan eats breakfast 05:51:29 oerjan: aha, so you DID just wake up 05:51:29 probably 05:51:40 zzo38: I suspect B is right in that there's more cave, but I imagine it's No Normal Cave(tm) :-P 05:51:44 I'm just reading everything linked from that reddit thread. 05:51:51 the prior just keeps getting adjusted 05:52:04 I seem to be a lot harder to scare than I used to be though I'm sure it'll come back to haunt me next time it's dark. 05:53:01 great, now it's triggering my latent claustrophobia with a narrow cave passage :) 05:53:31 Perhaps they are *infinite* caves!!! Now you cannot find the way out... too bad!!! 05:55:25 (Note that the HH document also contains some bad typography in some places) 05:58:07 infinite caves with exits in other dimensions 06:03:30 * CakeProphet is reading about how to implement a digital filter... fun. 06:04:13 mathematically it's recursive, but I suspect to avoid massive performance overhead I should cache results in a data structure. 06:04:22 just beware of the places where the wind is blowing harder and harder... they lead to vacuum. 06:04:58 .. 06:05:25 sort of. 06:05:27 s/places/tunnels/ 06:05:45 CakeProphet: just do it naively. 06:05:47 seriously. 06:06:00 if you do it naively, it will be a small enough body of code to throw away. 06:06:14 you can worry about performance once you've proved it will work :P 06:07:23 uh, okay. But I'll be recursively pulling the value of every previous calculation twice to compute each new value. It's Fibonacci-esque. 06:07:53 oh 06:07:57 then yeah, just memoise :P 06:08:01 I'm almost positively the naive code will be thrown away. 06:08:05 s/ly// 06:08:22 right, I am just saying that writing something you know you will throw away is not a bad thing 06:08:36 CakeProphet: http://www.haskell.org/haskellwiki/Memoization 06:08:38 true, it will give me an idea of how to write the memoised version. 06:08:40 has some nice techniques 06:08:46 writing a memoised version? 06:08:47 there's nothing to it 06:08:53 just use a memoisation function 06:09:11 Yeah, memoisation is a trivial transform in Haskell. 06:09:31 And why is it that I use the UK spelling of ise/ize? 06:09:49 how should i know, old chap? 06:10:08 And for that matter, why do no UK programmers use "programme"? 06:10:20 because it's a horrid way to write program. 06:10:32 Well, yes, I meant "aside from the obvious". 06:10:33 they know that their limey ways are filthy. 06:11:02 And why is it that I use the UK spelling of ise/ize? 06:11:07 it's not really UK 06:11:10 OED uses ize after all :) 06:11:14 elliott: It's very distinctly non-US. 06:11:15 pragmatic programmer pogroms 06:11:19 well yes 06:11:21 also this story is starting to get scary finally, yay 06:11:28 And, right, OED *does* use it. 06:12:07 OED saw the light, I guess. 06:12:10 Hmm. I'm not sure which country's variant of gray/grey I use. Rather, I'm not sure which country it belongs to. 06:12:19 well etymologically, and pronounci...olity, -ize is correct 06:12:24 i use ise though as of late, dunno why 06:12:31 ^limey 06:12:51 CakeProphet: libertarian slave-owner 06:13:02 anyway, time to dive in to probably the last chapter of this cave story, i guess for ~~immersion~~ purposes ircing is not a good idea 06:13:06 gulp 06:13:12 At least I'm not using "colour". 06:13:45 what terrour 06:13:54 colour is nice 06:14:06 I prefer to use the old school form of 'an' 06:14:10 brightens up your day 06:14:15 where you take the n and put it at the beginning of the next word. 06:14:31 a norage. a napple. 06:14:31 CakeProphet: that's a noutrage 06:14:40 a niditioc custom 06:14:42 anyway, everybody shut up and stop me ircing, i need to spook myself 06:14:46 *nidiotic 06:14:58 -!- elliott has set topic: order of the niditioc programmers | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 06:15:14 oerjan: apparently "apron" was originally "napron" 06:15:22 but once we switched over to using an the 'n' disappeared 06:15:23 in ow 06:17:44 oh jesus this is starting to scare me 06:18:07 I've never been scared by a written work. 06:18:27 I am quite easily sared. the SCP foundation has given me cold sweats at night many a time 06:18:33 [asterisk]scared 06:18:45 > repeat 'a' 06:18:46 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 06:18:48 The SCP has some legitimately scary stuff, so... 06:18:53 I like this story, though -- it's well-written even apart from the fear. 06:19:04 http://www.angelfire.com/trek/caver/ 06:19:30 > fix ('a':) 06:19:31 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 06:21:00 @source repeat 06:21:01 repeat not available 06:21:02 for some reason a list without a [] scares me. 06:21:13 CakeProphet: Why should it? 06:21:21 @src repeat 06:21:21 repeat x = xs where xs = x : xs 06:21:24 XD 06:21:36 I make no normative claim about my vague fear. 06:21:43 > repeat 'aeiou ' 06:21:44 : 06:21:44 lexical error in string/character literal at chara... 06:21:49 purely existential claims. 06:21:49 oh right 06:21:55 CakeProphet: And it's not like that's a uniquely Haskell thing, either. 06:21:55 Patashu: try cycle 06:22:01 > cycle "aeiou " 06:22:02 "aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou ae... 06:22:03 > cycle "aeiou " 06:22:04 "aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou ae... 06:22:12 pikhq: oh I know. No need to give me a lecture on circular linked lists. 06:22:19 @src cycle 06:22:19 cycle [] = undefined 06:22:20 cycle xs = xs' where xs' = xs ++ xs' 06:22:27 Pffft, I can do lazy infinite lists in C. 06:22:36 is anything in haskell -not- written in haskell? 06:22:40 the language interprets itself O_O 06:22:59 Patashu: a few things are, of course. 06:23:05 Patashu: it goes fairly deep 06:23:08 @src IO 06:23:08 Source not found. Maybe you made a typo? 06:23:11 oh jesus christ this is starting to fuck with my head 06:23:11 argh 06:23:18 Patashu: GHC's runtime system isn't entirely in Haskell, as far as I know. 06:23:19 Patashu: for a start, GHC is a /compiler/ 06:23:24 i'm sure that _used_ to be there :( 06:23:34 Patashu: for a second, a lot of GHC's internal implementations of things are Haskell 06:23:38 for instance the IO monad type itself and operations on it, etc. 06:23:43 but there is C code that makes up the runtime system, of course. 06:23:47 yeah 06:23:49 it's just for clarity 06:23:52 like oerjan says, it goes fairly deep :) 06:24:00 it's pretty cool though 06:24:08 Patashu: of course there are conventional interpreters like Hugs; I don't know how its IO monad is defined, but probably in Haskell too I would wager 06:24:12 Sadly, GHC's code is pretty poor. 06:24:25 Though, doesn't it predate Haskell 98? 06:24:57 well, it's not _poor_ 06:25:04 lots of parts predate just about everything :) 06:25:09 but they're working on cleaning it up 06:25:13 and new parts are of course well-written 06:25:24 but yeah, there is a lot of recursive functions when combinators would do, etc. 06:25:25 I seem to recall it having multiple implementations of Monad floating around, though. 06:25:40 i recall hearing that too 06:25:41 But, eh, old code base predating modern niceties has that shit happen. 06:25:59 You can see rather a lot of the same in GCC. 06:26:28 Man. It freaking predates C90. 06:26:37 ohh jesus this is frekaing me out 06:27:01 @hoogle IO 06:27:01 module Data.Array.IO 06:27:01 module System.IO 06:27:01 Prelude data IO a 06:28:03 -!- Kustas has quit (Quit: gone). 06:28:21 @hoogle hoogle 06:28:21 Can't think of anything more interesting to search for? 06:28:22 No results found 06:28:36 lol 06:29:27 @perl fork while fork #grrr... 06:29:27 Maybe you meant: keal part pl spell tell url vera 06:30:14 CakeProphet: try exclamation mark in place of @ 06:30:16 and 06:30:17 jesus 06:30:18 this is scary 06:31:31 -!- Sgeo has quit (Ping timeout: 248 seconds). 06:32:16 fucking hell there's more 06:33:33 what are you up to? 06:33:33 What is? 06:34:57 BUT WAIT, THERE'S MORE! WE THROW IN A FREE DECAPITATION FOR JUST _FIVE_ DOLLARS 06:35:11 coppro: reading a story linked on thatreddit thread of creepy stuff 06:36:01 oh great, go back to the cave, that's the best fucking idea you've had all story 06:36:13 you get the award for not doing stupid fucking shit 06:38:06 oh, lovely 06:38:11 the last page loops back to itself. 06:41:41 -!- Ycros has quit (Ping timeout: 260 seconds). 06:43:50 recursive cave 06:44:22 -!- Ycros has joined. 06:58:12 -!- NihilistDandy has quit (Quit: leaving). 07:00:39 -!- Ycros has quit (Remote host closed the connection). 07:00:43 -!- Kustas has joined. 07:01:17 -!- Ycros has joined. 07:03:22 http://areyoutargeted.com/ 07:08:14 elliott: using ! wouldn't allow me to enact my vengence upon lambdabot for insulting my creativity. 07:08:21 !help addinterp 07:08:22 ​addinterp: !addinterp . Add a new interpreter to EgoBot. This interpreter will be run once every time you type ! , and receive the program code as input. 07:09:08 CakeProphet: it's probably because you mistype vengeance 07:09:30 -!- Kustas has changed nick to Kostas. 07:09:34 oh hey thisman.org, this is a fun one 07:09:43 -!- Kostas has changed nick to Kustas. 07:09:55 Kustas: you mistype Kustas 07:10:19 that other nick is taken.. i must think of something different 07:10:29 or enact my vengeance on the original nick-bearer 07:10:40 !addinterp elmer perl for (<>) {s/wr\B/w/i; s/r\B/w/i; print} 07:10:41 ​Interpreter elmer installed. 07:10:43 "I have never had homosexual relationships or even fantasies. But I dream about having sexing with this man all the time." having sexing with this man all the time 07:10:55 CakeProphet: who needs elmer when you have 07:10:59 !swedish bork bork bork 07:11:01 ​burk bork bork 07:11:05 !elmer screwy rabbit 07:11:06 ​scwewy rabbit 07:11:15 ...? 07:11:23 oh right 07:11:25 !addinterp elmer perl for (<>) {s/wr\B/w/gi; s/r\B/w/gi; print} 07:11:26 ​There is already an interpreter for elmer! 07:11:31 elliott: damn you. 07:11:33 !delinterp elmer 07:11:33 ​Interpreter elmer deleted. 07:11:34 !addinterp elmer perl for (<>) {s/wr\B/w/gi; s/r\B/w/gi; print} 07:11:34 ​Interpreter elmer installed. 07:11:39 !elmer rabbit season 07:11:39 ​wabbit season 07:11:55 !swedish rabbit season 07:11:56 ​rebbeet seesun 07:12:06 amazing 07:12:18 haha 07:12:24 !swedish wabbit season 07:12:24 ​vebbeet seesun 07:12:30 swedish elmer fudd 07:12:41 "It is the most interesting theory and the one that has the greatest implications, but it has also the lowest scientific credibility." --thisman 07:12:42 herp derp 07:13:01 his face is slightly spooky though. 07:13:57 -!- SimonRC has joined. 07:14:19 Catherine Kinsbergen, Email, Web Site 07:14:19 I've dreamed of this man since i was 5 yesrs old as a vampire which try to kill me. I'm now 18 and I still dream about him.. Can't beleive i'm not alone to see him 07:14:19 Linda Borgman, Email, Web Site 07:14:19 OMG! I do dream of this man too! I punch him in face but I try to run and cant! He catch me and tell me to do naughty things with him 07:14:21 quality guestbook 07:14:41 !elmer it's been a long time since I've been wrong about screwy rabbits. Even longer now. 07:14:42 ​it's been a long time since I've been wong about scwewy wabbits. Even longer now. 07:14:50 !swedish it's been a long time since I've been wong about scwewy wabbits. Even longer now. 07:14:50 ...interesting 07:14:51 ​it's beee a lung teeme-a seence-a I'fe-a beee vung ebuoot scvooy vebbeets. Ifee lunger noo. Bork Bork Bork! 07:14:55 swedish elmer fudd is a thing of beauty 07:15:28 for some reason "long" is not become "wong" 07:15:41 *becoming 07:16:52 it'd need another regex for that 07:17:31 does r\B not match at the beginning of a word? 07:18:07 \B means 'not word boundary' 07:18:07 I believe 07:18:08 oh wait 07:18:10 l isn't an r 07:18:11 btw 07:18:18 you want \br 07:18:19 lol, I'm apparently stupid. :P 07:18:36 or my brain is currently thinking in engrish. 07:18:44 weiwd 07:21:43 !delinterp elmer 07:21:44 ​Interpreter elmer deleted. 07:21:44 !addinterp elmer perl for (<>) {s/wr\B/w/gi; s/(? ​Interpreter elmer installed. 07:21:48 simple regexp won't ever do the trick 07:21:52 !elmer weird 07:21:53 ​weird 07:22:01 english spelling sux 07:22:12 also counts for words like wire 07:22:17 so hey hi Kustas who are you 07:22:22 weren't you here a few days ago too 07:22:44 the day before yesterday, maybe 07:23:47 my principle of life: regex is adequate to solve every problem. 07:23:55 obviously I have gotten very far with this principle. 07:24:07 I think I solved a maze using a regex once 07:24:29 Kustas: hmm i've already asked you if you were from the wiki haven't i :D 07:24:48 maybe you have 07:25:26 but this is the first time my attention is on this channel 07:25:41 !elmer Wright Brothers read ripe literature 07:25:42 ​wight Bwothews wead wipe litewatuwe 07:25:51 lol 07:26:42 it would be far cooler if it would convert based on the pronunciation instead of the spelling 07:26:48 yes. 07:26:48 !swedish wight Bwothews wead wipe litewatuwe 07:26:49 ​veeght Bvuzeevs veed veepe-a leetooetoove-a 07:26:55 !elmer veeght Bvuzeevs veed veepe-a leetooetoove-a 07:26:56 ​veeght Bvuzeevs veed veepe-a leetooetoove-a 07:27:00 :( 07:27:03 it should distort forever 07:27:08 until it's just vwwvwvwvw bork bork bork 07:28:18 wundaful 07:30:35 !delinterp elmer 07:30:35 ​Interpreter elmer deleted. 07:30:35 !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(? ​Interpreter elmer installed. 07:30:49 !elmer Wright Brothers read ripe literature 07:30:50 ​Wight Bwothews wead wipe litewature 07:31:03 oh right, one other thing 07:31:43 CakeProphet: there's a special way you can maintain the case, I think 07:31:51 elliott: that would be quite swell. 07:31:56 it'll be in perlre :P 07:32:17 looking in perlmonks right now 07:32:39 no doesn't exist. 07:33:00 !delinterp elmer 07:33:00 ​Interpreter elmer deleted. 07:33:01 !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(? ​Interpreter elmer installed. 07:33:11 !elmer brothers 07:33:11 ​bwothews 07:33:19 grrr 07:34:06 !addinterp blowup perl fork while fork 07:34:07 ​Interpreter blowup installed. 07:34:09 !blowup 07:34:12 * Lymia runs 07:34:16 !delinterp blowup 07:34:18 ​Interpreter blowup deleted. 07:35:28 http://www.catnipples.com/ what 07:35:55 Intro by Lloyd Pye: We at the Starchild Project have repeatedly tried to correct the outdated and incorrect information about the Starchild Skull presented in the article on Wikipedia (which I refer to by the more appropriate name “Wackypedia”). Virtually no one realizes that Wikipedia’s stated mission isn’t actually to provide the truth about selected subjects, it is to determine the consensus opinion of what they think most people belie 07:35:55 ve to be the truth (Wikipedia, 2010a). In fact, Wikipedia rejects any form of original research (Wikipedia, 2010b). The astounding fact is that current Wikipedia “quality standards” would prevent Darwin, Einstein, Edison, and many other geniuses from contributing their original research. This is why we call them Wackypedia, and it’s why that name is so apt for the entire organization. 07:35:55 !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(? ​There is already an interpreter for elmer! 07:35:57 oh 07:35:58 this will be good 07:36:01 !delinterp elmer 07:36:02 !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(? ​Interpreter elmer deleted. 07:36:04 ​Interpreter elmer installed. 07:36:10 this will be very good 07:36:12 !elmer brothers 07:36:14 ​bwothews 07:36:19 ...nope. ?? is useless. 07:36:23 "Pye's "Starchild Project" supporters claim that the skull is that of an extraterrestrial infant, or the hybrid offspring of an extraterrestrial and a human female." 07:36:24 hehehehehehehe 07:36:38 how bout that original research 07:36:57 i'm learning something really comforting from this thread 07:37:16 it's actually pretty impressive that Wikipedia works so well 07:37:24 humanity is in exactly equal amounts depraved, idiotic and confused as i thought it was 07:37:27 you'd think it would collapse under its bureaucratic weight 07:37:49 nothing has shocked me, nothing has scared me more than anything has scared me before 07:37:55 it's a wonderful feeling 07:38:00 Patashu: It is in a continuous state of collapse. 07:38:17 Patashu: not a second goes by without drama somewhere in metaspace on Wikipedia :) 07:38:22 of course 07:38:24 yet wikipedia goes on 07:38:28 so not too bad all in all 07:38:47 they do a very good job of not having metapollution 07:38:55 Unfortunately the systematic bias extends to the administrative body not realising that there's a huge long tail distribution with editors, and so proposals to seriously restrict or disable anonymous editing even get serious consideration... 07:39:05 Patashu: Yes, it's true that it doesn't often leak out significantly into article-space. 07:39:39 Still, the bad management will start to have an effect sometime. Or maybe it won't, that would be the most comical thing, because it'd prove that the metaspace is completely ineffective. 07:39:59 "Linux has a bunch of different ways to reset an x86. Some of them are 32-bit only and so I'm just going to ignore them because honestly just what are you doing with your life. Also, they're horrible. So, that leaves us with five of them." 07:40:19 I once saw an article that claimed wikipedia was failing because less people were editing it over time. But of course less people are editing it, most topics are filled out adequately by now and only experts would have things to add 07:40:40 http://www.aaronsw.com/weblog/whowriteswikipedia is a "classic" on the subject. 07:40:45 But yeah, Wikipedia is by no means failing. 07:40:51 It's certainly mismanaged though. 07:40:57 !delinterp elmer 07:40:57 ​Interpreter elmer deleted. 07:40:59 !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(? ​Interpreter elmer installed. 07:41:07 !elmer my brothers 07:41:08 ​my bwothews 07:41:17 well, I'm done trying. :P 07:41:34 "Now, I'll admit that this all sounds pretty depressing. But people clearly sell computers with the expectation that they'll reboot correctly, so what's going on here?" 07:41:58 !elmer Everybody jump 07:41:59 ​Evewybody jump 07:42:12 Elliot, what are you quoting? 07:42:17 Patashu: http://mjg59.dreamwidth.org/3561.html 07:42:25 also: don't you have tab completion? :) 07:42:52 I have tab completion (mIRC), what I lack is a tab completion instinct 07:42:56 I just type out however much of a person's name is enough 07:43:03 elliott: his computer maybe does not reboot correctly 07:43:09 Patashu: Clearly not enough, you missed a letter :-) 07:43:21 Kustas: I rather think it does :P 07:43:44 It was still uniquely addressing you so i'm down with that 07:43:45 "Default until 3.0 has been to try to use the keyboard controller, and if we're still awake after a few seconds then to force a triple fault. This does work on most machines, but since this isn't what modern Windows does there's an increasing number of systems that don't behave." 07:43:46 Ugh. 07:43:56 Wow, I knew wikipedia started out with only a core group of editors, I didn't know it was so tight 07:44:04 Pat-a-cake pat-a-cake baker's man: Sure thing bro. 07:44:10 lol 07:44:34 Patashu: btw aaron directly contradicts what jimbo says later 07:44:48 oh wait no 07:44:49 sorry 07:44:51 i am tired :) 07:45:08 ' But that’s not at all what I found. Almost every time I saw a substantive edit, I found the user who had contributed it was not an active user of the site.' 07:45:11 no wait 07:45:13 right 07:45:14 yeah 07:45:14 how's that not contradictory? still reading though 07:45:16 aaron contradicts 07:45:19 yeah 07:45:20 it is 07:45:21 sorry 07:45:23 i'm tired :) 07:45:57 Ah, that's interesting 07:46:00 I understand now 07:46:21 -!- zzo38 has quit (Remote host closed the connection). 07:46:28 it also provides quite an explanation for how so many high-profile wikipedia editors essentially just do meta-twiddling 07:46:39 not that there's anything wrong with meta-twiddling, but looking at active users you wouldn't think anything would ever get written at all 07:48:03 it's all mostly written already, so meta-twiddling is the only thing left to do 07:48:08 Wow, I had no idea rebooting a computer was so hard 07:48:47 Kustas: There is always more to write about :) 07:49:20 elliott: i used to think so too.. but then i learned to read 07:49:22 although the notability policy's current interpretation seems to be "whatever we currently have an article on is notable, everything else isn't", so maybe as far as wikipedia is concerned there isn't 07:50:50 !delinterp elmer 07:50:51 ​Interpreter elmer deleted. 07:50:51 !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(? ​Interpreter elmer installed. 07:51:02 !elmer yo brothers you dig my jive? 07:51:02 ​yo bwothers you dig my jive? 07:51:41 negative look-around for the win. 07:51:58 So how does it work now? 07:51:59 but apparently zero-width assertions within a look-around mess up. 07:53:34 now quickly, find a situation in which an r proceeds an i, o, or u but needs to be converted to a w. 07:53:56 and don't cheat. 07:54:34 o/~ Double fault all the way across kernel space... o/~ 07:58:31 !delinterps elmer 07:58:31 !addinterp elmer perl for (<>) {s/l/w/gi; s/L/W/gi; s/(w)r\B/$1/gi; s/(? ​There is already an interpreter for elmer! 07:58:38 !delinterp elmer 07:58:38 ​Interpreter elmer deleted. 07:58:39 !addinterp elmer perl for (<>) {s/l/w/gi; s/L/W/gi; s/(w)r\B/$1/gi; s/(? ​Interpreter elmer installed. 07:58:49 !elmer kill the rabbit, kill the rabbit 07:58:49 ​kiww the wabbit, kiww the wabbit 08:03:57 -!- pikhq has quit (Remote host closed the connection). 08:04:14 elliott, so, wait. 08:04:18 -!- pikhq has joined. 08:04:25 Systems should have a way to reboot. 08:04:37 they do, it's just stupid 08:04:40 Linux uses at least one that should be standard. 08:04:56 Because Windows uses a slightly different behavior... the standard way doesn't work. 08:05:16 Linux is forced to be bug-compatible... with the hardware. 08:05:28 http://www.planecrashinfo.com/lastwords.htm oh this is interesting 08:05:35 Do they not test other operating systems, or... 08:05:36 I don't know. 08:05:40 Follow the standard? 08:05:43 Write test code? 08:06:03 !delinterp elmer 08:06:03 ​Interpreter elmer deleted. 08:06:04 !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/wr\B/w/g; s/(? ​Interpreter elmer installed. 08:06:05 Lymia: nope 08:06:19 !elmer brothers and sisters 08:06:20 ​bwothuhs and sistuhs 08:09:39 -!- pikhq_ has joined. 08:09:55 pikhq: you soifj a ozjidf oniwef 08:13:19 http://marineparade.net/wewantyoursoul/ oh sweet 08:13:33 -!- pikhq has quit (Ping timeout: 260 seconds). 08:18:27 !swedish ou soifj a ozjidf oniwef 08:18:28 ​ooo sueeffj a oozjeedff ooneeveff 08:19:17 !delinterp elmer 08:19:17 !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/or(e\b)?/owuh/; s/ire\b/iyuh/; s/wr\B/w/g; s/(? ​Interpreter elmer deleted. 08:19:18 ​Interpreter elmer installed. 08:21:01 !elmer porcelain 08:21:02 ​powuhcewain 08:22:18 lol, I don't even know. 08:22:49 elliott: check out my point-free Perl. :D 08:23:16 -!- Kustas has quit (Quit: rejoin). 08:23:29 lol 08:23:31 !elmer horrible traitor 08:23:32 ​howuhwibwe twaitor 08:23:43 -!- Kustas has joined. 08:24:04 ...wht doesn't that become twaitowuh 08:24:18 oh, missing /g 08:24:21 CakeProphet: ^ 08:24:34 *wth 08:24:46 I'm on it 08:24:56 I should probably take out the or(e\b) case :P 08:25:14 you'd think. 08:27:46 !delinterp elmer 08:27:46 ​Interpreter elmer deleted. 08:27:47 !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/ire\b/iyuh/; s/wr\B/w/g; s/(? ​Interpreter elmer installed. 08:27:57 I need a magical english2IPA function 08:28:14 and then IPA2english, which is probably even more impossible. 08:28:38 english2IPA isn't out of the question with a huge dictionary database. 08:30:23 CakeProphet, English2IPA isn't that difficult if you maintain an exception list. 08:30:31 The other way around? 08:30:31 sdsgfg 08:30:54 -!- Kustas has quit (Ping timeout: 258 seconds). 08:31:01 Yeahhhhhhhh 08:31:03 Uh 08:31:36 !delinterp elmer 08:31:37 ​Interpreter elmer deleted. 08:31:42 !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/ire\b/iyuh/g; s/wr\B/w/g; s/(? ​Interpreter elmer installed. 08:31:48 -!- Kustas has joined. 08:31:49 !elmer terrible errors 08:31:49 ​tuhwibwe uhwors 08:33:01 tuhwibwe exceptional words. 08:33:09 !elmer horrible tourists 08:33:10 ​horwibwe tourists 08:33:57 oerjan: fine, I promote you to lead designer of elmer. 08:34:02 lol 08:34:06 I QUIT 08:34:46 oerjan: I now conscript you into indentured servitude to be lead designer of elmer. 08:34:58 in exchange 08:35:01 you get to come to America. 08:35:30 what luck 08:35:37 but i'm trying to stay away from the place 08:35:39 http://stackoverflow.com/questions/3956478/understanding-randomness 08:35:41 HERP DERP DERP 08:35:58 how can one not understand randomness... 08:36:39 easily 08:37:28 by statistical accident 08:38:20 -!- pikhq has joined. 08:39:04 hi pikhq pikhq pikhq Patashu iamcal p iamcal p iamcal Patashu ip pk pikhq Kustas pikhq p 08:39:09 -!- pikhq_ has quit (Ping timeout: 276 seconds). 08:39:45 amazing 08:39:52 yes 08:39:54 itsmodern art 08:40:19 pikhq is Patashu iamcal Kustas HackEgo quintopia 08:40:22 and that's 08:40:42 !delinterp elmer 08:40:42 ​Interpreter elmer deleted. 08:40:44 !addinterp elmer perl for (<>) {lc; s/l(?!e\W)/w/g; s/\Ber|(? ​Interpreter elmer installed. 08:40:49 !elmer terrible errors 08:40:49 ​tuhwible ewwors 08:40:58 waw 08:41:08 Patashu aloril TeruFSX aloril sebbu2 HackEgo u iamcal aloril malorie CakeProphet lambdabot Kustas u sebbu2 TeruFSX aloril sebbu2 HackEgo aloril CakeProphet Kustas EgoBot glogbot oerjan quintopia u iamcal n TeruFSX oerjan Patashu iamcal aloril 08:41:11 so u and n are uncolonised 08:43:31 ? 08:43:39 CakeProphet: nicktabbing 08:43:42 for instance 08:43:43 you are: 08:43:53 CakeProphet aloril Kustas EgoBot Patashu rodgort oerjan Patashu HackEgo EgoBot TeruFSX 08:44:01 -!- Sgeo has joined. 08:44:07 sebbu2 glogbot EgoBot oerjan 08:44:11 u and n the letters don't have colons? 08:44:17 no, as in 08:44:21 nobody has a nick starting with u or n in here 08:44:27 oh. 08:44:29 gotcha. 08:44:44 `run echo 'test' 08:44:47 ​test 08:44:52 !addinterp !loop perl print '`run echo "!loop"' 08:44:52 ​Interpreter _loop installed. 08:45:00 ... 08:45:05 why the _ 08:45:24 terp !loop 08:45:52 So, I think my official bedtime is now noon 08:45:53 :/ 08:46:05 !userinterps 08:46:05 ​Installed user interpreters: _loop aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd funetak google graph gregor he hello id jethro kraut num ook pansy pi pirate plot postmodern postmodern_aoler prefixes redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro simplename slashes svedeesh swedish valspeak w 08:46:18 ah. 08:46:29 !delinterp _loop 08:46:29 ​Interpreter _loop deleted. 08:46:34 !addinterp loop perl print '`run echo "!loop"' 08:46:34 ​Interpreter loop installed. 08:46:35 aol aeiou 08:46:41 okay, now no one ever use that command. 08:46:41 oh 08:46:44 !aol aeiou 08:46:44 ​AE1OU 08:46:48 ah 08:47:04 !aol The quick brown fox jumps over the lazy dog. 08:47:05 ​THE QU1CK BROWN FOX JUMPS UV R THE LAZY DOG!! 08:47:17 CakeProphet, you're not going to test it? 08:47:23 Sgeo: I am afraid to 08:47:31 but there might be an ignore list for egobot 08:47:43 to ignore hackego 08:47:54 !pi 3 08:47:55 ​3.140 08:47:56 `run echo !ao The quick brown fox 08:47:57 ​!ao The quick brown fox 08:47:58 How handy 08:48:01 `run echo !aol The quick brown fox 08:48:02 ​!aol The quick brown fox 08:48:10 !loop 08:48:11 ​`run echo "!loop" 08:48:15 Lol 08:48:17 they do ignore. 08:48:18 don't bother. 08:48:27 besides, they use that stupid character in front to stop it 08:48:29 !delinterp loop 08:48:30 and also break urlification 08:48:30 ​Interpreter loop deleted. 08:48:52 I only tested it after knowing it wouldn't work 08:49:41 !simplename 08:49:48 ​JAPPAUT. 08:49:54 !show simplename 08:49:55 ​haskell import System.Random; import Control.Monad; pick a = randomRIO (0, length a - 1) >>= return . (a !!); main = putStrLn . (++".") =<< word; word = join . pick $ replicate 3 (liftM2 (:) vowel word) ++ replicate 2 (liftM2 (:) consonant word) ++ [return ""]; vowel = pick "AEIOUY"; consonant = pick "BCDFGHJKLMNPQRSTVWXZ" 08:50:19 oerjan's doing? 08:50:20 -!- Phantom_Hoover has joined. 08:50:28 !simplename 08:50:31 CakeProphet: that's a roleplaying name generator zzo38 mentioned, so i made it 08:50:33 ​O. 08:50:35 LOL 08:50:38 that is simple 08:50:47 how fitting for zzo 08:50:50 -!- Kustas has quit (Ping timeout: 258 seconds). 08:50:53 oerjan: why the .? 08:50:58 zzo38 likes to play roleplaying games? Awesome. I should ask him if he wants to play Shadowrun. 08:51:01 or is it some character that EgoBot is filtering out 08:51:15 it's in the code 08:51:17 I made simpleacro. it is superior at its purpose. 08:51:18 putStrLn . (++".") 08:51:24 Patashu: yes but it would filter it out on show too 08:51:25 though I need to weight the uncommon starting letters 08:51:25 elliott: it sometimes makes an empty string, so zzo38 suggested adding a period 08:51:36 I just don't have data on the most common starting letters for English. 08:52:03 so I will probably just continue not caring as I have been. 08:52:13 Inglip's death is canon now 08:53:48 -!- Kustas has joined. 08:53:56 !simpleacro 08:54:00 ​HI 08:54:04 haha. 08:54:14 I love how long it takes to compute. it's like a moment of suspense. 08:54:19 !simpleacro 08:54:22 well obviously !simplename is based on !simpleacro 08:54:22 ​BMEAOF 08:54:28 !show simpleacro 08:54:28 ​haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 08:54:40 !simpleacro aeiou 08:54:44 oerjan: I think you actually helped me with some bugs on it. 08:54:45 ​IA 08:55:04 probably 08:57:33 !show swedish 08:57:33 ​sh chef | fmt -w500 08:57:43 !show chef 08:57:43 ​sh chef 08:58:35 !redneck 08:58:42 !show redneck 08:58:42 ​sh redneck 08:58:56 such let downs... 08:59:08 !redneck We don't take lightly to your kind of people here. 08:59:08 ​We don't take lightly tuh yer kinda folks here. 08:59:51 CakeProphet: it's probably from some funny linux package 09:00:01 it's valspeak 09:00:06 !userinterps 09:00:06 ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd funetak google graph gregor he hello id jethro kraut num ook pansy pi pirate plot postmodern postmodern_aoler prefixes redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro simplename slashes svedeesh swedish valspeak warez y 09:00:08 !sh which redneck 09:00:09 ​/usr/bin/redneck 09:00:20 !show gregor 09:00:20 ​sh sed 's/þ/th/g ; s/Þ/Th/g ; s/ſ/s/g ; s/æ/ae/g ; s/Æ/Ae/g ; s/œ/oe/g ; s/Œ/Oe/g' 09:00:51 how uſeful 09:01:15 !show postmodern 09:01:15 ​sh postmodern 09:01:20 !sh uname -a 09:01:21 ​Linux codu.org 2.6.32-5-xen-amd64 #1 SMP Tue Mar 8 00:01:30 UTC 2011 x86_64 GNU/Linux 09:01:41 !show ehird 09:01:41 ​sh funetak 09:01:51 !show dubya 09:01:52 ​sh dubya 09:02:03 !show bypass_ignore 09:02:03 ​sh cat 09:02:07 ...whut. 09:02:10 !ehird cobbles of phantom fuck whats 09:02:11 ​cobbles of phantom fuck whats 09:02:15 good 09:02:52 !sfedeesh what is this I don't even 09:02:52 ​vhet is thees I dun't ifee 09:02:57 somehow i doubt bypass_ignore works, if it ever did 09:03:02 yeah same. 09:03:08 of course it does 09:03:16 !bypass_ignore do not 09:03:16 ​do not 09:03:28 oh wait that kind of ignores 09:03:37 !bypass_ignore ha ha vorpal is a fag 09:03:37 ha ha vorpal is a fag 09:03:41 see, perfect 09:03:50 !elmer perfect 09:03:50 !sffedeesh what is this I don't even 09:03:50 ​puhfect 09:03:51 ​vhet is thees I dun't ifee 09:04:03 !swedish swedish 09:04:04 ​svedeesh 09:04:05 !ehird what is this I don't even 09:04:06 ​wut is this I don't even 09:04:10 !swedish svedeesh 09:04:10 ​sfedeesh 09:04:18 !sffedeesh vhet is thees I dun't ifee 09:04:18 ​fhet is zeees I doon't iffee-a 09:04:23 !sffedeesh fhet is zeees I doon't iffee-a 09:04:23 !swedish sfedeesh 09:04:23 ​fhet is zeees I duun't iffffee-a-a 09:04:24 ​sffedeesh 09:04:30 !sffedeesh fhet is zeees I duun't iffffee-a-a 09:04:30 ​fhet is zeees I doooon't iffffffffee-a-a-a 09:04:35 !sffedeesh fhet is zeees I doooon't iffffffffee-a-a-a 09:04:35 ​fhet is zeees I duuuun't iffffffffffffffffee-a-a-a-a 09:04:41 :D 09:04:53 elliott: why don't these other interpreters evoke swedish x number of times? 09:04:54 !swedish hey what's this OH SNAP IT'S A FUCKING TIGET 09:04:54 ​hey vhet's thees OoH SNEP IT'S A FOoCKING TIGET 09:04:56 !swedish hey what's this OH SNAP IT'S A FUCKING TIGER 09:04:57 ​hey vhet's thees OoH SNEP IT'S A FOoCKING TIGER 09:05:01 CakeProphet: hm... 09:05:03 FOoCKING 09:05:08 !swedish hey vhet's thees OoH SNEP IT'S A FOoCKING TIGER 09:05:08 ​hey fhet's zeees OouH SNEP IT'S A FOuCKING TIGER 09:05:12 !show svedeesh 09:05:12 ​sh chef | fmt -w500 09:05:17 !swedish ​hey fhet's zeees OouH SNEP IT'S A FOuCKING TIGER 09:05:18 ​​hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER 09:05:21 !delinterp svedeesh 09:05:21 ​Interpreter svedeesh deleted. 09:05:28 oerjan: NOOOOOOOOO 09:05:31 !show swedish 09:05:31 ​sh chef | fmt -w500 09:05:33 `addquote hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER 09:05:35 ​433) hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER 09:05:38 oerjan: those are our valuable aliases 09:05:41 !addinterp svedeesh sh chef | chef | fmt -w500 09:05:41 ​Interpreter svedeesh installed. 09:05:49 !addinterp svedeesh sh chef | fmt -w500 09:05:49 ​There is already an interpreter for svedeesh! 09:05:55 !delinterp svedeesh 09:05:55 elliott: I'M JUST MAKING IT MORE LOGICAL 09:05:56 ​Interpreter svedeesh deleted. 09:06:00 oerjan: ... 09:06:01 WELL FINE 09:06:05 !addinterp svedeesh sh chef | chef | fmt -w500 09:06:06 ​Interpreter svedeesh installed. 09:06:13 !svedeesh svedeesh 09:06:13 ​sffedeesh 09:06:16 `quote 09:06:17 `quote 09:06:17 ​41) kaelis: yes kaelis, but however will get the horses to wear knickers? 09:06:18 `quote 09:06:18 `quote 09:06:18 `quote 09:06:18 ​343) 00:07 Sgeo has quit (IRC is taking up too much of my time. I need time to study the Bible and find Christ.) 00:12 Sgeo has joined #esoteric. 09:06:19 `quote 09:06:19 ​274) ah yes, indeed, alan turing was gay and stupid 09:06:20 ​365) elliott, it was an artful robbery! wait, murder 09:06:20 `quote 09:06:21 ​139) alise: nobody is allowed to fnord me in soviet russia 09:06:21 `quote 09:06:22 ​8) TODO: sex life 09:06:23 `quote 09:06:24 ​176) Never ever use a quote which contains both the words "aloofness" and "gel" (verb). 09:06:24 ​23) IN AN ALTERNATE UNIVERSE: there is plenty of room to get head twice at once 09:06:25 `quote 09:06:26 ​189) Why do you use random acronyms you know we don't know the expansions of? alise: TLAAW 09:06:27 ​60) What is there to talk about besides gay slang? 09:06:41 ​365) elliott, it was an artful robbery! wait, murder 09:06:42 wat 09:06:46 `quote alise 09:06:47 ​128) use "grep --crazy" \ 129) * augur rubs alise's bum [...] what? she said square ped :| \ 131) alise: why internet is like wtf \ 135) like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English alise: that's great filler ais523: 09:06:58 "why internet is like wtf" 09:07:03 definitely fungot's proudest moment 09:07:12 it finally realises that this human internet is like wtf 09:07:14 and it wants to know why 09:07:19 `quote CakeProphet 09:07:20 ​155) how does a "DNA computer" work. von neumann machines? CakeProphet, that's boring in the context of DNA. It's just stealing the universe's work and passing it off as our own. \ 156) CakeProphet: reading herbert might be enlightening in one hand he held a 09:07:41 ...? 09:07:46 `pastequotes CakeProphet 09:07:47 ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18198 09:07:57 they'll all be from like 4 years ago 09:08:04 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18198 09:08:11 CakeProphet: uh no 09:08:15 the quote system is not that old... 09:08:23 those are from a year ago at most 09:08:46 `run sed -i 's///g' quotes 09:08:48 No output. 09:08:50 `pastequotes CakeProphet 09:08:50 all pretty recent actually. 09:08:51 ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.24384 09:09:00 yay 09:09:02 fixed the downloading 09:09:09 for some reason I thought we had quotes that long ago. 09:09:55 @quote 09:09:55 ari says: The problem I have with grues is that although I know that currently, if it is very dark I am likely to be eaten by one... but how can I tell if grue suddenly became benign at, say, the 09:09:55 year 2010? The evidence I've gathered so far can't support the idea that that *wouldn't* happen.~ 09:10:07 * sebbu2 slaps elliott around a bit with a very large trout 09:10:36 sebbu2: yw 09:10:49 oerjan: wow that was the least funny quote ever 09:10:53 troutally reasonable 09:10:57 apart from all of ours 09:10:58 `quote 09:10:58 `quote 09:10:59 ​78) I want to read about Paris in the period 1900-1914 not about the sexual preferences of a bunch of writers >.> 09:10:59 `quote 09:11:00 `quote 09:11:00 `quote 09:11:00 ​56) no Deewiant No?! I've been living a lie yep. Excuse me while I jump out of the window -> 09:11:01 ​133) Hooray! I'm an idiot. 09:11:02 ​46) Seconds. 30 of them. Did I forget the word? 09:11:02 ​161) cpressey: I have actually done a waterfall-model project that almost worked That's where you have a flexible kayak that bobs and weaves between the rocks as it plummets off the cliff 09:11:04 oh my 09:12:25 `run echo $(yes) 09:12:27 No output. 09:17:23 -!- CakeProphet has quit (Ping timeout: 248 seconds). 09:18:05 hey don't run away before i can explain why that was stupid 09:18:43 :D 09:18:50 hm imagine if linux _did_ support lazy argument lists 09:19:38 -!- CakeProphet has joined. 09:19:39 -!- CakeProphet has quit (Changing host). 09:19:39 -!- CakeProphet has joined. 09:20:07 `run echo $(yes | head -5) 09:20:08 ​y y y y y 09:20:39 CakeProphet: yours probably never finished making the argument list 09:20:48 I somehow thought it would be a good idea to run echo $(yes) on my computer... 09:20:55 not realizing that I wouldn't be able to ctrl+c 09:21:02 ... 09:21:09 as it very rapidly filled all of my mempory. 09:21:16 huh 09:21:21 hey Sgeo homestuck update :-P 09:21:28 it's the yes bomb! 09:23:06 -!- monqy has quit (Quit: hello). 09:23:19 oerjan: I wonder what would be the most effective anti-yes bomb 09:23:59 killall sh && killall bash && ... :P 09:24:09 nothing could go wrong... 09:25:20 !which killall 09:25:30 `which killall 09:25:31 oerjan: forgot sh 09:25:32 No output. 09:25:36 CakeProphet: forgot `run 09:25:41 !sh which killall 09:25:41 ​/usr/bin/killall 09:25:46 `run which killall 09:25:48 No output. 09:26:13 !sh killall $(yes) 09:26:20 ​/tmp/input.18804: xrealloc: ../bash/subst.c:4757: cannot reallocate 33554432 bytes (0 bytes allocated) 09:26:27 lol 09:27:30 ty 09:27:33 a convenient memory exploder for the whole family. 09:30:33 so when code golfing bash can you only assume that only the bare minimum in external programs are available in $PATH? 09:31:11 -!- ais523 has joined. 09:31:39 typically yeah 09:31:45 -!- MigoMipo has joined. 09:32:03 Where is my reddit thread 09:32:09 what 09:32:26 I've taken to reading the reddit thread after the update 09:33:07 its hardly big enough to warrant another post... 09:33:20 -!- pikhq has quit (Ping timeout: 244 seconds). 09:33:27 -!- pikhq has joined. 09:33:48 !show sffedeesh 09:33:49 ​sh chef | fmt -w500 09:34:28 !delinterp sffedeesh 09:34:28 ​Interpreter sffedeesh deleted. 09:34:43 !addinterp sffedeesh chef | chef | chef | fm -w500 09:34:43 ​Interpreter sffedeesh installed. 09:34:48 ?_? 09:34:56 !sffedeesh The quick brown fox jumps over the lazy dog. 09:34:57 ​| cheff | cheff | fm -v500 09:35:00 o 09:35:03 fail 09:35:04 ... 09:35:05 lol 09:35:09 !delinterp 09:35:09 ​ is not a user interpreter. 09:35:16 !delinterp sffedeesh 09:35:16 ​Interpreter sffedeesh deleted. 09:35:24 !addinterp sffedeesh sh chef | chef | chef | fm -w500 09:35:24 ​Interpreter sffedeesh installed. 09:35:38 !sffedeesh I love being swedish. 09:35:39 ​/tmp/input.19806: line 1: fm: command not found 09:35:43 ...lol 09:35:48 !delinterp sffedeesh 09:35:49 ​Interpreter sffedeesh deleted. 09:35:53 !addinterp sffedeesh sh chef | chef | chef | fmt -w500 09:35:53 ​Interpreter sffedeesh installed. 09:35:56 !sffedeesh I love being swedish. 09:35:57 ​I luuffffe-a-a-a beeeng sffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! 09:36:04 lol 09:36:05 X-D 09:36:06 Impressive. 09:36:13 !sffedeesh I luuffffe-a-a-a beeeng sffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! 09:36:13 ​I looooooooffffffffffffffffffffffffffffffffe-a-a-a-a-a-a beeeng sffffffffffffffffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! 09:36:21 Combinatorial explosion of borks. 09:36:59 !sffedeesh The quick brown fox jumps over the lazy dog. 09:37:00 ​Zee-a-a qooooeeck broooon fuux joooomps oouooffffer zee-a-a lezy duug. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! 09:37:05 Lol wtf 09:37:53 !show swedish 09:37:54 ​sh chef | fmt -w500 09:37:59 !show svedeesh 09:37:59 ​sh chef | chef | fmt -w500 09:38:03 !show sfedeesh 09:38:04 ​sh chef | fmt -w500 09:38:08 !show sffedeesh 09:38:08 ​sh chef | chef | chef | fmt -w500 09:38:11 !svedish I am a slightly more reserved swede. 09:38:19 !svedeesh I am a slightly more reserved swede. 09:38:19 ​I im a sleeghtly moore-a-a reserffed sfede-a-a. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! 09:38:27 !delinterp sfedeesh 09:38:27 ​Interpreter sfedeesh deleted. 09:38:37 !addinterp sfedeesh sh chef | chef | chef | fmt -w500 09:38:38 ​Interpreter sfedeesh installed. 09:38:45 !delinterp sffedeesh 09:38:46 ​Interpreter sffedeesh deleted. 09:38:57 !addinterp sffedeesh sh chef | chef | chef | chef | fmt -w500 09:38:57 ​Interpreter sffedeesh installed. 09:39:13 oerjan is setting the record straight in sffedeen. 09:39:20 !svedeesh The quick brown fox jumps over the lazy dog 09:39:20 -!- ais523 has quit (Read error: Connection reset by peer). 09:39:20 ​Zee-a quueeck bruun foox juumps oouffer zee-a lezy doog 09:39:31 !sffedeesh I love sffedeesh. 09:39:31 ​I looooffffffffe-a-a-a-a sffffffffffffffffffffffffffffffffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! 09:40:25 !help languages 09:40:25 ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. 09:40:35 !show chef 09:40:35 ​sh chef 09:40:49 magic box. 09:41:02 !delinterp chef 09:41:02 ​Interpreter chef deleted. 09:41:07 !addinterp chef chef 09:41:07 ​Interpreter chef does not exist! 09:41:17 !addinterp chef sh chef 09:41:17 ​Interpreter chef installed. 09:41:21 perl is esoteric? 09:41:27 !delinterp swedish 09:41:27 ​Interpreter swedish deleted. 09:41:27 haskell too, lol 09:41:34 !addinterp swedish chef 09:41:35 ​Interpreter swedish installed. 09:41:41 Patashu: don't forget c 09:41:55 Gregor has implemented working interpreter recursion? 09:42:14 how unforgivable 09:42:26 !swedish Ho hum. 09:42:36 ...apparently not. 09:42:42 !delinterp swedish 09:42:42 ​Interpreter swedish deleted. 09:42:56 !addinterp swedish sh chef | fmt -w500 09:42:56 ​Interpreter swedish installed. 09:43:01 !swedish Ho hum. 09:43:01 ​Hu hoom. Bork Bork Bork! 09:43:04 Patashu: I guess both Haskell and Perl are a little esoteric. So is C. 09:43:22 I imagine Perl is there for usefulness more so than esotericness 09:43:26 same with Haskell. 09:43:34 is any programming language NOT esoteric 09:43:48 Python 09:44:26 actually I tak it back, C is not esoteric in any way. 09:44:27 -!- ais523 has joined. 09:45:01 seriously? 09:45:06 c has two conflicting ways to be TC 09:45:10 C is like what you use to judge normalness, for some reason. 09:45:12 you're telling me that's not esoteric? 09:45:32 hi ais523 09:46:03 hi 09:46:48 also, I thought C's TCness options, other than ones based on files and the standard library, all required you to omit details like the value of CHAR_BIT (because it isn't a finite integer) 09:46:58 Ruby can be a little strange. 99.downto(1) {|x| print "#{x} bottles of beer on the wall."} 09:47:17 but that's not.... too strange. 09:47:45 ais523: exactly; freestanding, you don't have CHAR_BIT, so you can have bignum chars 09:47:48 hosted, you can use files 09:47:59 mutually exclusive 09:48:03 are you sure you don't have CHAR_BIT in freestanding? 09:48:04 I thought limits.h was one of the headers that had to be in freestanding too 09:48:14 ais523: ooh 09:48:17 that would be bad 09:48:23 it'd mean that freestanding C might not actually be TC at all 09:48:31 it's not like there's anything in it but #defines 09:48:44 * elliott greps http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf 09:49:42 what is 'freestanding C' 09:49:51 5.2.4.2 Numerical limits 09:49:51 1 An implementation is required to document all the limits specified in this subclause, 09:49:51 which are specified in the headers and . Additional limits are 09:49:51 specified in . 09:49:51 Forward references: integer types (7.18). 09:50:01 Patashu: it's a subset of C that doesn't have to have the library support that C impls normally do 09:50:02 5.2.4.2.1 Sizes of integer types 09:50:02 1 The values given below shall be replaced by constant expressions suitable for use in #if 09:50:03 preprocessing directives. Moreover, except for CHAR_BIT and MB_LEN_MAX, the 09:50:03 following shall be replaced by expressions that have the same type as would an 09:50:06 expression that is an object of the corresponding type converted according to the integer 09:50:08 promotions. Their implementation-defined values shall be equal or greater in magnitude 09:50:10 (absolute value) to those shown, with the same sign. 09:50:12 — number of bits for smallest object that is not a bit-field (byte) 09:50:14 CHAR_BIT 09:50:16 designed for things like embedded systems 09:50:19 ais523: oh dear, you must have a number of bits in a char in a freestanding implementation too 09:50:19 > [99, 98..1] >>= (++ " bottles of beer on the wall.\n").show 09:50:21 "99 bottles of beer on the wall.\n98 bottles of beer on the wall.\n97 bottl... 09:50:24 RIP freestanding tcness 09:50:31 elliott: unless you had a type that was smaller than a char 09:50:32 unless you can do something with the stack 09:50:34 and could create objects of it 09:50:39 and register variables 09:50:40 I saw a loophole in that definition 09:50:49 ais523: yes, but I suspect char is defined to be that smallest object 09:50:50 anyway 09:50:55 register variables you aren't allowed to take the address of 09:50:59 yep 09:50:59 so there's nothing forcing them to be limited 09:51:08 you can still sizeof them 09:51:11 combined with the stack... maybe you could do something? 09:51:16 there's nothing forcing you to have a limited /quantity/ of them 09:51:16 ais523: yes, but if you recurse 09:51:26 normally, recursion doesn't let you have "infinite variables" 09:51:29 because you can take their address 09:51:32 but there's no way to reference them outside their own stack frame, precisely because you can't take their address 09:51:36 but the conceptual stack frame can take up no address spcae here 09:51:38 [asterisk]space 09:51:41 so you end up with a PDA, not a TC language 09:51:49 ais523: yeah, it's probably true 09:51:54 I was thinking you could combine other things to make it work somehow 09:51:56 but I don't know 09:52:06 > :t map (map (map (map ($map)))) [[[[map]]]] 09:52:07 -!- Kustas has quit (Quit: left). 09:52:07 : parse error on input `:' 09:52:13 :t map (map (map (map ($map)))) [[[[map]]]] 09:52:14 forall a b. [[[[[a -> b] -> [[a] -> [b]]]]]] 09:52:32 nice. 09:52:37 looks uh 09:52:38 useful 09:52:41 > map (map (map (map ($map)))) [[[[map]]]] 09:52:42 Overlapping instances for GHC.Show.Show ([a -> b] -> [[a] -> [b]]) 09:52:42 arisi... 09:52:50 bleh 09:52:54 > length (map (map (map (map ($map)))) [[[[map]]]]) 09:52:55 1 09:53:03 > length (head (map (map (map (map ($map)))) [[[[map]]]])) 09:53:04 1 09:53:08 > length (head (head (map (map (map (map ($map)))) [[[[map]]]]))) 09:53:09 1 09:53:12 > length (head (head (head (map (map (map (map ($map)))) [[[[map]]]])))) 09:53:12 1 09:53:15 > length (head (head (head (head (map (map (map (map ($map)))) [[[[map]]]]))))) 09:53:15 Couldn't match expected type `[a]' 09:53:16 against inferred type `[a1 -> b]... 09:53:19 > length (head (head (head (map (map (map (map ($map)))) [[[[map]]]])))) 09:53:19 1 09:53:23 :t head (head (head (head (map (map (map (map ($map)))) [[[[map]]]])))) 09:53:24 forall a b. [a -> b] -> [[a] -> [b]] 09:53:37 :t map map 09:53:37 forall a b. [a -> b] -> [[a] -> [b]] 09:53:38 :t map (map (map (map ($map)))) [map] 09:53:39 Couldn't match expected type `[[[((a -> b1) -> [a] -> [b1]) 09:53:39 -> b]]]' 09:53:39 against inferred type `(a1 -> b2) -> [a1] -> [b2]' 09:53:43 what 09:53:44 :t map (map (map (map ($map)))) [[map]] 09:53:44 Couldn't match expected type `[[((a -> b1) -> [a] -> [b1]) -> b]]' 09:53:45 against inferred type `(a1 -> b2) -> [a1] -> [b2]' 09:53:45 In the expression: map 09:53:46 :t map (map (map (map ($map)))) [[[map]]] 09:53:47 Couldn't match expected type `[((a -> b1) -> [a] -> [b1]) -> b]' 09:53:47 against inferred type `(a1 -> b2) -> [a1] -> [b2]' 09:53:47 In the expression: map 09:53:48 :t map (map (map (map ($map)))) [[[pmap]]]] 09:53:50 parse error on input `]' 09:53:51 heh 09:53:57 ... 09:54:00 :t map map [succ,succ] 09:54:00 forall a. (Enum a) => [[a] -> [a]] 09:54:04 > map map [succ,succ] 09:54:05 Overlapping instances for GHC.Show.Show ([a] -> [a]) 09:54:05 arising from a use ... 09:54:08 > length (map map [succ,succ]) 09:54:09 Ambiguous type variable `a' in the constraint: 09:54:09 `GHC.Enum.Enum a' 09:54:09 ar... 09:54:18 > length (map map [(9+),(9+)]) 09:54:18 2 09:54:36 > head (map map [(9+),(9+)]) [0,0,0,9] 09:54:37 [9,9,9,18] 09:55:49 > (map map [(9+),(9+)]) [0,0,0,9] 09:55:50 Couldn't match expected type `t1 -> t' 09:55:50 against inferred type `[[a] ... 09:56:08 > id (map map [(9+),(9+)]) [0,0,0,9] 09:56:09 Couldn't match expected type `[t1] -> t' 09:56:10 against inferred type `[[a... 09:56:15 why do you need head? 09:56:26 I lol'd 09:56:28 I guess to make it not evaluate further 09:56:32 Patashu: um no 09:56:37 :t head 09:56:38 forall a. [a] -> a 09:56:39 :t map map [(9+),(9+)] 09:56:40 forall a. (Num a) => [[a] -> [a]] 09:56:53 i'll let you figure out the rest yourself :P 09:57:03 ma... oh 09:57:04 I get it now 09:57:07 > succ 5 09:57:08 6 09:57:10 was looking at the order of operations wrong 09:57:19 head happens before [0,0,0,9] is applied correct? 09:57:34 :t map map (map map [(9+),(9+)]) 09:57:35 forall a. (Num a) => [[[a]] -> [[a]]] 09:57:41 -!- aloril has quit (Ping timeout: 246 seconds). 09:58:20 > map map [(9+),(9+)] <$ 1 09:58:20 No instance for (GHC.Show.Show (f [[a] -> [a]])) 09:58:21 arising from a use of `... 09:58:44 > map map [(9+),(9+)] <$ [1] 09:58:45 Overlapping instances for GHC.Show.Show ([a] -> [a]) 09:58:45 arising from a use ... 09:58:51 Patashu: there's no "ordering" 09:58:51 :t map map [(9+),(9+)] <$ [1] 09:58:52 forall a. (Num a) => [[[a] -> [a]]] 09:58:54 f x y = (f x) y 09:58:56 that's all you need to know 09:58:59 :t (<$) 09:59:00 forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a 09:59:08 doh 09:59:15 :t (<*) 09:59:16 forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f a 09:59:43 head (map map [(9+),(9+)]) [0,0,0,9] == (head (map map [(9+),(9+)])) [0,0,0,9] == (head [map (9+), map (9+)]) [0,0,0,9] == (map (9+)) [0,0,0,9] == [9,9,9,eighteen] 09:59:46 Patashu: see above 09:59:47 :t map map [(9+),(9+)] `sequence` [1] 09:59:48 forall a. (Num a) => [[a]] 09:59:54 > map map [(9+),(9+)] `sequence` [1] 09:59:55 [[10],[10]] 09:59:58 -!- MigoMipo_ has joined. 10:01:07 > map map [(9+),abs,(`mod` 10)] `sequence` [1,-1] 10:01:08 [[10,8],[1,1],[1,9]] 10:01:11 @hoogle f (a -> b) -> a -> f b 10:01:12 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 10:01:12 Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b 10:01:12 Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b 10:01:18 productive today i see 10:02:24 !addinterp map perl for(<>){s/\b.*?\b/map/;print} 10:02:24 ​Interpreter map installed. 10:02:25 !map quite 10:02:26 ​mapquite 10:02:40 !map er what 10:02:40 ​maper what 10:02:46 !delinterp map 10:02:47 ​Interpreter map deleted. 10:02:50 idgi 10:03:18 !addinterp map perl for(<>){s/\b.+?\b/map/g;print} 10:03:18 ​Interpreter map installed. 10:03:29 !map I love chaining together maps in Haskell 10:03:30 ​mapmapmapmapmapmapmapmapmapmapmapmapmap 10:04:06 -!- MigoMipo has quit (Ping timeout: 276 seconds). 10:04:13 and this wonderful addition to egobot 10:04:18 I think I'm going to go to sleep. 10:04:37 s/and this #FFFFFFFFF/and with this/x 10:05:00 doesnt work 10:05:03 the spaces get stripped out 10:05:07 even if they didn't you'd have removed the space 10:05:08 TERRIBLE PERSON 10:08:24 -!- FireFly has joined. 10:08:37 -!- tarpad has joined. 10:09:45 tarpad: daprat 10:11:09 -!- aloril has joined. 10:14:38 -!- tarpad has left. 10:16:59 rip dapper rat 10:17:27 * Sgeo fails at technical communication 10:18:07 https://lists.secondlife.com/pipermail/secondlifescripters/2011-June/006227.html this confusion should not have occured. 10:20:24 yes, everything is gibberish until the example function at the end 10:21:35 :/ 10:22:19 -!- oerjan has quit (Quit: Reboot). 10:22:37 that function calls for a hashmap 10:23:09 Patashu: that would require first-class functions 10:23:13 Sgeo: does lsl have eval 10:23:17 elliott, nope! 10:23:22 Sgeo: what does it have 10:23:38 oh, quaternions 10:23:39 nice 10:24:31 Sgeo: is there any way to call a function in any way other than function_name(...) 10:24:39 elliott, nope 10:24:45 could you make an in-game object edit its own script while it runs? 10:24:51 to do self-modifying code 10:24:56 there's no arrays of function pointers? 10:25:07 Nope, although I can get it to retrieve another compiled script and run that instead 10:25:25 There is something I can do, but it's crappy: Put each native function in a separate script, and send a message to all scripts 10:25:32 Sgeo: can you create a compiled script programmatically 10:25:44 Not within LSL, although a bot could do it 10:26:06 then you can dynamically construct a compiled script for every native function that ends up getting called 10:26:07 and call that 10:26:13 massive overhead the first time though i would assume :) 10:27:14 elliott, involving bots would kind of be a bad idea. Statically constructing the scripts would be possible. But I don't think having a lot of scripts and constantly sending messages to them is a pleasant idea 10:27:43 Sgeo: why not restructure the language instea 10:27:44 d 10:27:50 instead of native_call(string, ...) 10:27:56 have some kind of "inline lsl assembly" thing 10:28:00 and some predeclaration macro 10:28:01 so that 10:28:04 native llWhatever(...) 10:28:06 expands to 10:28:08 function blah() { 10:28:15 lsl { llWhatever(...) } 10:28:15 } 10:28:17 or whatever 10:28:18 that wraps it 10:28:19 i dunno 10:28:33 elliott, that's for syntax of the language 10:28:44 Not for how the VM would run. Unless I'm misunderstanding 10:28:53 Sgeo: it means you don't have to handle a generic native call 10:29:23 If I'm understanding correctly, that would be abandoning the "pseudobytecode with surrounding VM" idea 10:29:32 sure 10:29:37 sounds like a terrible idea for a language this limited anyway 10:29:46 just straight compile it 10:30:01 The size of the LSL code is a premium... 10:30:32 well 10:30:36 the bytecode still counts as code right 10:30:44 I mean you could still do most things with one-letter function calls 10:31:06 -!- cheater_ has quit (Ping timeout: 246 seconds). 10:31:36 In theory, with the VM though, some of the bytecode could be put outside the script and onto a notecard. Although I don't know if that idea's that great. 10:32:51 Also: How do I go about calling _non_native functions without O(n) complexity for amount of existing non-native functions? 10:33:25 By making the language better 10:33:37 elliott: I just realised something beautiful that was possible with sg 10:33:38 Um, assuming that I'm trampolining and CPSing 10:33:51 all that's needed to send a commit to someone is that the commit is somewhere in the world at large, and to send them the hash 10:34:17 ais523: haha 10:34:20 and then you could go off and look for a commit with that hash through a search engine or something 10:34:29 ais523: doesn't that apply to every VCS? 10:34:33 well, every DVCS 10:34:35 only the ones with unique hashes 10:34:49 ais523: every DVCS has unique hashes up to collisions, pretty much 10:34:50 and where the hash itself is enough to pull into a repo 10:34:57 well, do they all use hashes? 10:34:59 I suppose so 10:35:33 git does, darcs does IIRC 10:35:36 hg does 10:37:12 darcs does have hashes involved, but they're hidden from the user unless you know how to ask for them 10:38:49 hey pikhq 10:38:53 rage material for you http://www.diaryofaninja.com/blog/2011/03/27/continuous-integration-ndash-itrsquos-all-about-your-build-projects-ecosystem 10:38:57 wrt libraries in source trees 10:39:02 elliott, am I mistaken in thinking that CPS will result in a lot of functions? 10:40:41 Sgeo: that's pretty much the definition of cps 10:40:54 also, call/cc is not useful at all in your situation afaik, so i don't know why on earth you want it 10:40:55 elliott: though it does point out somewhere that it might not be appropriate for *every* project, so it's not quite as crazy as it looks (only very close) 10:41:01 especially as you don't actually have first-class functions 10:41:18 elliott, there's a lot of event stuff in LSL 10:41:49 Hold on 10:42:49 -!- oerjan has joined. 10:42:54 http://lslwiki.net/lslwiki/wakka.php?wakka=llGetNotecardLine see this example? I want to make it not quite so painful, just a call to ccGetNotecardLine() which uses continuations to deal with a nice function evtDataserver that accepts a pretty callback 10:42:59 Instead of this present BS 10:43:09 -!- cheater_ has joined. 10:43:41 Maybe continuations are overkill for doing this 10:45:33 And incidentally, the point of making a new language is to give the new language features like first-class functions and continuations, so I don't know where you're getting "no first-class functions" from, that's the host language. 10:47:41 elliott: "itrsquos"? 10:47:50 smart quotes are one thing, smart quotes in URLs are another 10:48:04 or am I meant to rage at the page accessed via the URL, rather than the URL itself? 10:48:07 ais523: don't ask me, microsoft brain damage is obviously in effect on that site 10:48:11 and yes, yes you are 10:48:23 if you respond affirming that you don't plan to open the link, ... well please just preemptively don't respond 10:48:47 I want to know what's wrong with the link's content *ducks* 10:49:02 -!- BeholdMyGlory has joined. 10:49:25 Sgeo: re where did you get it from, well the overhead on function representation in sodfjsioghodghg will probably be large but yeah whatever doigjfdjgidgjfodjgi 10:50:10 Maybe there's a simpler way to get what I want 10:50:22 Just break the code into two at, say, ccGetNotecardLine 10:50:42 No CPS needed. But this requires much more thought 10:51:26 -!- MigoMipo_ has quit (Quit: Lämnar). 10:51:30 This also assumes that I know what's best 10:52:11 ais523: what's itrsquos? 10:52:16 olsner: it's 10:52:22 with the ' replaced with ’ 10:52:25 and then the punctuation removed 10:53:14 im gonna say itrsquos instead of it's in future now 10:53:16 itrsquos the future 10:53:25 but "it's" written with an apostrophe, not with accents or quotes :/ 10:53:41 elliott: anyway, about the actual content of the article, what it's suggesting is a bad idea if libraries don't lose features or break when upgraded, and a good idea otherwise 10:54:12 I tend to trust libraries not to do that (except in the case of certain CPAN modules...), but in industry, especially with proprietary libraries, I'd be less likely to 10:54:49 likewise, build tools that aren't libraries, it's much the same argument 10:56:55 meanwhile, the article accessed via the current top link on proggit (http://mjg59.dreamwidth.org/3561.html about rebooting PCs) is actually quite interesting 10:57:20 already linked :) 10:57:30 ("accessed via" -- seriously?) 10:58:21 elliott: would "at" be enough for you? 10:58:34 I'd say "at the top of proggit" at most 10:58:44 Nobody's going to think the article is literally embedded there :) 10:58:46 -!- elliott has left ("Leaving"). 10:58:51 -!- elliott has joined. 10:58:52 oops 10:59:11 gasp 10:59:13 elliott left 10:59:18 yeah\ 10:59:21 that never happens 10:59:32 * Sgeo wonders what yeahthat means 10:59:57 do leading spaces show up in most IRC clients? 11:00:01 apparently they do in mine 11:00:02 ais523: yes 11:00:09 yeses 11:00:10 not oklopol's prolly :D 11:00:22 it folds adjacent spaces after all 11:00:32 test 11:00:35 does it for mine 11:00:39 yes 11:00:49 $ yes yes 11:01:08 so if I use multiple spaces between words? 11:01:14 that shows up literally on mine too 11:01:18 which doesn't surprise me at all 11:01:25 it's useful for ascii art 11:01:40 `yes yes 11:01:41 ​yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes 11:01:45 lol 11:01:48 `yes \ 11:01:49 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:01:51 `yes \ 11:01:52 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:01:55 `yes \ 11:01:56 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:02:00 `yes \ 11:02:02 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:02:08 `run yes ' \' 11:02:09 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:02:13 pretty 11:02:23 it looks like rain 11:02:45 * Sgeo adjusts a bit 11:02:46 `run yes '\ \ \ \' 11:02:47 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:02:49 `yes | fmt -80 11:02:51 ​| fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | 11:02:53 lol 11:02:56 `run yes '\ \ \' 11:02:58 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:02:59 err, that was weird parsing 11:03:03 `run yes | fmt -80 11:03:04 ​y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y \ y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y \ y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y \ y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y \ y y y y y y y y y y y y y 11:03:13 `run yes '\ \ ' 11:03:15 ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 11:03:16 So many lights! 11:03:18 that looks good 11:03:44 `run yes ' \ \\ \ \ ' | yes '\ \\' 11:03:45 ​\ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ 11:03:48 `run printf '\x1b#8' 11:03:50 ​.#8 11:03:51 `run yes '\ \\' 11:03:53 ​\ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ 11:03:54 boring 11:03:58 try that one in an actual terminal sometime 11:04:01 `run yes ' \ \\ \ \ ' 11:04:02 ​\ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ 11:04:03 why is there an infinite loop in posix anyway 11:04:04 gnome-terminal will do 11:04:11 Patashu: ? 11:04:13 yes 11:04:14 Patashu: because it wouldn't be TC otherwise? 11:04:15 ais523: how did you even 11:04:18 lol 11:04:21 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 11:04:29 What, is it bell? 11:04:33 no its 11:04:33 no 11:04:34 E 11:04:44 ? 11:04:50 I just happened to know that there was a VT100 escape code for filling the screen with copies of the letter E 11:05:05 nice 11:05:18 there.. 11:05:19 is? 11:05:36 Will it work with putty? 11:05:41 it's apparently intended to allow you to make sure the terminal's centred on the screen 11:05:44 and it wouldn't surprise me if it did 11:05:57 even though in graphical terminals, it serves pretty much no purpose whatsoever 11:06:05 Worked 11:06:09 just in case someone thinks up a use for it, I usppose 11:06:13 *suppose 11:06:16 With the prompt in the middle of those Es, but a bit below 11:06:23 it doesn't move the cursor 11:06:27 it works on putty? I gotta try this 11:06:30 so the prompt just turns up where it would have turned up anyyway 11:06:32 *anyway 11:06:56 backspace does nothing, space and backspace clears the line of E 11:07:08 im so glad Sgeo is here to do science on the es 11:07:14 hmmm darn 11:07:16 doesn't do anything for me 11:07:43 OH 11:07:44 got it to work 11:07:45 now I'm wondering if it works on jettyplay 11:07:45 LOL 11:07:48 that's hilarious 11:07:59 I don't remember implementing it, but one of the libraries I use might do it 11:08:10 you must implement it 11:08:11 its vital 11:08:17 omg 11:08:21 i could use it in vagrant 11:08:26 if E was like floor 11:08:28 except that 11:08:34 the screen is already spaces by default... 11:08:38 maybe i could use it as a win screen :D 11:09:05 oh wow, it does work in jettyplay as well 11:09:08 that is so beautifully pointless 11:09:11 \o/ 11:09:13 | 11:09:14 |\ 11:09:37 hmm, it might be fun to put that code in a fruitname in NetHack 11:09:43 hahaha 11:09:47 -!- aloril has quit (Ping timeout: 246 seconds). 11:09:48 LOL 11:18:43 the big applEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEe 11:19:47 would that actually work though? 11:21:05 yes in vanilla, due to a bug 11:21:11 I'm not sure if it's fixed on NAO 11:21:20 interesting 11:21:28 that sounds totally worth doing 11:21:34 [asterisk]no spae 11:22:09 Maybe we should all take a different character to mean a correction from elliott 11:22:18 -!- aloril has joined. 11:22:56 no i like [asterisk] 11:24:41 elliott: have you decided to stick with your current keyboard, then, rather than get one with working numbers? 11:24:53 or are the keyboard replacement people just being slow? 11:24:58 ais523: well no i plan to get it fixed but it means sending in the entire laptop 11:25:12 which means making a full backup and wiping it to something that... doesn't boot into an unsupported OS by default 11:25:19 which means i'm a bit... lazy... 11:26:03 Would they really not fix it or ask for money if it boots into a different OS? It's a hardware issue, isn't it? 11:26:13 i dunno what the warranty has to say about that 11:26:25 and they might try and see if the number keys work first, maybe? 11:26:32 which they couldn't do on ubuntu because lol policy 11:26:42 oh, "a stitch in time saves nine" is not actually referring to... a stitch in time 11:26:42 like 11:26:45 time getting stitched 11:26:51 i always thought that was like... weirdly time-warpy 11:26:55 you are not actually a surgeon 11:27:01 for an aphorismsims 11:27:03 Patashu: what 11:27:13 oh wait I'm exlcuding the wrong part of the saying 11:27:24 elliott: hey, that statement would have been perfectly sane from zzo38 11:27:36 the only issue with it is the non sequiturism 11:27:42 ais523: no it wouldn't, nothing zzo says is sane 11:27:56 it would be /expected/, insofar as you can expect inane non-sequiturs at every turn 11:27:59 but it wouldn't be /sane/ 11:28:12 hey elliott 11:28:22 well, you can expect a non-sequitur even if you don't know what precisely it'll be, given the general nature of non sequiturs 11:28:23 a stitch in time flies like an arrow 11:28:23 you know anything about program derivation? 11:28:39 its when you antiintegrate a program 11:28:40 yw 11:28:48 hmm, Vorpal isn't here, I wanted to tell him about the new bridge that was being built here 11:28:54 elliott: :P 11:28:58 ill take that as a no 11:29:01 because it was apparently cheaper to build a new bridge than figure out who owned the old one 11:29:12 even though the bridges are right next to each other and cross the same canal/railway combination 11:29:14 ais523: why do you want to tell ol' vorpy that 11:29:22 because I think it would amuse him 11:29:36 there are easier ways 11:29:52 it surprises me a bit that building a bridge is cheaper nowadays than figuring out ownership of an existing bridge 11:30:01 all they actually wanted to do was run a network cable along it... 11:30:08 -!- aloril has quit (Ping timeout: 260 seconds). 11:30:32 -!- ralc has joined. 11:31:02 i assume the ownership was at least _somewhat_ disputed... 11:32:15 not quite, it's more that the bridge was built so long ago that nobody can remember 11:32:19 and there are several plausible options 11:34:17 * oerjan is reminded of http://www.jnto.go.jp/eng/indepth/history/traditionalevents/a05_fes_yamayaki.html 11:35:47 summary: "we burn this mountain every year because it happened before" 11:36:03 -!- Ycros has quit (Ping timeout: 248 seconds). 11:36:09 it was more the disputed ownership part 11:36:21 shaddap :D 11:37:43 -!- Ycros has joined. 11:38:04 18:10:30: actually i think i learned haskell _after_ unlambda. i don't quite remember. 11:38:04 oh, suddenly everything makes sense 11:40:07 especially the "how did you have _no_ problem with monads?" part 11:40:26 well i didn't either... 11:40:58 but then, my learning of haskell consisted of slogging through yaht, giving up out of sheer boredom, ignoring haskell for several months, then popping in the irc channel regularly just because it was a nice interesting place 11:41:08 then i took a glance at RWH and LYAH, and suddenly I knew Haskell 11:41:26 wait LYAH existed back then? 11:41:50 oerjan: my serious use of haskell started roughly when lyah started being a thing 11:41:54 which was like a few years ago? 11:41:57 hm 11:42:03 when I read YAHT it didn't exist 11:42:04 neither did RWH 11:42:11 I didn't have much trouble picking up monads 11:42:19 it was a case of starting with simple uses and working up 11:42:28 (and I learnt from YAHT, I think) 11:42:42 YAHT is really quite a bad tutorial... 11:42:50 ...better than Gentle Introduction :) 11:43:09 back then there were only those, and Haskell for C Programmers 11:43:10 the world needs a good INTERCAL tutorial 11:43:25 or what was it called 11:43:41 -!- aloril has joined. 11:45:00 01:25:32: The canonical BF CAT program suffers from it 11:45:01 01:26:05: +[>,.<] 11:45:01 01:26:48: Slereah-, that stops on NUL 11:45:03 argh 11:45:07 01:26:39: +[,.] 11:45:09 before the last line there 11:45:11 * elliott facepalm 11:46:01 Are you facepalming at me? 11:46:19 possible 11:46:37 Haskell 98 was conceived as a relatively minor tidy-up of Haskell 1.4, 11:46:38 making some simplifications, and removing some pitfalls for the unwary 11:46:40 oerjan: sing it with me 11:46:41 booooooooooooooooooooooooooo 11:46:50 having only 256 possible results from a , _does_ lead to the impossibility of implementing cat correctly 11:47:18 yes but sgeo's is obviously worse because it doesn't stop on /EOF/ :D 11:47:19 no matter what convention you use for EOF within that 11:48:05 a 16-bit bf with -1 or no change convention could work, though 11:48:43 +[,.+] 11:49:29 what about a 9-bit bf with an eof=99 conveiont 11:49:33 er wait 11:49:37 whWHat WNOW 11:49:40 NOT SO GOOD 11:50:06 what ascii is 99s anyway 11:50:09 hmm, "nice", on to finding a register assignment that keeps ebx intact from boot to a couple of hundred lines later when I'm ready to start using the data it points to 11:50:12 > chr 99 11:50:13 'c' 11:50:52 -!- azaq23 has quit (Quit: Leaving.). 11:51:13 olsner: you are still working on that os? :D 11:51:16 -!- azaq23 has joined. 11:51:26 like, bootloader stages 11:51:43 -,+[-.[-]-,+] 11:51:51 oerjan: a thing of beauty surely 11:51:53 elliott: yes, rewriting it to boot from multiboot and build to an elf image 11:52:02 olsner: but multiboot is shit? 11:52:06 probably yes 11:52:08 as is elf? so boring? 11:52:19 elliott: that works with either -1 or no change, i hope 11:52:39 with a bit redundancy for the former 11:52:44 ,[-.,] 11:52:46 guess the convention 11:52:57 -!- MigoMipo has joined. 11:53:02 EOF 0, others shifted 11:53:08 elliott: well, I figured that writing *everything* in assembler was starting to become boring, so I might want to make it possible to write some things in C and link it together using somewhat standard tools 11:53:51 olsner: so basically...... you figured out the only way you could make it a more boring snooze of an endeavour... 11:54:01 oerjan: yes you get pounds of money 11:59:50 elliott: EOF 0, others shifted is what I use for new languages I design nowadays 11:59:52 except I shift on output too 12:00:02 I sometimes call it "incremented ASCII" 12:01:08 it's kind of ugly 12:01:26 ASCII with null pointer 12:01:38 why not set an instruction to jump to when you reach EOF? or something like that 12:01:46 I blame ASCII/Unicode for not putting EOF at 0 in the first place 12:01:48 'on eof blah blah blah' 12:02:01 Patashu: because that assumes you have something remotely resembling standard flow control 12:02:04 ais523: um that would _still_ not help with binary format 12:02:06 in many esolangs you don't 12:02:24 oerjan: it's not like esolangs handle binaries well anyway 12:03:02 unlambda _does_ have an instruction to jump to when you reach EOF. if you look at it the right insane way 12:03:16 oerjan: c 12:03:27 do you have to use it twice to manage that? or can it all be done with one use of c? 12:03:41 (I seem to remember that Unlambda's I/O conventions are deliberately designed to be awkward to use) 12:03:55 i believe you can actually do unlambda IO programming without c entirely, but i haven't put my idea into practice 12:04:08 That is why you should use Lazy Bird 12:04:14 it will leak memory though 12:04:14 Which is TOTALLY AWESOME 12:04:20 oerjan: seriously? 12:04:46 a v kills your program if you ever try to determine its value, so you'd have to, umm, duplicate the entire rest of the program 12:05:03 ais523: yes. the c is normally only for escaping from a v you apply. but if you use CPS _explicitly_ you don't _have_ to return. and you can still use e to end the program. 12:05:32 how do you get the v to obey CPS, though? 12:06:17 elliott: I don't think so, more like moving on to making other things fun while finding boring but convenient solutions to some other parts 12:06:17 you don't. it's just that if you do ``vA B or ``iA B where A and B are your branches but A _never_ returns, then you can make it work 12:06:17 what does v do? consume your program? 12:06:44 Patashu: it ignores its argument and returns v 12:07:02 it's pretty much dynamite for any pure-functional language (in the Unlambda sense), as it's very hard to recover from an errant v 12:07:05 ok B cannot return either 12:07:19 yeah, it blows your program up 12:07:25 olsner: you're a fuselage. 12:07:37 elliott: what do you mean? 12:07:48 oerjan: do you mean ``v`dAB? 12:07:53 PATACHU 12:07:54 otherwise I don't see how it can work 12:07:55 IS THAT YOU 12:08:07 no, it's an s 12:08:10 heh, v is like an unlambda virus 12:08:19 as ``vAB = `vB = v 12:08:26 and either evaluates both of A and B, or neither 12:08:28 I know a Patachu 12:08:32 I can't quite remember how unlambda evaluation order works 12:08:56 ais523: strict by default 12:09:02 but if A and B don't return 12:09:04 then the result is irrelevant 12:09:08 only the evaluation matters 12:09:15 yep, that's why I added the `d 12:09:27 otherwise, if A doesn't return, `vA will do the same thing as A 12:09:27 do you have to use it twice to manage that? or can it all be done with one use of c? <-- just one, i think, your branches can share their continuation 12:10:21 -!- FireFly has quit (Ping timeout: 240 seconds). 12:10:37 boo, unlambda(1) is no longer in the Ubuntu repos 12:11:00 * ais523 uses locally compiled version 12:11:09 oerjan: do you mean ``v`dAB? <-- um i'm not being precise here 12:13:37 ```v`d`kAiB is one way, i think 12:13:38 hmm, I've been testing 12:13:39 No output. 12:13:47 and am trying to figure out why ``i`d``.tei``.fei is an infinite loop 12:13:55 that makes no sense at all 12:13:58 it is? 12:14:09 apparently 12:14:11 not with c? 12:14:13 -!- FireFly has joined. 12:14:20 yep, I just copy-pasted from my terminal 12:14:25 it prints infinite copies of t 12:14:26 !unlambda ``i`d``.tei``.fei 12:14:26 ​f 12:14:32 perhaps this is a buggy interp 12:14:35 that wouldn't surprise me 12:14:39 probably 12:14:49 I get ftttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt... 12:15:05 i recall that superfast C interpreter didn't do d right 12:15:18 !unlambda ```i`d``.teii``.fei 12:15:19 ​t 12:15:23 !unlambda ```v`d``.teii``.fei 12:15:24 ​f 12:15:24 (mandelson's iirc?) 12:15:26 there we go 12:15:41 $ ./unlambda --version 12:15:42 Can't open input file: No such file or directory 12:15:47 looks like it's Can't's 12:15:54 essentially e acts as a top continuation for your CPS use 12:16:04 more seriously, though, /* Copyright (C) 1999 by David A. Madore */ 12:16:08 maybe i'll write an unlambda interpreter 12:16:10 ah. 12:16:17 ais523: what's it written in? 12:16:21 C 12:16:26 although, what was the subtlety of d again? 12:16:38 it follows different evaluation rules from everything else 12:16:47 it doesn't evaluate its argument 12:16:55 until that is again applied 12:17:06 if you do `XY, the correct way to process that is to evaluate X, then if X isn't d, evaluate Y, then apply X to Y 12:17:20 right, I mean 12:17:25 if X is d, though, you just return `dY, and don't evaluate that until it ends up as the first argument to something 12:17:25 how on earth could you implement it wrongly? :) 12:17:41 by not understanding it? 12:17:51 fair enough I suppose 12:18:00 I imagine it's quite easy to screw up 12:18:04 is unlambda ul or unl? latter, right? 12:18:06 file extensions and the like 12:18:10 !unlambda is also a C interpreter though iirc 12:18:12 unl 12:18:29 anyway, what confuses me is that, with the impossibility of comparing functions, how do you know if the first argument is d or not 12:18:47 ais523: by representing it symbolically and forcing it 12:18:48 !unlambda ``d.xi 12:18:48 ​x 12:19:00 yeah 12:19:01 ais523: it is impossible to construct a function with identical semantics to d that is not syntactically d in unlambda 12:19:04 that is, in normal form 12:19:12 !unlambda ``i`d.xi 12:19:12 ​x 12:19:17 !unlambda `i`d.x 12:19:26 !unlambda ``i`d.xi 12:19:26 ​x 12:19:30 what about ``s`kdi? 12:19:41 or does that not have identical semantics to d? 12:19:46 ask oerjan ;D 12:19:48 well, I know it doesn't 12:19:53 well then 12:19:54 but mathematically it "ought" to 12:19:59 assuming I've calculated it correctly 12:20:07 there's no ought 12:20:10 there's only the reduction rules 12:20:13 putting any other function /but/ d there, it would work identically 12:20:22 d isn't a function 12:20:25 it isn't applied like functions 12:20:28 it's a special token/form 12:20:35 implemented in the reduction rules for ` 12:21:01 !unlambda `i`d`.xi 12:21:01 ais523: ``s`kdi is not d, no 12:21:08 !unlambda ``id`.xi 12:21:13 hmm, is ((a b) c) legal in Lisp? 12:21:14 no eta reduction 12:21:26 not common lisp, i think 12:21:30 hmm, you basically have to thunk everything in an unlambda compiler, right? 12:21:34 unless you did fancy strictness analysis, ofc 12:21:47 oerjan: I'm not sure if you can call it eta reduction if it's based on combinators rather than lambdas, but it's the same principle 12:22:20 What's the proper name for the code part without the scope of a closure? 12:22:25 hmm, Wikipedia says *eta-conversion 12:22:28 oerjan: does unlambda have, erm, "tail-recursion"? 12:22:33 ais523: i believe it is possible to write a function in unlambda which detects whether its argument is d without applying it :) 12:22:34 hmm 12:22:37 that's a really stupid question 12:22:53 Sgeo: code 12:22:53 elliott: well any decent interpreter should 12:23:21 elliott: it is possible to write an Unlambda interp that runs out of stack space on ```sii``sii using a plausible algorithm 12:23:30 so it's not inherently tail-recursive in that sense 12:23:47 but decent interps should definitely try to optimise tail-recursion 12:24:30 hmm 12:24:34 / ```i`d.xii 12:24:34 i have had some thoughts on optimizing things like `eX (by throwing away the original continuation _before_ evaluating X), which would make that c-less style not leak memory, i think 12:24:34 unl thka(unl x) { return (*prim_output_x(prim_i))(x); } 12:24:34 unl thkb(unl x) { return (*prim_d(thka))(x); } 12:24:34 unl thkc(unl x) { return (*prim_i(thkb))(x); } 12:24:34 unl thkd(unl x) { return (*thkc(prim_i))(x); } 12:24:38 unfortunately this fails at the top level 12:24:42 because you don't want to apply the final result of a program 12:24:45 (consider the program .x) 12:24:59 OTOH, I could have a special dummy value, which all the primitives just recognise and return immediately on, to call the whole program with :) 12:25:00 the final result can just be discarded 12:25:06 here unl is just a function from unl -> unl 12:25:09 ais523: yep, but I mean 12:25:13 if the whole program is a thunk like this 12:25:27 then you have to apply the final result to make anything happen 12:25:31 GODDAMN IT REDDIT STOP EQUATING "DEEP WEB" WITH TOR HIDDEN SERVICES 12:25:31 ah, are you writing a compiler rather than an interp? 12:25:35 oh wait hmm 12:25:38 ais523: yes, just had a breakthrough sort of 12:25:55 12:26:02 hmm wait no, ga 12:26:03 h 12:27:28 deep web just means you have your robots.txt set to prevent search engine indexing, right? 12:28:25 elliott: in unlambda, evaluation and application are separate operations, and you need both. 12:28:40 oerjan: but that destroys my beautiful nice fast evaluation model :( 12:28:55 i think it actually doubles the number of required jumps 12:28:57 Or you use AJAX in a really braindead way. Or I guess Tor Hidden Services are technically a part, but people are talking as though "deep web" is something scary and mysterious 12:29:10 oerjan: it even made the whole thunk thing transparent :( 12:29:16 When they mean to refer to Tor hidden services 12:39:39 oerjan: basically i was trying to unify thunks and functions... 12:39:54 oerjan: by just making thunks pretend they're the function they evaluate to, by forcing themselves and then passing that argument on 12:42:10 About to take a Tylenol 12:43:05 Done 12:43:19 Sgeo: you know you can just /msg yourself? 12:43:27 or does your client not have local logs? 12:43:34 It has local logs 12:43:48 Hmm, am I actually bothering people here 12:43:49 ? 12:44:36 I guess I just felt more comfortable with the log on the web, but it's really unnecessary, sorry 12:44:37 only in the cosmic microwave background radiation sense. 12:44:58 Sgeo: it's not really bothersome, it just looks weird 12:45:09 I suppose I'm hoping for you to make less of a fool of yourself in public 12:45:21 elliott, which CMBR sense? 12:45:34 Phantom_Hoover: its always there and vaguely annoying 12:45:45 although mostly in a cringe-on-behalf way 12:45:50 sorry what do you mean cmbr isnt like that it totally is 12:46:00 Yeah, it's the worst. 12:46:07 !addinterp utest unlambda ```sii````@i|i 12:46:07 ​Interpreter utest installed. 12:46:12 !utest lessee... 12:46:13 ​./interps/unlambda/unlambda.bin: file /tmp/input.2987: parse error 12:46:20 oops duh 12:46:35 !delinterp utest 12:46:35 ​Interpreter utest deleted. 12:46:41 !addinterp utest unlambda ```sii````@i|i`ci 12:46:41 why is that c in angle brackets? 12:46:42 ​Interpreter utest installed. 12:46:53 because i copied the wrong line :D 12:46:57 !utest lessee... 12:47:06 well that didn't work 12:48:00 !delinterp utest 12:48:00 ​Interpreter utest deleted. 12:48:58 !addinterp utest unlambda ```sii``d``@i|`ci 12:48:58 ​Interpreter utest installed. 12:49:01 !utest lessee... 12:49:01 ​le 12:49:16 ..._somewhat_ disappointing 12:49:57 oerjan: thunks are ugly :( 12:50:06 !delinterp utest 12:50:06 ​Interpreter utest deleted. 12:50:42 ah of course 12:51:05 !addinterp utest unlambda ```sii``d```@i|i`ci 12:51:06 ​Interpreter utest installed. 12:51:10 !utest lessee... 12:51:10 ​lessee... 12:51:48 elliott: any opinion on OO.o being donated to Apache? 12:52:13 * ais523 guesses no, but isn't sure 12:52:55 ais523: does anyone care, now that LibreOffice has taken over? 12:52:58 I didn't even know it was donated 12:53:11 the only people who still use OO.o are, I guess, Windows users who don't have the kind of transition Linux distros are doing 12:53:15 elliott: well, LO care, because it's under a license that lets them copy code back out 12:53:27 so it saves them having to reimplement features 12:53:37 ais523: I sort of doubt openoffice will get much active development now that libreoffice exists 12:53:42 and the trademark was donated too, so it's possible that LO will get to call themselves OpenOffice.org again after all 12:53:52 hmm, I actually prefer LibreOffice as a name 12:53:55 the .org necessity was always ugly 12:54:01 if Apache decides to give them the trademark 12:54:01 admittedly, OpenOffice (no .org) has brand recognitino 12:54:06 [asterisk]recognition 12:54:27 OOo is a great acronym 12:54:36 and pretty recognisable 12:54:37 ais523: anyway, OO.o and LibreOffice are both very ugly, slow programs with lots of bad design and kludginess 12:54:41 yep 12:54:47 I avoid them at pretty much all costs, personally 12:54:56 If I really want a WYSIWYG word processor for some reason, AbiWord is usually OK 12:54:57 aren't all WYSIWYG word processors, though? 12:55:04 To varying degrees, yes 12:55:19 I'd say AbiWord is much better than OO.o/LO's word processor as far as UI goes 12:55:21 I have other alternatives for word processing 12:55:24 And speed/hogginess 12:55:25 Me too 12:55:28 and for spreadsheets, too 12:55:31 but not really for presentations 12:55:44 so I still need to use the office suite for something 12:55:46 Well, there's always latex with beamer :) 12:56:00 Or one of them fancy ~~semantickal~~ HTML-based things. 12:56:11 I use html and opera for all my presentations 12:56:24 lol, opera users 12:56:42 there's a css media query you can use to check if you're in full screen (which is either opera-specific or only works in opera, but whatever :D) 12:57:06 implying there's a standard that only opera implements correctly 12:57:20 hmm, apparently Windows 8 has done a Gnome Shell/Unity, and come up with a new crazy tile-based "start screen" 12:57:22 (implying that opera implements any standard correctly) 12:57:35 so we won't even be able to use Windows either to get away from the UI reinvention nonsense 12:57:35 ais523: it looks exactly like Windows Phone, to be honest 12:57:38 yep 12:57:50 and Unity was stolen from UNR 12:57:50 ais523: It looks fairly decent for tablets 12:57:55 not so much for desktops 12:57:56 I think this part just isn't in the standard 12:58:13 ais523: I'm sort of thinking desktops are on the road to extinction, though 12:58:26 olsner: you can't rely on opera to be present on another computer 12:58:44 Netbooks are wildly popular, tablets are probably going to be once they get down to a lower pricepoint (without being saddled with ridiculously inappropriate software like Android) 12:58:44 read something about a proposal to add something similar with a different name to CSS last week though 12:58:51 Even laptops have desktop-esque specs nowadays 12:58:59 I think desktops may be marginalised relatively soon 12:59:03 when I take a really important presentation with me, I save it as .odp, .ppt, and .pdf, and take a live-executable for Windows for both Sumatra and OOo 12:59:05 ais523: I can if my presentation requires opera, or if I bring my own laptop 12:59:15 and then normally, at least one will work 12:59:33 I think desktops may be marginalised relatively soon 12:59:40 What about for high-end machines? 12:59:43 (i.e. assuming X, X is in fact true) 12:59:46 (typically I use the .pdf with Adobe Reader; Sumatra has issues rendering thin lines, in that it draws them as thin as the PDF suggests rather than widening them to 1 pixel) 12:59:46 Phantom_Hoover: those are marginal 12:59:55 Phantom_Hoover: come on, you answered that one yourself 12:59:57 Phantom_Hoover, yeah. 13:00:09 Laptops are a little too convenient. =p 13:00:42 Though I do want a desktop machine to host a ssh server on for tunneling. 13:00:44 !delinterp utest 13:00:44 ​Interpreter utest deleted. 13:01:30 !addinterp utest unlambda ```sii``d`@|`ci 13:01:31 ​Interpreter utest installed. 13:01:33 !utest lessee... 13:01:34 ​lessee... 13:01:48 !utest aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 13:01:49 ​aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 13:01:49 * oerjan cackles evilly 13:02:29 !utest here comes another chinese earthquake brbrbrbrbr 13:02:29 ​here comes another chinese earthquake brbrbrbrbr 13:02:41 all that for cat? 13:03:22 !delinterp utest 13:03:22 ​Interpreter utest deleted. 13:04:00 !addinterp utest unlambda ```s`d`@|i`ci 13:04:00 ​Interpreter utest installed. 13:04:03 !utest lessee... 13:04:04 ​lessee... 13:04:12 BETTER? 13:04:40 oerjan: hmm, does unlambda's `dX ever execute X more than once? 13:04:46 yes 13:04:48 i.e. is it like call-by-name or just lazy evaluation? 13:04:53 call-by-name 13:05:08 oerjan: so I don't have to do the Haskellian "thunks stub themselves out with {return value;} upon evaluation"? 13:05:08 cool 13:05:32 ooh, what if I combined forcing and evaluation with a parameter... 13:06:22 erm 13:06:25 applying and evaluating 13:09:15 !delinterp utest 13:09:15 ​Interpreter utest deleted. 13:09:24 !addinterp ucat unlambda ```s`d`@|i`ci 13:09:24 ​Interpreter ucat installed. 13:10:03 don't see any further improvement on the spot 13:10:31 and it is nicely incomprehensible 13:10:47 !ucat here comes another chinese earthquake brbrbrbrbr 13:10:47 ​here comes another chinese earthquake brbrbrbrbr 13:19:39 how many damn chinese earthquakes are ther 13:19:39 e 13:21:49 !ucat @#$%^&*() 13:21:49 ​@#$%^&*() 13:21:56 !ucat I am a mouse 13:21:57 ​I am a mouse 13:29:49 oerjan: gah, I feel like I could get unlambda evaluation steps down to a few instructions, but the c compiler is getting in my way 13:30:14 !unlambda ``.a`cd`.c`c.b 13:30:22 bah 13:30:36 !unlambda ``r`cd`.c`c.b 13:31:19 wtf 13:31:23 !unlambda ``r`cd`.c`c.b 13:32:19 !echo hello 13:32:29 wonderful 13:32:30 -!- EgoBot has quit (Remote host closed the connection). 13:32:41 -!- EgoBot has joined. 13:32:44 hmm, but this is an extra branch each time... 13:33:04 that DCC output was something insane (it contained _control_ characters!) 13:33:09 !unlambda ``r`cd`.c`c.b 13:33:11 !echo hello 13:33:28 ah 13:35:25 you broke egobot 13:35:43 i may suspect someone of having done +[[.+]+] in a privmsg 13:35:47 um what 13:35:50 well 13:35:51 someone did 13:35:58 !echo hello 13:35:59 ​hello 13:36:17 because that's what the DCC output i got before it quit looked like 13:36:40 and there's a bug that sometimes causes long output to be sent to the wrong place 13:38:27 oerjan: what is the semantics of .x again? 13:38:33 i forget how `.xX is defined 13:38:37 it outputs x, then...? 13:39:08 returns X 13:39:26 oerjan: so X is evaluated before x is output? 13:39:29 yes 13:39:57 unl prim_out_x(unl _, unl k) { 13:39:58 if (!k) return prim_out_x; 13:39:58 unl r = FORCE(k); 13:39:58 putchar('x'); 13:39:58 return r; 13:39:58 } 13:40:00 easy 13:41:15 oerjan: http://sprunge.us/UcGh 13:41:21 oerjan: what do you think about this for an evaluation model? 13:41:30 assume that the C implementation does tail-call optimisation 13:41:46 the whole program would be evaluated with FORCE(thk_d) 13:41:55 oh wait hm 13:42:00 prim_i needs wrapping in a closure structure 13:42:03 with NULL data 13:42:04 but that's obvious 13:42:46 i don't think my brain can manage the context switch at the moment 13:45:42 http://sprunge.us/JaYP there... hmm 13:45:48 i guess it should pass the pointer to the whole closure 13:51:10 this is C++? what does 'closure' do? 13:51:14 oh 13:51:38 !python ''.join(chr((x%255)+1) for x in range(200)) 13:51:47 * Lymia hides 13:51:59 i don't think there is python in egobot 13:52:01 !addinterp recursion recursion2 13:52:01 ​Interpreter recursion2 does not exist! 13:52:04 !sh which python 13:52:06 ​/usr/bin/python 13:52:11 !addinterp recursion python 13:52:11 ​Interpreter python does not exist! 13:52:11 ok there's that 13:52:21 !addinterp recursion unlambda 13:52:22 ​Interpreter recursion installed. 13:52:28 !addinterp recursion2 recursion 13:52:28 ​Interpreter recursion2 installed. 13:52:32 !addinterp recursion recursion2 13:52:32 ​There is already an interpreter for recursion! 13:52:41 !delinterp recursion 13:52:44 ​Interpreter recursion deleted. 13:52:46 !addinterp recursion recursion2 13:52:46 ​Interpreter recursion installed. 13:52:50 !recursion 13:52:51 this is C++? what does 'closure' do? 13:52:53 it is C 13:52:56 and it is the name of the struct. 13:53:01 !echo I'm alive. 13:53:03 ​I'm alive. 13:53:06 :< 13:53:26 !recursion2 13:53:37 yeah, took me a moment 13:53:42 !python print ''.join(chr((x%255)+1) for x in range(2000)) 13:54:02 !haskell putStr ['\001'..'\201'] 13:54:13 argh 13:54:15 !echo hi 13:54:29 !haskell putStr '\000' 13:54:31 ​hi 13:54:44 * Received a DCC CHAT offer from EgoBot 13:54:45 `-` 13:54:49 No output. 13:54:57 Lymia: python is not an interpreter, you cannot use it that way, but since it's in /usr/bin you might be able to run it with sh 13:55:06 !echo hi 13:55:07 ​hi 13:55:15 !haskell putStr ['\001'..'\201'] 13:55:17 ​........ 13:55:40 ah right it sends a newline before anything interesting 13:55:46 so the rest is in DCC 13:55:58 !haskell putStr ['\014'..'\201'] 13:56:00 ​.................. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 13:58:05 !sh python -c 'print "Hello"' 13:58:06 ​Hello 13:58:40 -!- Sgeo has quit (Ping timeout: 252 seconds). 13:58:48 !addinterp python sh python 13:58:49 ​Interpreter python installed. 13:58:57 !python print "Hello" 13:58:58 ​Hello 13:59:34 !python print ''.join(chr((x%255)+1) for x in range(2000) if (x%255)!=(ord('\n')+1)) 13:59:34 ​........ 13:59:42 !python print ''.join(chr((x%255)+1) for x in range(2000) if (x%255)!=(ord('\n')-1)) 14:00:30 !python import random;print ''.join(chr(random.randint(0,255)) in range(100)) 14:00:31 ​.............................. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.............................. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 14:00:39 nice 14:00:39 !python import random;print ''.join(chr(random.randint(0,255)) in range(100)) 14:00:40 ​Traceback (most recent call last): 14:00:54 !python import random;print ''.join(chr(random.randint(0,255)) in range(100)) 14:00:55 ​Traceback (most recent call last): 14:00:57 lol 14:01:11 !python import random;print ''.join(chr(random.randint(0,255)) for x in range(100)) 14:01:11 ​<*.w)}.. 14:01:22 !python import random;print ''.join(chr(random.randint(0,255)) for x in range(100)) 14:01:23 ​NUs2.&./x(F.LP.}.=.z@~{D7Q..Hg.Q.ۂO0Na{.'.I.. 14:01:34 !python import random;print ''.join(chr(random.randint(0,255)) for x in range(10000)) 14:01:35 ​.I..~zdRT [l7.9a5(^.0 14:01:51 !python a=[None];a[0]=a;print a 14:01:52 ​[[...]] 14:01:55 :< 14:01:59 y u so clever 14:02:25 !python a=[None];a[0]=a;flatten(a) 14:02:25 ​Traceback (most recent call last): 14:06:37 !python print '\nQUIT :This better not work' 14:06:49 !python print '\r\nQUIT :This better not work' 14:06:49 ​. 14:07:03 !python print "So much DCC Chat" 14:07:04 ​So much DCC Chat 14:11:26 (Pop-11 has most of the virtues of python, [...] 14:11:37 wow he was brave to say that on a relatively widely read internal mailing list 14:11:42 I wonder if there will be flames in response 14:12:45 ais523: It's computer science/software engineering, we're hardly known for being quiet and reserved with our opinions 14:12:50 indeed 14:13:08 but I never thought I'd see POP-11 compared with Python 14:13:26 (POP-11's a domain-specific language designed for writing ELIZA-like AI bots, as far as I can tell) 14:13:31 POP-11 was pretty advanced, I gather 14:13:41 ais523: Er, no? 14:13:53 "An online version of ELIZA using Pop-11 is available at Birmingham." is the only thing Wikipedia says that would make me think that. 14:13:57 hmm 14:14:11 perhaps I just saw a biased subset of it from someone who was really an ELIZA freak 14:14:23 POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, [...] POP-11 is an evolution of the language POP-2, developed in Edinburgh University and features an open stack model (like Forth). It is mainly procedural, but supports declarative language constructs, including a 14:14:23 pattern matcher and is mostly used for research and teaching in Artificial Intelligence, although it has features sufficient for many other classes of problems. It is often used to introduce symbolic programming techniques to programmers of more conventional languages like Pascal, who find POP syntax more familiar than that of Lisp. One of POP-11's features is that it supports first-class functions. 14:14:28 Pop-11 is the core language of the Poplog system. The fact that the compiler and compiler subroutines are available at run-time (a requirement for incremental compilation) gives it the ability to support a far wider range of extensions than would be possible using only a macro facility. 14:14:32 it actually sounds quite expressive and advanced to me 14:14:34 far moreso than Python 14:14:42 ais523: there exist ELIZA freaks? 14:14:50 I assume so 14:15:50 the language seems based on pattern-matching lists, anyway 14:16:11 you end up with lots of deeply nested lists writing it 14:18:25 wow, ghc does really terribly at small functions 14:18:32 the prologue and epilogue are just so long 14:23:35 -!- oerjan has quit (Quit: *COUGH* *HACK*). 14:24:08 erm 14:24:09 gcc not ghc 14:24:37 the prologue/epilogue are pretty much hard coded in gcc 14:25:03 I think they're literally hard coded in gcc-bf, there's a string that's spit out at the beginning and end of each function that's quite long 14:25:14 with even the newlines and tabs embedded 14:27:59 yep; unfortunately, I have a lot of really tiny functions, so I really suffer for it 14:30:14 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:38:43 -!- augur has quit (Remote host closed the connection). 14:50:58 -!- Vorpal has joined. 14:51:12 stanislav rapidly reaching levels of smugness even i cannot stand 14:52:40 what's stanislav? 14:52:54 elliott, HI! 14:53:01 elliott, what is the spec like so far? 14:53:11 Vorpal: perfect 14:53:17 olsner: guy who writes loper-os.org 14:53:21 elliott, ah, may I see it? 14:53:53 -!- copumpkin has joined. 14:54:10 Vorpal: 9f0jer0g9jrtmreor09.onion 14:54:25 the distinct lack of numbers i cannot type in this Tor domain is entirely coincidental. 14:58:03 http://mspaintadventures.com/sweetbroandhellajeff/?cid=031.jpg new abahj 15:00:52 Patashu: that's weeks old 15:01:09 really? hm 15:01:16 also, arabian bartender and hasidic juice-drinker? 15:03:38 Patashu: http://twitter.com/#!/andrewhussie/status/68546368226066432 15:03:40 twelfth may 15:06:32 -!- augur has joined. 15:12:33 -!- ais523 has quit (Remote host closed the connection). 15:14:30 -!- azaq23 has quit (Quit: Leaving.). 15:15:37 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 15:18:35 where's oerjan when you need him 15:21:24 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds). 16:09:41 -!- Phantom_Hoover has joined. 16:16:58 -!- elliott_ has joined. 16:16:59 -!- elliott has quit (Read error: Connection reset by peer). 16:29:36 -!- ais523 has joined. 16:30:50 -!- copumpkin has quit (Ping timeout: 252 seconds). 16:43:35 -!- copumpkin has joined. 16:47:32 -!- pikhq has quit (Ping timeout: 240 seconds). 16:47:33 -!- pikhq_ has joined. 16:57:21 wait 16:57:25 ais523: unlambda question 16:57:32 ais523: `i`dX doesn't evaluate X does it... 16:57:41 no 16:57:44 but ``i`dXi does 16:57:59 `dX doesn't evaluate X until it's on the LHS of an application 16:58:00 No output. 16:58:10 then it evaluates X, then the RHS of the application, then applies them to each other 16:58:25 ais523: this really complicates my evaluation model :( 16:58:34 it might even completely break it 16:58:37 it's definitely nontrivial 16:58:41 hmm 16:58:43 ah, wait, no it doesn't 16:58:47 in fact, I think d is in the language mostly /because/ it's a pain to implement 16:58:50 just requires some Fancy Tricks 17:00:03 PRIM(d) { 17:00:04 if (!x) return me; 17:00:04 unl thk = new(); 17:00:04 thk->code = prim_d_2; 17:00:04 thk->data = x; 17:00:04 return x; 17:00:06 } 17:00:08 unl prim_d_2(unl me, unl x) { 17:00:10 if (!x) return me; 17:00:12 return APPLY(me->data, x); 17:00:14 } 17:00:16 tada 17:03:19 lol, this phishing scam claims to be "ACCOUNT VERIFICATION" 17:03:30 Apparently they have a trademark on the word "account 17:03:31 " 17:06:42 Impressive. 17:07:32 I'm going to trademark "account[\n]" 17:08:55 elliott_: ITYM "account\n" 17:14:18 man 17:14:19 sharing sucks 17:28:50 Oh, wow. ext filesystems on Linux do not normalize filenames. 17:29:15 They just store the byte sequence handed to them as the filename. 17:29:37 You can have two different filenames that are, as far as Unicode is considered, identical. 17:29:58 s/considered/concerned/ 17:29:59 (though quite distinct as far as a more naive strcmp() is concerned) 17:31:38 I have a feeling OS X normalizes to NFD or NFKD, I think; at least on some level, since I haven't managed to get an "ä" in a file name that wouldn't have been decomposed into a and combining-diaeresis. 17:32:25 It doesn't matter that much what *form* you normalise to, what matters is that you actually apply Unicode normalisation... 17:32:34 To do otherwise is broken. 17:32:58 -!- monqy has joined. 17:34:58 I don't think the filesystem level (at least for ext*) defines the character set at all; it's just defined in terms of octet sequences. So the normalization would either have to happen on a higher level; or you would need to mandate Unicode and, say, UTF-8. 17:37:24 Perhaps on the VFS level or something. I think some filesystems do respect the "iocharset" option for doing some character-set conversions. 17:39:42 It certainly needs to be somewhere in there, though. 17:43:10 Well, now; if your primary interface (the C runtime) is specified in terms of char*s with no inherent character set... 17:51:48 -!- augur has changed nick to codjahandarie. 17:52:48 -!- pikhq_ has quit (Ping timeout: 241 seconds). 17:52:53 -!- pikhq has joined. 17:53:04 -!- codjahandarie has changed nick to augur. 17:58:58 -!- TOGoS has joined. 17:59:04 -!- TOGoS has left. 18:00:25 "You have the ultimate responsibility for moving your old e-mails to the new inbox." -- I don't know, somehow I find this very funnily said. The ultimate responsibility! 18:13:34 Possibly the most onerous task you will ever be asked to undertake :P 18:16:42 Vorpal: 9f0jer0g9jrtmreor09.onion 18:16:43 the distinct lack of numbers i cannot type in this Tor domain is entirely coincidental. 18:16:45 eh? 18:16:56 I don't have tor on this computer 18:16:57 what is it 18:19:45 Gregor: It got funnier. "Staff e-mails will be moved by IT Services in cooperation with the staff members, while students may ask for advice but move the e-mails themselves." See, students are assumed to be able to handle such a complicated thing, while us staff obviously will just mess it up. 18:20:05 -!- zzo38 has joined. 18:26:26 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds). 18:30:57 -!- Phantom_Hoover has joined. 18:35:08 -!- TeruFSX has quit (Ping timeout: 252 seconds). 18:39:19 Vorpal: Incidentally, I re-optimized that congress hall picture with some vertical lines (based on the walls) in place; now it's less wavy, but some seams are worse: http://users.ics.tkk.fi/htkallas/prague-congress-hall.jpg → http://users.ics.tkk.fi/htkallas/prague-congress-hall-2.jpg -- not sure if I can be bothered to try getting a both-okay image. 18:39:44 The wavy version also for some reason perceptually speaking seems to make the room larger. 18:46:07 -!- ais523 has quit (Remote host closed the connection). 18:48:31 -!- ralc has quit (Quit: Leaving). 18:53:01 -!- sebbu2 has quit (Read error: Connection reset by peer). 18:54:37 -!- sebbu has joined. 18:54:37 -!- sebbu has quit (Changing host). 18:54:37 -!- sebbu has joined. 19:02:52 -!- calamari has joined. 19:05:34 fizzie, cool. 19:06:49 *sigh* 19:07:00 There are no decent torrents for the 4th series of Futurama. 19:07:01 Phantom_Hoover: It was a sort of "so I woke up to walk here before 08am, I guess I should be doing something so that I won't fall asleep before the talk begins" situation. 19:08:32 http://torrentz.eu/d04ca09c3e18a77ea650708a708be7911edac5f6 19:08:47 'Complete'; WP lists at least 5 more episodes on the series. 19:14:50 -!- oerjan has joined. 19:15:47 -!- cheater_ has quit (Ping timeout: 248 seconds). 19:17:48 !!! 19:17:52 !h 19:18:00 hmmm, alright. 19:18:19 09:39:42 `dX doesn't evaluate X until it's on the LHS of an application 19:18:25 09:39:53 then it evaluates X, then the RHS of the application, then applies them to each other 19:18:38 incorrect, the RHS is evaluated first 19:19:40 elliott_: ^ 19:34:33 `sh lspci | grep -P 'graphic|video' 19:34:35 No output. 19:35:56 `sh lspci | grep VGA 19:35:58 No output. 19:36:10 `sh lspci 19:36:12 No output. 19:38:06 back 19:38:16 oerjan: oh really? 19:38:19 oerjan: that's /really/ bad 19:38:25 it completely breaks my model :( 19:38:28 `run lspci | grep -P 'graphic|video' 19:38:30 No output. 19:38:34 because functions handle frocing their arguments 19:38:35 forcing 19:38:41 `run which sh 19:38:42 oh hm wait 19:38:43 ​/bin/sh 19:38:46 actually i can fix that 19:39:30 elliott_: the main problem I see with this approach is that it's NOT a hybrid of Perl and Haskell. 19:39:34 oerjan: can i have expanation mark 19:39:38 ! 19:40:06 maybe you could if i had any idea what it was. 19:40:14 !haskell ``dd`.xi 19:40:19 erm 19:40:26 !unlambda ``dd`.xi 19:40:27 ​x 19:40:28 poor haskell 19:40:31 ugh, what 19:40:33 oh 19:40:35 right 19:40:40 `dd ~ i 19:40:41 No output. 19:41:58 elliott_: my ocaml model also made functions handle forcing their arguments 19:42:18 so it definitely can work 19:42:18 oerjan: i sure hope you are not with the stealing of my model bastard :/ 19:42:42 yeah, stealing it, inventing a time machine and going back to 2002 19:43:05 is yours a compiler though 19:43:10 or possibly 2001 19:43:25 in a very liberal sense, yes. 19:43:40 how liberal are we talking 19:44:13 it generates an ocaml program in which the unlambda functions are ocaml functions 19:44:20 ah 19:44:22 oerjan: also my model doesn't handle call/cc... yet 19:44:23 but it does so simply by composing parts 19:44:31 well 19:44:32 oh 19:44:35 my compiler is kind of like that too 19:44:37 THUNK(a, APPLY(&prim_out_x, &prim_i)) 19:44:37 THUNK(b, APPLY(&prim_d, &thk_a)) 19:44:37 THUNK(c, APPLY(&prim_i, &thk_b)) 19:44:37 THUNK(d, APPLY(&thk_c, &prim_i)) 19:44:41 but my idea is that 19:44:50 you could do analysis to find that d could not be possibly applied in some application 19:44:54 and so fold a bunch of thunks into one 19:45:03 mhm 19:45:21 !addinterp keys haskell putStrLn $ map toEnum ([33..64]++[91..96]++[123..126]) 19:45:22 ​Interpreter keys installed. 19:45:24 !keys 19:45:26 ​!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~ 19:46:59 CakeProphet: um the problem is none of the bots have a prefix elliott_ can type, except lambdabot whose @let definitions tend to get wiped out 19:47:33 wrong 19:47:33 ` 19:47:34 (a rather direct consequence of the fact the only command to remove @let definitions removes all of them) 19:47:35 No output. 19:47:37 `eb test 19:47:38 No output. 19:47:39 oh wait 19:47:41 that was the other way around 19:47:54 elliott_: oh you can type ` without problems? 19:47:59 one second 19:48:06 `help 19:48:07 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:48:45 `run echo 'echo '"'"'!"#$%^&* 0123456789'"'" >bin/k 19:48:46 No output. 19:48:47 `run chmod +x bin/k 19:48:49 No output. 19:48:49 `url bin/k 19:48:51 ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/k 19:48:57 `k 19:48:59 No output. 19:49:03 oh 19:49:08 `cat bin/k 19:49:09 ​echo '!"#$%^&* 0123456789' 19:49:11 can someone prepend a shebang to that 19:49:11 thx 19:49:25 sure. 19:49:41 without using perl 19:49:44 ...aw 19:49:54 but I don't know any other useful commands for that. 19:49:59 THAT'S NOT A REASONABLE RESTRICTION 19:50:38 -!- cheater_ has joined. 19:51:08 `run which echo 19:51:09 ​/bin/echo 19:51:17 `run perl -pie '"#!/bin/sh\n" . <>' /bin/k 19:51:19 No output. 19:51:32 `cat /bin/k 19:51:34 No output. 19:51:36 :) 19:51:46 CakeProphet: wtf, that was perl, we all saw it 19:51:48 CakeProphet: it's bin/k with no / 19:51:51 looks like it failed too 19:52:00 `run perl -pie '"#!/bin/sh\n" . <>' bin/k 19:52:02 No output. 19:52:06 `cat bin/k 19:52:08 ​echo '!"#$%^&* 0123456789' 19:52:10 lol 19:52:16 WRRRRRYYY 19:52:27 oh wait I remember 19:52:33 `run perl -pi -e '"#!/bin/sh\n" . <>' bin/k 19:52:35 ​echo '!"#$%^&* 0123456789' 19:52:55 for some reason you have to put the -e seperately with this one. 19:53:00 `url bin/k 19:53:02 ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/k 19:53:11 looks like you destroyed it. 19:53:14 rofl 19:53:15 `cat bin/k 19:53:15 nonsense. 19:53:17 No output. 19:53:27 `run echo '#!/bin/sh' >bin/k 19:53:29 No output. 19:53:39 `run echo 'echo '"'"'!"#$%^&* 0123456789'"'" >>bin/k 19:53:41 No output. 19:53:42 `run chmod +x bin/k 19:53:43 No output. 19:53:44 `k 19:53:46 ​!"#$%^&* 0123456789 19:53:49 ah I should have either taken off the -p or changed <> to $_ 19:53:54 excellent :3 19:54:05 !delinterp keys 19:54:06 ​Interpreter keys deleted. 19:54:31 :_( 19:54:34 `run echo '!"#$%^&* 0123456789' | sed 's,^,#!/usr/bin/perl\n,' 19:54:36 ​#!/usr/bin/perl \ !"#$%^&* 0123456789 19:55:01 `ls /bin/*unl* 19:55:03 No output. 19:55:20 lifthrasiir: no wildcards without `run 19:55:27 `run ls /bin/*unl* 19:55:29 No output. 19:55:34 or that. 19:55:39 lifthrasiir: you want egobot 19:55:43 also 19:55:44 "/bin" 19:55:47 you mean ./bin :P 19:56:02 elliott_: hackego has plenty in /bin too... 19:56:10 elliott_, no, i want to add `k, `sk (and so on) commands that can be used as an unlambda interpreter 19:56:20 !unlambda 19:56:20 ​./interps/unlambda/unlambda.bin: file /tmp/input.12483: parse error 19:56:27 wha. 19:56:39 lifthrasiir: ah :) 19:56:42 but `k is mine :( 19:57:07 `run mv bin/k bin/LIMEY 19:57:09 No output. 19:57:09 it's rather useless to start an unlambda program with anyhow 19:57:29 `echo `ls` 19:57:31 ​`ls` 19:57:36 elliott_: ... :) 19:57:42 lifthrasiir: use run 19:57:43 `run mv bin/LIMEY bin/k 19:57:44 No output. 19:57:47 ` is taken literally, so i think it's just fine 19:57:49 No output. 19:58:07 oerjan: obviously they have to work by calling each other, duh 19:58:08 ;D 19:58:53 | (“reprint character read”) only in Unlambda version 2 and greater 19:58:54 The | function takes an argument X. It returns the evaluation of `X.x, where x is the current character (the one read by the last application of @) or of `Xv if there is no current character (i.e. if @ has not yet been applied or if it has encountered an EOF). 19:58:58 this is a really ugly instruction imo 19:59:25 oerjan: can you write something that tests the corner-cases of d and its interaction with things like s >_> 19:59:26 `run (echo '#!/bin/sh'; echo "(echo '``'; cat) | interps/unlambda/unlambda.bin") > bin/'`' && chmod +x bin/'`' 19:59:28 No output. 19:59:29 without using c 19:59:41 lifthrasiir: interps/ is egobot. 19:59:42 not hackego 19:59:44 !show ucat 19:59:44 ​unlambda ```s`d`@|i`ci 19:59:45 ugh. 19:59:49 LIKE THAT? 19:59:53 lifthrasiir: you can use addinterp 19:59:56 oerjan: uses io 19:59:57 oerjan: erm 19:59:58 oerjan: rather 20:00:00 uses input 20:00:05 indeed 20:00:06 which i havent bothered to implement yet 20:03:07 oerjan: ok i will struggle on my own >_> 20:03:11 there is the famous ``r`cd`.*`cd hack, although that really just uses d in ways that are equivalent to i 20:03:14 -!- pikhq has quit (Ping timeout: 240 seconds). 20:03:16 -!- pikhq_ has joined. 20:03:31 uses c 20:03:39 sheesh 20:04:01 !​unlambda `s`d`.xv 20:04:14 !​unlambda ``s`d`.xvi 20:04:18 !​unlambda ```s`d`.xvii 20:04:22 what 20:04:30 EgoBot? 20:04:32 You have wrong character at the start 20:04:38 !echo hi 20:04:38 ​hi 20:04:39 oh 20:04:47 !​​unlambda `s`d`.xv 20:04:51 better? 20:04:53 Still wrong! 20:04:56 !unlambda ```s`kd`k.x.y 20:04:57 :( 20:05:03 fucking broken bots 20:05:08 !unlambda `s`d`.xv 20:05:14 right now? 20:05:22 Yes, but it still doesn't seem to work. 20:05:26 !unlambda ``s`d`.xvi 20:05:28 !unlambda ```s`d`.xvii 20:05:29 ​x 20:05:31 ok 20:05:34 good enough test program for me 20:05:35 oh wait 20:05:38 Now it works. 20:05:42 !unlambda ```s`d`.xv`.yvi 20:05:42 ​yx 20:05:51 !unlambda ```s`d`.xv`.yv`d`.zv 20:05:52 ​yx 20:05:52 !unlambda ```sd`k.x.y 20:05:53 ​y 20:05:56 !unlambda ```s`d`.xv`d`.yv`d`.zv 20:05:57 ​xy 20:06:01 there you go 20:06:08 oerjan: yours looks simpler than mine :D 20:06:16 you don't say 20:06:57 oh hm 20:07:10 !unlambda ````sd`k.x.yi 20:07:10 ​yx 20:08:01 yay, it outputs y for me 20:08:04 Could someone please output a quine in IRC? 20:08:06 oerjan: argh, do i have to manually convert again? 20:08:07 CakeProphet: no 20:08:37 man, fucking IRC programming, finnicky shit. 20:08:41 CakeProphet: my status line doesn't say "#irp" 20:09:09 oerjan: is your old program ok 20:09:12 or do i have to try that one too 20:09:14 hm 20:09:58 !unlambda ````sd.x.yi 20:09:58 ​xyy 20:10:15 !unlambda ```sd.x.y 20:10:16 ​xy 20:10:54 what old program? 20:15:39 ?????????????????????????????????????????????????????????????/ 20:15:48 > repeat '?' 20:15:49 "??????????????????????????????????????????????????????????????????????????... 20:16:50 what old program? 20:16:55 / ```sd`k.x.y 20:17:20 oh _that_ ancient crap 20:18:00 i'd imagine you'd want to try as many of them as possible 20:18:26 oerjan: i have to convert these by _hand_ you know :D 20:18:31 THUNK(a, APPLY(&prim_s, &prim_d)) 20:18:32 THUNK(b, APPLY(&prim_k, &prim_out_x)) 20:18:34 THUNK(c, APPLY(&thk_a, &thk_b)) 20:18:36 THUNK(d, APPLY(&thk_c, &prim_out_y)) 20:18:38 that's tangible work[EXCLAMATION MARK] 20:18:53 ...i see. i suggest writing a compiler to do it, or something. 20:20:08 oerjan: yeah yeah :D 20:20:19 elliott_: Why, that looks *suspiciously* like clambda.h stuff. 20:20:36 pikhq_: its not similar really, the thunks are pretty different 20:20:46 Oh? 20:20:56 http://forums.silverlight.net/forums/p/230502/562113.aspx As Windows 8 dawns, Silverlight developers begin to dwell -- if only for seconds -- on the possibility that their platform may be an abandoned pile of shit. 20:21:07 pikhq_: #define FORCE(x) (x)->code((x), 0) 20:21:07 #define APPLY(f, x) (f)->code((f), (x)) 20:21:15 pikhq_: basically its lazy evaluation where every function acts like the function it evaluates to 20:21:19 but if you pass a NULL argument 20:21:21 it just forces instead 20:21:26 it is actually a decent system imo... 20:21:32 albeit hard to understand 20:21:32 Oh, hey, a smarter design. 20:21:38 well um no 20:21:41 yours is for general lambdas 20:21:48 this is just for an unlambda compiler 20:21:53 Bah. 20:22:53 I still can't believe I actually did that shit... 20:22:59 X-D 20:23:13 What's worst is that it's not too revolting. 20:23:30 -!- muaddib1 has joined. 20:24:43 muaddib1: you appear to be missing your l and t 20:24:47 i've got spares, would you like them? 20:25:56 muaddib1: they're free. 20:26:15 ok 20:26:31 oerjan: http://esolangs.org/w/index.php?title=Talk:This%3DThat&curid=2951&diff=23195&oldid=18848 can you handle {{unsigned}} duties :D 20:26:33 muaddib1: here you go. 20:26:46 -!- muaddib1 has left. 20:26:53 an excellent transaction 20:27:29 erm i saw that and it annoyed me, but technically it _is_ signed, i think he may have used the wrong number of ~'s? 20:27:41 Vorpal: Incidentally, I re-optimized that congress hall picture with some vertical lines (based on the walls) in place; now it's less wavy, but some seams are worse: http://users.ics.tkk.fi/htkallas/prague-congress-hall.jpg → http://users.ics.tkk.fi/htkallas/prague-congress-hall-2.jpg -- not sure if I can be bothered to try getting a both-okay image. 20:27:43 nice 20:27:51 * oerjan just clicks the signing button himself... 20:28:04 I believe that by "incidentally" you meant "apropos of nothing" X-P 20:28:19 The wavy version also for some reason perceptually speaking seems to make the room larger. <-- indeed 20:29:06 oerjan: But that'll produce the wrong date/time >_> 20:29:20 what? how so? 20:29:27 oerjan: because you're signing it later 20:29:30 than the edit was 20:29:42 um i mean when i sign my own messages 20:29:47 oh 20:29:56 well it isn't signed _properly_ :( 20:39:37 lisp's semantics annoy me 20:56:46 -!- Sgeo has joined. 21:14:39 -!- wareya has quit (Read error: Connection reset by peer). 21:15:15 wtf that's a big comment thread http://www.reddit.com/r/AskReddit/comments/hpx98/what_pisses_you_off_but_really_shouldnt/ 21:15:23 -!- wareya has joined. 21:17:50 oerjan, which one? 21:17:59 Oh, right the whole thing. 21:18:16 ugh this thread 21:18:21 right from the first post 21:18:24 its like reddit circlejerk heaven 21:18:27 http://spritesmods.com/?art=avrcpm 21:18:41 curiously it doesn't have that many _upvotes_ 21:18:53 oerjan: hmm, well we know the counters are fudged 21:18:57 maybe there's a spambot 21:18:59 right at the bottom 21:19:00 naw 21:19:01 dunno 21:19:14 elliott_: only the up/down tallies, not the difference 21:19:23 oerjan: erm no 21:19:35 oerjan: you get posts that are like sixty/thirty which in reality only got like a dozen downvote 21:19:36 s 21:20:10 elliott_: um i've read reddit admins saying that while up and down are fudged, the _difference_ is accurate. 21:20:38 oerjan: hmm 22:07:15 -!- pikhq has joined. 22:08:17 -!- pikhq_ has quit (Ping timeout: 240 seconds). 22:18:21 -!- MigoMipo has quit (Remote host closed the connection). 22:36:22 -!- Patashu has joined. 22:36:52 -!- calamari has quit (Quit: Leaving). 22:40:24 -!- oerjan has quit (Quit: Good night). 22:42:32 -!- Vorpal has quit (Ping timeout: 255 seconds). 22:44:16 -!- augur has quit (Remote host closed the connection). 22:49:31 https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538 22:49:36 APT GUY STRIKES AGAIN 22:52:09 APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY 22:52:49 `addquote https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538 APT GUY STRIKES AGAIN APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY 22:52:50 ​434) https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538 APT GUY STRIKES AGAIN APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY 22:52:52 never have enough inanity 22:52:59 Phantom_Hoover: wait which one is apt guy again :D 22:53:07 The idio. 22:53:12 *idiot 22:53:14 which one is that 22:53:21 wait 22:53:25 none of these are apt guy 22:53:26 you scoundrel 22:53:27 Although he did appear to be reforming to the extent of at least learning Haskell. 22:53:30 lying scum :| 22:53:32 i mean 22:53:32 t 22:53:35 which one in the bug report 22:53:47 That was, in fact, a joke. 22:54:27 now 22:54:29 i gather this 22:54:30 but jokes 22:54:31 are also 22:54:32 known 22:54:32 as 22:54:33 LIES 22:54:35 FILTHY SCUMMY LIES 22:54:47 your niditism is at all all time low 22:55:01 What is niditism. 22:56:03 see topic 23:02:43 elliott_ is a major nidiot. 23:02:54 thx 23:02:56 u too 23:16:18 -!- augur has joined. 23:18:42 -!- elliott_ has quit (Ping timeout: 252 seconds). 23:29:40 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 23:31:02 -!- pikhq_ has joined. 23:33:52 -!- pikhq has quit (Ping timeout: 240 seconds).