00:00:02 evincar: your examples still prove that your language is completely ambiguous, because composition and application have the exact same syntax, so LOL HAVE FUN WITH THAT 00:00:10 zzo38: http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Category.html 00:00:13 f = { x, y => [x + y] }; f m = { y => [m + y] }; f m n = { => [m + n] }; 00:00:23 How is this problematic? 00:00:26 and indeed, there is an instance for Kleisli 00:00:28 which is just 00:00:35 newtype Kleisli m a b = Kleisli { runKleisli :: a -> m b } 00:00:40 well, an instance for (Monad m) => Kleisli m 00:01:55 evincar: Yes it is ambiguous it seem, to me, if you want to use higher order functions. 00:02:55 I just don't see a difference between composition and application, except that application implies that the resulting composition is reducible. 00:03:05 Lambda calculus does just fine with uniform syntax for them. 00:03:08 Yes I suppose it is correct (>=>) and return do form a monoid 00:03:09 I hope this gets resolved, soon. I have a béchamel to deal with, and this is distractingly fun 00:03:17 NihilistDandy: What, evincar? 00:03:26 yes :D 00:04:13 evincar: I'm not interested in talking about this further with you. At least four people have told you you're completely wrong, and one of them is credited in the Haskell Report. The burden of proof is on you to prove that conflating two completely different concepts doesn't make your language utterly ambiguous but I for one am not really interested in hearing it. 00:04:31 I suppose monqy might be credited in the Haskell Report too and I just don't know i 00:04:32 t 00:04:33 WHO KNOWS............ 00:05:22 I'd just like to know how ugly things will get when you have to (f . g . h) x 00:05:33 I just want to be proven wrong or right unequivocally. 00:06:26 evincar: You have been. You're just too stubborn and/or inexperienced to understand why/accept it. 00:06:46 Or insightful. 00:06:56 * NihilistDandy lol'd 00:07:07 I know, even I laughed at that one. 00:07:14 hi im back now 00:07:17 did stuff happen 00:07:20 Not really. 00:07:27 monqy: Are you credited in the Haskell Report? 00:07:31 I don't think so 00:07:34 Well, stuff happened in the Rube Goldberg Contraption sense. 00:07:39 elliott_: Well, that's settled 00:07:47 He doesn't THINK so 00:08:01 I'd think he'd know 00:08:03 which report should i look at 00:08:13 evincar: "or insightful" are you serious 00:08:16 im even more done than i was before 00:08:28 can't beat that two-punch of ego and ignorance 00:08:32 did bad happen 00:08:44 evincar: did you do bad things 00:09:04 elliott_: Well, I was joking that time. :P 00:09:37 monqy: Yes, tried to golf getting a rise out of elliott_. 00:09:41 Did it in two words. 00:09:44 monqy: evincar suggests that function application and function composition are the same 00:09:52 monqy: elliott_ politely disagrees 00:09:55 NihilistDandy: he knows 00:09:56 FSVO polite 00:09:59 monqy, I mean 00:10:01 That is the discussion. 00:10:06 NihilistDandy: And monqy was the first to disagree :P 00:10:12 Then me, then oerjan, then oklopol 00:10:16 Also me 00:10:18 Then I lost my patience 00:10:23 But I'm sort of late in the game 00:10:27 I had to leave before I lost my patience 00:10:37 evincar: so do you still really think they're the same? really? 00:10:48 monqy: he just wants to be PROVEN WRONG OR RIGHT CONCLUSIVELY 00:11:00 For the purposes of my language, there doesn't need to be a difference. 00:11:15 so there's no application; only composition? 00:11:17 And an example in lambda calculus would be appreciated. 00:11:28 monqy: no, [f g] just magically applies f to g and composes f with g at the same time. 00:11:35 elliott_: im confused 00:11:36 depending on which example evincar is trying to show possible at the time 00:11:36 Well, application is lazy. 00:11:56 evincar: what does this have to do with anything 00:11:58 which might get confusing for everyone else using their language as their IRC arguments over the impossibility of the language will be interrupted by evincar trying to do the other thing 00:12:18 which I guess is another reason not to use the language over its simple being impossible 00:12:33 We could all just switch to math for clarity's sake 00:12:35 -!- CakeProphet has quit (Ping timeout: 240 seconds). 00:12:46 evincar: do you have any examples in your language so I can get an idea? 00:12:53 evincar: or should I just logread 00:13:27 Logreading would be as helpful as not. I'm getting lazy. 00:13:36 ok 00:13:57 So if "getting lazy" is a synonym for "realising I'm wrong", does application in your language realise it's wrong 00:14:09 evincar: as an example for how things can get really really messy, consider multi-argument functions; do you have any examples with them, or would you like me to give you something in lambdacalculus for you translate? 00:16:01 evincar: i am not sure whether it can work in your language, but lambda calculus most emphatically does _not_ merge application and composition 00:16:25 Getting lazy is a synonym for watching a movie, actually. 00:16:34 I like how oerjan tries to use diplomatic statements to avoid getting into arguments 00:16:57 But essentially if you want a value, you give enough arguments to the function. 00:17:07 what 00:17:07 elliott_: but i really am not sure. i know it doesn't work if you use the same mental model as for haskell/LC, but that's not a proof. 00:17:07 If you want a function, you don't. 00:17:17 ... Is there any form of compostion in lambda calculus other than the obvious \f g x-> f (g x)? 00:17:33 AKA "Haskell's (.)" 00:17:37 evincar: we all know what partial application is 00:17:48 elliott_: so a question arises. what does the wii do with it's virtual console system 00:17:57 pikhq_: well there are of course versions for other argument numbers... 00:18:00 i know this couldn't be any more off topic though 00:18:08 oerjan: Well, yes. But you know what I mean. The general concept. 00:18:12 itidus20: Inaccurate emulation, presumably, perhaps with game-specific patches 00:18:21 Where you are just... Doing it as you would anywhere else. 00:18:22 oerjan: I guess it works in a concatenative language 00:18:26 FSVO composition, application 00:18:40 Apply f to x: x f; compose f with g: g f 00:18:41 BUT 00:18:46 That only works because "9" is used specially 00:18:51 9 is basically a function pushing 9 00:18:56 And that doesn't apply to evincar's language at all 00:19:04 Composition is done through partial application. If you have (f + g), you get a function taking x and y that returns ([f x] + [g y]). 00:20:19 so how about we all collectively stop trying to convince evincar he's wrong as that's impossible and talk about something interesting like............. 00:20:21 evincar: so in your notation, [] is application, and () is something else? 00:20:21 ... 00:20:22 like itidus20: ramble plz 00:21:06 monqy: [] is message-passing (application in the case of functions) and () is infix shorthand which is converted to message-passing internally. 00:21:23 I might swap those in the future, depending on what looks good. 00:21:30 But that's neither here nor there. 00:21:42 itidus20: im waiting 00:21:53 evincar: infix shorthand? 00:22:02 evincar: I also noticed that in your example, there's a bit of weirdness 00:22:03 Can I make a function h = ((f+g) x)? 00:22:10 @evincar: 00:22:11 Unknown command, try @list 00:22:25 O, OK, message passing. So, it doesn't actually have functions, I guess? Only messages? 00:22:26 so the SNES effectively does things at the rate of it's oscillator 00:22:27 monqy: It's just sugar providing some infix operators for convenience. 00:22:42 evincar: So, instance (Num a) => (a -> a) where f + g = \x y->(f x) + (g y) -- I think that's stupid. 00:22:49 evincar: the thing it returns has parentheses, so if you applied the same rule, wouldn't you get something like \abxy.([[f x] a] + [[g y] b]) 00:23:17 pikhq_: that's a good instance 00:23:17 evincar: repeat until dead 00:23:20 but that's not what he's saying at all 00:23:24 but um itidus20 itidus20 itidus20 00:23:27 > (sin + cos) 1 00:23:27 1.3817732906760363 00:23:27 itidus20: oklopol: have you met 00:23:52 i think so 00:23:55 elliott_: um wait it's not the same 00:23:55 evincar: I think you may need a more consistent notation if you want to make a lick of sense 00:24:00 so many id's staring with an o 00:24:33 oerjan: oh right... well w/e 00:24:45 im just ignoring evincar at this point because hes being even more incoherent than before 00:24:52 elliott_: He's saying it happens implicitly. 00:24:55 I think. 00:24:57 pikhq_: no 00:25:05 I can't tell for sure, because his notation makes negative sense. 00:25:05 he's saying that application is composition. 00:25:11 I should just let elliott_ talk for me and be wrong. 00:25:14 read the logs if you want to continue this, i suggest you don't 00:25:18 It's more entertaining than defending myself. 00:25:43 evincar: Um, application is no more composition than application is a cat. 00:25:52 You are talking nonsense, stop it. 00:26:07 pikhq_: YES THAT WILL WORK WE'VE ONLY BEEN ARGUING WITH HIM FOR LIKE AN HOUR 00:26:14 yelling at him to stop is definitely productive 00:26:35 It's too amusing when you argue. 00:26:47 Of course I'm going to keep at it. 00:26:57 smugness is a known cure for being completely wrong 00:27:10 And cancer 00:27:24 * NihilistDandy specializes in ambiguous addenda 00:27:26 Too bad. You're reading more into my tone than is there. 00:27:47 I would actually like to know if something I've thought up doesn't work. 00:28:06 But all I've gotten is noise, because we're not understanding each other. 00:28:20 evincar: could you please make a better notation? 00:28:36 evincar: When you say "Colorless green dreams sleep furiously", don't be surprised when people don't understand you. 00:28:41 Impotence mismatch 00:29:03 I'm chalking it up to the fact that all unfamiliar syntax is opaque. 00:29:05 evincar: Apply f to x. What is your result? 00:29:32 evincar: it's actually that it's inconsistent 00:29:36 NihilistDandy: Clearly a superposition of states. 00:29:38 Plain old math notation 00:29:46 NihilistDandy: That depends on the types of f and x. If f is a function, and its arity is 1, you get the result of applying f to x. If its arity is greater, you get another function, with x fixed in f. 00:29:58 evincar: No. It doesn't. Shut up 00:30:02 The answer is f(x) 00:30:03 If they're both values, you get the result of passing the message x to the value f. 00:30:19 hey guys 00:30:21 So... Functions aren't values? 00:30:22 Lame. 00:30:24 guess what won't make him shut up 00:30:28 TALKING TO HIM ABOUT IT 00:30:29 NihilistDandy: um that's the essential thing his language does. stop insulting. 00:30:43 his lamguage suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuucks 00:30:43 _-_ 00:31:03 the question is whether this breaks down with higher-order functions, but no one has yet given an example which _clearly_ breaks 00:31:03 They're as much values as they aren't. You can still write higher-order functions. 00:31:33 evincar: does this make sense to you 00:31:45 < oerjan> the question is whether this breaks down with higher-order functions, but no one has yet given an example 00:31:56 oerjan: I was coming to a point, LI5, but now I'm late, so I have to go. :P 00:32:04 ^ that. 00:32:16 evincar: how about writing a fixed-point combinator 00:32:16 i think you need more than one level deep functions 00:32:18 evincar: that's a fun one 00:32:56 the question is whether this breaks down with higher-order functions, but no one has yet given an example which _clearly_ breaks 00:32:59 my example did 00:33:01 -!- NihilistDandy has quit (Quit: bechamel). 00:33:05 g f = f 0 + f 9 00:33:18 [g f] is meant to be \... -> g (f ...), according to his compose definition 00:33:21 evincar: my suggestion is to look at [[foldr f] 0]. 00:33:24 but apparently [g f] is actually (f 0 + f 9) 00:33:31 despite the fact that [compose g f] is still \... -> g (f ...) 00:33:34 according to direct statements made by him 00:33:36 contradiction 00:33:41 he will of course not acknowledge this counterexample. 00:34:09 elliott_: no it did not. you are simply not approaching this with a mind of trying to understand what he means. 00:34:36 elliott_: I never established an equivalence between any of my notation and lambda notation. 00:34:40 you are approaching this with a mind of refusing any answer he gives that doesn't fit your exact prejudices. 00:34:40 I was, to start with 00:34:50 no, I'm not approaching it any more 00:35:07 I gave up when he started saying "CONCLUSIVELY PROVE OR DISPROVE IT" after I gave him a counterexample 00:35:12 unless _you_ can explain how the above works? 00:35:38 evincar: anyway, [[foldr f] 0], the question is whether f should be applied to 0 or not. 00:37:11 oerjan: Uh, foldr f z = z, no matter which way you cut it. 00:37:20 Or what syntax you put it in. 00:37:33 evincar: um no. 00:38:02 ...ok i give up. 00:38:15 lol 00:38:17 if you think _that_, there really is no common ground. 00:38:18 has evincar used foldr 00:38:27 evincar: do you perhaps mean foldr f z _ = z 00:38:33 or are you really that hilarious 00:39:00 next up on evincar: "what's the difference between x and (const x), my language has no need for that" 00:39:51 elliott_: Yes, alright, so I omitted the other argument. 00:40:29 evincar: even with the other argument, what you said didn't really make sense 00:40:40 evincar: the question is if your language allows it to work properly 00:40:57 evincar: not whether it should work properly 00:41:14 oerjan: did you give up 00:41:17 oerjan: he doesn't think _that_ 00:41:19 so there's common ground 00:41:25 so dont worry everything will be fine ;( 00:41:38 well i'm giving up anyhow. 00:41:58 i really want to know what evincar is thinking, how his language works. is this bad :( 00:42:04 i'm getting a really bad vibe from this. 00:42:32 let him implement it and then you can see. 00:42:48 you think I want to read the code of a man who thinks _these_ things? 00:43:00 oerjan: In answer to your question, [[foldr f] 0] is a function that can be applied to a list and yields what you'd expect from foldr. 00:43:52 evincar: could you describe how evaluation of that expression works? 00:44:40 monqy: foldr is a function. f is then fixed as the first argument of that function, yielding another function [foldr f]. 00:45:05 monqy: Then 0 is fixed as the first free argument of that function, yielding the final function corresponding to [foldr f 0]. 00:46:05 Whereupon further arguments are expected as a list. When those are supplied, the whole expression yields a value. 00:46:21 ok 00:46:32 is that sane i not know help 00:46:36 help 00:47:02 so this is normal application, right? where does your fancy composition stuff come in? 00:47:05 evincar: our gimmick 00:47:08 get yer hands off 00:48:24 evincar: now the twist: f happens to be a three argument function, not two. and the list is empty. 00:49:35 what does [[foldr f 0 empty-list] 0] do? and how does that compare to [foldr f 0 not-empty-list]? 00:50:35 does it become [foldr [f 0] 0 empty-list]? 00:51:12 oerjan: With an empty list, it ought to return 0 regardless. 00:51:23 With a non-empty list, it depends on how well foldr is written. 00:51:32 You might get a list of unary functions. 00:51:50 oh well. 00:51:57 it's okay oerjan 00:51:58 you tried 00:52:03 -!- pikhq_ has quit (*.net *.split). 00:52:07 -!- aloril has quit (*.net *.split). 00:52:11 -!- twice11 has quit (*.net *.split). 00:52:31 this seems somewhat unhygienic, in the scheme vs. CL macro sense. 00:52:34 -!- pikhq has joined. 00:52:45 monqy: and trying is half the battle. 00:53:57 evincar: "how well foldr is written"? If it behaves incorrectly, it's incorrect. 00:54:14 SOME FOLDRS ARE BETTER THAN OTHERS 00:54:36 I'm making reference to the presumably poorly written one I gave earlier. 00:54:36 two arguments bad. four arguments better! 00:54:38 oerjan: My hunch is that [compose f g] will not do what it claims to if f is higher-order 00:54:50 (if this language is indeed not _totally_ ambiguous) 00:54:56 i.e., it will intsead apply f to g. 00:55:04 (I'm not interested in hearing counterarguments to this, evincar) 00:55:12 playing df is more fun 00:55:23 elliott_: it's going to depend immensely on internal implementation. 00:55:25 oerjan: by the way your dorf died............. 00:55:28 but now your new dorf exists :DDD 00:55:33 i heard. 00:55:37 'oerjan II' Regmidor, Carpenter: "'oerjan II' Glovedpowers" 00:55:38 well the former. 00:55:41 -!- aloril has joined. 00:55:43 also you are a female........ 00:55:50 do i still exist 00:55:52 am i still female 00:55:54 and a proficient conversationalists 00:55:56 who said that 00:55:59 monqy: yes good old monqy still exists 00:56:00 oerjan: what 00:57:03 ok to get a better idea i'm now going to read logs (wish luck) 00:57:13 evincar: this _really_ gives me the same kind of vibe as unhygienic macros, where things get evaluated in the wrong place unless you're a master... 00:57:45 oerjan: It's really not that bad. Text is definitely not my best medium. 00:57:52 -!- twice11 has joined. 00:58:19 /msg lambdabot @messages 00:59:28 zzo38: :D 00:59:30 try PRIVMSG 00:59:54 elliott_: someone said "do i still exist" 01:00:03 does zzoclient respond to ctcp i want to know if i should version it 01:00:10 in an eerie, ghostly voice 01:00:19 was i 01:00:21 looking ghostly 01:00:26 oerjan: um really? 01:00:27 there it was again 01:00:27 oerjan: irl? 01:00:29 monqy: It does respond to VERSION although that can be turned off 01:00:36 elliott_: no, on the channel 01:00:44 oerjan: what? 01:00:51 < 1313456150 199160 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :do i still exist 01:00:52 now there is this strange *WHOOSH* sound... 01:00:55 oh 01:00:58 im a stupids 01:01:08 oerjan: also stop i have a stupid fear of ghosts :D 01:01:11 I think it responds even if the command is given inside of other messages 01:01:18 ah. also, BOO! 01:01:35 once i told a scientologist, before i realised they were a scientologists, that i had a fear of aliens (i don't have a fear of aliens any more) 01:01:51 then when i realised i was like SHIT THEY PROBABLY HAD ME MARKED AS AN EASY RECRUIT 01:01:58 I ALREADY HAVE THE LATENT FEAR OF XENU................. 01:02:12 cool story time with elliott 01:03:22 oklopol: OH MY GOD YOU ARE THE WORST FURNACE OPERATOR SHUT HTE FCUFCKL UP 01:03:25 elliott_: that's not so bad. now if you start being afraid of volcanoes and nuclear bombs... _that_ would be just irrational. 01:04:07 what did oklopol do 01:04:22 HE KEEPS CANCELLING THE ADAMANTINE WAFER JOB BECUASE HE NEDES REFINED COAL 01:04:24 GUESS WHAT IM FUCKING MAKING 01:04:26 REFINED COAL 01:04:28 SHUT THE FUCK UP STOP TELLING ME 01:04:29 JUST 01:04:30 GO 01:04:31 DRINK 01:04:32 OR SOMETHING 01:04:34 THATS ALL DORFS FO 01:04:35 SPODSSPDGJDFIGKJGLK 01:04:40 -!- cheater_ has joined. 01:05:35 ugaudhflogadgh 01:08:23 -!- cheater has quit (Ping timeout: 250 seconds). 01:08:55 !simplename 01:09:01 GAISIOOEAAYAIOLEI. 01:09:16 -!- sllide has quit (Read error: Connection reset by peer). 01:10:16 "Our fortunes rise and fall together." is such a great line 01:10:17 rolls off the tounge 01:10:25 it's straight out of a SERIOUS FANTASY MOVIE 01:10:46 (it is the last thing the dwarven ambassador says to you before they leave) 01:24:38 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:38 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:39 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:39 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:39 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:40 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:41 OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL 01:24:47 (that's not keyboardbash, his surname is really Agsalfikod) 01:25:09 agsalfikod 01:28:11 -!- zzo38 has quit (Remote host closed the connection). 01:30:06 cnacel is a luvvely dworf verb, ye ken 01:30:38 *dorf 01:31:07 im cnackers 01:31:08 im cnackered 01:31:31 great dorf king cnute 01:32:09 cnack, snapple and dorf 01:35:40 oerjan: http://ompldr.org/vOXgwYg hi do you likemy bedroom in progress 01:35:51 yours is probably one of the Æ/pi/capital theta arrangements seen above 01:36:13 those weird inverted floor titles are all engravings 01:36:16 a lot of them masterpieces 01:36:34 what i am saying is ha ha ha my bedroom rocks 01:38:11 your bedroom hurts my eyes 01:38:19 monqy: which part of it........... 01:38:24 is it the engravings or the non-engraved parts........ 01:38:26 the drwf fortes part.. 01:38:40 it is kind of an eyesore 01:38:50 the whole game I mean :( 01:38:55 do tilesets help help 01:39:10 or is it better after getting used to it 01:39:30 monqy: yeah it gets better 01:39:35 monqy: i mean you see that mess of , . ` '? 01:39:40 that all becomes the +s if you smooth the flaw 01:39:43 erm 01:39:43 that all becomes the +s if you smooth the floor 01:39:49 which im doing 01:39:52 the engravings make it uglier but you can make those hidden 01:40:02 is it multiplayer? i can't quite figure out exactly what you guys are doing with df from listening to it in here 01:40:12 itidus20: we're each doing a year of the fortress, then passing it on to the next person 01:40:14 well, two years now 01:40:19 ahh cool 01:40:21 monqy: basically, the "prettier" and pictographic your tileset gets, the harder it is to scan at a glance 01:40:38 monqy: with roguelikes, this is less of a problem, since you don't care much about things beyond a small area around you 01:40:45 but with DF, you're focussing on hundreds if not thousands of tiles at once 01:40:51 it's more of a surveying type situation 01:40:52 with roguelikes I tend to prefer ascii 01:41:06 and I understand the problem yes 01:41:46 http://ompldr.org/vOXgwZA 01:41:55 the tiles here are distinct enough that I can easily locate all the trees, or all the plants, by eye 01:42:02 but if it were graphical in any way, I'd see an awful lot less 01:42:14 monqy: If you want, you can go, say, before me next time 01:42:30 That should be like a week or a week and a half, so enough time to learn the game well enough 01:42:35 hm 01:42:39 i might try 01:43:09 The quickstart is really detailed 01:43:36 monqy: Also you get to construct a grand bedroom for yourself. 01:43:47 hm 01:43:49 PH started it, then I started making my bedroom, then Taneb massively one-upped me, so now I'm doing this. 01:43:54 i might just make a nice small one 01:44:03 I don't even know if you have a bedroom 01:44:09 We just stopped building them early on and nobody's complained yet 01:44:11 Everyone's really happy 01:44:16 You probably do I guess 01:44:19 Being one of the first dorfs 01:45:34 monqy: You could also just go for a year rather than two :-P 01:45:48 It's actually pretty hard to kill the fortress at this point 01:46:00 maybe if i like it and have unfinished business i will go for two 01:46:05 Digging into the river is the easiest way, followed by breaking into the adamantine vein containing the shaft to hell 01:46:10 monqy: Sure 01:46:17 monqy: I was more thinking as far as difficulty went 01:46:30 A year is, like, four consecutive hours of play or something 01:46:32 if i totally die in first year i will hand it off 01:46:33 I dunno exactly but 01:46:42 monqy: If you totally die, the fortress dies :P 01:46:49 But like I said, it's hard to kill the fort at this point 01:46:56 The traps are good at getting invaders 01:47:28 If you dug a few blocks towards the river in the huge underground dirt room and then did nothing the whole fortress would be flooded and everyone would drown, and if you broke the adamantine leading to hell then ... well, all hell would break lose and everyone would die 01:47:31 But apart from that we're pretty secure 01:47:49 how do i avoid these 01:48:31 monqy: They won't happen unless you make them -- OK we're out of meat. 01:48:41 Oh dear 01:48:43 We have one hundred drink 01:48:49 T-Pain to the rescue! 01:48:51 party 01:49:03 (Yes our brewer is called T-Pain.) 01:49:07 how do i know which vein is the bad one what if the dwarfs say they want adamantine 01:49:19 monqy: We have loads of adamantine stocks 01:49:34 So you don't need to, basically 01:49:41 good to know 01:50:19 Also, plan to get four minutes of acoustic guitar stuck in your head 01:50:30 The Dwarf Fortress soundtrack would have one track on it :P 01:51:07 :( 01:51:36 monqy: http://www.youtube.com/watch?v=-6FXeupOp04 :-P 01:51:57 I like it though, especially when there's a massive siege going on and the music is just going on like usual 01:53:31 Hmm, someone might rampage pretty soon, we're out of food and almost out of drink 01:53:41 Deary me 02:06:51 -!- pumpkin has changed nick to copumpkin. 02:08:39 Oh dear, oh dear, oh dear 02:10:50 idd it hapen 02:11:31 We're just out of things to brew 02:11:38 Fuck this, I'm saving it and coming back to it tomorrow 02:14:40 The Dreadful Dorf Drought Disaster 02:29:13 -!- sut-heb has joined. 02:34:32 sut-heb: hi 02:56:53 -!- ttm_ has quit (Ping timeout: 240 seconds). 03:00:10 -!- Guest85983 has joined. 03:00:29 Hello room 03:01:08 -!- Guest85983 has changed nick to Pianoo. 03:01:15 hello 03:01:35 Hmmm ... better than 123mya** 03:02:04 * oerjan waits for the footnote to that ** 03:02:17 Esoteric programming? Sounds interesting but what is it? 03:02:17 Pianoo: hi, this is a channel about esoteric programming languages 03:02:22 see http://esolangs.org/wiki/ for more information :P 03:02:42 Pianoo: if you've heard of brainfuck, INTERCAL, or Befunge... 03:02:53 Of course I RTFM before questioning 03:03:18 I *will* read ... 03:03:32 "Of course I RTFM" he said, the first person in history to do so... 03:03:35 It's nothing to do with the other kind of esoteric, apart from obscurity :) 03:04:32 ^ul ((Ye olde esoteric underload)!a(:^)*S):^ 03:04:32 ((Ye olde esoteric underload)!a(:^)*S):^ 03:04:40 The server gave me a "guest123_my_a**" nick because mine was taken 03:04:57 You can say ass :P 03:05:04 It's day time for me, I censor my crude language :-D 03:05:16 you might find this channel a bit profane for your tastes then :P 03:05:17 -!- coppro has quit (Quit: Reconnecting). 03:05:21 -!- coppro has joined. 03:05:23 Okayyy 03:05:26 oerjan: unfortunately underload is not widely-known outside the community :( 03:05:29 well censoring brainfuck is a bannable offense. maybe. 03:06:08 a sad state of affairs. but writing things in brainfuck on the fly is a bit annoying in comparison. 03:07:22 I have spent the last 48 hours crying my eyes out reading fresh version of bash.org, then I wondered why not make some of my own, I do have a stockpile of dumb questions :) 03:07:25 INTERCAL is also hard, and demonstrating befunge on one line seems like missing the point... 03:07:41 *French* 03:07:43 we have quotes too! 03:07:45 `quote 03:07:47 461) The wickedest man of all. Surpassed only in wickedness by the wicked witches of the west and east. you talking about me again? Yes. k 03:08:04 ok maybe not very portable ones. 03:08:06 oerjan: unefunge :) 03:08:12 `quote 03:08:13 `quote 03:08:14 66) What else is there to vim besides editing commands? 03:08:16 558) Phantom_Hoover: it is a hate so pure and... pumpkin seeds? 03:08:23 fungot: say hi 03:08:24 elliott_: well not a joke out of context 03:08:42 a have this feeling those pumpkin seeds come up often 03:08:45 *i have 03:08:48 You keep a log o them? 03:08:49 someone get its source, i can't type carets 03:09:03 `pastequotes 03:09:05 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27391 03:09:10 Pianoo: that's all of them 03:09:27 elliott_: well unefunge is also a little missing the point 03:09:50 oerjan: [caret]source to scare Pianoo? :D 03:10:07 quote 596......:( 03:10:07 ^source 03:10:07 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 03:10:19 but of course 03:10:30 Pianoo: that's fungot's source code 03:10:31 Hilarious!!!! Love it 03:10:31 elliott_: ( une-racine 1 1 1 1 03:10:32 `quote 596 03:10:34 596) elliott_: I don't see a difference between a function taking a function as an argument, and some composition of those functions. 03:10:40 written in befunge :) 03:11:16 conclusion: evincar considers all linear functions equivalent 03:11:29 Pianoo: (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98, that is) 03:11:30 elliott_: line 17 is where is segfaults with that too... 03:12:36 Gosh it is a little far from me, I haven't set a finger on an editor for the last 3 years 03:12:51 fungot: you have segfaults? say it isn't so! 03:12:51 oerjan: i mean, regular irc banter is note fitting in the quote 03:15:13 It's fun to chat from where I am :) have you ever watch a martial arts movie about kung fu teaching (like "karate kid" the last one) like in china and wonder "man I want to go there" 03:15:24 Pianoo: don't worry, nobody else understands fungot either 03:15:24 elliott_: you choose 80% of the platforms i'm going to sleep. first lecture day of 2006 tomorrow, wouldn't want to do 03:15:41 Well that's where I am and being in a chat room seems surreal 03:15:50 oh, you are in china? maybe don't stop the censorship then :D 03:15:57 how many of these elliott quotes did elliott himself add 03:16:10 Long live VPN !!! 03:16:12 monqy: not most 03:16:44 Elliott_ : you reassure me :) 03:18:01 the only martial arts movie i can remember is kung fu panda, and i can't even remember that 03:18:42 ill tell you whats a good martial arts movie 03:18:44 `quote video game 03:18:46 362) I've only watched bad movies about video game. I enjoyed every second of it. \ 536) Game theory is not a perfect tool for analyzing video games. Nash failed to create a "video game theory" 03:18:54 was going for the first one 03:19:08 the snake and crane arts of shaolin 03:19:08 monqy: did you just learn how to pluralise recently 03:19:39 elliott_: I recall when I was writing I couldn't find a good way to pluralise it so I just went with that 03:19:39 monqy : Well that's one of the movies which motivated me to quit everything and come here 03:19:41 Pianoo: also if you value on-topicness you may find this channel lacking :P 03:19:58 ok, Pianoo may be the first person to move to china because of kung fu panda 03:20:07 i watched a lot of jackie chan growing up 03:20:24 one day.......... i had like a dream where i could have sworn jackie chan thanked his fans 03:20:40 like he did some telepathic shit 03:20:44 elliott_: not so sure... 03:21:04 hya! hya! hya! ... 03:21:34 itidus20: and the tree in the face 03:21:52 -!- MDude has changed nick to MSleep. 03:21:54 yeah.. mixing owen wilson with jackie chan is gold as they say 03:22:20 if i have the correct movie reference 03:22:23 they say that? 03:22:57 Google Wudang mountains or Purple Heaven Palace and you'll see where I live 03:23:16 It's amazing!! 03:24:05 elliott_: about ontopicness, I don't care really, only wanted to find funny dudes to chat with 03:24:07 living in a maze, ok 03:24:13 you live in a palace? :P 03:24:22 Pianoo: basically i know that jackie chan and jet li are the best actors... bruce lee might be the best actual martial artist and well... he was very very cool in enter the dragon 03:24:50 Not actually in it, but in a school attending, we practice in it though 03:25:21 oerjan: a joke with amazing? Seriously? 03:25:23 the ancient chinese had great imaginations 03:25:30 oerjan is the master of puns around here 03:25:37 modern western civilization is weighed down in mathematics 03:25:48 sorry guys :P 03:26:06 itidus20: wat 03:26:08 i dont really think that 03:26:40 It's actually crazy what they can do with chi, needles and some awfully disgusting herbs brew 03:26:46 the last 10 - 15 years of my life have been an existential crisis though 03:27:29 itidus20: and how old you are? If you don't mind asking a lady her age? 03:27:43 im a man 29 03:27:52 Pianoo: it's amazing how much you can do with the placebo effect too 03:27:57 what coppro said 03:28:04 what elliott_ said 03:28:08 what monqy said 03:28:12 hlep 03:28:13 Well I made a "half cat" program in Constantinople that checks every other bit and exits if it's a 1. 03:28:23 Oh wait I'm already asleep. 03:28:23 yeah.. my chat voice is very androgynous 03:28:25 what monqy said 03:28:31 I'll talk about it in the morning. 03:28:38 not your fault 03:28:39 what coppro said 03:28:52 is my chat voice masculine 03:28:56 Pianoo: life is about fun really.. in the end 03:29:00 or perhaps feminine 03:29:00 it is.. 03:29:09 monqy: arnie 03:29:18 quickly.. get to de choppa! 03:29:18 what's that help 03:29:24 help 03:29:28 That's what convinced western to completely ignore energy and see the body as a machine composed of different parts that you fix independently, but that's a long story 03:29:34 itidus20: you spent that long in an existensial crisis? 03:29:36 arnold schwarzenegger 03:29:42 coppro im still there 03:29:49 itidus20: what. 03:29:58 itidus20 is special 03:29:58 Pianoo: the model of chi has no scientific evidence to support it that I know of 03:30:02 are you aware of any? 03:30:07 itidus20: if you had an existence problem, how can you be having an existential crisis? 03:30:20 Pianoo: western medicine would be very interested in any, I'm sure, as it is a science-based practice 03:30:31 its like... i am the observer.. and all others are observed 03:30:39 it's a distressing dichotomy 03:30:44 itidus20: oh. That's called life. 03:30:53 but then... two people can observe a third other 03:31:07 Kirlian photography was an example, but the scientists were not too happy so they unruled it 03:31:38 humor and alcohol seem to help 03:31:46 more humor.. occasional sips of alcohol 03:31:49 Kirlian photography is neat, but there is no scientific evidence that it's useful for medical purposes 03:31:49 -!- iamcal has quit (Ping timeout: 250 seconds). 03:31:53 i know that an addiction is of no value 03:32:07 itidus20: oh. That's called love. 03:32:11 Pianoo: http://upload.wikimedia.org/wikipedia/commons/5/51/Kirl66_g.png in this image, you can see two coins under kirlian photography 03:32:15 ahhh :) 03:32:18 Pianoo: do coins have auras too? 03:32:57 I know my coins have a mind of their own 03:33:00 I never have enough change 03:33:00 I think, for my parts that you could "give" some to objects for a bit 03:33:40 Pianoo: inanimate objects always have such "auras" under kirlian photography 03:34:03 so it hardly proves that chi exists, unless literally everything always has the same chi 03:34:05 But I don't know much, I just say it's interesting and I don't want to block myself with the never-ending argument "scientific evidence" 03:34:09 coppro: i have had a difficult childhood, as we all have.. and so i have trouble now to just have fun and stuff 03:34:33 itidus20: :( 03:34:41 I think we don't know much and we could explore more. 03:35:00 itidus20: you are in .au? 03:35:03 Pianoo: Well, maybe it's interesting, but you can hardly blame Western medicine for refusing to practice something with /no shown efficacy/ when there are plenty of methods that can be shown to work 03:35:09 timbuctoo :)) 03:35:19 im being overcompensationgly ridiculous 03:35:20 Many of our socalled incurable diseases are cured in China 03:35:24 :) 03:35:31 no not a place called timbuctoo 03:35:32 sigh 03:35:34 Using rhino horn and elephant ivory right? 03:35:41 but there is such a place here 03:35:55 elliott_: But they don't want share much 03:36:05 want to share ... 03:36:15 i love sharing 03:36:45 so my brother got this new internet 03:36:55 so i have the rest of the month to burn up all the downloads this month 03:37:01 since we'll be changing over 03:37:17 .au internet is "fun" isn't it 03:37:18 im fixing my torrent share ratio >:) 03:37:27 yes :( 03:37:36 slightly better over here 03:37:37 itidus20: rule number one: It doesn't matter what others think of you if you are happy with what you're doing. 03:37:37 what's fun help 03:37:50 itidus20: rule number two: you are allowed one exception to rule number one. 03:37:53 monqy: fun is sarcasm :) 03:37:58 fun = not fun 03:38:03 HLEP 03:38:16 so not fun is not not fun 03:38:17 is fun 03:38:21 help helph e,hlp 03:38:24 its like saying.... 03:38:32 What is it monqy? 03:38:35 shit is delicious 03:38:41 rather dogshit is delicious 03:38:49 I've never tried it 03:38:50 what 03:38:54 just to emphasise how not delicious it is 03:39:01 have you? 03:39:14 or maybe i misunderstood what elliott said 03:39:42 .au internet is fun to get regular tech support and limited downloads, limited bandwidth, 03:39:44 in reality, I wasn't asking whether you were using "fun" sarcastically, but what's fun about it 03:39:46 Ok I'm out, later ;) 03:39:55 -!- Pianoo has left. 03:40:00 why now 03:40:02 rather, to need regular tech support 03:40:17 au internet sounds bad 03:40:19 because we're a giant country with very few people.. and our network sucks 03:40:31 isn't NBN meant to fix that 03:40:38 and also, why do I even know about the NBN 03:40:40 how the frig 03:40:43 yeah 03:40:45 hehhehe 03:40:54 i dunno 03:41:12 i must have wikipedia-surfed to it sometime 03:41:22 i seem to recall their plan looking sane though 03:41:30 monqy: normally, fun means like games, movies, parties, sexy girls 03:41:35 jokes 03:41:41 oh 03:41:45 thanks for the clarification 03:41:48 what if youre gay 03:41:52 whta athen :???? 03:41:55 or female and not gay 03:42:00 what if i'm secretly female 03:42:25 also what if I hate parties, movies, games, fun 03:42:27 if you're gay, fun means playing leapfrog around the loungeroom naked 03:42:31 oh 03:42:34 oh 03:42:34 what 03:42:45 or female and not gay 03:42:49 why did i not think of that before "gay" 03:43:12 whats female help 03:43:18 monqy: then you're normal if you hate those things 03:43:23 fun is uhhh 03:43:37 monqy: i don't know your native language. i could translate it. 03:43:44 english, i believe 03:43:52 cool 03:43:56 :D 03:44:03 do you speak english too 03:44:22 i'm pretty much over the conlang thing 03:44:30 so yeah 03:44:42 < coppro> itidus20: rule number one: It doesn't matter what others think of you if you are happy with what you're doing. 03:44:59 In reference to our earlier discussion. ;) 03:45:07 hi evincar 03:45:15 evincar: but that can elicit feelings of disconnection and discommunication if you don't care what others think too much 03:45:34 Balance is key, as usual. 03:45:40 itidus20: Well then you start to be unhappy and should start paying attention to others 03:46:09 itidus20: but the important thing is that you do what you want and not what others say you should do, and you know it's the right thing to do 03:46:11 evincar: you can make bad languages all day, but also i can tell you they're bad 03:46:14 if that's what you're talking about 03:46:51 it is morally wrong to make bad languages 03:47:08 coppro: what if what you're doing is murdering people 03:47:13 re rule one 03:47:22 elliott_: well you'll go to jail 03:47:25 and then you won't be happy 03:47:37 coppro: no 03:47:38 balance restored 03:47:43 coppro: you just have to be good enough to not get caught 03:47:47 and by rule one, you're doing great 03:47:50 hmm 03:47:56 -!- iamcal has joined. 03:47:59 when i was young, all i wanted was space 03:48:05 well... i got it eventually 03:48:07 and here i am 03:48:11 hi 03:48:13 with everything i wanted 03:48:17 space 03:48:19 elliott_: that works too 03:48:26 itidus20: well! 03:48:28 all the free time in the world 03:48:29 and... 03:48:35 coppro: you actually believe that? 03:48:45 elliott_: no 03:48:46 murder is ok if you're good at it 03:48:47 and i end up worrying about my existence, about where my mind is 03:48:55 about the dichotomy of self and other 03:49:07 about how many dimensions i exist in 03:49:16 itidus20: depends on which string theory you subscribe to 03:49:17 as i erad somewhere.. the subconcious fear i am only a machine 03:49:24 etc 03:49:39 so.. what use is endless free time if that is how i use it hahahahahahha 03:49:47 hahahahaha 03:50:13 itidus20: do you at least have good dreams? like that one with the ghostly looks 03:50:25 that was a good dream 03:50:58 itidus20: also, does it really matter? Live your life to the fullest - if you truly have endless free time, get involved in philanthropy or politics or something - have some fun, make babies, and look forward. Ce que sera, sera; whatever comes afterward will come no matter what. 03:51:16 well no need for getting too personal here.. i will reserve some aspects of personality.. i know that is what holds #esoteric together is not overrevealing 03:51:28 I'd never be able to stand children 03:51:40 sometimes i regret that i don't have a wine cooler 03:52:42 thanks 03:52:56 http://www.youtube.com/watch?v=rK0De210TBQ 03:53:14 I'd be able to stand my own children. 03:53:18 Carrying on the line and that. 03:53:30 But other people's kids I have no stake in and therefore care not for. 03:54:11 the fun part isn't the actual babies anyway 03:54:27 birth control doesn't exist 03:55:35 elliott_: What, from an ecological standpoint? 03:55:43 For once I'd be inclined to agree. 03:55:47 Food = population. 03:55:49 what 03:55:51 elliott_: it damn well better 03:56:03 im just going to pretend evincar didnt say anything 03:56:08 An increase in food production is matched by an increase in population. 03:56:17 It's ecology 101 03:56:37 as we all know humans are completely bound by their instinct 03:56:39 therefore rape pillage murder 03:56:39 coppro: the "plan" was to spend my freetime on education. 03:56:44 but 03:56:54 No, but birth control merely changes where babies are born. 03:57:07 i didn't fully think it out 03:57:26 evincar: what 03:58:05 People are made of stuff. 03:58:09 Said stuff is derived from food. 03:58:29 egg salad is people too 03:58:33 More food equals more people, regardless of birth control. 03:58:52 People mate. 03:59:01 That's one of those things we do, as mammals. 03:59:03 people, mate. 03:59:24 Mammals, mate. 03:59:35 Actually, come to think of it... 03:59:37 Marsupials, mate. 03:59:52 evincar: yes and also animals in the wild do all sorts of horrible things like constantly rape and murder each other and obviously since humans cannot control their instincts we do this just as much as any animal with our population size 04:00:00 if you lock up one murderer...... another random individual turns into a murderer 04:00:02 food = murder 04:00:07 murder control is impossible 04:00:09 give me my phd 04:00:17 evincar's actually quite right 04:00:38 I don't see how rape and murder are horrible in and of themselves. 04:00:47 im dead 04:00:49 you killed me 04:00:54 HAPY, EVINCAR ????? 04:01:01 evincar: areyou serious 04:02:36 Well, rape causes suffering, and getting murdered isn't high on most people's priorities. 04:02:54 They're wrong if you assume suffering is wrong. 04:02:59 ................ 04:03:01 you're an idiot 04:03:10 and xchat's ignore syntax is needlessly convoluted. 04:03:15 is it ok to assume suffering is wrong 04:03:15 But most crimes boil down to theft. 04:03:28 monqy: i dont see how assuming suffering is wrong is horrible in and of itself 04:03:30 Rape being a variety of theft of happiness, and murder being theft of life. 04:03:44 And if you're not attached to those things in the first place, you don't care. 04:04:13 ok 04:04:23 So essentially all crime is a big misunderstanding taking place between two people who are in the game up to their eyeballs, trying desperately to own things and enjoy the little time they have. 04:04:34 Because people are too intelligent for their own good, realising that they're finite. 04:04:43 So they just sort of ignore it. 04:05:02 sorry but you kind of 04:05:03 lost me 04:05:05 i have to admit the best laughter is the one you can't help 04:05:24 this is very relevant 04:05:26 im no joking 04:05:28 serious 100% 04:05:38 Keep your head down, think you can own things, think you're separate from anything. 04:05:55 Those are your basic goals in life. 04:06:44 I uh 04:06:46 don't get it 04:06:52 these aren't my goals 04:06:55 unless I missed something 04:07:07 maybe you're like 04:07:10 a weirdo or something??? 04:07:14 with wierd life goles???? 04:07:16 I generalised too fast. 04:07:35 story of this entire conversation 04:07:38 just stop talking its embarrassing 04:08:47 It could be embarrassing not to understand what others find intuitively obvious, but it's much easier to try to embarrass and dismiss them. 04:08:57 Fun games. 04:09:12 what. 04:09:15 are you calling elliott_ childish 04:09:24 or did I misinterpret you again 04:09:31 I seem to have a tendency to do that 04:10:00 is there even any "misinterpretation" when someone is making statements that sound grand but are just nonsense 04:10:13 I'm going to try interpreting it real carefully now 04:10:51 Nah, I'm just taking jabs because I'm frustrated that people don't seem to think the way I do. 04:11:02 So if anyone's acting childish, it's me. 04:11:09 ok 04:11:16 I don't mind being disagreed with. 04:11:31 What I mind is when someone dismisses something rather than trying to understand it. 04:11:40 yes most people do not oversimplify things they have no idea of in an attempt to sound like they've made deep statements 04:11:50 or maybe they do but that doesn't mean they should 04:11:55 i should mention that yahoo chat was bad for me. 04:12:02 should you 04:12:08 yes 04:12:12 I'm not trying to be deep. 04:12:15 it certainly brought me no good 04:12:25 The conversation just took a turn toward those topics and I offered some conversation material. 04:12:30 lotta snakes in the grass there elliott 04:12:59 and who dismissed what 04:13:04 and how did you infer this 04:13:04 evincar: i tried to understand what you said 04:13:10 then i realised that it was bullshit 04:13:14 sorry if this was not clear enough 04:13:41 I tried to understand but failed to see the connections between a few things, noted such, and got totally lost 04:14:10 Bullshit is when you're trying to seem knowledgeable about something you know you're not. 04:14:21 I don't think that's the case here. 04:14:39 so you do think you're knowledgeable about the subject? 04:14:40 that 04:14:41 seems like 04:14:42 I was just in brief rant mode. 04:14:42 the exact case here 04:14:50 like that is one hundred percent what you are doing 04:14:50 worst definition of bullshit by the way 04:15:22 Okay, we can cut through this with a simple question. 04:15:34 elliott_, do you think Zen is bullshit as a whole? 04:15:54 I've never understood zen 04:16:08 I don't even know what it is 04:16:16 none of this has anything to do with zen 04:16:26 but good derailing, i'm out, gonna code some shiro 04:16:28 it has to do with bullshit 04:16:45 No, but if I can characterise your thinking along those lines, then I can determine what you're going to call bullshit no matter what. 04:16:55 Saving myself a lot of trouble. 04:16:55 this might be amusing 04:17:02 this might be quite amusing 04:17:20 I'll participate, if you can briefly describe zen 04:17:38 That isn't the point... 04:17:40 evincar: so which reply makes you stop talking about this and thus saving yourself the trouble?? 04:19:39 Eh, that one. If the room doesn't want to talk about crime, ethics, ecology, Zen, and babies, so be it. 04:20:06 how about programming languages? I like those. 04:20:38 Maybe I should leave. The last time I talked about programming languages in here I got into a different shouting match. 04:20:47 Well, it didn't escalate to shouting per se. 04:22:21 no you were just wrong and got upset when we pointed this out 04:22:24 there is a difference 04:23:30 Not really. I could've been wrong, and you got upset when I didn't immediately believe you when you made the claim. 04:24:08 Of all the people in here, I'm not exactly best known for getting upset. 04:24:43 am i best known for getting upset 04:25:02 monqy: If you want. We could have a ranking. 04:25:51 I don't think I'd be very well known at all for getting upset 04:26:29 Wouldn't that be a good thing? 04:26:35 sure 04:28:24 so lets talk about shiro............. 04:28:47 is it good 04:28:54 yes 04:30:18 Shiro as in shiro(i), Japanese for white? 04:30:57 shiro as in eliots funge 04:31:03 interpreter 04:31:03 thing 04:32:33 "This looks a touch contrived, what with 04:32:34 (x < -10) && (x > -10) 04:32:34 being one of nature's less controversial values." 04:37:13 -!- pingveno has quit (Ping timeout: 252 seconds). 04:39:11 -!- pingveno has joined. 04:39:21 elliott_: Funny, Google still finds that even though it's not in the current revision of the question. 04:39:53 Hooray for caching, I guess. 04:42:31 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 04:49:37 Failed to load interface for `GHC.Prim': 04:49:38 It is a member of the hidden package `ghc-prim'. 04:49:38 Perhaps you need to add `ghc-prim' to the build-depends in your .cabal file. 04:49:40 monqy: help its bullying me 04:53:58 elliott_: Perhaps you need to add `ghc-prim' to the build-depends in your .cabal file. 04:54:05 just a hunch, there. 04:54:11 oerjan: THAT WOULD BE ADMITTING THAT IM USING UNSAFECOERCE 04:54:19 * elliott_ beats himself ritually 04:54:31 is unsafeCoerce in ghc-prim? 04:54:43 @hoogle unsafeCoerce 04:54:43 Unsafe.Coerce unsafeCoerce :: a -> b 04:55:19 oh hm 04:55:50 well maybe not 04:55:53 but GHC.Prim is 04:55:55 I need Any 04:56:13 ah 04:56:36 (basically my current fingerprint system does casts that are always safe, but needs Data.Dynamic because you can't type it) 04:56:46 (I'm trying to OPTOMIZE(tm) that) 04:57:01 actually you can break the safety I think, but only by breaking an invariant of the Fingerprint type... 04:57:08 (if fpName a == fpName b, then a must === b) 04:57:29 (can't compare "anExistentiallyQuantifiedVar -> IO ()" or similar...) 04:59:10 sounds spooky 05:00:39 monqy: better than my previous model 05:00:46 :( 05:01:24 "•Casting between two types that have the same runtime representation. One case is when the two types differ only in "phantom" type parameters, for example Ptr Int to Ptr Float, or [Int] to [Float] when the list is known to be empty. Also, a newtype of a type T has the same representation at runtime as T." 05:01:46 Universal truism: Bad Lip Reading's version of a song is always better than the original. 05:01:48 wasn't that phantom type what someone ( CakeProphet? ) was asking about? 05:02:10 oerjan: yes 05:02:29 well it's an officially permitted use, anyhow 05:02:38 Gregor: they did more? :DDD 05:03:15 ok this Morning Dew song is awesome 05:04:13 i never even know the originals 05:04:43 i could buy this as the original if not for the lyrics 05:05:34 The fact that they're nonsense, that is :P 05:05:38 Not the matching 05:05:41 yeah 05:06:02 they're good lyrics though, apart from being nonsense 05:06:22 ayo girl you should try them chicken fingers instead of that pizza 05:09:56 wait, that was /three songs together/? 05:10:01 :DDDDDDDDDDddddddd 05:10:47 "GHC's primitive types and operations. Use GHC.Exts from the base package instead of importing this module directly." ... and then Any is not mentioned in that one... 05:11:09 elliott_: They made it flow so brilliantly, I know :P 05:11:46 i assumed it was just a feat. feat. feat. original 05:11:51 oerjan: lol 05:12:04 oh 05:12:05 that works 05:12:05 yay 05:12:23 oh it does? 05:13:26 yes 05:13:44 oerjan: haddock doesn't always get it right. especially for "internal" modules that might be partly built-in 05:13:46 IME 05:15:17 oh GHC.Exts has a weird export list, it mentions module GHC.Prim but _also_ lists several of the functions from there 05:17:45 OK Russian Unicorn is amazing 05:21:42 elliott_: That one's probably my favorite right now. 05:22:11 "Yeah, uh, my favourite song now is called 'Russian Unicorn'". --Michael Buble, http://www.youtube.com/watch?v=yp37h0yY4j4&NR=1 05:22:15 I am not kidding :P 05:22:53 Then he starts singing it terribly... this is surreal X-D 05:23:33 LOLOLOL 05:23:42 How he sings "WE COULD SHOOT A RUSSIAN UNICORN" 05:23:44 It's so great. 05:23:46 I eagerly await his cover :P 05:24:01 Which will then be bad-lip-read into another song, ad infinitum 05:24:14 That would be ... pretty amazing. 05:27:40 -!- GreaseMonkey has joined. 05:33:14 "Now why in the world did you treat me / As if I didn't understand trigonometry and Tai Chi / Inverse cosine, see?" <-- I dearly hope these guys get a fat paycheck from the music industry 05:33:40 elliott_: Which is that from? 05:34:10 Gregor: Black Umbrella 05:34:22 I'm just watching all the ones I haven't seen, i.e. all but three :P 05:35:05 This is the funniest Snoop Dogg voice ever 05:36:16 Goodness, I think this makes American pop music justifiable. 05:36:52 Barely; it's got to make up for great crimes against music, after all. 05:37:03 elliott_, 05:37:26 Sgeo: Seen 05:37:40 Reading now 05:42:20 Let's buy two big industrial windmills. 05:44:40 I wonder if Michael Bubl is the only original artist to make a response ... 05:48:45 Miley Cyrus' Official Response to Black Umbrella - YouTube 05:48:48 LIKELY 05:49:46 gregor: can you write an annoyingly catchy christmas tune? 05:49:55 `quote beautiful summer 05:49:57 549) beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 05:49:58 s/summer/christmas/ 05:51:28 -!- zzo38 has joined. 05:51:58 best haiku, or best haiku 05:52:02 綺麗夏・ファクファクファーク・ファークファク 05:52:05 Now in Japanese. 05:53:13 i want the music, no lyrics 05:53:20 "Factor factor far far clock clean clock summer-factor" ? 05:53:32 oerjan: good haiku 05:53:37 (wat?) 05:53:45 Google Translate fucked it up pretty badly. 05:53:53 :D 05:54:16 Factor factor far / far clock clean clock summer fac / tor 05:54:18 For, frankly, obvious reasons: as far as I know, "fuck" in the pejorative sense only exists as a somewhat obscure loan word. 05:54:58 oh, WTF 05:55:03 This new fingerprint model is slower 05:55:04 :-( 05:57:44 quintopia: ... why? :P 05:58:16 because it's christmas :D 05:58:25 christmas in july in august 05:58:29 Gregor: for a game 05:58:49 i decided to christmas theme 05:59:16 i know you know how to arrange notes before and behinf each other 05:59:26 so i ask :P 06:00:37 i'm dreaming of rudolph the red-nosed reindeer roasting on a one horse open sleigh 06:00:46 If it's for a game, don't you just want a classic Christmas song, not something new? 06:01:20 you europeans probably relate to sleighs and reindeers a bit better 06:01:24 nah dog. 06:01:25 no snow where i live 06:01:31 yes, reindeer are tasty 06:01:47 just 100s of miles of grass 06:02:00 Here's the latest thing I wrote. It's pretty Christmassy (lol no): http://codu.org/tmp/wol8-2011-08-16.ogg 06:02:04 yes 06:02:20 Nisstyre: wat 06:02:35 Nisstyre may be a secret norwegian 06:02:40 oh dear 06:02:53 lol my phone is like WTF IS AN OGG????? derp... 06:03:05 I suppose I could MP3 it D-8 06:03:35 just pm me the link and ill click when im on a proper compy 06:03:42 otoh he may just be named after a game character 06:03:43 maybe 06:04:53 Gregor: .wav 06:04:57 .wav > .mp3 06:05:08 FOR ALL POSSIBLE USES 06:05:08 elliott_: Uhh, I could make an MP3 directly :P 06:05:13 Oh 06:05:16 I read -> instead of > :P 06:05:24 FLAC 06:05:28 i agree 06:05:30 flac 06:05:36 Your phone does FLAC but not Vorbis? 06:05:38 quintopia: Yeah, like your phone can FLAC. 06:05:41 :P 06:05:43 it cant 06:05:47 FLAC your phone. 06:05:50 but flac is definitely best 06:05:53 my pc can flac with winamp 06:05:56 FLAC you for lying and FLAC your phone for not supporting FLAC. 06:06:13 actually there may be a vlc clone in the market 06:06:15 * quintopia checks 06:06:20 merry christmas / flac flac flac flac flac flac flac / flac flac flac flac fluke 06:06:27 ... it's an Android ... that doesn't support OGG ... ??? 06:06:49 I like to FLAC] 06:07:28 i download FLACs of songs which i want that extra clarity 06:07:57 okay i am downloading an app that plays all lossless formats including flac 06:08:16 That will not help you play the OGG :P 06:08:18 I download FLAC whenever possible, even though I know I probably won't hear the difference. 06:08:22 more like ALAC 06:08:32 well maybe it does support ogg but the browser flipped out and like crashed or something when i clicked your link so wtf? 06:08:44 quintopia: Yeah, Android totes supports OGG :P 06:08:45 Converting to a different lossy format in the future is handy for portable devices with picky requirements, and hard drive space is cheap and plentiful. 06:08:51 WELL 06:09:00 pikhq: Tell that to my full hard disks >_< 06:09:01 TELL MY BROWSER THAT 06:09:35 I mean, ~/audio/ has 15 days of audio in it and is only 100G... 06:09:37 yep it just crashes on that link 06:10:08 pikhq: Fifteen days is not a large music collection 06:10:15 elliott_: Sadly. 06:10:18 Well, I guess it is 06:10:21 Five hundred albums or so 06:10:25 "But that's not much these days" :-P 06:10:37 Yeah, it's "only" a handful of discographies. 06:10:48 How many bands have a hundred albums 06:10:54 a guy on american pickers claimed he had 550,000 albums 06:10:55 You need five 06:10:57 on vinyl 06:11:00 in one room 06:11:07 he was probably pretty close 06:11:11 quintopia: It... could work 06:11:15 I mean, vinyl doesn't take much space to store 06:11:17 i only have 27gb of music 06:11:25 there was definitely no room to walk 06:11:37 Well, my incomplete Uematsu collection has 39 albums in it... 06:11:40 very boring choices too 06:11:45 $ du -hs ~/Music/all 06:11:46 3.5G /home/gregor/Music/all 06:12:12 That's... Pathetic. 06:12:25 3.5 = it's like you're not even trying 06:12:27 or as gregor prefers 06:12:30 pathetique 06:12:30 There are few things I hate more than idly listening to music. 06:12:39 It is impossible to listen to music while doing other things 06:12:43 I made up a reason why my D&D character left the book where it is when escaping from slavery, actually a few reasons. 06:12:48 yeah that 27gb doesn't get used actually 06:12:48 I've got more than that from Queen, I mean jeeze. 06:12:58 pikhq: Well, Gregor's in a better position than you then :-D 06:13:04 elliott_: this is true sort of 06:13:13 elliott_: ? 06:13:27 pikhq: It was a hee-LARIOUS comment on the average quality of Queen 06:13:55 -!- Kouta has joined. 06:13:55 -!- Kouta has changed nick to asiekierka. 06:13:56 hi 06:13:58 my music choices are really bad.............. 06:13:59 hi 06:13:59 queen is okay, okay? 06:13:59 elliott_: -_-' 06:14:04 so i found a bug in my interpreter 06:14:06 fixed that 06:14:08 (Default didn't work) 06:14:14 now i can run a linear feedback shift register 06:14:25 hurray! 06:14:33 is your language interesting yet 06:14:34 i try to focus on discographies though 06:14:36 im gonna go code some 06:14:56 is it a good language I haven't loooked much at it at all 06:15:11 *[http://www.complex-systems.com/pdf/19-3-5.pdf Paper describing BitBitJump], Complex Systems Journal 2011, Vol 19, N3, pp. 263-285 06:15:13 ummm, that's the Wolfram journal 06:15:18 elliott_ not really 06:15:19 that ais is meant to be published in eventually 06:15:22 it's the same as ever 06:15:28 output of LFSR: 4936=:5;7?><8124936=:5;7?><8124936=:5;7?><8124936=:5;7?><8124936=:5;7?><8124936=:5;7?><812 06:15:32 oh my god what 06:15:34 "Oleg Mazonka" 06:15:46 mazonka good name 06:15:49 monqy: that's User:Oleg 06:15:57 help i feel conflicting things about this :( 06:15:58 hq9+b oleg 06:16:17 mazonka would probably mean mywife in polish 06:16:22 >:D 06:16:30 polish: boring langauge for bad people 06:16:41 http://esolangs.org/wiki/HQ9_B "good language" 06:17:02 elliott_ i hear dit's the hrdest language 06:17:10 heard it's* hardest* 06:17:21 if by hard you mean bad and also for bad people then yet 06:17:22 yes 06:17:30 why are you so flamey 06:17:31 all the tame 06:17:31 time* 06:17:38 lol 06:17:39 elliott_ is avery angrey person 06:17:45 im bear 06:17:56 roar --a bear 06:18:11 ok --monqy 06:18:18 asiekierka: http://64pixels.org/binodu2.zip this is a good implementation 06:18:29 this is not a good implementation 06:18:32 have you looked at Parser.java 06:18:34 it's a complete hack 06:18:39 404 - Not Found 06:18:39 lol 06:18:42 are you going to click tha tlink 06:18:44 [2] “Subleq.” (Nov 24, 2010) http://esolangs.org/wiki/Subleq. 06:18:46 elliott_ oh. 06:18:46 huh. 06:18:49 my server admin is an idiot 06:18:51 wow guys we're in a published journal((((( 06:18:52 oops 06:18:56 those were meant to be explaanamaotion wmarks 06:19:03 and i can't interfere because he pays for it 06:19:54 ok elliott_ 06:19:56 link fixed 06:19:58 i hope 06:19:59 brb checking 06:20:02 help 06:20:07 it works...but is it good.... 06:20:07 whats a link 06:20:08 help 06:20:08 yep 06:20:09 help 06:20:11 help 06:20:12 herp 06:20:12 derp 06:20:14 i fear the quality may have 06:20:14 hel 06:20:15 http://64pixels.org/binodu2.zip 06:20:15 droped 06:20:16 p 06:20:19 monqy i think so too 06:20:21 help 06:20:28 :( 06:20:33 * elliott_ has quit (Excess Flood) 06:20:33 (help) 06:20:40 excess flood 06:20:41 help 06:20:50 i sense elliott_ may be in need of some assistance. 06:20:55 oerjan: help :( 06:20:55 [debug] activates Debug Mode 1 (sane enough for most people) or, if repeated, Debug Mode 2 (why would anyone use it is beyond me). 06:21:07 asiekierka: help 06:21:09 help 06:21:11 help 06:21:13 the details are a little hard to discern, though. 06:21:13 help 06:21:17 help i'm being trolled by HELP 06:21:19 help 06:21:20 helop 06:21:25 helop 06:21:25 oerjan: help 06:21:33 elliott_: help 06:21:37 help 06:21:39 monqy: help 06:21:41 i will take your adivce and 06:21:42 look at 06:21:45 parsere>JAVA 06:21:46 monqy: help 06:21:51 elliott_: help help 06:21:54 help 06:22:00 creeper: ssssSSSSSSsssssss 06:22:01 *BOOM* 06:22:05 no 06:22:12 not at all 06:22:16 nope 06:22:41 so how does this 06:22:43 java thing 06:22:44 work 06:23:02 java -jar Binodu.jar 06:23:05 for example 06:23:12 java -jar Binodu.jar elliott_s_awesome_app.txt 06:23:23 elliott_ made an awseme apP.txt????? 06:23:24 help 06:23:24 slander 06:23:25 help 06:23:26 libel 06:23:26 help 06:23:27 help 06:23:32 hellp 06:23:34 help 06:23:41 GreaseMonkey: help us help you help us all 06:23:48 nO DONT PING THE MONster, 06:23:48 so since this month is all about help burning up download gb's help 06:23:55 sorry 06:23:57 'lo uhh 06:24:00 help 06:24:01 help 06:24:05 wait shit you actually implemented it? 06:24:08 help 06:24:16 yes 06:24:31 -!- ChanServ has set channel mode: +q *!*@95.149.229.26. 06:24:31 i am going to now look at a file that isn't parser.java 06:24:35 which do you recomende 06:24:41 hmm 06:24:44 Interpreter.java 06:25:28 -!- ChanServ has set channel mode: -q *!*@95.149.229.26. 06:25:40 welcome back 06:25:44 help 06:25:47 welcome help 06:25:51 herp 06:25:53 herpu 06:25:56 with what do you rquire essistence 06:26:04 i need help with helping 06:26:07 to help monqy 06:26:08 help 06:26:10 help 06:26:39 it's been so long since i've done anything in java 06:27:59 is it bad that i don't like java 06:28:13 have you seen the comedy videos made about java? 06:28:21 are they good 06:28:25 let f be the id map and let g be (\x y . x x y). then [[[g f] x] y] = [[g x] y] = [[x ]] 06:28:27 :-) 06:28:27 fuck 06:29:00 monqy java is horrible 06:29:01 oklopol: what 06:29:05 clearly oklopol has deciphered evincar's semantics 06:29:07 but i didnt feel like learning python yet 06:29:08 or haskell 06:29:17 monqy: heres one: http://www.youtube.com/watch?v=gLDFQ_IhnDc 06:29:19 oklopol: no you said (\ 06:29:23 oklopol: he DIDNT DEFINE A MAPPING TO LAMBDA NOTATIN 06:29:35 oh actually i have seen that 06:29:35 somehow 06:29:56 let f be the id map and let g be (\x y . x (x y)). then [[[g f] x] y] = ((g x) y) = (x (x y)), since [g f] is composition, but [[[g f] x] y] = (x y) since [g f] is application 06:30:09 if no one really gave an example 06:30:25 monqy: theres a new one too 06:30:30 now let y = 0 and let x be the successor function, say 06:31:06 oklopol: you cant use lambda notation you have to use his notation 06:31:06 -!- jix has quit (Read error: Connection reset by peer). 06:31:37 i can ask which of these two cases happens and go from there though 06:31:41 oklopol: compose = {f, g => [f g]} apparently 06:31:48 yes but I mean your "let g be" is not ok 06:31:58 it will ironically turn out that his notation is entirely consistent, but there is no way to express (\x y . x (x y)) in it 06:32:15 possible 06:32:38 but really i think he just hasn't thought about this much 06:33:28 oklopol: g = {x, y => [x [x y]]} you're welcome 06:33:42 yeah but now the q is 06:33:52 does the inconsistency in that remove the inconsistency of my example? 06:33:58 almost certainly :) 06:34:04 because [f x] isn't (f x) because it's like 06:34:11 if f and x are functions and also if arity and .... 06:34:37 oerjan will probably ban all of us soon enough 06:34:46 my guess is [[g f] x] is [f [f x]] for a start 06:35:31 oklopol: i mean you saw that fold example 06:35:33 yeah that's the second one 06:35:37 higher order functions can just break if your arities are out of wack 06:35:47 because lol this language is completely terrible and bad in every way 06:35:56 elliott_: i didn't see a concrete example, your f 0 + f 9 breaks because of types 06:36:10 his language is obviously dynamically typed, but: 06:36:18 oklopol: http://codu.org/logs/log/_esoteric/2011-08-16#003321oerjan onwards 06:36:18 then again i sorta skipped over everything 06:36:30 00:51:12: oerjan: With an empty list, it ought to return 0 regardless. 06:36:30 00:51:23: With a non-empty list, it depends on how well foldr is written. 06:36:30 00:51:32: You might get a list of unary functions. 06:36:30 00:51:50: oh well. 06:36:58 i _suspect_ lambdas are opaque until they have got all arguments 06:37:58 at which point they are tentatively evaluated, and if something is missing arguments, a closure is made for the whole thing accepting those missing arguments 06:38:11 or something similar to that 06:39:13 no counterexample there 06:40:52 anyway i don't know what his objects are and what [] actually does, i just got the impression no one gave him a simple example of two functions whose composition is not equal to the partial application of one to the other, which later generations would definitely blame us for. 06:41:41 monqy: this one is new and actually pretty awesome http://www.youtube.com/watch?v=5U1_KW6ww7Y 06:42:51 -!- pikhq_ has joined. 06:43:43 -!- pikhq has quit (Ping timeout: 252 seconds). 06:47:17 oerjan: That's roughly how it works. 06:48:49 so you get 2 in my example? 06:52:08 -!- Taneb has joined. 06:52:23 Morning!] 06:52:41 oklopol: So in your example, g = (\x y . x (x y)), which translates to { x, y => x [x y] }. 06:53:19 oklopol: [[[g f] x] y] == g f x y == f [f x] y 06:53:45 -!- augur has quit (Ping timeout: 250 seconds). 06:54:36 == [f x] y == x y 06:55:51 oh ive seen this java one 06:55:53 it's funny 06:55:56 However, [[[f g] x] y] == [[g x] y] == x [x y]. 06:56:17 In other words, [f g] and [g f] aren't (necessarily) equal. 07:00:31 " In other words, [f g] and [g f] aren't (necessarily) equal." <<< eh? well anyway, how would you say "compose g and f, then apply the result to x, and the result of that to y"? 07:01:09 is that not [[[g f] x] y] as well? 07:02:35 erm 07:02:41 no i mean 07:02:47 that's what you did just now 07:02:50 but how do you express 07:03:01 apply g to f, apply the result to x, and apply the result of that to y 07:03:16 no wait fuck 07:03:33 i'm being a fucking retard here, let me start over :D 07:03:37 No problem. 07:03:39 what you did was 07:04:14 apply apply apply 07:04:34 y(x(f g))? 07:04:53 so the correct question indeed is "how would you say "compose g and f, then apply the result to x, and the result of that to y"?" 07:05:24 the result of that should be x [x y] 07:06:06 "[[[f g] x] y] == [[g x] y] == x [x y]" is a coincidence, you're doing them in the wrong order 07:06:31 (that's what confused me, that was a confusing thing to do) 07:06:47 The result of [g f] where g = { x, y => x [x y] }; f = { x => x } is { y => f [f y] } 07:07:00 Why is that confusing? If f is the identity function, [f g] is the same as [g]. 07:07:12 no, it's the same as g. 07:07:15 so how do you compose g and f? 07:07:29 elliott_: Same thing. 07:07:36 g == [g]. 07:07:39 evincar: what if g takes no arguments 07:07:49 or do you not have that 07:07:53 and then i guess all values are pure? 07:07:56 evincar: it's confusing because [f g] had nothing to do with anything, " However, [[[f g] x] y] == [[g x] y] == x [x y]." could just as well have been " However, in soviet russia, [f g] = [g f]" 07:07:58 nice, where's your io monad 07:08:00 Unfortunately you have to explicitly pass no arguments. 07:08:04 hahaha 07:08:21 Taneb 07:08:25 i fixed a bug in the interpreter 07:08:26 now Default works 07:08:29 the LFSR works, too! 07:08:44 evincar: so how do you express "compose g and f, then apply the result to x, and the result of that to y", or is that impossible? 07:09:16 where "compose g and f" means produce a function that first applies f, then g 07:10:10 this reminds me of a time where this guy made up a pretend language that was in his fantasy world and then roleplayed as someone from his fantasy world who used the language and then tried to talk to me about the language 07:10:29 `addquote this reminds me of a time where this guy made up a pretend language that was in his fantasy world and then roleplayed as someone from his fantasy world who used the language and then tried to talk to me about the language 07:10:30 That happens quite often here. 07:10:33 597) this reminds me of a time where this guy made up a pretend language that was in his fantasy world and then roleplayed as someone from his fantasy world who used the language and then tried to talk to me about the language 07:10:33 that should produce x [x y], which [[[f g] x] y] also produces by accident, since i chose the simplest f i could think 07:10:36 *of 07:11:11 okay now i get it 07:11:20 what was funny about monqy's 07:11:35 too subtle 07:11:37 naturally, he didn't know a lick of programming language design, the whole thing was an inconsistent mess, etc. etc. 07:11:41 -!- Pianoo has joined. 07:11:50 monqy: oh wait i thought you meant natural language 07:12:03 evincar: could you please answer or tell my you won't, i should get to work 07:12:04 I think he made one of those up too??? 07:12:11 yeah way less funny if it was a pl 07:12:11 -!- augur has joined. 07:12:11 no but like 07:12:18 mi name isa obasio 07:12:19 do we have any dual linguists and programming linguists in the audience? 07:12:21 oklopol: I will, just a moment. 07:12:22 oajsd oiawje comprehendo monqy oasijd? 07:12:25 PatashuWarg: yes. 07:12:30 Yup 07:12:35 elliott_: oh yeah he did that a lot 07:12:46 elliott_: thanks for digging up those precious memories 07:13:01 you should get better friends 07:13:13 he's not my friend (anymore) 07:13:17 私 為 一 思 that 是 stupid. 07:14:02 does anyone know if you can base an mmap off another mmap... 07:14:03 like 07:14:05 I want to mmap a file 07:14:10 then make a copy of that mmap and modify that 07:14:10 then make a copy of that mmap and modify that 07:16:04 -!- Pianoo has quit (Remote host closed the connection). 07:16:07 -!- Phantom_Hoover has joined. 07:16:54 it's raining and raining and i want to go out, please be a fast :( 07:17:01 oklopol: If f=\x.(x x), g=\xy.x(x y), shouldn't (g f) be \y.f(f y)? 07:17:17 Is the combinator combo xxI equivalent to x? 07:17:19 Because that's what my language has. 07:17:30 if () is application, then yes 07:17:36 if it's composition, then no 07:17:49 I suppose in Forth you could do some kind of composition, too: : COMPOSE 2 0 NONAME-CONST-DOES> >R EXECUTE R> EXECUTE ; although then you have to deal with memory management yourself (assume there is a word NONAME-CONST-DOES> although it is not standard in any system I know of) 07:17:50 whats the difference 07:17:59 -!- oerjan has quit (Quit: leaving). 07:18:07 so i'm asking you how to express composition 07:18:11 so we return to the question "this looks like application why are you calling it composition do you even know what function compision is?" 07:18:18 Taneb: i don't think so 07:18:23 I think I've asked for composition examples as well 07:18:27 fruitless 07:18:33 monqy: but now we have proof 07:18:59 And the composition of that f and that g would be what? What's expected? 07:19:18 well apparently [f g] is \x -> f g x if g needs one argument and f is a function that evincar thinks should work like that. 07:19:55 evincar: it's the lambda \x y -> (f x) ((f x) y) obviously 07:20:30 which is not equivalent to \y . f (f y) in all cases 07:20:58 what I got out of evincar's thing about arity is that he's reinventing currying (but shoddily), not that there's a bunch of special behaviour, but then again, I missed a whole lot, probably including the really insane parts 07:21:22 elliott_: I do not believe that a generic copy-on-write mapping of just random pages in your process is a thing you can do, at least with the mmap call. 07:21:24 the whole thing about "fixing" arguments or whatever it was 07:21:36 I still don't get the (f + g) example though 07:21:40 it's like you're always stuck in second gear. 07:21:41 that stuff was weird 07:21:44 i assume he doesn't know what function composition is, calls application composition, and has forks and partial application. 07:21:55 itidus20: who me what's that 07:21:55 that would make all this consistent afaict 07:21:57 when it hasn't been your day, your week, your month.. or even your year 07:22:02 fizzie: Well, I'm up for any call. 07:22:08 anyway off to work, correct me if i'm wrong -> 07:22:10 but.. i'll be there for you 07:23:28 -!- NihilistDandy has joined. 07:23:29 I know of no way to COW pages from userspace. 07:23:39 srsly? :( 07:23:42 This seems like a major deficiency. 07:23:57 Quite honestly, the kernel should expose that and hook it to memcpy. 07:24:04 Well, libc should hook it to memcpy. 07:24:14 because like 07:24:20 I'm trying to write an efficient BytePusher VM in Haskell 07:24:26 and I want it to be pretty 07:24:28 = pure updates 07:24:49 I want to start by carving out a huge area from a file, zero-padding it (this requires copying the file in to a zero mmap, right? no way to do it with mmap? sigh) 07:24:59 It seems like such a *simple* thing to stick in a system call, too. 07:25:04 And then I want to do updates by COW + write + done 07:25:15 And let the GC take care of the minimal overhead of unmapping the old page right after 07:26:02 Presumably this would be trivial in @. 07:26:10 obvs 07:26:26 hmm 07:26:29 can you turn a block of memory into an fd 07:26:32 because that would let you dot hsi :) 07:26:35 what if 07:26:37 WHAT IF 07:26:40 I opened /proc/self/mem or something like that 07:26:46 and mmaped from the right offset 07:26:51 WHAT IF THAT... 07:27:01 Oh, alright. Now we get to the interesting bits. [g [f ?]] (using a placeholder argument) does the composition. 07:27:04 I was wrong to conflate them. 07:27:05 elliott_: ... Oh jesus. 07:27:17 evincar: APPLAUSE 07:27:20 mmap yo mmap 07:27:21 monqy: appplause time 07:27:22 You could write it in Haskell if you want, now there will be one in Haskell. What graphics library would you use? (I, however, do not want to write *all* programs in Haskell; there is C and various programming language for different purposes) 07:27:26 elliott_: not so fast, elliott_ 07:27:39 zzo38: Probably SDL 07:27:46 I don't think everything should be written in Haskell, that's reserved for @lang 07:27:50 Does SDL work with Haskell? 07:27:55 Yes, there's an excellent binding 07:28:03 ...but I do like writing programs nobody thinks would be fast/elegant in Haskell to prove them wrong :-) 07:28:26 Fast *and* elegant, or fast *or* elegant? 07:28:51 former 07:28:57 evincar: and how does that ? work? If you consider there being an invisible function in your example, where does it start/end, and how does it know what to do with the placeholder? 07:29:23 evincar: for an example, consider as well, simply, [f ?], or perhaps [h [g [f ?]]] 07:29:33 I wrote a program in Haskell but I might have done a bad job because I am not very good at Haskell, so I don't know. 07:30:08 Dum de dum, cleaning out space on my hard drive so I can install VS2010 07:30:12 (how does it all get filled up I swear) 07:30:20 Why do you torture yourself? 07:30:33 monqy: It's implemented by binding each ? to the argument replaced by the expression containing the ?. 07:30:34 vs2010 what why 07:30:41 evincar: yes I know 07:30:45 Need to do it for class so nyah 07:30:57 PatashuWarg: The question remains. 07:31:19 It literally has to be in the form of a VS2010 project or I can't submit any lab/assignment work 07:31:25 My fate is sealed 07:32:05 evincar: if you consider it as sugar for putting an actual function in there, when desugaring, where do you put the actual function? 07:32:15 Most of my programs I still like to use CWEB for writing it, although a kind of macro preprocessor for LLVM would also be good way to write it. 07:32:30 PatashuWarg: Have you considered the many preferable alternatives, such as becoming a hobo? 07:32:33 Are we still talking about this? 07:32:47 monqy: I'm not sure I know what you mean. The "?" is actually part of the source, just so we're clear. 07:33:00 evincar: I know; typing example 07:33:02 found yet another parser bug 07:33:03 fixing 07:33:13 evincar: you want \x.g(fx) but how do you get that instead of g(\x.fx) 07:34:07 evincar: (in [g [f ?]]) 07:35:00 evincar: most usually in languages with this sort of mechanism there's some sort of explicit thing to handle this problem 07:35:17 evincar: or it's limited 07:35:24 evincar: (or both) 07:35:33 elliott_: help 07:35:48 monqy: friends dot com 07:35:49 there we go 07:35:51 monqy: help 07:35:54 Can it be made, a "Rules" monad, doing some of the things this is trying to do? --> https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language 07:36:28 It's easier to do low-level arithmetic optimizations if Int is an abstract type rather than an isomorphic ADT (I do not understand this exactly but it is what someone told me, so I put it in here) 07:36:30 elliott_: friends dot com was unhelpful 07:36:32 zzo38: this makes no real sense at all 07:36:34 "dangelo" sounds like a name for a dessert. 07:36:44 monqy, try askjeeves.com 07:36:58 other than... if you do "data Int = IntZero | IntOne | IntTwo | ..." then it'll be awkward and slow... duh 07:37:13 http://www.ask.com/web?q=help&search=&qsrc=0&o=10181&l=dir help 07:37:27 man 07:37:34 i remember when askjeeves would give you actual answers 07:37:38 that was pretty cool 07:37:50 elliott_: I know "data Int = IntZero | IntOne | IntTwo | ..." is awkward and slow but I just typed what someone told me to type, since they do not have an account there so I typed it for them 07:39:01 working on 99 bottles of beer 07:39:10 ok 07:39:23 http://www.stdfriends.com/ < ??? 07:39:24 cheater: Maybe it does, but it is named after Stephen D'Angelo but I wanted to remove the apostrophe so that it is different name, so I did do so. 07:39:57 monqy: g takes two arguments, so \x.g(fx) is the same as [g [f ?]], because (fx) is substituted as the first argument of g. 07:40:17 monqy: I feel like that isn't the best example. 07:40:22 A woman I was seeing told me she was a Taurus, but I think she was really more of an ellipsoid. 07:40:24 evincar: what 07:41:03 evincar: what if g doesn't take two arguments, because I hope you know it doesn't have to 07:41:27 evincar: also I don't see how your thing works 07:42:16 evincar: "f takes one argument, so g(\x.fx) is the same as [g [f ?]], because (x) is substituted as the argument of f" 07:42:43 wow 07:42:44 Exception in thread "main" java.lang.NullPointerException 07:43:24 wow a null pinter exception in java WOWS 07:43:44 I never believed it possible 07:43:47 ok it's not a bug in my code 07:43:51 Just like when the impossible happens in GHC 07:44:01 right! i've got the app to print digits 99-00 done 07:44:12 App... 07:44:14 Yes. 07:44:31 Do you get a null pinter exception when you've finished your beer? 07:46:39 Object oriented bottles of beer on the wall 07:47:04 One bottle of beer... Take one down and pass it around, OutOfRangeException 07:48:10 8-bit bottles 07:48:16 Zero bottles of beer on the wall, zero bottles of beer 07:48:21 Oh sorry, I think I have used unsigned 07:48:21 99 bottles of beer on the wall. Take one down, ... java.awt.datatransfer.UnsupportedFlavorException 07:48:25 255 bottles of beer on the wall 07:48:56 1+i bottles of beer on the wall... Take i down and pass it around, 1 bottle of beer on the wall 07:49:48 IMAGINARY BEER 07:50:40 monqy: So you're asking whether [f ?] refers to (f x) or \x.(f x)? 07:50:50 evincar: no 07:50:54 help 07:51:01 :( 07:51:49 evincar: I'm actually indirectly telling you that you're doing it wrong by asking how you reached (bad conclusion) 07:51:55 I found a song for evincar, it's called I'm a evincar http://www.youtube.com/watch?v=GKiMOFkV2kM 07:52:09 my ears 07:52:13 oh yeah 07:52:14 speaker alert 07:52:25 PatashuWarg: Thanks 07:52:27 :| 07:52:30 Emmm. Why are you uploading music, which already here? 07:52:30 Well, whatever. I already got this song and another 62 albums =) 07:52:30 GordonFrohman74 1 year ago 07:52:38 :( 07:52:40 62 whole albums 07:52:46 renard makes a ton of music 07:52:57 the only thing he has more of than songs is aliases 07:53:06 Also, holy shit, I thought I was going to die with that volume 07:53:10 What do you call this genre? 07:53:14 Speedcore 07:54:14 evincar: as before, I'm asking why you got \x.g(fx), rather than g(\x.fx), from [g [f ?]], which is a specific case of trying to do (thing I do not know how to describe in the general case help) 07:54:25 -!- augur has quit (Ping timeout: 250 seconds). 07:54:39 Minor speaker warning, major obscure warning: http://www.youtube.com/watch?v=Lb8ZFYSg1Tw&feature=related 07:54:58 Also, the opposite of speedcore 07:55:05 slowcore 07:55:26 Also, definite urinating horse warning 07:55:27 Einstürzende Neubauten are... quite a thing 07:55:36 beep beep I'm a urinating horse 07:56:01 monqy: All [f ?] does is say "for argument x, rather than substitute f, substitute [f x]". 07:56:07 is that bad help 07:56:08 elliott_: Favorite band of the last 8 years, which gives them a run only rivalled by the Beatles 07:56:15 evincar: [f [g ?] ?] 07:56:16 is this 07:56:19 \x -> f (g x) x 07:56:19 or 07:56:23 \x -> f (\y -> g y) x 07:56:39 if the latter, then ?s can only be referenced at one level of application 07:56:48 evincar: so it's really g(\x.fx)? 07:56:48 if the former, then _no_ implicit lambda can contain another 07:56:53 which leads to horrible refactoring problems 07:57:02 if you nest an application in another its meaning can change massively 07:57:09 http://www.youtube.com/watch?v=sW80JfXLZGs&feature=related 07:58:35 http://www.youtube.com/watch?v=Bg9kAuiBLp4&feature=related 07:58:36 I don't know. It's a bit late for me to figure this out. 07:58:55 http://www.youtube.com/watch?v=Dcd7mJRvrng&feature=related 07:58:59 NihilistDandy: quality album art on the second one there 07:59:08 Not to mention that I didn't say this language was isomorphic to lambda calculus. 07:59:18 Yet we've had to semi-consistently treat it like it is. 07:59:20 If you can't translate simple lambda calculus notation to your language then lol. 07:59:23 elliott_: Smile for the proto-man 07:59:30 NihilistDandy: No, the one after that 07:59:36 http://www.youtube.com/watch?v=rNhvcgVihLE&feature=related 07:59:39 evincar: the ambiguity remains, regardless 07:59:44 What, the horse? 08:00:04 http://www.youtube.com/watch?v=w2iIi3d9ZQY&feature=related 08:00:11 http://www.youtube.com/watch?v=LGif7fHaOGw&feature=related 08:00:20 #esoteric is now a noise music channel 08:00:43 Hardly counts as noise 08:00:45 I'm just going to cop out and say "depends on arity" and "have come up with syntax to resolve ambiguities &c. don't worry yourself". 08:00:57 elliott_: Throbbing Gristle more your style? 08:01:10 NihilistDandy: If I can distinguish it from Merzbow, it's not noise 08:01:17 And now off to sleep. 08:01:20 elliott_: Well, that's fair 08:01:33 I roughly define "noise music" as "the point at which my eclectic taste runs out of patience and goes to listen to something melodic" :-P 08:02:16 Most of Neubauten is not this melodic. I'm just trying to soften up the channel's mainstream defenses~ 08:02:21 elliott_: What do you think of John Cage? 08:02:47 I shouldn't be getting into this. 08:02:57 I wouldn't put 4'33" in ~/Music, if that's what you're asking 08:03:08 Wolf Eyes is good, as well 08:03:38 Speaking of Merzbow, do you have Multiplication? 08:03:57 Me? 08:04:15 Yes. It's a neat album 08:04:53 I'm not fond. His work is only meaningful in that it rejects meaning in the context of work that doesn't. 08:05:17 You are a philistine. This has already been established. 08:05:39 Probably. 08:05:51 what 08:05:58 that's even more pretentious than everything else you say 08:06:03 Not really. 08:06:06 yes 08:06:11 It's sorta calling him out on his pretentious bullshit. 08:06:17 So it has to be. 08:06:41 To me, John Cage can be summed up as "MEANING? LOLNOPE" 08:07:12 i literally just slapped myself on the forehead three times hard enough to hurt so that I could express how painful this is for me 08:07:19 Pianos asplode, several minutes of silence, many radios &c. 08:07:27 Pretension requires pretense.~ 08:08:10 It's all that deliberately provocative, deliberately meaningless crap that's supposed to have meaning by virtue of its uselessness. 08:08:24 That sounds like an awful lot of reading into things. 08:08:27 Meaning is an illusion 08:08:32 Meaning is context. 08:08:36 Shut the fuck up. 08:08:37 Maybe John Cage just wanted to fuck about with pianos without the constraints of regular music. 08:08:40 Context is a fallacy. 08:08:42 Maybe some people enjoy that. 08:09:21 I don't care if he enjoys it. He can enjoy it all bloody afternoon. But it's not composition. It's deliberately not composition. 08:09:33 And the fact that he's recognised for "deliberately not composing" is mildly absurd. 08:09:35 its application 08:09:47 monqy: I see what you did there. 08:09:47 sorry #esoteric 08:10:00 You win three internets. 08:10:21 evincar: In that sense, you and Cage are of one sort. 08:10:41 NihilistDandy: Yes, but probably not in the way you're about to tell me. 08:10:56 evincar: He's recognised because he did interesting things and people were like "hey maybe we can do things withou t these constraints" 08:11:07 Or do you just not like experimentation full stop and don't see how it's a notable character trait at all 08:11:09 In which case lol 08:11:13 I didn't say it wasn't interesting. 08:11:19 I love experimentation. 08:11:22 evincar: I wasn't going to tell you anything. The joke was already there. 08:12:19 elliott_: Man, FUCK HASKELL. ALGOL was good enough for my forebears, it's fucking good enough for me! 08:12:54 elliott_, but when people go on endlessly about whether 4'33" is music or not? 08:12:54 Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them. 08:12:58 That's unbearable. 08:13:25 Phantom_Hoover: Sounds like what evincar's doing to me. 08:13:37 Basically evincar is complaining "he's notable for 'not-composing' which I think is silly", which is stupid. 08:13:40 to all of us 08:13:52 He's notable for doing interesting things, and if you whine about that W / E 08:14:29 elliott_: But you must admit (and my point is) that his work wouldn't be interesting if there weren't structure for him to reject. 08:14:35 That is the point. 08:14:39 So? 08:14:55 So his work is defined in terms of everything but itself. 08:15:07 Who gives a shit 08:15:09 It's inherently and necessarily devoid of any meaningful content. 08:15:14 That's an arbitrary classification you're imposing on it 08:15:16 I bake a cake 08:15:18 It's not musical 08:15:22 It's not related to giraffes in the slightest 08:15:26 Is it defined by everything but itself 08:15:36 Would it not be interesting if there weren't any cooking rules for me to reject by not cooking 08:15:38 Bullshit 08:15:40 It's a fucking cake 08:15:42 Eat it and shut up 08:15:43 Do you expect credit for the things that it isn't? 08:15:48 No. 08:15:53 Well, at least shut up 08:15:56 You expect it to be a cake and that's it. 08:16:00 Maybe you do 08:16:06 Isn't that Cage's point 08:16:07 So you shut the fuck up and eat your cake because you're an excellent baker goddammit. 08:16:10 I'm not really interested in this at all 08:16:17 I have a goblin siege to break 08:16:19 evincar: I expect 4'33" to be 4'33" of silence, and it is 08:16:38 I expected that as well 08:17:21 Good. Then at least you're appreciating Cage's work for what it is, which is directly counter to his goals. 08:17:33 Meaning is a farce. Things are (or, more likely, aren't). 08:17:38 His goals don't matter 08:17:49 He's dead 08:18:15 They didn't really matter while he was alive, either 08:18:39 You know Cage's goals?/ 08:18:40 ?? 08:18:41 Wowza 08:18:55 My mental image of Cage is a lot less pretentious than the shit you're projecting on to him 08:18:55 His stated goals, at least. 08:19:05 He was a nice guy anyway. 08:19:14 At least I'd have loved to sit down and chat with him. 08:20:33 He was, after all, a student of Zen, which is where he got many of his ideas about rejecting form. 08:20:48 Blah blah Zen, blah blah form. 08:20:52 I just think he went to the wrong extreme. 08:22:08 In any case, I'm not winning any fans. Time for sleep. 08:22:14 -!- evincar has quit (Quit: Fwomp.). 08:24:47 He's not really dead, anyway. This is just his longest composition. It's called 9998424'21.258" 08:25:03 Or at least it was a few minutes ago 08:34:03 -!- pikhq has joined. 08:34:23 -!- pikhq_ has quit (Ping timeout: 260 seconds). 08:47:52 -!- augur has joined. 08:57:20 When playing D&D, I nearly always end up thinking ahead five or ten sessions. 08:58:00 s/nearly always/usually/ 08:58:25 Sounds like you'd be good at chess 08:58:31 Did I win: 990G /archive/music 08:58:52 Deewiant: Only if it's lossy 08:59:17 I do play chess sometimes. I am not as good at it as at D&D or pokemon card though 08:59:18 Some of it is, some of it isn't 09:00:03 I try to ask the other players to think ahead but they will not think ahead even one session 09:00:29 I've... 09:00:35 Never actually played DnD 09:00:55 Along with Amnesia: the Dark Descent, it's the closest I've got to playing a game without actually playing 09:01:04 The DM tries to think ahead but gets it wrong at least half the time, and sometimes I tell him about some things and he didn't realized it 09:01:32 However I also sometimes get it wrong, but it is necessary to adapt what the situation is. 09:03:23 If your character is a Wizard then you have to prepare spells and it requires to think ahead; but most of the stuff I think ahead about has nothing to do with preparing spells. 09:04:38 In the current situation of the game, the thing I think ahead just one session is that we are given the guest uniforms of the navy and our old clothing has been destroyed by the navy. 09:05:24 So, you're being press-ganged into the navy? 09:05:54 No. The old clothing has been destroyed because it is just rags used during slavery, and we are escaped from slavery 09:06:02 Oooh 09:06:13 I'm going to have breakfast now. 09:06:36 A full transcript is available in case you want to read it: http://zzo38computer.cjb.net/dnd/recording/level20.tex 09:07:23 (Printing level 6 = most detailed, each level includes everything of levels before it) 09:09:39 $ find /archive/music -type f -regextype posix-egrep -not -iregex '.*\.(flac|tta|ape|wv)($|\..*)' -exec du -bc {} + | awk '/total$/{s+=$1}END{print s/1024^3}' 09:09:42 159.364 09:09:44 elliott_: Better? 09:10:43 Deewiant: Yep, now you don't win :-) 09:10:52 Who's winning 09:11:24 Deewiant: DUnno 09:11:29 Someone who isn't you 09:11:35 How do you know 09:11:43 "Well, you see, I had shown that the structural layout of any proof of Fermat's Last Theorem--if one existed--could be described by an elegant formula, which, it so happened, depended on the values of a solution to a certain equation. When I found this second equation, to my surprise it turned out to be the Fermat equation." 09:11:54 Deewiant: Because 09:12:08 -!- Taneb has quit (Ping timeout: 260 seconds). 09:12:24 zzo38, you mean a load of values (a,b,c,2)? 09:13:16 Phantom_Hoover: No, I mean where n>2 (in other words, the proof requires a counterexample). I don't know if this is true but it is in some book 09:13:22 elliott_: I'm not convinced 09:13:24 And I don't know if there any other theorems like that 09:13:30 Deewiant: I am 09:13:47 define "structural layout" 09:14:20 elliott_: That doesn't help in convincing me but I guess you don't care 09:14:36 I don't know. This was part of one of the paragraphs spoken by the Tortoise in a dialog. 09:14:45 Deewiant: Good conversation, this 09:15:04 elliott_: I think I disagree with that too 09:16:02 evincar: the reason of existance of hipsters is to provoke you to talk about how much you hate them 09:16:12 in this way, you have been posthumously trolled. 09:17:41 -!- Taneb has joined. 09:17:45 With positive integers $a$, $b$, $c$, and $n$, the equation $a^n+b^n=c^n$ has infinite solutions when $n=2$ but no solutions with $n>2$. The equation $n^a+n^b=n^c$ has the same property but with an easier proof. 09:21:10 Can you see this is the case? 09:21:28 Oh @Number10Cat 09:21:38 I think I can prove the second one easily, although I don't know much about the formal proof of it 09:22:15 The first one is Fermat's Last Theorem 09:22:57 what happens if n < 2? 09:23:44 oh since its a positive integer 09:23:54 If $n=1$ then the first one has infinite solutions but the second one has none. 09:24:58 The second one has been called "Johant Sebastiant's Well-Tested Conjecture" in Hofstadter's book. 09:25:21 it seems like playing with pythagorus theorum 09:25:26 Can you see why this is these are the case? 09:25:27 heheh 09:26:13 i guess that pythagorus was lucky in that he was around at a time when math not so big as it is now 09:26:35 so he gets to be associated with a^2+b^2=c^2 forever 09:26:40 He also... hated beans? 09:26:53 Or loved beans so he didn't eat them 09:27:05 Point is, he believed people re-incarnated as beans 09:27:08 As far as I know, he didn't eat beans. 09:27:40 itidus20: pythagoras. 09:28:14 But I don't know for sure because I did not live at that time. 09:28:30 its not like my native language borrows heavily from greek... how should i know these spellings 09:29:00 ... 09:29:07 Education? 09:29:18 And which language are we talking about 09:29:22 english :P 09:29:32 So, where did the word philosopher come from? 09:29:35 yup :-P 09:29:39 Where did all the ologies? 09:29:46 And logic? 09:29:46 it was a dark sarcasm 09:29:57 Oh, I hate those. 09:30:02 Sorry, carry on 09:30:27 it was as if to say.. i should have known how to spell it since my native language borrows so heavily from greek :-s 09:30:36 -!- jix has joined. 09:31:24 hmm gorus... that sounds roman 09:31:46 ahh what have i done to you pythagoras 09:32:00 i have defiled your name with the romans 09:32:07 You gave him a dozen crates full of hippos 09:32:59 noooooo 09:34:12 for the record... you did very good at pointing out some specific places where english borrows greek 09:34:35 i didn't have any specifics in mind 09:34:58 Pediatrician 09:35:03 Xylophone 09:35:14 :) 09:35:56 hah 09:35:59 Taneb: Have you seen my implementation of Constantinople and is it suitable to you? 09:36:19 I have not seen it 09:36:24 But I saw that it exists 09:36:28 Hence my msg smiley 09:36:30 I am making an esolang named Istanbul 09:36:37 Msg smiley? 09:36:43 In lambdabot 09:36:52 I msged you "Thanks :)" 09:36:57 I think 09:36:59 Please write me messages in the wiki instead. 09:37:02 I meant to, anyway 09:37:21 I also downloaded it twice 09:37:23 And also please be more specific. 09:38:52 Taneb: OK. Have you looked at it? Have you read it? Can you try it? Do you have Haskell in your computer? What do you think is the computational class of Constantinople, and why? 09:39:34 No, no, ish, sort of, turing complete, isomorphism with Boolfuck 09:39:54 My implementation is in public domain so you are free to modify it or whatever else you want to do with it 09:40:41 Taneb: s/isomorphism/reduction/ 09:40:45 Unless you mean isomorphism 09:41:04 I am quit now, so anything else you have to say about that implementation you should write in the Talk:Constantinople 09:41:07 -!- zzo38 has quit (Quit: zzo38). 09:41:14 Translation, I'll go for 09:41:54 does anyone ever bother actually writing isomorphisms 09:42:51 Only for BF derivatives 09:43:41 would be more useful for sub-tc languages, or for demonstrating that a real spooky language isn't super-tc, I guess 09:48:59 elliott_: Incidentally, you *can* madvise(addr, len, MADV_MERGEABLE) all your (hopefully page-aligned) separate copies, and the kernel (since 2.6.32, when KSM is enabled) will merge identical pages. But that's admittedly a *far* more clumsy solution than actually starting from a COW duplicate. 09:51:27 fizzie: How do I cope it first, though 09:51:29 copy 09:53:16 -!- Monster has joined. 09:53:44 By copying; that's the problem. The only thing you save is memory, not time. 09:56:19 Right. 09:56:27 Well, it's sixteen megs, so copying it every cycle is... how do I put it... 09:56:32 Less than ideal? 09:56:53 You may have to just do copy-on-write in userland without the help of hardwear. 09:56:57 Out of perverse curiosity, _would_ looking at /proc/self/mem and mmapping a private copy of the mapping DTRT? 09:56:57 Linus having them manners in a thread about FreeBSD's COW-based zero-copy socket thing: http://sprunge.us/dCUj 09:57:11 I somehow doubt it. 09:57:19 Hmm, why not? 09:59:39 Because the /proc files aren't really real files. I'm not saying it wouldn't work, I just wouldn't count on it working. (mmaping needs to be supported by the file system of the backing file in question, or it returns ENODEV.) 10:00:04 Of course it *could* DTRT if they've thought of that. 10:00:39 Ah. 10:01:19 >>> mmap.mmap(open('/proc/self/mem').fileno(), 99) 10:01:19 Traceback (most recent call last): 10:01:19 File "", line 1, in 10:01:20 mmap.error: [Errno 9] Bad file descriptor 10:01:20 fizzie: Welp. 10:01:25 (I wonder if it'd work on /dev/mem...) 10:01:35 "See proc_mem_operations in /usr/src/linux/fs/proc/base.c: /proc/.../mem does not support mmap." -- http://stackoverflow.com/questions/5216326/mmap-on-proc-pid-mem 10:01:45 I wonder how hard that would be to add :) 10:06:15 DTRT? 10:07:53 -!- cheater_ has quit (Ping timeout: 250 seconds). 10:08:42 Anyway, if you don't need to modify the "old" copy at the same time, you can do a "userspace" COW by mprotect'ing the old stuff to PROT_READ only, having sort-of "manual page tables" (that's just one level of indirection) that point to the old stuff, and then catching the segfault on write and in the handler mprotect the page back to read-write (so you can restart the write without disassembling the code in question to get the new pointer in place), and also ma 10:08:42 king a new read-only copy and updating the "old copy's" tables to point to that one. 10:09:11 fizzie: Each copy is only mutated at construction-time, so that could work. 10:09:27 fizzie: (Basically, modelling a pure update as "copy, mutate".) 10:10:49 Or use a ramdisk and LVM copy-on-write snapshots on it. :p 10:11:08 (Disclaimer: might not work, is bizarre/braindead in any case.) 10:11:13 Yeeeeeeees. 10:16:40 ?hoogle a -> (a -> m a) -> m a 10:16:41 Data.Generics.Aliases extMp :: (MonadPlus m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a 10:16:41 Data.Generics.Aliases extM :: (Monad m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a 10:16:41 Data.Data gfoldl :: Data a => (c (d -> b) -> d -> c b) -> (g -> c g) -> a -> c a 10:19:50 ?ty flip id 10:19:52 forall a b. a -> (a -> b) -> b 10:20:37 Deewiant: Yes yes. 10:21:01 Yes. 10:21:06 (No.) 10:21:10 (I wanted foreverWithAnArumgent,) 10:22:52 foreverWithAnArgument? 10:26:15 elliott_: flip (runReaderT . forever . ReaderT) 10:30:46 -!- cheater has joined. 10:33:46 -!- GreaseMonkey has quit (Quit: The Other Game). 10:34:05 -!- monqy has quit (Quit: hello). 10:35:04 -!- cheater has quit (Client Quit). 10:35:13 -!- cheater has joined. 10:37:56 -!- Taneb has quit (Quit: He's a big quitter he is.). 10:42:03 -!- Taneb has joined. 10:48:37 -!- pikhq_ has joined. 10:48:39 -!- pikhq has quit (Ping timeout: 252 seconds). 10:48:40 fizzie: FillRect is the thing to set individual pixels of an SDL surface, right? 10:51:40 I suppose for most purposes you will need SDL_LockSurface + manual mangling of surface->pixels, but that means you need to understand surface->format. 10:51:57 Especially if it's a hardware surface, because FillRect will probably end up locking it for each individual call. 10:52:50 fizzie: Weeeell, hSDL offers no such access. 10:52:53 (Sigh.) 10:54:23 Mhm. Well, for setting an individual pixel SDL_FillRect does the job. Calling it in a tight loop will just probably do some amount of extra work. 10:55:56 Yeah, starting to think that SDL just doesn't expose enough for this to be efficient here. 10:55:58 hSDL, that is. 10:56:16 I guess I could use OpenGL. 11:19:48 -!- Vorpal has joined. 11:21:07 -!- MSleep has quit (Ping timeout: 250 seconds). 11:43:31 -!- boily has joined. 11:47:07 i feel so ronery: http://esolangs.org/wiki/Binodu#99_bottles_of_beer 12:06:07 fizzie: Out of cuminosity, what order are SDL's pixels stored in? 12:06:12 Column or row? 12:07:35 Rows, where each row is separated by surface->pitch bytes, which might or might not be the same value as surface->w * surface->h * surface->format->BytesPerPixel. 12:07:50 -!- MDude has joined. 12:07:54 Uh, I mean surface->w * surface->format->BytesPerPixel, of course. 12:08:13 Technically speaking the first sentence is also true, but only because it's a tautology. 12:08:24 Hnng, right. (I'm implementing BytePusher because why not.) 12:08:32 "A value of ZZ means: pixel(XX, YY) is at address ZZYYXX." 12:08:36 Quite an ackward format. 12:08:43 I can either blit it manually every frame, or redirect writes there. 12:08:45 I suspect blitting it will be faster. 12:09:48 It's very hardwaristic thing, to be able to position the page wherever. 12:10:43 BytePusher is not the most elegant thing, I would say. 12:14:17 -!- Monster has quit (Read error: Connection reset by peer). 12:14:48 It might be possible to set up a SDL_Surface structure that describes the BytePusher video memory format, and then just call SDL_BlitSurface once per frame to show it on screen. 12:15:21 Hmm, is that BytePusher format row- or column-? 12:15:37 Hmm, doesn't actually look like http://sdl.beuc.net/sdl.wiki/SDL_PixelFormat has anything for that, though 12:15:51 The mask might be useful, or something; the BytePusher colours are the "web-safe" palette. 12:16:00 SDL does 8-bit palettized things, they're just done a bit differently. 12:16:04 The 216 colors are organized into a 6*6*6 color cube (a.k.a the "websafe" palette). Each of the red, green and blue components can have an intensity value from 0 to 5. The formula to calculate a pixel's color value is: Red*36 + Green*6 + Blue. If the actual display device has 8-bit (00h-FFh) color components, we have to multiply each intensity value by 33h when blitting to the screen: 12:16:04 0 1 2 3 4 5 12:16:06 00 33 66 99 CC FF 12:16:13 It's a... thing. 12:16:22 Yes, but that's just a palette. 12:16:25 Well, yes. 12:16:41 Hmm, so you can actually have an SDL_Surface indexed into a random pointer? 12:16:43 That would be nice. 12:16:57 Although I'd have to relocate it at the end of every cycle, since you can move video memory around. 12:17:02 SDL_CreateRGBSurfaceFrom(, 256, 256, 8, 256, 0, 0, 0, 0) will make you an 8-bit surface with an empty palette. 12:17:13 And it's probably quite a lightweight operation. 12:17:18 Heh. I wonder how efficient that is to do every sixtieth second. 12:17:40 You can probably just repoint the 'pixels' member, even though it might not be exactly kosher. 12:18:21 But it has to have the right majorness, yeah? 12:19:00 Well, it does. If pixel(XX,YY) is at ZZYYXX, that's "rows separated by a pitch of 256 bytes". 12:19:05 Oh, right. 12:19:56 I do wonder if SDL_Blitting this to the screen won't do anything other than the obvious loop. 12:22:21 My guess is it's going to do the obvious loop, since it has to map to the screen pixel format via the palette anyway; nobody has 8-bits-wide palettized screen surfaces any more. 12:23:14 Though I suppose that *could* be hardware-accelerated by an unusually clever SDL video driver somehow, purely in theory. 12:25:17 fizzie: So basically, it would be simpler to just do the loop myself :P 12:25:28 fizzie: I mean, SDL is retro enough that it's obviously going to do the loop. 12:26:36 I don't know; it has so many video drivers for all kinds of screwed-up hardware, it might be that one of those is actually going to optomize the blit for you. 12:26:43 static __inline__ void SDL_memcpyMMX(Uint8 *to, const Uint8 *from, int len) 12:26:43 { 12:26:43 int i; 12:26:43 for(i=0; i __asm__ __volatile__ ( 12:26:44 "movq (%0), %%mm0\n" 12:26:46 "movq %%mm0, (%1)\n" 12:26:48 Oh, my. 12:26:56 SSE, too. 12:27:10 Doesn't trust your platform's memcpy, I see. 12:27:21 memcpy can't skip things, can it? 12:27:25 Oh, wait, that's literally just memcpy. 12:29:35 It does have quite a lot of code for blitting. 12:32:21 Heh, there's a define to use Duff's device. 12:36:07 I'd go with SDL's blit if it seems easily doable. Theoretically speaking SDL_CreateRGBSurfaceFrom should not cost much, and even if it does, the "repoint ->pixels, because the calling code owns the memory anyway" thing sounds... safe-ish. 12:37:20 Not that it probably matters all that much, it's just 256x256 pixels. (If you're going to be using fancy scalers, though, then you'll need to do that manually in any case.) 12:39:46 -!- Taneb has quit (Ping timeout: 252 seconds). 12:40:06 fizzie: Well, fancy scalers = probably times-two zoom. 12:46:24 For a piece of real hardware, BytePusher's screen is particularly anemic. No sprites, no hardware scroll, no programmable palette, no mid-frame interrupts to do shenanigans, just in general no help from the hardware at all. 12:47:09 Weeell, sprites and scrolling fall under "ugly" for me. 12:47:19 Programmable palette and mid-frame interrupts are nice. 12:49:40 They're features your regular video game console developer would expect, I think. (Well, or would have expected in the 1980/1990s, anyway. Today I suppose they expect high-level languages, programmable GPUs and whatnot.) 12:51:55 -!- Taneb has joined. 12:51:59 Hello! 12:52:08 -!- cheater has quit (Ping timeout: 250 seconds). 12:52:40 -!- cheater has joined. 12:52:43 fizzie: Well, yes, but the average game developer would expect a few more instructions than MOVJMP, too. 12:52:57 (Though not many. :p) 12:55:20 fizzie: It would be nice to see something like BytePusher with a less stupid input and display system. 12:55:31 And perhaps a nicer OISC; RSSB, perhaps? 12:55:40 Although RSSB involves arithmetic, which is meh. 12:55:44 But the one operand thing is nice. 13:00:24 -!- derrik has joined. 13:17:33 -!- enawder` has joined. 13:18:08 -!- enawder has joined. 13:18:33 -!- enawder has quit (Client Quit). 13:20:48 -!- Taneb has quit (Read error: Operation timed out). 13:30:48 -!- enawder` has quit (Remote host closed the connection). 13:39:24 uint32_t delay = first_tick + (ticks*50)/3 - SDL_GetTicks(); 13:39:30 Turns out that multiplication overflows Quite Quickly. 13:39:40 Why can't sixty FPS be a nice round number 13:54:01 -!- copumpkin has joined. 14:02:29 -!- boily has quit (Ping timeout: 264 seconds). 14:09:14 I should probably build a more sane loop system 14:10:00 -!- Taneb has joined. 14:17:55 -!- boily has joined. 14:19:02 -!- CakeProphet has joined. 14:19:02 -!- CakeProphet has quit (Changing host). 14:19:02 -!- CakeProphet has joined. 14:24:05 -!- Nisstyre has quit (Ping timeout: 264 seconds). 14:27:56 -!- CakeProphet has quit (Ping timeout: 252 seconds). 14:29:52 -!- CakeProphet has joined. 14:29:52 -!- CakeProphet has quit (Changing host). 14:29:52 -!- CakeProphet has joined. 14:42:52 Accurding to Wolfram Alpha, a jiffy per smidgen is equal to 18.03 hours per cubic meter. 14:43:28 *according 14:45:47 murder is wrong 14:50:30 -!- copumpkin has quit (Remote host closed the connection). 14:50:33 -!- yxynaxen has joined. 14:50:58 -!- copumpkin has joined. 14:51:06 -!- yxynaxen has left. 14:58:53 -!- CakeProphet has quit (Ping timeout: 240 seconds). 15:00:42 -!- PatashuWarg has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 15:01:03 -!- CakeProphet has joined. 15:01:03 -!- CakeProphet has quit (Changing host). 15:01:03 -!- CakeProphet has joined. 15:06:37 -!- CakeProphet has quit (Ping timeout: 276 seconds). 15:07:12 -!- BeholdMyGlory has joined. 15:16:36 -!- CakeProphet has joined. 15:16:36 -!- CakeProphet has quit (Changing host). 15:16:36 -!- CakeProphet has joined. 15:22:48 so apparently webkit-sharp has an executeScript method, which allows me to access the DOM via javascript 15:22:55 but when I try to use getElementById... I always get null. 15:23:17 WOW THANKS FOR BEING A USELESS WEBKIT BINDING 15:29:32 -!- CakeProphet has quit (Ping timeout: 252 seconds). 15:31:29 -!- CakeProphet has joined. 15:31:29 -!- CakeProphet has quit (Changing host). 15:31:29 -!- CakeProphet has joined. 15:33:01 hmmmm. 15:38:14 -!- CakeProphet has quit (Ping timeout: 240 seconds). 15:45:39 -!- Nisstyre has joined. 15:45:58 -!- CakeProphet has joined. 15:46:28 I am so happy with the world right now. 15:47:30 Hey guys I've got a great ideal for a novel slash existential crisis! 15:48:02 fungot: the quest 15:48:03 CakeProphet: so i think i'll relocate to infodesk.) you should use scheme instead of say clisp? that's a timer :) 15:51:14 http://pastebin.com/1A80SYEL 15:51:19 this code looks completely reasonable right? 15:52:09 Hey guys I've got a great ideal for a novel slash existential crisis! 15:52:09 the only reason document.getElementById would return null for pretty much everything is that the Webkit library is a piece of shit... right? 15:52:09 RIGHT? 15:52:13 DEMAND DETAILS 15:52:26 It's told from the perspective of an astronaut who's been tasked with exploring the galaxy for signs of intelligent life, at relativistic speeds. For him, ~20 years will pass while I spirals from the inside of the galaxy out, 'til he reaches Earth again. But from Earth's perspective, thousands of years will have passed. He finds nothing, and when he gets within receiving range of Earth, he receives directed transmissions (since his ship was designed to travel a 15:52:26 t relativistic speeds, he is of course fully equipped to interpret extremely-high-frequency transmissions). They're from enthusiastic anthropologists and space-fans, speaking in broken English (it's been dead for a thousand years, after all), telling him about what has happened. But as he gets closer (and of course hundreds of years are still passing), they get more and more distressing, with extremely violent, prolonged rivalries broiling. As he gets closer, M 15:52:27 ADD is invoked on Earth and all life is destroyed; humans have colonies on Mars and Venus (hence how he knows this), but they're not self-sufficient. He keeps approaching, but can only watch in desperation as the last human beings (excluding himself) die in isolated environments. When he arrives, he finds himself as the last surviving human, and to his knowledge, the last intelligent life in the galaxy. 15:53:15 Gregor, so you mean it's an even more depressing version of Tau Zero? 15:53:53 I s'pose :P 15:54:03 All y'all people makin' my ideas derivative 15:54:31 What's MADD? 15:54:42 Mutually Assured Dalmation Destruction? 15:54:54 Mutual Assured Deadly Death 15:54:57 brb 15:55:44 It's a typo of MAD :P 15:56:24 -!- CakeProphet has quit (Ping timeout: 240 seconds). 15:56:48 -!- CakeProphet has joined. 15:56:48 -!- CakeProphet has quit (Changing host). 15:56:48 -!- CakeProphet has joined. 15:56:55 u madd? 15:59:10 Gregor, i've read a similar book 15:59:18 -!- Taneb has quit (Ping timeout: 246 seconds). 15:59:23 Was it ... Tau Zero? :P 15:59:23 it was a bout a sentient robot that was built by humans 15:59:31 the humans then made animals talk 15:59:34 and then they made more robots too 15:59:47 Was it Sonic? 15:59:48 and then they had somehow created sentient ants 15:59:51 MDude: X-D 15:59:57 no sonic isn't a robot 15:59:58 anyways 16:00:03 the robot is immortal 16:00:07 the humans die out 16:00:12 cheater: Well that's how Robotnik made 'im. 16:00:14 That jerk. 16:00:15 then all the animals die out 16:00:33 then the ants build a huge superstructure that covers all of earth 16:00:43 and include other robots in their escapade and lift off in a spaceship 16:00:49 and finally he's alone and left behind 16:01:00 and sort of starts reminiscing. 16:01:04 Is there a "simpler" way to do min(x-y, 0), time-wise? 16:01:08 For an unsigned int. 16:01:35 elliott_: if (x > y) x - y else 0 could be faster if 0 is common. 16:01:55 In the x > y case, it's still a comparison and a subtraction *shrugs* 16:02:04 Not that subtractions are expensive :P 16:02:14 Gregor: Also, I'd read that novel :P 16:02:14 Erm, min, so y > x, not x > y, but yeah. 16:02:19 z = x-y; if z<0 0 16:03:15 of course, in c you could do some bit-banging but that's not really nice. 16:03:57 c is the lower-case esoteric language version of C, where all identifiers and all data is lowercase 16:04:33 -!- CakeProphet has quit (Ping timeout: 246 seconds). 16:04:41 fizzie: One very curious thing about BytePusher is the very large number of cycles per frame.. 16:04:47 I guess it's 'cuz BBJ sucks at doing anything 16:05:35 -!- Taneb has joined. 16:06:36 cheater: I was assuming that was the canonical implementation. 16:06:40 4 MHz, it's not *that* much. (Though it has a quite unrealistic "one instruction/cycle" architecture.) 16:06:42 Gregor: Also, I'd read that novel :P // it's too bad I can't write it 8-D 16:07:21 fizzie: Well, it's BBJ; cycles are pretty consistent. 16:07:37 Gregor: You've probably written about a tenth of it... I can't imagine it making a compelling full novel 16:07:52 Fair point, more like a novella. 16:07:56 Or short story. 16:07:59 Or very short story :P 16:08:05 Or IRC-line story 16:08:09 :'( 16:08:10 Now rewrite it as six words and you've won 16:08:19 For sale: Baby shoes, never worn. 16:08:49 Gregor: Back relativistically-- wow! Wait-- fuck, bye. 16:08:51 NAILED IT. 16:11:04 -!- CakeProphet has joined. 16:11:04 -!- CakeProphet has quit (Changing host). 16:11:04 -!- CakeProphet has joined. 16:11:11 Well, okay, with a total of one instruction it's perhaps more reasonable to have all one instructions take equally long. 16:11:36 fizzie: Although, admittedly, the move has to affect the reading of the jump location. 16:11:47 So two cycles seems more reasonable, from the little I understand of CPU architecture. 16:11:52 But "cycle" is pretty arbitrary. 16:16:13 -!- CakeProphet has quit (Ping timeout: 260 seconds). 16:17:53 `addquote I think it's fizzie against everyone atm AND EVERYONE IS WINNING EXCEPT FIZZIE 16:17:56 598) I think it's fizzie against everyone atm AND EVERYONE IS WINNING EXCEPT FIZZIE 16:18:04 Hmm, _is_ there a way to get mmap to zero-pad a file? 16:18:14 Like, it's two bytes long, but I want the rest of the sixteen megs I want zeroed out. 16:18:16 I guess not. 16:19:30 Oh by the way, I used the ftw(3) function the other day. 16:21:09 Hmm, so what OISC instruction is LEAST like subleq? 16:21:32 Gregor: I don't like OISCs with arithmetic primitives :( 16:21:33 It's so ugly. 16:21:34 addgt 16:21:47 Phantom_Hoover: Adding is insufficient IIRC 16:22:14 Gregor, addgt with negative numbers. 16:22:33 Phantom_Hoover: Negative numbers where? In the initial memory? 16:22:41 That's ... so exactly like subleq :P 16:22:51 EVERYWHERE 16:22:51 (Yes yes yes, you were just reversing the constituent parts, har har) 16:22:59 Memory initialised to -infinity 16:23:18 lol 16:24:41 -!- Taneb has quit (Ping timeout: 264 seconds). 16:25:36 fizzie: I have doubts that SLD_CreateRGBSurfaceFrom actually works :-P 16:33:33 It _should_. 16:33:41 To _underline_ things, _too_. 16:35:13 Maybe it just does nothing sensical unless you explicitly set a palette? 16:36:36 Indeed. 16:36:55 http://ompldr.org/vOXg5eA 16:36:56 NoirPusher. 16:37:56 Aw, the sine scroller doesn't work for some reason. :/ 16:38:33 And the sprites thing starts but never displays no sprites. Huh. 16:38:40 That seems... logically impossible. 16:38:47 Maybe I'm just showing a constant image ors omething. 16:44:04 elliott_: Right, it creates an empty palette by default for palettized surfaces. 16:44:15 -!- derrik has left. 16:46:38 Hmmm. 16:46:42 SDL_BlitSurface(surf, NULL, screen, NULL); 16:46:43 SDL_Flip(screen); 16:46:47 Looks pretty conclusively blit-y to me. 16:48:32 So it does. 16:49:35 Incidentally and not related to that, but the palette-mangling might conceivably take a non-zero (if close to zero) amount of CPU cycles (if SDL caches some omg-optomized palette-for-current-screen-pixel-format values or something), so you might want to still investigate the "create the surface with correct parameters once, then just reset surface->pixels" approach too. 16:50:07 That's what I'm doing. 16:50:11 Ah, hokay. 16:50:12 static void draw_frame(SDL_Surface *screen) 16:50:12 { 16:50:12 word *vid_mem = mem + (peek(5) * 0x10000); 16:50:12 surf->pixels = vid_mem; 16:50:12 SDL_BlitSurface(surf, NULL, screen, NULL); 16:50:13 } 16:50:29 It failed to show more than one frame even when I constructed it every frame, though 16:51:38 Curioos. 16:51:55 "On hardware that doesn't support double-buffering or if SDL_SWSURFACE was set, this is equivalent to calling SDL_UpdateRect(screen, 0, 0, 0, 0)" -- so it's not like SDL_Flip is wrong. 16:53:00 No, it should be just fine. 16:53:17 I _suppose_ the 16:53:20 static void poke(addr i, word x) 16:53:21 { 16:53:21 mem[i] = x; 16:53:21 } 16:53:25 function could break by the second frame somehow. 16:54:02 Yes, that looks very brittle. Maybe you should reinforce the square brackets by something like mem[(((i)))] = x. 16:54:22 Sounds good. 16:55:32 so umm here's a topic that got a 21000 grant last year: measure theory in sub-riemannian geometries and applications to robotics 16:55:45 could someone shed some light on that :D 16:56:06 lol 16:56:20 fizzie: Oh, maybe I need some kind of SDL_LockSurface? 16:56:31 "Between calls to SDL_LockSurface and SDL_UnlockSurface, you can write to and read from surface->pixels" -- it's my bloody array, but... 16:56:37 i'm assuming he's going to send his robots into the sun or something 16:57:04 elliott_: Yeah, software surfaces shouldn't need locking. 16:57:06 Nah, that doesn't fix things, alas. 16:57:26 elliott_: Especially if you tried out the "construct it newly for each frame" approach, in that case it definitely shouldn't need any. 16:57:36 Oh, indeed. 16:57:42 This is prepluxing. :/ 16:58:16 You could printf out the top-left 16x16 video memory pixels or something in your draw_frame, and then try to find some proggie that has changing content in that region. 16:58:31 Just to confirm IT KEEPS HAPPENING. 16:58:43 Yeees, I shall enter into the realm of zzo's munching squares. 16:59:46 I'll probably end up making an "XXXtra features" mode where it memory maps fun things like the palette. 16:59:50 That sounds like niceness. 17:00:05 Hmm, wait, do munching squares ever actually hit the top-left 17:01:03 It should. There's that diagonal line part of it. 17:01:16 At least I think it should. 17:02:01 Well, there's only one way to find out. Probably. 17:02:18 Well it... sure doesn't change the first three bytes from 0 here. 17:02:31 -!- zzo38 has joined. 17:02:33 So I guess the problem is in the actual emulation; as they say in the hood, "what". 17:03:29 (I have it on good authority that this is what they say in the hood.) 17:06:54 -!- boily has quit (Ping timeout: 240 seconds). 17:07:46 The Parsec will automatically make up the correct error messages, I can see. It makes this message: expecting white space, "replace", "repeat", "in", "out", "end" or end of input 17:10:14 It seems a very good parser system. 17:15:03 fizzie: Was it you. Did you break my system 17:15:38 I categorically deny such allegations. 17:15:46 I can honestly say I'm not breaking your system right now. 17:16:06 fizzie: HMMMMMMMMMMMMMMMM 17:17:30 static addr pack_addr(word a, word b, word c) 17:17:30 { 17:17:30 return (a >> 16) | (b >> 8) | c; 17:17:30 } 17:17:32 fizzie: Discuss my idiocy 17:17:35 Or wait, is that right 17:19:13 Assuming words are bytes, << sounds more like it. 17:19:19 Yees 17:19:39 So presumably the palette worked because it has the VGA RAM pre-initialised 17:19:52 Woot, that has managed to completely not fi - oh there we go. 17:20:45 What are you doing? 17:21:03 Phantom_Hoover: BytePusher for the hell of it. 17:21:17 fizzie: What is it with the scene and scrollers with text that goes on for chapters, out of interest 17:21:21 (This sine scroller does it) 17:22:11 I think it's just a custom. They had those in the cracktros already, to advertise the group's BBS systems and 0-day warez and other such coolness-inducing things. 17:22:32 Well, yeah, I was wondering what the origin was of someone deciding to make someone get a headache for five minutes ;-) 17:22:42 I can understand coolness over function, but putting all the information there seems silly :P 17:22:42 -!- boily has joined. 17:22:55 Also those things must take years to write. 17:23:04 "GREETZ TO A, B, C, D, [lists every person they've ever met]" 17:23:26 Well, it would be bad manners to not greet someone who greets you. 17:23:38 Hahaha is that an actual thing 17:23:48 Can I just go greetin' random people and LOCK THEM INTO RECIPROCITY 17:24:20 Maybe not quite. you probably also need to do the greeting in some sort of a respectable product. And I think in general the greetz-lists have gotten shorter. 17:24:52 Did the elite SCENE-NESS of it all push you into lowercase land there 17:24:53 (Yes) 17:25:25 It would be fun to write demos but I'd write them all in Haskell and be a social outcast, here lies Elliott killed by marginalising himself in any social group he could possibly interact with on any level 17:26:32 Gregor, you CAN write! 17:26:41 Gregor, but Gregor::novel is write-only. 17:26:47 cheater: I CAN not :P 17:26:58 you CAN write, except no one can READ it. 17:27:13 it's like the schoredinger's novel 17:27:14 Believe me, I CAN't 17:27:22 -!- Taneb has joined. 17:27:25 b-but 17:29:32 Gregor, do you think wolfgang lambda is the next coming of jesus 17:31:11 Do YOUUUUUUUUUUU??? 17:31:24 yes 17:42:08 -!- cheater has quit (Quit: Ex-Chat). 17:42:41 -!- cheater_ has joined. 17:53:10 Can you explain Einsteinian relativity without using any words (that includes numbers, which must be written out as words) longer than four letters? 17:53:23 go fast, it seems slow 17:53:31 *look, not seem 17:53:40 :) 17:58:20 that's a confusing no 18:03:16 -!- cheater_ has quit (Ping timeout: 250 seconds). 18:07:13 zzo38: in english? 18:08:03 can you explain einsteinian relativity without using any words longer than four letters? (that includes numbers, which must be written out as words.) 18:08:24 olsner: Yes I do mean English. 18:08:32 elliott_: I ... might want to make massive rewrites to mudem. 18:08:33 olsner is so dumb that 18:08:48 Gregor: Go on 18:08:51 he couldn't even understand the question of whether you can do that because some of the words were over 4 letters 18:09:19 In what we talk in but easy? 18:09:21 Gregor: It's fairly shitty, I know :) 18:09:21 I have once found a long document that someone has done actually done so. Including the name "Albert Einstein" has been shortened to "Al". 18:09:22 oklopol: what? long word, can't grok 18:10:14 :D 18:10:22 if you refind, please link 18:10:50 http://www.muppetlabs.com/~breadbox/txt/al.html 18:11:00 I've seen it too. 18:11:11 From Brian Raiter of ESOLANG POP CULTURE FAME 18:11:58 Izzy and Al. 18:13:04 Has anyone used SDL's audio API 18:13:33 I have used SDL's audio, my BytePusher implementation uses it 18:14:02 I've dabbled with it too. 18:14:30 zzo38: Shhhh, I'm NIHing. We pretend other implementations of the thing don't exist when I'm NIHing. 18:14:57 fizzie: Why would SDL_OpenAudio hang my program 18:14:58 Not fail or anything 18:14:59 Just hang 18:16:13 Hmm, that shouldn't happen; it doesn't start any playback at that point yet. Unless it's waiting for a busy device or something silly. 18:16:43 des.freq = 15360; 18:16:43 des.format = AUDIO_S8; 18:16:43 des.channels = 1; 18:16:43 des.samples = 4096; 18:16:43 des.callback = audio_callback; 18:16:44 des.userdata = NULL; 18:16:47 Might my callback be messed up? 18:16:57 I wrote it without trying to make it correct at all or thinking 18:17:02 But I'd assume that it waits for unpause before buffering 18:17:03 Maybe that's wrong 18:17:06 I don't think it's even called until you unpause. 18:17:12 Right. 18:17:22 But I could certainly be wrong too. 18:17:46 gdb and break and look at the backtrace and curse your SDL copy for not including debugging symbols? 18:18:20 (gdb) set args Munching_Squares.BytePusher 18:18:20 (gdb) start 18:18:20 Temporary breakpoint 1 at 0x400c50 18:18:20 Starting program: /home/elliott/Code/bytepusher/bytepusher Munching_Squares.BytePusher 18:18:20 [Thread debugging using libthread_db enabled] 18:18:20 Temporary breakpoint 1, 0x0000000000400c50 in main () 18:18:22 (gdb) cont 18:18:24 Continuing. 18:18:26 [New Thread 0x7fffef1fa700 (LWP 14938)] 18:18:28 [Thread 0x7fffef1fa700 (LWP 14938) exited] 18:18:28 -!- cheater has joined. 18:18:30 [New Thread 0x7fffef1fa700 (LWP 14939)] 18:18:32 Then it hangs. 18:18:36 Maybe I should build with -g. :p 18:18:38 #0 0x00007ffff7b7bb8d in ?? () from /usr/lib/libSDL-1.2.so.0 18:18:40 #1 0x00007ffff7b4f054 in SDL_OpenAudio () from /usr/lib/libSDL-1.2.so.0 18:18:42 #2 0x0000000000400cc2 in main () 18:18:44 Oh, useful. 18:18:51 Yes, very. 18:19:22 maybe you're holding its lock or something 18:19:59 I don't think Ubuntu even bothers to have a -dbg package for SDL. 18:20:26 Do you have to initialise audio after video? 18:20:28 That, sounds, uh, wrong. 18:20:31 So I doubt it. 18:21:22 it sounds wrong? that should be a clue that sdl has done it exactly like that :P 18:21:43 But they're separate components. 18:21:48 Oh, I see wut u did thar. 18:21:49 My SDL-audio-using app does SDL_Init(SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO); don't think it matters in which order you call OpenAudio vs. SetVideoMode. 18:22:07 fizzie: Me too. Except audio after video. Do you think that matters? ;-) 18:23:16 Yes, maybe the bits get orred in the wrong order. Maybe audio|video|audio for safety. 18:23:52 You could put something noisy (abort()?) in your callback, but I doubt it's getting called. 18:23:56 -!- cheater_ has joined. 18:24:04 -!- cheater has quit (Ping timeout: 250 seconds). 18:24:23 In olden times I'd believe it was just blocking on open("/dev/dsp"), but... 18:24:32 Yeah, it's not. 18:24:34 strace it too?-) 18:24:36 (Calling the callback.) 18:24:48 clone(child_stack=0x7fc517a31fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fc517a329d0, tls=0x7fc517a32700, child_tidptr=0x7fc517a329d0) = 15062 18:24:48 futex(0x20dd180, FUTEX_WAIT_PRIVATE, 0, NULL) = 0 18:24:48 rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0 18:24:48 rt_sigaction(SIGSEGV, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0 18:24:48 rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0 18:24:50 rt_sigaction(SIGBUS, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0 18:24:52 rt_sigaction(SIGFPE, NULL, {SIG_DFL, [], 0}, 8) = 0 18:24:54 rt_sigaction(SIGFPE, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0 18:24:56 rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0 18:24:58 rt_sigaction(SIGQUIT, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0 18:25:00 rt_sigaction(SIGALRM, NULL, {SIG_DFL, [], 0}, 8) = 0 18:25:02 rt_sigaction(SIGALRM, {SIG_IGN, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0 18:25:06 Suddenly it all makes sense 18:26:16 it does? 18:26:35 Nope 18:26:46 Noisy. Did you have -f (follow-forks) for strace? Not sure if threads count. Though I would guess it's unlikely to *hang* if the audio thread gets borksored. 18:27:58 Sorry, _hang_. 18:28:18 -!- FireFly has joined. 18:28:50 (Awayish.) 18:28:56 fizzie: Wow. 18:28:57 That causes 18:29:00 [pid 15112] nanosleep({0, 1000000}, 0x7f469acf9df0) = 0 18:29:01 Forever 18:29:25 repeatedly sleeping for 1ms then? 18:30:10 [pid 15170] <... futex resumed> ) = 1 18:30:10 is what comes before that 18:35:25 That's I think a common pattern in SDL, the repeated sleeping. 18:35:43 "Poor man's yield." 18:35:46 SDL sure is...s hit. 18:35:47 Possibly the timer thread. 18:35:49 shit. 18:36:50 I think ais523 commented here recently that in some thread it loops a fixed-length (maybe 1ms) nanosleep and a gettimeofday() waiting for the promised time to come. 18:37:06 I somehow don't want to use SDL any more. 18:37:19 But it's the de-facto standard. 18:37:39 How much stuff actually uses SDL 18:37:42 As opposed to SDL + OpenGL 18:37:46 Which is rather different 18:38:21 Well, old-and-strictly-2D stuff probably might use pure SDL. 18:38:25 Also mcmap. :p 18:39:05 I wonder what the level down from SDL is while still staying portable 18:39:12 I mean, ignoring hardware acceleration 18:39:24 only wrong people do 3d 18:39:46 odd dimensions are odd 18:40:46 also was dimension originally a synonym for an obituary 18:40:52 Checking SDL_OpenAudio for things that might concievably hang at a depth of one, like in your call stack. It calls SDL_InitSubSystem(SDL_INIT_AUDIO) if it hasn't been initialized, but you already do that. Then it calls the audio driver's ->OpenAudio, that might easily hang. Finally it spawns the audio thread and returns immediately. 18:41:12 I suppose "inside the audio driver" is the most likely case, of those. 18:42:16 Try "SDL_AUDIODRIVER=pulse ./myproggie"? :) PulseAudio's your friend, as everyone knows. 18:43:01 fizzie: It was opening pulse files in strace, so 18:43:14 -!- zzo38 has quit (Quit: No Road). 18:43:23 AUDIODRIVER=oss works :-) 18:43:35 Thanks, Pulse, you piece of shit 18:43:54 Heh, heh. 18:44:24 How to make something actually audible 18:44:26 Now 18:45:09 Hmm 18:45:10 static void audio_callback(void *userdata, word *stream, int len) 18:45:10 { 18:45:11 unsigned i; 18:45:11 for (i = 0; i < len; i++) 18:45:11 stream[i] = rand(); 18:45:11 } 18:45:18 Suspicious that this makes no sound at all, not even a popping 18:49:38 -!- CakeProphet has joined. 18:49:38 -!- CakeProphet has quit (Changing host). 18:49:38 -!- CakeProphet has joined. 18:50:28 "There's a gay rights organization arguing for Bert and Ernie to come out of the closet. But what I don't understand is, what do you even gain by Bert and Ernie being gay?" "Depends on whether you're Bert or Ernie." 18:51:46 heh 19:05:24 -!- asiekierka has quit (Remote host closed the connection). 19:08:46 Gregor: Help have you used SDL's audio stuff. 19:09:04 -!- CakeProphet has quit (Ping timeout: 260 seconds). 19:10:16 -!- ais523 has joined. 19:10:30 -!- CakeProphet has joined. 19:10:30 -!- CakeProphet has quit (Changing host). 19:10:30 -!- CakeProphet has joined. 19:10:56 hi ais523 19:11:45 hi elliott_ 19:12:12 * ais523 wonders which of the people who said hi as soon as I joined is planning to start a conversation with me, if any 19:12:42 ais523, () 19:13:43 ais523: me 19:13:50 ais523: how does sdl audio work, thanks, 19:14:03 elliott_: I've never actually tried to use it 19:14:07 damn 19:14:13 (nothingness, not you) 19:14:18 DNA Maze currently has no sounds 19:14:34 and it's the only SDL program I've worked on the SDL bits of 19:14:35 what is dna maze 19:14:50 is it a maze shaped like dna 19:16:05 it's a computer game I've been writing for years now (possibly decades) 19:16:08 and never got round to finishing 19:17:03 elliott_: Remember to unpause your audio. :p (This has been a show in our forthgoing Most Useless Tip series.) 19:17:18 fizzie: Wow, I actually managed to not forget. 19:17:30 Was worried there for a second. 19:17:33 (I removed the line earlier.) 19:17:37 elliott_: Nope. 19:17:43 oh 19:18:01 Or have I? 19:18:03 Maybe a bit ... 19:18:13 Yeah, I might have, but have no memory of it. 19:18:14 :DD 19:18:15 random fact, I implemented a version of reset(1) in a much older (DOS) version of DNA Maze 19:18:21 if you started and immediately exited it 19:18:27 so I always had a way to get my terminal back to sanity 19:18:36 I'm not entirely sure why I didn't just write a different program 19:18:43 why have two programs when one can do? 19:18:56 The only thing with "SDL_" in my sdl-audio-using applications are one SDL_OpenAudio(&audiospec, 0), one SDL_CloseAudio() at the end, and SDL_PauseAudio(0) to start and SDL_PauseAudio(1) to stop. That really should be enough. 19:19:17 -!- CakeProphet has quit (Ping timeout: 264 seconds). 19:19:20 fizzie: Well, yeees, but what do your callbacks look like? 19:19:28 fizzie: Soooo you don't plan on actually playing sounds then :P 19:19:48 Gregor: You don't need any other SDL_foo calls, it just calls your callback to fill a buffer. 19:19:51 Gregor: That's not done with SDL_ -- yeah. 19:20:04 OHHHHH, I was thinking of SDL_mixer. 19:20:09 I haven't used SDL_audio directly in fact. 19:20:11 Only mixer. 19:20:14 That's the ``lame-o'' API. 19:20:27 If by "lame-O" you mean "remotely-sane-o" 19:20:36 ais523, there is music composed by parsing the DNA 19:20:53 notably by the deceased Shamen composer 19:21:06 it is, in fact, very musical 19:21:16 elliott_: The callback just uses sid->clock() from resid to fill the buffer. The for-loop with rand() you had in there should be enough for maximum-volume white noise as far as I can tell. 19:22:52 fizzie: Hmm. 19:23:18 Try a third audio driver + make sure your callback's getting called, I guess. 19:23:38 I tried the ALSA driver at least 19:24:00 It's not getting called. 19:24:01 How curious. 19:25:05 -!- CakeProphet has joined. 19:32:29 Now why wouldn't it be calling it. 19:32:54 -!- CakeProphet has quit (Ping timeout: 258 seconds). 19:33:03 Your SDL sound sounds (pun not intended) to be somehow borkended, really. It's not supposed to hang if you don't specify any envvars, after all. 19:35:43 QWOP is really hard 19:35:50 not relaly 19:35:53 *really 19:36:06 i finished it easily 19:36:09 It is if you play it one handed 19:36:20 okay man 19:36:24 i don't tell you this nearly often enough 19:36:27 but you 19:36:27 man 19:36:32 you're the 19:36:32 man 19:36:41 lol 19:37:04 i guess we know who wears the pants in this dialogue 19:37:27 Probably still you. I only IRC in the nude~ 19:37:36 THE MAN 19:37:51 actually i have my clothes on because i keep going to the rain to smoke 19:38:19 I should do that soon, myself 19:38:25 people hang outside 24/7 so i don't really go out naked at all 19:38:32 a few times in the hallway 19:38:39 but that's it 19:39:29 I hope my new roommates aren't douchebags 19:39:39 I think I'd have to kill them all, and that's just gonna raise my rent 19:39:41 -!- CakeProphet has joined. 19:40:31 what do you mean, they'd be buying you food until their dad dies of age 19:41:00 "hello daddy this is your son, nihilistdandy's roommate" 19:41:27 "could you send me some money, i got raped and robbed and stuff" 19:41:29 PERFECT 19:41:32 oklopol did you start smoking because of NihilistDandy 19:41:41 yes, i felt inferior 19:41:41 I hope so 19:41:57 and i was like, how could i make myself cooler? 19:42:00 and well 19:42:22 Who's the coolest camel you know? 19:43:07 It is an empirical fact that smoking makes you cool 19:43:25 i also make smoke rings while saying o 19:43:25 o 19:43:25 o 19:43:26 o 19:43:27 o 19:43:27 o 19:43:31 seriously. how oklo is that? 19:43:54 yes 19:44:05 and some chick came to tell me she put her flowers on the balcony because she's leaving for a few days, but they are not abandoned 19:44:07 (just kidding that's lame and you suck) 19:44:29 you just interpreted my name as a synonym for cool, and then told me i suck 19:44:51 nope 19:44:53 Cognitive dissonance 19:44:53 it's just that 19:44:58 that action doesn't even achieve the oklo level of suck 19:45:03 its not even refined suck 19:45:06 -!- CakeProphet has quit (Ping timeout: 250 seconds). 19:45:15 i see 19:45:22 i think i will cry a bit 19:45:29 sorry 19:45:30 it was 19:45:32 a horrible thing to say 19:45:34 motivate by jealousy 19:46:07 oh okay 19:47:04 -!- CakeProphet has joined. 19:47:04 -!- CakeProphet has quit (Changing host). 19:47:04 -!- CakeProphet has joined. 19:50:06 -!- monqy has joined. 19:55:33 -!- CakeProphet has quit (Ping timeout: 246 seconds). 19:59:12 elliott_, anybody else: Should umlbox have -B -f . be default? 19:59:21 Gregor: -B -f / :-P 19:59:33 -f / is useless with -B :P 19:59:39 It should act like the host system by default, IMO 19:59:45 And then if you want any security you just use the options 19:59:50 Or 19:59:57 That's, like, the opposite of how security systems are supposed to work :P 19:59:57 Just make it read-only system-directories on everything 20:00:01 And no write access 20:00:04 That's -f / 20:00:06 That's how it's "meant to work" :P 20:00:15 Gregor: Excluding /home 20:00:23 I was just about to say I don't really want to include /home. 20:00:30 But then you do have to include ., since that's frequently in a home. 20:01:09 If the common use case is "some snot-nosed student sent me his C code, now I have to run it and try not to eff up my system", you want . :P 20:02:17 hmm, would that work for Java too? 20:02:25 For anything 20:02:35 marking other people's code always worries me a bit 20:02:39 in case there's some sort of trojan in there 20:02:40 -!- CakeProphet has joined. 20:02:40 -!- CakeProphet has quit (Changing host). 20:02:40 -!- CakeProphet has joined. 20:03:13 ais523: UMLBox is basically like creating an VM and tearing it down within seconds, except it works on selectively-exposed parts of your host filesystem 20:03:21 Gregor: So what were the sweeping changes to mudem you wanted 20:03:38 I did end up having to use a full VM to test the kernel patches 20:03:46 elliott_: I can't figure out why it doesn't work, so I was going to rewrite it just taking the core connection code :P 20:03:49 Well, UML is a kernel 20:03:53 So ostensibly kernel patches will work 20:03:56 /especially/ because several of them crashed the system 20:03:59 Probably not drivers though 20:04:08 Gregor: Just rewrite it in C, I won't mind :-P 20:04:11 they were hooking the keyboard interrupt 20:04:18 I "thought" it was an easy problem 20:04:22 Which it obviously isn't 20:04:27 No, it's not >_< 20:04:29 Although it tastes like one. 20:04:43 Well, I mean, mudem almost works, it just has some stupid bug 20:04:47 But it's at the non-trivial level already 20:04:54 It'd easily be thrice the length in C, after all 20:05:16 ais523: UMLBox really wouldn't help with kernel patches, but my two primary uses of it are hack{bot,iki} and grading student code, so that latter case is major :P 20:05:27 okayh 20:05:28 ppeoelolke 20:05:30 don't panic! 20:05:31 but 20:05:36 ther'es a fucking 7 20:05:36 ais523: See http://bitbucket.org/GregorR/umlbox btw 20:05:39 Gregor: heh, do we both teach programming? 20:05:40 in my minesweeper 20:05:45 what language do you teach? 20:05:50 oh my hgod og mt god og myt dog 20:05:52 ais523: This upcoming term, C. 20:05:52 oklopol: i got a seventeen once 20:06:00 Gregor: HAVE FUN WITH THAT 20:06:02 comeon shut up this is fucking huge 20:06:03 malloc(size_t int) 20:06:07 elliott_: 's a good one to have UMLBox for :P 20:06:11 do you realize i play this game like every hour of every day 20:06:15 oklopol: :))) 20:06:16 Gregor: have you tried to teach C before? 20:06:30 and i've never seen a 7 except i probably have but was not this high 20:06:35 ais523: I'm just a TA, I'm not doing the "primary" teaching 20:06:35 the fourth-year C students I taught last year were much worse than the first-year Java students I taught the same year 20:06:37 but seriously shit :D 20:06:38 same 20:06:40 a fucking 7! 20:06:59 ais523: But yeah, I expect failure in all dimensions. 20:07:19 it didn't help that the lecturer in charge of the course had to take a couple of months off due to illness 20:07:43 Gregor: Do you expect sizeof to be typo'd as size_t because of an IDE? 20:07:48 ais523 KNOWS HORRORS YOU DO NOT 20:07:51 -!- CakeProphet has quit (Ping timeout: 240 seconds). 20:07:55 elliott_: No IDEs 20:08:03 We're hardcore at Purdue :P 20:08:10 Gregor: YOU CAN'T STOP THE KIDS FROM USING NETBEANS 20:08:15 LEGALISE IDES 20:08:29 Dood, NetBeans is a gateway drug. 20:08:38 You let them have it, and soon they'll be using Eclipse. 20:08:46 NetBeans is fine for Java 20:08:50 Let them do that, and it's only a matter of time before they're making UML (the bad one) diagrams. 20:08:52 it shouldn't be used for C 20:09:03 Gregor: And we all know someone who's descended down a long spiral towards the slow death that is Maven. 20:09:06 -!- CakeProphet has joined. 20:09:08 I went there myself. I may never truly recover. 20:09:15 bounce bounce bounce 20:09:24 http://pastebin.com/SjK8RFvt 20:09:29 this is completely reasonable code right? 20:09:48 I, umm, don't know, it's in C# 20:09:50 I am beginning to suspect that webkits javascript interpreter does not support file IO 20:09:51 can that be considered reasonable? 20:09:56 var f = new File('"+f.Name+@"'); 20:09:57 no. 20:09:59 that is not acceptable. 20:10:04 for the requirements I was given, it is. 20:10:10 no 20:10:10 elliott_: you'd prefer String.Format yes? 20:10:15 no 20:10:22 what does @ before a string literal mean? 20:10:24 bind the value to an object you can access from inside 20:10:30 multi-line. 20:10:34 none of this string splicing shit that _will_ get you killed 20:10:53 also, why do you have executable code in a string literal anyway? 20:11:14 CakeProphet: note that «"); bad_function("» is a perfectly legal filename 20:11:19 ais523: that's ok as long as it's not interpolated or anything 20:11:24 new File(this.storedName); 20:11:26 elliott_: what does that even mean. 20:11:28 then assign it from C hash 20:11:31 which I'm sure is possible 20:11:35 CakeProphet: i see you're new to programming 20:11:43 elliott_: even if it isn't interpolated, it's still a bad idea in a compiled language, but for different reasons 20:12:05 there's a reason why in Perl, eval {} is considered sane, and eval "" is considered insane 20:12:16 and Perl isn't even a properly compiled language 20:12:19 elliott_: that's impossible. 20:12:21 to do. 20:12:26 given my current situation. 20:12:41 CakeProphet: No. 20:12:42 It isn't. 20:12:49 If the language. Offers any kind of interaction with the JS object model at all. 20:12:53 s/language/binding/ 20:12:56 Which, as it's WebKit, it... does. 20:13:01 I'm sure Gregor can tell you more ;-) 20:13:21 I mean, even serialising to JSON would be saner 20:13:28 even if you just parse it with eval at the other end 20:13:41 because that avoids any sort of injection issue 20:13:46 What are we talking about? 20:14:04 Gregor: WebKit. 20:14:07 var f = new File('"+f.Name+@"'); 20:14:08 Gregor: a C# program written by CakeProphet which generates JavaScript code by concatenating string literals 20:14:17 CakeProphet thinks this is acceptable behaviour to use the WebKit API with. 20:14:18 with variables 20:14:18 nope 20:14:18 thus why I'm resorting to temporary file hacks. 20:14:19 elliott_: it doesn't, I assure you. It's a shitty C# binding of webkit. 20:14:28 CakeProphet: "Binding", i.e. with the same methods as WebKit. 20:14:33 Or it's not really a binding, in which case don't use it 20:14:43 oh, I didn't even realise that the temporary file was being made just to transmit information 20:14:47 * Gregor goes back to not caring :P 20:14:51 I'm trying to figure out if that's even worse, or just not quite as bad 20:15:01 I see no guarantees on the name of the created file for System.IO.Path.GetTempFileName 20:15:05 Other than it has the .TMP extension 20:15:07 ais523: also code injection shouldn't be a problem since the file name is always generated by GetTempFileName. 20:15:08 elliott_: not acceptable, but necessary. 20:15:08 because these bindings DO NOT have DOM access in C# 20:15:08 I have looked EVERYWHERE. 20:15:08 trust me. 20:15:35 CakeProphet: how do you know that GetTempFileName never puts double quotes or backslashes in the filename? 20:15:39 So don't use C# 20:15:48 You decided on C# of your own accord in the same place 20:15:55 So good masochism :P 20:16:04 ais523: Well that's illegal in Windows (but not NTFS) 20:16:08 But it's no way reliable :P 20:16:28 but but C# is portable! 20:17:12 ais523: using Gtk; 20:17:18 I bet Gtk# is soooooo native on Windows 20:18:01 well, GIMP works on Windows 20:18:07 so GTK probaly does too 20:18:09 *probably 20:19:24 -!- CakeProphet has quit (Ping timeout: 240 seconds). 20:19:32 Come on, though, Gtk# is a Mono thing :-P 20:19:39 http://gtk.php.net/ Oh, this must surely be quality 20:19:55 Every time I use Gtk I think "man, I wish I could be doing this in PHP". 20:26:24 does Mono work on Windows, incidentally? 20:26:28 my guess is yes, but I'm not sure 20:26:32 yes 20:26:36 and, I think, Wine 20:26:59 I know that the main advertising point of Mono is that it works on both Android and iPhone 20:27:08 wat 20:27:10 heh 20:27:42 -!- CakeProphet has joined. 20:27:42 -!- CakeProphet has quit (Changing host). 20:27:42 -!- CakeProphet has joined. 20:27:46 I guess I'll fix/optimise/finish bytepusher.c tomorrow 20:27:57 Maybe write a bootsector implementation :P 20:29:02 Can somebody with Cygwin give me the uname -a output please? 20:30:19 haha, Righthaven (a group of copyright trolls) lost a court case they brought and were made to pay the defendants' legal fees because they didn't own the copyrights they were trying to sue over 20:30:33 and tried to claim that they didn't have to pay because the court didn't have jurisdiction anyway 20:30:50 -!- CakeProphet has quit (Read error: Operation timed out). 20:32:02 -!- CakeProphet has joined. 20:32:02 -!- CakeProphet has quit (Changing host). 20:32:02 -!- CakeProphet has joined. 20:33:03 wow I hate my internet right now. 20:33:30 -!- elliott_ has quit (Ping timeout: 252 seconds). 20:33:32 currently reading the logs is more reliable than actually usingf my client. 20:36:04 Welp, that's what stalker mode is for. 20:36:43 -!- CakeProp1et has joined. 20:38:43 -!- boily has quit (Ping timeout: 260 seconds). 20:39:18 actually I have no say in the language choice because I am being hired to do this with existing software. 20:39:41 -!- CakeProphet has quit (Ping timeout: 258 seconds). 20:39:54 it just so happens that all of the C# browser rendering engines are shit and I'm using the only one that seems to have legitimate DOM access. 20:43:23 aha I have a solution. 20:43:43 I'll just use other DOM objects, and then only use WebKit for rendering. 20:49:39 If you mean exporting the DOM tree back to HTML/XHTML and then rendering it with WebKit, that doesn't sound like a real solution, especially if you need to access the DOM after the page in question's scripts have had a field day with it. 20:50:24 -!- CakeProp1et has quit (Ping timeout: 240 seconds). 21:02:26 -!- CakeProphet has joined. 21:02:26 -!- CakeProphet has quit (Changing host). 21:02:26 -!- CakeProphet has joined. 21:02:34 (new StreamReader(HttpWebRequest.Create(url).GetResponse().GetResponseStream(), Encoding.UTF8)).ReadToEnd() 21:03:00 this is literally everything you have to do in C# to fetch a URL.. normally this code is written over multiple lines but I decided to make it a one-liner. 21:09:07 -!- CakeProphet has quit (Ping timeout: 258 seconds). 21:09:56 -!- CakeProphet has joined. 21:09:56 -!- CakeProphet has quit (Changing host). 21:09:56 -!- CakeProphet has joined. 21:14:24 $ perl -e 'use LWP::Simple; print get("http://esolangs.org/");' | head -n 1 21:14:24 21:14:30 That is literally everything you have to do in Perl. 21:15:01 http://qntm.org/tetris 21:15:12 Isn't the second hypothesis obviously true? 21:15:42 Since if you're given only z- or s-tetrominoes, you can't assemble a line. 21:16:53 If the well is of even width (like I think it usually is), you can just put your z- or s-pieces all on the pointy end, filling the second-lowest line. 21:17:11 Oh, yeah. 21:18:23 -!- GreaseMonkey has joined. 21:18:31 -!- GreaseMonkey has quit (Changing host). 21:18:31 -!- GreaseMonkey has joined. 21:18:42 "It's also aggravating and frustrating. C's strict type safety is wonderful, except when it isn't." 21:18:44 Um. 21:18:45 Sam. 21:20:26 -!- variable has quit (Ping timeout: 250 seconds). 21:21:46 -!- CakeProphet has quit (Ping timeout: 258 seconds). 21:23:45 -!- BeholdMyGlory has quit (Remote host closed the connection). 21:25:50 -!- FireFly has quit (Quit: FireFly). 21:28:10 -!- variable has joined. 21:28:11 -!- variable has quit (Excess Flood). 21:29:09 -!- variable has joined. 21:33:42 -!- adam_ has joined. 21:34:28 Phantom_Hoover: it's a pretty strict type system. Casts require that the types you cast to have names. 21:34:28 -!- adam_ has changed nick to CakeProphet. 21:34:29 -!- CakeProphet has quit (Client Quit). 21:43:09 -!- sut-heb has quit. 21:43:15 -!- sut-heb has joined. 21:57:07 Friggin' oral surgery. 21:59:31 -!- CakeProphet has joined. 21:59:31 -!- CakeProphet has quit (Changing host). 21:59:31 -!- CakeProphet has joined. 22:04:19 -!- CakeProphet has quit (Ping timeout: 258 seconds). 22:08:05 HALP 22:08:08 I've watched BLR too much. 22:08:13 Black Umbrella is starting to make sense. 22:19:21 -!- Taneb has quit (Quit: He's a big quitter he is). 22:19:40 As it happens, I must wakirth. 22:19:42 -!- Phantom_Hoover has quit (Quit: Leaving). 22:20:12 -!- CakeProphet has joined. 22:20:12 -!- CakeProphet has quit (Changing host). 22:20:12 -!- CakeProphet has joined. 22:21:37 * CakeProphet rockin' in stalkr mode. 22:27:23 -!- CakeProphet has quit (Ping timeout: 258 seconds). 22:28:42 -!- CakeProphet has joined. 22:28:42 -!- CakeProphet has quit (Changing host). 22:28:42 -!- CakeProphet has joined. 22:29:22 -!- zzo38 has joined. 22:29:42 -!- augur_ has joined. 22:31:04 -!- augur has quit (Ping timeout: 250 seconds). 22:31:18 -!- pikhq_ has quit (Ping timeout: 246 seconds). 22:31:32 -!- pikhq has joined. 22:37:43 -!- CakeProphet has quit (Ping timeout: 276 seconds). 23:05:31 -!- PatashuWarg has joined. 23:08:07 -!- lambdabot has quit (Ping timeout: 251 seconds). 23:55:03 -!- CakeProphet has joined. 23:55:30 you will be pleased to know that I've found a solution that doesn't involve any javascript / temp file hacks: http://pastebin.com/hVEXB8Zn 23:56:48 nothing interesting happening really...just a bunch of glue 23:57:27 I'm pretty sure freelancing is all about the glue...