00:01:00 Okay, I've got paper 3 as well. 00:01:07 elliott: it's at http://www.mscand.dk/article.php?id=153 00:01:43 oh man this is great for glazing 00:01:46 i thought i remembered someone found one of them publicly available before 00:02:10 oerjan: it might have been do you think it might have been http://www.mscand.dk/article.php?id=153? 00:02:10 oerjan: pls set future papers in computer modern for more effective gazing experience 00:02:14 (the joke is "future papers") 00:02:28 tswett: QUITE POSSIBLE 00:03:00 elliott: i'm pretty sure the journals decide on fonts? 00:03:40 oerjan: how coudl you publish in aj ournal using times :( 00:03:52 "betrayed his responsibility to society" -ronald raegean 00:04:36 A dynamical system is minimal if every point's orbit is dense? That sounds... like a strange thing to say. 00:05:19 Oh shucks, I bet topological dynamical systems can generate these fancy-schmancy sequences. Take a point's orbit and apply some function to it elementwise. 00:05:20 tswett: it means there are no non-trivial closed subsystems 00:05:38 *you're* a non-trivial closed subsystem, lol 00:05:47 "oh snap" --bill clinton 00:06:23 "oh crap" --bill 00:07:19 * oerjan notes there is no actual picture of a bratteli-vershik diagram in that one 00:07:47 there's a nice one in the toeplitz paper iirc 00:09:34 This one is the Toeplitz one. 00:11:39 tswett: generally to get sequences you want to partition the space into clopen sets corresponding to your zero index value 00:12:03 and for the toeplitz case i recall this can be done iff you have the "expansive" criterion 00:12:54 actually that may be in general 00:23:29 this is a weird channel 00:23:29 kmc: You have 1 new message. '/msg lambdabot @messages' to read it. 00:24:38 kmc: AGAIN? 00:24:56 Of course is weird channel!!!!???????!!!!!!!!???!!!!?!?!?!!!!???!!!!!!!!????!!!?!?!!???!!!!!!?!?!!!???!!!!!!!!!!!!!!?!!!!!?!?!??!!!?!?!!! 00:25:29 > map length $ group "!!!!???????!!!!!!!!???!!!!?!?!?!!!!???!!!!!!!!????!!!?!?!!???!!!!!!?!?!!!???!!!!!!!!!!!!!!?!!!!!?!?!??!!!?!?!!!" 00:25:30 [4,7,8,3,4,1,1,1,1,1,4,3,8,4,3,1,1,1,2,3,6,1,1,1,3,3,14,1,5,1,1,1,1,2,3,1,1... 00:25:32 kmc: 18:43:11: But gopher://zzo38computer.foeug3g47fgeg34.ch3p-h4rbl-vjaagra.co.ng:22/../../warez2.php not only looks wrong, and uses . as the type, but doesn't even resolve. I am unsure why kmc posted this wrong URL, possibly to confuse you??? 00:25:38 did you do it to confuse you :( 00:25:43 @oeis 4,7,8,3,4,1,1,1,1,1 00:25:51 Sequence not found. 00:25:56 the zzo sequence 00:26:07 * oerjan is disappoint 00:26:14 -!- GreaseMonkey has joined. 00:26:14 -!- GreaseMonkey has quit (Changing host). 00:26:14 -!- GreaseMonkey has joined. 00:26:29 the triple kiwi entrance 00:27:55 i did it to confuse you elliott 00:29:17 :( 00:29:33 i'm sure your confusion has been bothering you all day 00:29:39 elliott: Are you confused you now? 00:29:50 im confuse 00:31:53 zzo38, luite was working on something like Wolfram Alpha in Haskell 00:32:01 called it Wolfgang Lambda 00:32:27 that thing was cool i remember that hing 00:32:48 i don't think "reimplement it in Haskell" is the way to make wolfram alpha better 00:32:57 it wasn't really W|Ay was it 00:33:03 at least i dont recall any free-text stuff 00:33:08 it was more CASy 00:33:09 I don't think luite's thing was "reimplementing Wolfram Alpha". 00:33:09 i mean i know all software is better if it's written in Haskell 00:33:13 like mathematica notebooks 00:33:53 not all software 00:34:04 software written in agda does not get better by being rewritten in haskell 00:34:16 yes it does 00:34:18 significant unicode reduction 00:34:30 and by reimplementing your software in haskell, you eliminate the need to test or document it 00:35:11 kmc: I thought the way it went was that all you need to do is talk about how the software would be easy to reimplement in Haskell. 00:35:16 elliott: that is not a good thing 00:35:17 You need to actually do it? 00:35:58 yeah, that's even better 00:36:05 only haskell experts can do that though 00:36:10 the great unicode plague of december 2012 00:36:11 wow it's almost as if i've heard this exact exchange five times in the past three days 00:36:26 haha 00:36:57 oerjan: oh that explains it 00:37:18 -!- CHeReP has joined. 00:37:31 `welcome CHeReP 00:37:38 CHeReP: 00:37:46 >_< 00:37:49 `welcome CHeReP 00:37:53 CHeReP: 00:37:54 womp womp 00:38:04 AGAIN? 00:38:20 CHeReP: i'm afraid our bot refuses to tell you what we're doing here 00:38:31 `welcome CHeReP 00:38:33 CHeReP: 00:38:39 `welcome cherp 00:38:43 cherp: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:38:43 hm... 00:38:47 cherp cherp 00:38:59 O_o 00:39:16 does welcome have caps problems 00:39:25 `@ CHeReP ? welcome 00:39:28 CHeReP: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:39:32 wtf 00:39:45 `welcome CHeReP 00:39:51 CHeReP: 00:39:59 CHeReP: sorry about the debugging 00:40:04 what's welcome 00:40:12 `welcome BaTMaN 00:40:16 BaTMaN: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:40:24 `welcome BaTMaN 00:40:28 BaTMaN: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:40:33 `welcome BAtMaN 00:40:37 BAtMaN: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:40:42 !! 00:40:50 -!- myndzi has quit (Ping timeout: 268 seconds). 00:41:01 `welcome DIfSfQ 00:41:05 DIfSfQ: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:41:09 ?!? 00:41:34 `welcome CHeReP 00:41:37 CHeReP: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:41:44 * tswett shrugs. 00:41:51 oh i 00:41:52 think i get it 00:41:53 now 00:41:56 `welcome monqy 00:42:00 monqy: 00:42:01 `welcome tswett 00:42:04 `welcome oerjan 00:42:05 tswett: 00:42:08 oerjan: 00:42:16 `welcome CHeReP 00:42:17 monqy: WHAT 00:42:20 CHeReP: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:42:34 its a magic 00:43:05 *sigh* 00:43:08 `welcome monqy yqnom 00:43:12 monqy: yqnom: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:43:38 `welcome Blah 00:43:38 `welcome oerjan 00:43:41 `welcome monqy yqnom monquey 00:43:43 Blah: 00:43:44 `welcome oerjan oerjan oerjan oerjan oerjan oerjan oerjan oerjan oerjan oerjan oerjan 00:43:46 I get it 00:43:49 monqy: yqnom: monquey: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:43:49 sgeo gets it 00:43:50 oerjan: oerjan: oerjan: oerjan: oerjan: oerjan: oerjan: oerjan: oerjan: oerjan: oerjan: 00:44:05 how does it 00:44:06 work 00:44:07 i dont get it 00:44:08 its a 00:44:10 perle 00:44:14 that 00:44:15 doesnmt explain 00:44:20 :0 00:44:21 Shall I explain? 00:44:29 `cat bin/welcome 00:44:31 explained. 00:44:33 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; } 00:44:40 oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:44:40 It's a space 00:44:41 At the end 00:44:49 o k 00:44:54 argh 00:45:02 `welcome oerjan 00:45:06 oerjan: 00:45:08 `welcome oerjan 00:45:12 oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:45:20 * oerjan facepalm 00:46:05 today we learned 00:46:10 my hatred of perl rewrites of scripts 00:46:11 is legitimate 00:47:32 monqy: i want to pay a detective to find me the owner of sourcereal.com 00:47:38 an internet detective 00:48:27 -!- myndzi has joined. 00:48:37 Can you use WHOIS service to try? 00:48:51 i just tried; it was unhelphfuel 00:49:07 `run sed -i 's!{!{ s/ *$/; ' bin/welcome 00:49:11 sed: -e expression #1, char 14: unterminated `s' command 00:49:15 It was not healthfuel. 00:49:23 `run sed -i 's!{!{ s/ *$/; !' bin/welcome 00:49:26 No output. 00:49:32 `cat bin/welcome 00:49:35 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$/; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; } 00:49:44 oops 00:50:03 i blame perl 00:50:12 i blame knit 00:50:13 `run sed -i 's!;!/;!' bin/welcome 00:50:16 No output. 00:50:22 `cat bin/welcome 00:50:25 registrent was mysteries, registered domain by progxy 00:50:25 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; } 00:50:36 `welcome oerjan 00:50:39 oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:50:43 `welcome oerjan 00:50:47 oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:50:50 `welcome oerjan oerjan 00:50:53 I never got welcomed in here. :-( 00:50:54 oerjan: oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:51:00 `welcome shachaf 00:51:04 shachaf: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 00:51:16 oerjan++ # has a heart. unlike some people in this channel 00:51:49 `unwelcome shachaf 00:51:52 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: unwelcome: not found 00:52:45 elliott has a negative heart. 00:54:01 kill the planet 00:56:00 is the planet dead yet 00:56:04 update on planet mortality??? 00:56:55 Sam Hughes probably isn't up at this hour. 00:56:56 very dead 00:56:59 well, zzo38 and I are going to go invent a language with at least 20 pronouns <-- check out the bantu language family 00:57:10 not quite 20 maybe, but... 00:57:24 -!- zzo38 has quit (Quit: My internet will be down for a few hours today for maintenance. If that happen, try again in the next day.). 00:57:32 Phantom_Hoover: It depends on which one. 00:57:35 oerjan: 5 pronouns will be for the previously used pronouns 00:57:42 so as new things are reffered to by pronouns 00:57:47 shachaf, the important one. 00:57:58 the old ones move further up in the pronoun queue 00:58:31 and also sign language iirc 01:00:49 shachaf: Do you remember The Good Old Hpaste? 01:00:58 * elliott has decided to be nostalgic about hpaste tonight. 01:01:10 elliott: I remember that hpaste! 01:01:17 Didn't sorear write it? 01:01:25 All I remember was it was hosted on moonpatio. 01:01:30 It had so many good pastes taht are now lost in the mists of time. 01:01:32 Dot something (net?). 01:01:48 I seem to remember it actually went through two incarnations, at least I remember it suddenly getting a fancier design at one point. 01:02:47 * elliott tries to remember the URL to Web Archiveify it. 01:03:06 Ah, moonpatio.com:8080/fastcgi/hpaste.fcgi 01:03:27 "We were unable to get the robots.txt document to display this page." 01:03:30 Wasn't that just an interim hpaste? 01:03:43 I think archive.org have, at some point along the line, forgotten that they're meant to be archiving sites that might die. 01:04:01 shachaf: Maybe? 01:05:59 -!- pikhq has joined. 01:06:04 shachaf : Maybe ? 01:06:38 I'm going to assume that's a combination of Haskell, Agda, and Miranda. 01:06:49 Did Miranda have a ? type or something? 01:06:49 * Sgeo is tempted to use Data.Has 01:07:50 what is has 01:08:14 dont monqy dont 01:08:17 you wont recover 01:08:20 its not for human 01:08:28 elliott: Oops, I was confusing ? with *. 01:08:37 -!- pikhq_ has quit (Ping timeout: 252 seconds). 01:09:00 Miranda's *** notation was the best thing. 01:09:09 Did you hear my exciting proposal for type class polymorphism? 01:09:26 foo :: Num -> Num -> Num ==> foo :: Num a => a -> a -> a 01:09:48 foo :: Num -> NumNum -> Num ==> foo :: (Num a, Num b) => a -> b -> a 01:09:55 Miranda's *** notation was the best thing. 01:09:59 Elaborate so I don't have to Google. 01:10:14 Also, you shouldn't have to specify NumNum like that. 01:10:19 foo :: Num -> Num -> Num 01:10:20 ==> 01:10:20 elliott: In Miranda, you'd say map :: (* -> **) -> [*] -> [**] 01:10:27 foo :: (Num a, Num b, Num c) => a -> b -> c 01:10:34 *except* that if two variables must be unified to make things work, they are, automatically. 01:11:00 shachaf: Finally we're rid of the horrible impurity of the alphabet. 01:11:10 finally in the past 01:11:15 elliott: Is this some competition for who can make the worst proposal? 01:11:47 Yes. 01:12:13 elliott: To be fair, Haskell's solution of "uppercase/lowercase" is also kind of horrible. 01:12:32 Why does Haskell have implicit quantification, anyway? Implici quantification is the root of all evil. 01:12:48 -!- pir^2 has joined. 01:12:59 converse::(*->**->***)->**->*->***; converse f a b = f b a 01:13:10 shachaf: Do you remember that guy on #haskell who claimed that leaving out the "forall"s made a huge difference because it's, like, so much easier to teach, and it has more meaning because you're talking directly about variables in the metalanguage, rather than reducing it to an internal abstraction, or something? 01:13:17 That was WILD. 01:13:23 Does anyone here know what is supposed to happen if you < on the leftmost cell in BF? 01:13:33 elliott: No, I don't remember that. 01:13:37 (They didn't actually say most of those things, but I can't remember what they actually said because it was too weird to remember.) 01:13:48 pir^2: It's not standard. 01:14:00 pir^2: A program that does that is broken. 01:14:04 Generally. 01:14:12 Most implementations only do a right-infinite tape (if that). 01:14:14 ok 01:14:29 So ignoring it is OK? 01:14:52 * Sgeo is tempted to use Data.Has to solve his problems 01:14:59 again? 01:15:10 pir^2: Sure. 01:15:10 -!- Nisstyre has quit (Ping timeout: 252 seconds). 01:15:19 Hey guys, I think Sgeo is tempted to use Data.Has. 01:15:32 * shachaf Data.Has no idea what that is. 01:15:40 I think Sgeo is also tempted to say that repeatedly in #esoteric until someone is sufficiently caught off-guard to be silly enough to try and talk him out of it. 01:15:51 Oh, didn't remember that I said it before 01:15:54 module Data where data Has = Has `Has` Has 01:15:57 import Data (Has) 01:15:58 -!- MDude has quit (Ping timeout: 240 seconds). 01:16:07 Sgeo: 17:06:47 * Sgeo is tempted to use Data.Has 01:16:08 * shachaf `Data.Has` no idea 01:16:50 and mere minutes later 01:16:53 17:14:50 * Sgeo is tempted to use Data.Has to solve his problems 01:17:17 I still don't even know what it is 01:17:26 http://chrisdone.com/posts/2010-11-22-duck-typing-in-haskell.html 01:17:33 no 01:17:34 no 01:17:34 no 01:17:38 domnt 01:17:40 duckt ype 01:17:47 * shachaf away 01:18:07 im not even going to rtead that im just going to shout at y ou 01:18:10 until you 01:18:11 monqy: I suggest smiling and letting Sgeo dig himself into the hole that is http://hackage.haskell.org/packages/archive/has/0.5.0.1/doc/html/Data-Has.html rather than trying to prematurely explain to him why it's a terrible idea. 01:18:11 make it stop 01:18:16 (This is because he won't listen.) 01:18:23 ok 01:18:24 i;ll 01:18:27 let sgeo holdeig 01:18:28 I don't think it really is duck typing 01:18:35 and then he;ll not notice the hole, amyBE? 01:18:42 and 01:18:53 What's the name for the thing that Scala has? I think it's like that 01:18:56 structural typing? 01:18:59 shit 01:20:07 l o l s 01:21:23 HEY GUYS DO YOU WANT TO HEAR A JOKE 01:21:24 scala 01:21:32 ha 01:21:32 ha 01:21:33 ha 01:21:59 good thing i don't know scala so i don't get it (thumbs up) 01:22:02 I just mention it because structural typing seems like a more accurate description for Data.Has than Duck typing 01:22:05 Sgeo, "structural subtyping" is a thing 01:22:05 elliott: I think if given the opportunity I would elect to use Scala over Java 01:23:08 or maybe Clojure . 01:23:14 https://github.com/ChickenProp/sysfuck hey someone reinvented psox except they actually wrote more than like ten lines of it and wrote a really irritating readme *thumbs up* 01:23:27 oh it even involves nul bytes too 01:23:43 I prefer the name psox over sysfuck 01:23:51 fuckfuck 01:23:54 good name 01:24:02 fuckfuck is awful and whoever invented it is awful 01:24:11 for inventing it 01:24:44 what if its 01:24:44 you 01:24:56 but its not me,,,,,,,,, 01:24:58 but "knob arse cock knob butt" is such an endearing cat program 01:25:14 "Entiry based records. To use this module, you have to write LANGUGAGE pragma" <-- O KAY 01:25:48 entiry 01:25:54 langugage 01:26:04 its entiry reasonable if you ask me 01:26:06 ha ha ha ah ah 01:26:20 sysfuck allows more access to stuff without having to write I-forget-what-I-called-them 01:26:51 oh 01:26:58 hyeres my "pee socks" extension language 01:27:00 domains, I think 01:27:03 you write a c program to stdout 01:27:05 print a nul byte 01:27:10 and its output gets connected to your stdin 01:27:13 when it exits the whole thing loops 01:27:19 completely extensible(tm) 01:27:24 you can even write portable things 01:27:26 monqy, hi 01:27:29 by writing a program that figures out how to structure the program 01:27:30 CHeReP: hi 01:27:32 and using the result of that to write a new one 01:27:33 i'am not a bot) 01:27:34 magic(tm) 01:27:52 CHeReP: me too! 01:27:58 cool) 01:28:01 im ab ot 01:28:05 fungot is bot 01:28:05 elliott: trust me. this system is way cheaper. or that dirty dancing bad-apple my father forbids me to see. daily radar is on the same console, for the warrior? full. 01:28:11 ^styl 01:28:12 The Data.Has person at least got the LANGUAGE in the pragma right :/ 01:28:12 ^style 01:28:12 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa* qwantz sms speeches ss wp youtube 01:28:26 what if i was a bot 01:28:28 and claimed not to be a bot 01:28:31 why you dont sleep ? 01:28:33 and got upset when anyone called me a bot 01:28:33 what if I wasn't a bot? 01:28:45 But what I need is something like Data.Has except ... more competent. 01:28:50 what if I asked a what if question 01:28:51 then what? 01:28:52 what happens? 01:28:53 explain 01:28:55 help 01:29:15 Sgeo: what you need is a better design 01:29:15 Data.Records won't compile on 7.x due to a stupid contraint on base 01:29:26 elliott: unpossible such no thing 01:29:40 Sgeo: what are you even trying to do 01:29:53 no monqy 01:29:55 don't 01:29:58 you never 01:29:59 learn 01:30:06 Deal with the hundreds of named global ... values in the AW SDK. 01:30:08 is this the activeworlds bot for which you wanted an awful TH 01:30:15 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah 01:30:29 monqy: 01:30:32 Only some of which are initialized on any given event handler or callback 01:30:34 you need to 01:30:36 become more street-wise 01:30:46 And only some of which need to be set when calling certain functions 01:30:47 street wise killed my parents 01:31:11 Suppose I have two events that set similar sets of attributes 01:31:26 I wonder how awkward talking about brianfuck in a job interview would be 01:31:34 because it requires you to use PROFANE LANGUAGE. 01:31:36 And I want a function that takes some of those attributes and gives me a higher-level wrapper 01:31:43 erm, just a record, whatever 01:31:57 most jobs i've interviewed for, nobody would give a fuck 01:32:00 But the events give slightly different data 01:32:09 kmc: well yeah 01:32:10 nobody would give a 01:32:11 ... 01:32:12 ........ 01:32:13 ..................... 01:32:15 ............ 01:32:15 brainfuck 01:32:16 ....... 01:32:16 ... 01:32:18 fuck 01:32:18 you 01:32:31 you ruined EVERYTHING 01:32:43 that's okay it's okay. 01:32:46 no 01:33:03 Sgeo: i have NO IDEA what you just said 01:33:20 none 0 01:33:26 In the AW SDK, there are a bunch of "attributes" 01:33:31 ok 01:33:34 stop stop ostooop 01:33:37 Retrieved with functions like aw_int(SOME_ATTRIBUTE); 01:33:49 ok 01:33:49 And set with things like aw_int_set(SOMEATTRIBUTE, 0); 01:33:54 ok 01:34:01 creys 01:34:19 (crey is like cray but british) 01:34:31 http://upload.wikimedia.org/wikipedia/commons/f/f8/Color_icon_gray_v2.svg mmmm grey 01:34:33 Some events will, when the event handler is run, give data to the event handler by setting attributes 01:34:39 Same with callbacks. 01:34:56 (That's the only way data gets to the event or callback) 01:35:01 what is a 01:35:02 data 01:35:03 event 01:35:04 handler 01:35:06 callback 01:35:15 monqy is bad at programming. 01:35:15 NO 01:35:15 attributes 01:35:16 I FORBID IT 01:35:20 I FORBID 01:35:21 THE QUESTIONING 01:35:30 data event handler callback factory visitor 01:35:37 attributes are the things retrieved with aw_int() and set with aw_int_set() 01:35:39 monqy: attributes are global variables in this case, pretty much. 01:35:43 * elliott slams channel into brick wall repeatedly 01:35:43 (Or variations for different types) 01:35:59 * elliott douses channel in fire 01:36:25 an attribute in a Haskell wrapper of this would basically be like an IORef 01:36:42 * elliott throws channel into sea 01:36:47 (the channel is still on fire) 01:36:57 (fire remains even in sea) 01:37:00 ah help I am burning-drowning 01:37:15 Event handlers can be set for events that occur in Active Worlds. The event handler is a function pointer. The function receives 0 arguments. When the event has data associated with it (say, the name of someone who is now nearby), that's retrieved from an attribute. 01:37:26 kallisti: YOU ARE RESONPONSIBLE 01:37:28 EVERYONE IS RESPONSIBLE 01:37:36 -!- Nisstyre has joined. 01:37:52 * elliott rescues fungot from burndrowning channel 01:37:53 elliott: son, i did not drive three hundred miles and put on this fancy suit to listen to this, but just so we're clear, are we married in the real world. i can do for you. 01:37:56 Sgeo: this pretty much sounds like things that are already solved by the IO monad. 01:38:04 haha 01:38:15 yes fungot. we're married in the real world now 01:38:16 elliott: and then say says, " well he's got dvd and backwards compatibility!" 01:38:16 you forgot the word "trivial" 01:38:20 kallisti, for some reason, I really, really, really, do not want to make a literal thin wrapping of this. 01:38:30 really really really really 01:38:30 Sgeo: oh, well that will be difficult 01:38:32 Sgeo: so what do you want? 01:38:32 really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really re 01:38:33 ally really really really really really really really really really really really really really really really 01:38:37 really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really re 01:38:39 ally really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really real 01:38:39 monqy, something thread-safe 01:38:44 ly really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really 01:38:46 anything? 01:38:48 Sgeo: but you know there's probably not an easy way to make it pure right 01:38:49 really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really 01:38:50 global lock global lock global lock global lock global lock global lock global lock global lock 01:38:53 wow pretty really patterns 01:38:55 really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really re 01:39:00 ally really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really real 01:39:05 ly really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really 01:39:10 really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really r 01:39:12 oerjan: hi new spam record soon 01:39:15 eally really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really real 01:39:19 wow 01:39:21 ok that is enough really 01:39:23 glock 01:39:25 i hear that kmc guy has a great package for global locks 01:40:10 I'm almost seriously considering passing an STM block to the thing that will set event handlers in my wrapper, and getting the values I want in there.. no, that's not really safe, might get values that the event doesn't set 01:40:28 Sgeo: you should make 01:40:29 thin 01:40:31 IO wrapper 01:40:39 papery wrapper over delicious candy mmmm 01:40:53 (except instead of delicious candy it's some shitty game) 01:40:55 socrates was a real gangster. we need more role models like him in today's facebook 2.0 world 01:41:05 elliott: I'm agree. 01:41:08 i have a bad package for global locks because I couldn't figure out a better way :/ 01:41:10 not enough fly G's 01:41:33 kmc, I am planning to use a global lock, but users of the library (probably just me) shouldn't have to worry about that 01:41:37 i remember looking at kmc's package for global locks and going "ha ha ha it only supporst one global lock" and then putting on sunglasses and riding off into the sunset on my flying car 01:41:43 well at least the laughing part 01:41:47 haha 01:42:00 -!- ChanServ has set channel mode: +q *!*@unaffiliated/elliott. 01:42:01 elliott: socrates was all like "yo dawg I'ma make you question yo mothafuckin' belief structure." and people were all like "shiiiiiiiit" 01:42:09 rip elitoe 01:42:18 -!- elliott has left. 01:42:19 well yeah the library is kind of a template for copying into your own library that needs a global lock 01:42:20 -!- elliott has joined. 01:42:28 -!- elliott has left. 01:42:28 (as it say in the docs) 01:42:29 -!- elliott has changed nick to eliyt. 01:42:31 -!- eliyt has joined. 01:42:41 hi eily 01:42:43 t 01:42:43 i couldn't think of a good way to support several of them 01:42:55 Sgeo: why do you want a global lcoke,,,whaymre,,,whey,,,,,, 01:43:09 -!- eliyt has left. 01:43:09 -!- eliyt has changed nick to FVCK_THE_POLICE. 01:43:11 -!- FVCK_THE_POLICE has joined. 01:43:14 it's all really just a workaround for a bug that was fixed in GHC 7.4 01:43:19 -!- FVCK_THE_POLICE has left. 01:43:24 monqy, to stop one thread setting attributes while another is trying to read them, and similar oddities 01:43:25 -!- FVCK_THE_POLICE has changed nick to OERJAN_IS_SUCK. 01:43:26 -!- OERJAN_IS_SUCK has joined. 01:43:34 -!- OERJAN_IS_SUCK has left. 01:43:38 -!- OERJAN_IS_SUCK has changed nick to UNQUIET_OR_DIE. 01:43:40 -!- UNQUIET_OR_DIE has joined. 01:43:49 -!- UNQUIET_OR_DIE has left. 01:43:55 -!- UNQUIET_OR_DIE has changed nick to OVERTHROW_FASCIS. 01:43:58 -!- OVERTHROW_FASCIS has changed nick to KILL_FASCIST_OPS. 01:44:00 -!- KILL_FASCIST_OPS has joined. 01:44:27 and you can't do that in anay beter way than a global locckck 01:45:00 yeah i spent a while on this 01:45:13 monqy, I can, actually. Make a lock when I initialize the library, and have the user pass that around as needed, which shouldn't actually be that often 01:45:17 Sgeo: oh yeah you could maybe have the attributes as STRefs 01:45:24 Sgeo, and then they initialize it twice? 01:45:46 Sgeo: lock monad (no dont ((pelase) 01:45:55 i would ask #haskell how to make a global lock, and they'd be horrified and tell me there must be a better way 01:45:55 kallisti, wait what? 01:45:56 -!- reallyq has joined. 01:45:57 really really really really really really really really 01:45:57 really really really really really really really really 01:45:57 really really really really really really really really 01:45:57 really really really really really really really really 01:45:58 really really really really really really really really 01:45:59 really really really really really really really really 01:46:00 really really really really really really really really 01:46:01 really really really really really really really really 01:46:02 really really really really really really really really 01:46:03 really really really really really really really really 01:46:04 really really really really really really really really 01:46:05 really really really really really really really really 01:46:06 really really really really really really really really 01:46:06 Sgeo: >_> use STrefs 01:46:07 really really really really really really really really 01:46:08 really really really really really really really really 01:46:09 really really really really really really really really 01:46:10 really really really really really really really really 01:46:11 really really really really really really really really 01:46:11 and then nobody could give me one 01:46:12 really really really really really really really really 01:46:13 really really really really really really really really 01:46:14 really really really really really really really really 01:46:15 really really really really really really really really 01:46:16 really really really really really really really really 01:46:17 really really really really really really really really 01:46:18 really really really really really really really really 01:46:19 really really really really really really really really 01:46:20 really really really really really really really really 01:46:20 hi 01:46:21 really really really really really really really really 01:46:22 kallisti, I didn't even know STRefs could be used like that 01:46:22 really really really really really really really really 01:46:22 reallyq: hi 01:46:23 really really really really really really really really 01:46:24 really really really really really really really really 01:46:24 `welcome reallyq 01:46:25 really really really really really really really really 01:46:26 really really really really really really really really 01:46:27 really really really really really really really really 01:46:28 really really really really really really really really 01:46:28 reallyq: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 01:46:29 really really really really really really really really 01:46:30 really really really really really really really really 01:46:31 really really really really really really really really 01:46:32 really really really really really really really really 01:46:33 really really really really really really really really 01:46:34 really really really really really really really really 01:46:35 really really really really really really really really 01:46:36 really really really really really really really really 01:46:37 really really really really really really really really 01:46:38 really really really really really really really really 01:46:39 Can they be? 01:46:39 Sgeo: as global mutable variables accessible within the STM monad? sure. 01:46:39 really really really really really really really really 01:46:40 really really really really really really really really 01:46:41 really really really really really really really really 01:46:42 really really really really really really really really 01:46:43 really really really really really really really really 01:46:44 kallisti, wrong monad 01:46:44 really really really really really really really really 01:46:45 really really really really really really really really 01:46:46 really really really really really really really really 01:46:47 really really really really really really really really 01:46:48 really really really really really really really really 01:46:49 really really really really really really really really 01:46:50 really really really really really really really really 01:46:50 Sgeo: oh rite 01:46:51 really really really really really really really really 01:46:52 really really really really really really really really 01:46:53 really really really really really really really really 01:46:54 really really really really really really really really 01:46:54 Sgeo: the STM one 01:46:55 really really really really really really really really 01:46:56 really really really really really really really really 01:46:57 really really really really really really really really 01:46:58 really really really really really really really really 01:46:59 -!- ChanServ has set channel mode: +o ais523. 01:46:59 really really really really really really really really 01:46:59 Sgeo: TVar or whatever 01:47:00 really really really really really really really really 01:47:00 -!- ais523 has kicked reallyq User terminated!. 01:47:03 i was working around thread-unsafety of http://hackage.haskell.org/packages/archive/repa-devil/0.1.2/doc/html/Data-Array-Repa-IO-DevIL.html 01:47:34 Sure, I could do that, but I can't just grab the values of the TVars in the event handler 01:47:38 which already has a custom monad and a function «runIL :: IL a -> IO a» that "guarantees the DevIL library has been initialized before you run functions on it" 01:47:50 but, nothing prevents you from calling runIL from multiple threads 01:47:52 Sgeo: why not? 01:47:53 so it's not safe 01:48:32 kallisti, event handler starts running. Some other event handler starts running. Other event handler's STM block to grab stuff from attributes runs first. First event handler's data is now obliterated 01:48:56 I could pass an STM block to retrieve values when setting the event handler, but that's somewhat ugly, I think 01:49:04 >_> it is? maybe I don't understand what's going on. 01:49:29 if you have a global invariant like "no two threads can be in the DevIL library at once" then you need some global state 01:50:34 for even suggesting that global state is the best solution to any problem, people will try to bite your head off 01:50:50 -!- ais523 has set channel mode: -o ais523. 01:50:53 if only elliott was here to tell sgeo why he's wrong 01:50:56 but i did not hear any plausible alternatives 01:51:06 addEventHandler eventAvatarAdd (do a <- attribA; b <- attribB; return (a,b)) myHandler 01:51:06 alternatively 01:51:34 personally I think it's much better to have some hidden hax in a library, rather than exposing a thread-unsafe interface to every user 01:51:37 if only elliott was here to tell me and kallisti to stop making sgeo say wrong things 01:52:06 Sgeo: I don't really understand the problem with using STM as it seems well-suited to preventing these kind of race conditiony things. 01:52:30 wait, you're going to read C library state from a STM transaction? 01:52:54 that's not going to work 01:52:54 kallisti, well, what I just wrote isn't entirely type-safe... what if attribA isn't applicable to eventAvatarAdd? 01:53:27 It also looks ugly 01:53:44 Although I recently saw some other way to write it 01:54:21 -!- KILL_FASCIST_OPS has quit (Quit: bored of waiting for power-tripping to stop). 01:54:32 -!- MDude has joined. 01:54:56 addEventHandler eventAvatarAdd (liftA2 (,) attribA attribB) myHandler 01:54:57 I guess 01:55:16 GHC's STM will do exactly nothing to prevent race conditions if some C library is modifying those variables 01:55:32 you can't even read a C variable from a STM action without hax 01:55:53 In theory, when I have the lock, the values shouldn't change 01:56:01 So I can lock before the STM, unlock after it 01:56:04 oh, so you're using STM *and* a global lock? 01:56:07 Makes the STM a bit pointless perhaps, but 01:56:14 -!- ChanServ has set channel mode: -q *!*@unaffiliated/elliott. 01:56:34 ) 01:56:40 * whichever op that was, I was about to do that ;) 01:56:48 I wonder what's up with elliott today 01:57:05 the guy _really_ doesn't have the right attitude for getting quiets/bans quickly undone... 01:57:12 (was me, both ways) 01:57:30 Although if some idiot user tries to write to attribA in the grabber thing, all bets are off 01:58:57 Sgeo: just use whatever concurrency abstraction the AW library uses? 01:59:26 The AW library is meant for single-threaded use. 01:59:42 because threads are a super advanced feature for wizards only 02:00:01 so then using TVars to modify the global state of a C library should be fine, yes? 02:00:11 if all the threaded participants are STMified. 02:00:26 "using TVars to modify the global state of a C library" 02:00:29 how do you even do that 02:00:33 no idea. 02:00:33 :P 02:00:57 well.... 02:01:04 yeah I don't know. 02:01:08 i think the answer is "unsafeIOToSTM" 02:01:10 and half this mess just because i hate losing my place in the backscroll... 02:01:11 and that's /not going to work/ 02:01:34 because with GHC's implementation, the STM actions actually run at the same time 02:02:16 * kallisti thinks +qing elliott was probably justified. 02:02:20 the illusion created by "atomically" is critically dependent on the fact that you're only reading and writing state within the STM universe 02:02:46 kallisti: have fun with future elliott "read the logs good" 02:02:54 monqy: don't care. 02:03:01 i too love fun 02:03:16 i can't believe you're even debating whether it was justified to kick someone who was crapflooding and evading bans 02:03:43 kmc: I'm guessing using functions that return STM a is also not a good idea (in other words, removing TVars from the picture) 02:04:01 i don't understand what you mean 02:04:03 that seems to basically give you nothing unless you somehow implement STM at the C level. 02:04:14 The basic idea, even removing STM from the picture, no matter how "workable" is still ugly 02:04:22 And not type-safe 02:04:41 what problem is STM solving here 02:04:54 it's not solving "prevent two Haskell threads from interacting with the C variables at the same time" 02:05:10 (except by preventing them from interacting at all) 02:05:28 kmc, I don't think it is 02:05:35 (solving a problem) 02:05:45 I could make my own structure for reading from attributes, I guess 02:05:47 i agree 02:05:48 locks are good, use those. 02:05:50 Would make more sense 02:05:52 * kallisti thinks +qing elliott was probably justified. <-- i _guess_ i should have checked if he'd stopped first 02:05:59 But there's still the type-safety issue 02:06:03 oerjan: eventually, I'm sure. 02:06:05 * oerjan whistles guiltily 02:06:36 well i _did_ eventually, by which point he was already lashing out 02:07:47 Should I worry about the type-safety thing to this degree? 02:07:55 what's the type-safety issue 02:08:02 oerjan: but the fact that he's a regular and might stop eventually doesn't really excuse spamming the channel. Also the fact that you didn't ban a new person once who was spamming does not magically make all future spam by anyone valid (or at least it shouldn't) 02:08:44 AW_EVENT_AVATAR_ADD doesn't particularly define AW_OBJECT_TYPE, so why should I be able to attempt to access the AW_OBJECT_TYPE attribute when I get an AW_EVENT_AVATAR_ADD event? 02:09:46 it's already too low-level if the user-specified callbacks have to explicitly "read attributes" 02:09:59 the wrapper should read all the defined attributes and pass them as arguments or in a record 02:10:24 Well, all the records defined for the event, right? 02:10:36 ? 02:10:44 err, all the attributes 02:10:48 yes 02:11:04 you make a record for each event type, with a field for each attribute defined by that event 02:11:27 The set of attributes that AW_EVENT_OBJECT_ADD and AW_EVENT_OBJECT_CLICK define, for example, largely overlap. 02:11:43 sure 02:11:46 I want to make an AWObject data type, that can read these records 02:12:05 But if I want it to be able to pull from both AW_EVENT_OBJECT_ADD and AW_EVENT_OBJECT_CLICk 02:12:08 That's a bit difficult 02:12:23 why 02:12:39 the record for ObjectAdd and the record for ObjectClick can both have an Object field 02:12:56 I guess doing it like that is more work for me, but I guess I can 02:13:04 yeah 02:13:08 Write a thing to determine overlaps 02:13:10 you'll have to write a bunch of boilerplate 02:13:11 Try to come up with names 02:13:23 how many event types are there 02:13:30 53. 02:13:36 yeah 02:13:38 I also have to deal with "callbacks" 02:13:44 haskell is pretty boilerplatey 02:13:55 moreso when interacting with foreign libraries 02:14:02 Of which there are 37. 02:14:24 I'm going to be writing scripts to write Haskell code for me, that's a given 02:14:38 what sort of 02:14:39 scripts 02:14:42 "ALERT: Police investigate intimidation near campus. Purdue University police are investigating a report of 02:14:45 intimidation with a knife in the area of Beering and Tower 02:14:47 drives. Avoid the area. 02:14:49 The suspects are described as a white male, 5-7 inches tall, 02:14:53 wearing a brown coat, and a white male with blonde hair and red 02:14:55 coat." 02:14:56 lol 02:14:57 Must've been a big knife. 02:15:07 Going to read text files and generate code based on them 02:15:08 Gregor: it's an angry gnome 02:15:31 kallisti: Gnomes CAN be pretty intimidating. 02:15:44 yeah dude they'll fuck your shit UP. 02:15:53 -!- Phantom_Hoover has quit (Quit: Leaving). 02:16:43 Sgeo: so wait if you pass every relevant attribute to the event handler doesn't that mean that you have to lock all of the attributes whenever any of them are being read/written? 02:16:59 kallisti, I just lock the global lock 02:17:11 so, yes? 02:17:18 Yes 02:17:24 I guess that's fine.. 02:17:48 "no global locks are bad, do it another way" "like what?" *crickets chirping* 02:18:15 kmc, if someone initializes the library twice, who knows what would happen, even with a global lock 02:18:25 It's a good thing they weren't blue. 02:18:27 Unless I specifically block that from happening 02:18:32 I don't think I can deal with smurfs on campus. 02:18:34 well global locks are fine, but it seems a bit "wasteful" to lock every attribute whenever only one or two are needed. 02:18:51 kallisti, efficiency isn't my main goal here. 02:19:11 well it's not really efficiency... 02:19:20 it's more like... good concurrency, I guess. 02:19:46 but given the limitations 02:19:50 I see nothing wrong with locks. 02:19:52 Sgeo, the global lock can prevent them from initializing twice, no? 02:20:11 The global lock is going to be unlocked most of the time 02:20:30 you can hold the lock during initialization 02:20:41 and also have another bit of global state that says "was the library already initialized" 02:20:45 (this can be just a C global variable) 02:21:01 I'm not about to start writing C code for this. 02:21:08 what 02:21:26 a C global variable is one line of code 02:21:29 come on 02:21:37 Sgeo: wait isn't AW like a networky thing or something? 02:21:38 One line of code... where? 02:21:54 Sgeo, you're building your library with Cabal, right? 02:22:12 kallisti, yes. It's against the TOS to try to connect outside of the SDK. And I have no idea what the protocol is like anyway. 02:22:24 kmc, I kind of figured I could deal with that later >.> 02:22:28 ok 02:22:37 well deal with it now, and including C code becomes very easy 02:22:41 https://github.com/kmcallister/global-lock/blob/master/global-lock.cabal#L34 02:22:52 kmc, why can't I just make the global variable in Haskell? 02:22:59 how 02:22:59 Like I currently am doing with the global lock? 02:23:03 unsafePerformIO 02:23:07 IORef dawg 02:23:20 Sgeo, are you planning to use it on GHC before 7.4? 02:23:27 o.O yes why 02:23:29 http://mainisusuallyafunction.blogspot.com/2011/10/thunks-and-lazy-blackholes-introduction.html 02:23:58 tl;dr is "GHC < 7.4 has a bug where top-level unsafePerformIO will sometimes happen twice" 02:24:43 * Sgeo shoots self 02:24:51 yeah that was basically my reaction 02:24:51 I don't think I can deal with smurfs on campus. <-- i bet their blue color contains chromium. 02:25:01 shoots self, then writes long blog post 02:25:15 Can I just include your global-lock thing? 02:25:49 yes 02:26:11 either just import the library, or copy the code in 02:26:26 in the former case it's really a *global* lock; other libraries which use it will also be locked out 02:26:51 the description of how it works is here: http://mainisusuallyafunction.blogspot.com/2011/11/global-locking-through-stableptr.html 02:27:41 It works on Windows, right? 02:28:39 i think so 02:28:44 i haven't tested it on windows 02:29:08 it requires that your C compiler is GCC 4.1 or newer 02:29:18 which I think is true for Cabal builds on Windows, but I wouldn't know 02:34:00 oh so that's why GHC's C output has so many z's everywhere. 02:34:44 I thought GHC waz juzt trying to be cool 02:42:03 zat zoo 02:46:44 -!- sebbu2 has changed nick to sebbu. 02:58:11 -!- pikhq_ has joined. 02:58:42 haha 02:58:49 ghcizzle fo shizzle 02:59:27 -!- pikhq has quit (Ping timeout: 252 seconds). 03:19:25 -!- zzo38 has joined. 03:33:41 -!- MDude has quit (Ping timeout: 240 seconds). 03:41:56 Lessee. Rubber will be #, metal will be space, copper and zinc will be + and -. Then I guess arsenic and boron can be , and ., and finally holes and electrons can be... ^ and *, why not. 03:42:46 That is definitely something that makes sense without context. 03:48:42 * Sgeo is thinking game 03:54:57 space is a metal 04:05:55 space is a metal *huge bongrip* 04:06:24 sounds like an esolang based on (or themed around) an abstract simulation of semiconductors 04:06:39 i suppose holes and electrons as + and - is too obvious? 04:11:05 That's precisely what it is. An esolang based on an abstract simulation of semiconductors. 04:11:25 I figured + and - should definitely be zinc and copper. Since, y'know, zinc and copper are terminals. 04:11:51 Those symbols are usually written on the terminals, not on the particles themselves. }:) 04:14:11 -!- MDude has joined. 04:14:35 -!- primo_ has joined. 04:15:39 http://pastebin.com/D0UyfE2F - I'm sort of ashamed to have written this. 04:16:01 -!- primo has quit (Ping timeout: 245 seconds). 04:22:11 what role do zinc and copper play here 04:22:26 i'm guessing As and B are dopants 04:28:02 Yeah. Zinc and copper are electrodes; they carry a constant charge. 04:29:15 To be precise, zinc and copper only admit electrons and holes, respectively, and when an electron moves off of zinc, it leaves a copy behind, and likewise for holes and copper. 04:30:06 -!- MDude has changed nick to MSleep. 05:24:44 -!- pir^2 has quit (Quit: I found a *real* proof, it's just too long to fit in the quit message. --Fermat). 05:43:29 i like the new spambot 05:43:32 [http://wikispambot.com best seo software] 06:35:29 -!- Patashu has quit (Ping timeout: 260 seconds). 06:49:20 -!- pikhq has joined. 06:49:41 -!- pikhq_ has quit (Ping timeout: 252 seconds). 06:54:30 -!- primo_ has quit (Read error: Connection reset by peer). 06:55:04 -!- GreaseMonkey has quit (Quit: The Other Game). 06:55:29 -!- primo has joined. 07:01:14 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP). 07:11:08 -!- Vorpal has joined. 07:24:56 -!- oerjan has quit (Quit: Good night). 07:38:43 -!- azaq23 has quit (Quit: Leaving.). 07:47:01 OK! No! 08:02:29 -!- itidus21 has joined. 08:03:22 How exactly does Eilenberg-Moore category work? 08:04:19 tswett, huh, does that make sense physically? 08:04:28 the idea is that each one is wired to one end of a battery? 08:09:04 -!- zzo38 has quit (Remote host closed the connection). 08:41:04 fizzie: ping 08:50:25 sorry, mischan 08:57:36 -!- Phantom_Hoover has joined. 09:19:20 -!- Ngevd has joined. 09:20:10 Hello! 09:22:22 hi 09:23:25 -!- Taneb has joined. 09:27:00 -!- Ngevd has quit (Ping timeout: 248 seconds). 09:29:12 -!- Taneb has changed nick to Ngevd. 09:30:12 -!- Patashu has joined. 09:54:27 -!- Taneb has joined. 09:55:28 -!- Ngevd has quit (Ping timeout: 252 seconds). 10:00:00 -!- Taneb has quit (Ping timeout: 244 seconds). 10:00:53 -!- Taneb has joined. 10:06:27 -!- Taneb has quit (Read error: Connection reset by peer). 10:06:59 -!- Ngevd has joined. 10:26:08 "Janeway: Sorry. I'm not a nerdy Trekkie like you." 10:26:11 http://fiveminute.net/voyager/fiver.php?ep=yearofhell 10:32:15 Have I mentioned how annoying it was when the very first 5-minute DS9 spoiled the finale of the 6th season and one of the subplots of the 7th. 10:33:16 o.O 10:35:06 They all reference future episodes 10:35:20 The early TNG ones make constant reference to Yar dying 10:39:45 http://www.fiveminute.net/voyager/fiver.php?ep=threshold 10:40:10 http://twitter.com/tng_s8 10:43:09 "Guinan invents an amazing new "single level" chess." 10:56:07 -!- ais523 has quit (Ping timeout: 240 seconds). 11:20:30 -!- monqy has quit (Quit: hello). 11:24:09 -!- pikhq_ has joined. 11:24:11 -!- pikhq has quit (Ping timeout: 240 seconds). 11:35:54 -!- zzo38 has joined. 11:36:11 When will they invent Vatican III? 11:46:32 -!- oklopol has quit (Ping timeout: 248 seconds). 11:55:16 Sgeo: i have imagined that you could fold a chessboard onto one long strip and make it function using strange adhoc rules much like ptolemy's astronomy manages to work 11:55:49 it would be awfully weird though 11:56:09 As in functioning essentially identically to regular chess rules? 11:56:15 Sounds interesting 11:56:32 exactly the same rules, just a different board presentation 11:57:10 I thought you were thinking "A queen on square XYZ can move here, or here, or leap N amount" etc. 11:58:33 one long strip like RNBQKBNRPPPPPPPP????????????????????????????????PPPPPPPPRNBQKBNR 11:59:18 Sgeo: what you thought i was thinking was more inventive than what i was actually thinking. similar to misheard lyrics 11:59:41 in this way, knowing what i actually meant is detrimental 11:59:45 Actually, I managed to make a chess variant that functions on one strip but the same as normal chess 11:59:53 I did that many years ago 12:01:18 http://www.chessvariants.org/index/msdisplay.php?itemid=MSeeeeeeeeeeeeee ("This game is supposed to be as different from chess as possible while still being the same as chess.") 12:05:13 What was yours ideas? 12:05:46 lol.. my idea was to maintain the logic of 2d squares just shifting them into a line 12:06:12 as if to obfuscate the presentation of the state of the board 12:07:46 You could do something also making 3D board into 2D, which is then made into 1D, for example, too. 12:08:29 itidus21: I think I managed to do so, writing how they work in 1D in the article I linked. But there is fire in between each row 12:08:53 So, the fire will restrict some moves as they are supposed to be restrict 12:12:15 i see that 2d 64 square board could become a 4x4x4 3d board 12:12:45 that could be quite confusing 12:13:42 so in 4d it could be 4x4x2x2 eh 12:14:26 6d 2x2x2x2x2x2? 12:14:39 ya 12:14:56 They're all just pale imitations of continuous chess. 12:15:04 king is at 1,1,1,1,1,1 moving to 1,1,1,0,1,1 12:15:21 itidus21, that puts you into check 12:15:54 hmm i wonder if such a move is even valid 12:16:21 i see what i did there 12:16:27 i just counted the squares in binary :-s 12:18:11 zzo38: my idea has died. ill have a look at your chess variant 12:23:30 It's Wacky. 12:26:44 -!- Ngevd has quit (Ping timeout: 244 seconds). 12:26:47 Yes. 12:41:57 -!- Ngevd has joined. 13:01:54 > flip id (join (.)) (ap (.) (flip id (ap (.) (join (.))) (join (.)))) (+1) 0 13:01:59 mueval: ExitFailure 1 13:02:00 mueval: Prelude.undefined 13:03:35 itidus21, how has your idea died? 13:04:15 interest faded 13:11:38 -!- augur has changed nick to lagrangian. 13:11:59 -!- lagrangian has changed nick to augur. 13:17:05 what vcs do you guys use while programming your own stuff? 13:17:22 * kallisti has decided he needs to be using VCS while programming to avoid rewriting code all the time. 13:17:33 git 13:18:20 git 13:18:22 VCS? 13:18:36 using version control is incredibly important 13:18:50 git will help your workflow in a hundred different ways 13:18:56 it's not just for committing code to push upstream 13:19:15 it's an integral part of development 13:19:30 -!- Ngevd has quit (Quit: Goodbye). 13:29:08 -!- kmc has quit (Quit: Leaving). 13:51:37 -!- kmc has joined. 13:54:25 zzo38: to get down to the guts of the matter i don't understand what activity one is supposed to engage in during chess 13:55:11 -!- primo has quit (Read error: Connection reset by peer). 13:55:36 -!- primo has joined. 13:55:49 itidus21: The activity of the chess is to play the game of chess. And then win or lose or draw. 13:56:13 is it related to the reason that runners in an olympic sprint all sprint at once? the same action can be done of course without any other runners 13:56:45 and, a car race doesn't need more than 1 car on the road at one time 13:58:01 itidus21: It depend on what kind of car race it is. You could do running race and car race separately or simultaneously. In chess, you have to take turn. 13:58:47 so in running and car racing it is acknowledged that doing the action with others present changes the action in some way 13:59:52 so what does it mean, is difficult to say 14:01:29 itidus21: It might. 14:02:40 taken to extremes, its related to the idea of would life be worth living if you were the last human on earth 14:03:19 would X be worth doing if you were doing it alone 14:03:40 hmm .. runners train alone in order to race together :-? 14:03:58 but they also know that they're not the only ones training 14:04:16 -!- ais523 has joined. 14:05:18 -!- primo has quit (Read error: Connection reset by peer). 14:05:28 blahh 14:05:41 -!- primo has joined. 14:09:07 -!- pikhq_ has quit (Ping timeout: 248 seconds). 14:09:07 -!- pikhq has joined. 14:12:05 You can play solitaire game too. Including running by yourself for exercise or to time yourself or just in case you like to run a lot 14:12:29 hmmmm 14:12:35 i guess its all a matter of balance 14:13:57 -!- primo_ has joined. 14:16:04 -!- primo has quit (Ping timeout: 268 seconds). 14:21:08 -!- primo_ has quit (Ping timeout: 252 seconds). 14:21:25 -!- primo_ has joined. 14:28:33 -!- primo_ has quit (Read error: Connection reset by peer). 14:28:59 -!- primo_ has joined. 14:44:00 -!- primo__ has joined. 14:46:56 -!- primo__ has quit (Read error: Connection reset by peer). 14:47:06 -!- primo_ has quit (Ping timeout: 252 seconds). 14:47:11 -!- primo__ has joined. 14:55:45 kmc: yeah, the idea is that zinc and copper are both stuck into lemons. 14:56:24 tswett: potatoes work too 14:57:10 Anything electrolytic works. 14:57:16 Blood too, I guess. 14:58:15 Vomit? 15:00:18 -!- myndzi has quit (Ping timeout: 252 seconds). 15:02:06 On the CLC-INTERCAL phlog: "captcha = completely automatic system to determine that the webmaster is an arsehole." 15:05:34 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 15:10:19 -!- Ngevd has joined. 15:10:27 Hello! 15:10:50 -!- myndzi has joined. 15:12:54 hi¡ 15:13:05 hOLA, 15:13:32 What's a [::] 15:13:39 And who told tswett about Homestuck? 15:13:43 Sgeo. 15:14:34 Oh god, am I indirectly responsible for your Homestuck mania? 15:14:49 @tell elliott THIS IS ALL YOUR THIRD-ORDER FAULT 15:14:49 Phantom_Hoover: did you tell Sgeo about Homestuck? 15:14:49 Consider it noted. 15:14:58 And did elliott tell you about Homestuck? 15:15:09 tswett, I said "Go read Homestuck." to him and he did 15:15:28 If yes and yes, then... yes, elliott is responsible for the violent calamity that happened two minutes and twenty seconds ago. 15:15:30 I found about Homestuck COMPLETELY INDEPENDANTLY 15:15:47 -!- Nisstyre has quit (Ping timeout: 240 seconds). 15:15:49 And not so much that but I was really bored and I asked him if it was worth reading and he decided to read through again and get past the place he'd petered out around. 15:16:24 -!- primo_ has joined. 15:18:49 -!- primo__ has quit (Ping timeout: 248 seconds). 15:19:07 I made a gopher client for Windows (if you have UNIX, there is a lot of better programs you can use), there should be icon for the main window, I don't have any. Do you? 15:19:36 a gopher, perhaps 15:19:52 olsner: Yes, but I don't have one 15:20:27 Of course, my love of Homestuck and esoteric programming languages both go back to Murderous Maths books 15:20:47 Ah, I remember those. 15:21:13 I don't remember them having Homestuck or esolangs in them. 15:21:24 Yes, but they have a website 15:21:39 In fact, the former is chronologically impossible, unless Kjartan Poskitt is a time traveller. 15:21:39 Ah, of course. 15:21:40 Which contains a link to the Unnofficial Murderous Maths Forum 15:21:51 Which contains a thread with a link to Irregular Webcomic 15:21:54 I too have been induced to engage in things because both have a website. 15:21:57 And here is where it diverges 15:22:22 Irregular Webcomic leads to dangermouse.net and TVTropes 15:22:42 Which lead to esoteric programming and Homestuck 15:23:10 I guess I know Sgeo from here, so how do I know of the existence of here... 15:23:27 Probably from Brainfuck's Wikipedia article. 15:23:32 Oh my god Poskitt wrote the theme tune for SMart and Brum. 15:23:51 * Sgeo has no idea how he got here 15:24:01 Oh my god I forgot how incredibly 90s the Murderous Maths website is. 15:24:32 I remember SMart and Brum 15:25:25 quick question. is there a convention for implying subscript or superscript since it can't be typed here? 15:25:53 Usually, we do what LaTeX does, and use ^ for supserscript and _ for subscript. 15:26:01 ah cool 15:26:31 -!- primo__ has joined. 15:26:31 -!- primo_ has quit (Read error: Connection reset by peer). 15:27:17 hmm... but what if a term has both a superscript and a subscript does superscript come first? like T^2_3 15:27:36 i guess it wouldn't be quite that easy 15:27:42 Depends on what you're trying to say, I guess. 15:27:43 itidus21: At least in Plain TeX, it doesn't matter. I suggest writing it depending on what you meaning 15:27:58 if i want the 2 stacked on the 3 15:27:59 Such as, put the subscript first if the superscript is an exponent 15:28:16 But if the superscript is a component of the same thing, put superscript first. 15:28:21 Both ways result in same printout 15:28:30 I'd usually interpret "T^2_3" as meaning something like "the third incarnation of the square of T", and "T_3^2" as "the square of the third incarnation of T". 15:28:42 LaTeX probably does the same 15:28:46 ah, at least it's not recursive :D 15:28:50 thats helpful 15:29:27 like at least it's not the subscript of the superscript 15:30:36 Right. 15:30:37 i don't know math well enough so ill just stick with super first 15:31:00 If you wanted that, I guess you could say something like T^{2_3}. 15:31:06 -!- azaq23 has joined. 15:31:14 -!- Nisstyre has joined. 15:31:53 ok .. good enugh. thanks 15:32:56 that allows me to cut and paste something like "The limit of a sequence (x_n) is, intuitively, the unique number or point L (if it exists) such that the terms of the sequence become arbitrarily close to L for "large" values of n." 15:33:27 Aye. 15:46:53 -!- primo_ has joined. 15:47:27 -!- Nisstyre has quit (Ping timeout: 240 seconds). 15:49:07 -!- primo__ has quit (Ping timeout: 240 seconds). 15:49:56 -!- Taneb has joined. 15:50:03 -!- Ngevd has quit (Read error: Connection reset by peer). 15:52:04 Searching "gopher" on Wikimedia Commons results in many things, including gopher tortoise, gopher snake, and screenshots of Firefox and GopherVR. Nothing seem proper for use as a 32x32 icon, though. 15:53:31 There is also "gopher wood" mentioned in the Bible although its meaning is unclear. 15:53:31 GopherVR? 15:54:25 GopherVR is a gopher client with 3D view. 15:54:30 -!- Taneb has changed nick to Ngevd. 15:54:54 Anyone know what a Haskell [::] is 15:54:56 ? 15:55:14 [::] doesn't look like valid Haskell. Maybe it's some extension. 15:55:20 Like Template Haskell or something. 15:55:27 It's got a Monad instance 15:55:41 As in "instance Monad [::] where"? 15:55:44 I don't think [::] is a valid Template Haskell code either 15:56:42 It's listed in the Haskell documentation for Control.Monad as having an instance for Functor and Monad 15:57:05 But not MonadPlus or Applicative 15:58:00 Do you have a URL or something for this? 15:58:13 http://www.haskell.org/ghc/docs/7.0-latest/html/libraries/base-4.3.1.0/Control-Monad.html 15:58:22 But all monads are supposed to be applicative (at least in cartesian closed categories, I think; or maybe not) 15:58:32 They're supposed to be. 15:58:36 Doesn't mean they are. 15:58:41 It's not required (yet) 15:58:54 -!- primo_ has quit (Ping timeout: 252 seconds). 15:59:02 :: is also a reserved word, it cannot be the name of anything 15:59:20 Maybe it's one of those type system extensions. 15:59:58 -!- primo_ has joined. 16:02:40 -!- Nisstyre has joined. 16:02:42 Does all monads being applicative have anything to do with cartesian closed categories? 16:02:57 I have no idea 16:07:51 -!- primo_ has quit (Read error: Connection reset by peer). 16:08:18 -!- primo_ has joined. 16:10:32 zzo38: it wouldn't surprise me 16:11:02 if you're not in a cartesian closed category, you have to worry about the difference between a monad and a strong monad 16:11:12 I can't remember where it goes from there, but I suspect it makes a difference 16:13:13 -!- CHeReP has quit (Quit: This computer has gone to sleep). 16:13:35 -!- Phantom__Hoover has joined. 16:15:27 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 16:15:50 HList erases labels at runtime 16:16:04 Yet I have ... data associated with each label 16:16:20 I think the compile-time programming involved is going to break my brain 16:21:00 -!- primo has joined. 16:24:06 -!- primo_ has quit (Ping timeout: 260 seconds). 16:26:18 -!- primo_ has joined. 16:29:08 -!- primo has quit (Ping timeout: 255 seconds). 16:29:58 I wonder if perl has anything like an inverse strftime. 16:30:04 that isn't "just use regex" 16:30:48 kallisti: it does, in CPAN somewhere 16:30:51 I know because I've used it 16:31:14 ais523: turns out it was a dumb idea to store the time as its strftime string 16:31:18 use DateTime::Format::Strptime qw/strptime/; 16:31:19 I should have just stored it as its time value 16:31:22 then stringified later 16:31:23 it's the reverse of strftime 16:31:24 ah cool 16:31:41 although you'll have to install it from CPAN 16:31:47 no problem 16:32:07 -!- primo_ has quit (Ping timeout: 240 seconds). 16:32:19 * Sgeo hits everyone with an HList 16:32:24 -!- primo_ has joined. 16:32:44 * ais523 notices that the HList is pure and refuses to allow it to do anything other than make a slightly wounded copy of me 16:32:46 Sgeo: I think you probably don't want HList 16:33:34 ais523: hmm there's also a Posix::strptime 16:33:38 *POSIX 16:33:40 kallisti, it, or something similar, is the best way I can think of to stay somewhat close to just knowing the structure of my wrapper and being able to use the C docs for details, while being type-safe 16:33:45 kallisti: that probably calls out to the libc version 16:33:49 which probably isn't what you want 16:34:12 what's the difference? 16:34:20 -!- primo_ has quit (Read error: Connection reset by peer). 16:34:42 -!- primo_ has joined. 16:34:54 it certainly looks like what I want. 16:35:50 hmmm 16:36:07 I guess I could store my time values as a DateTime instead. 16:36:17 as I'll basically end up constructing one later. 16:36:43 -!- primo_ has quit (Read error: Connection reset by peer). 16:36:58 -!- primo_ has joined. 16:38:23 kallisti: the difference is that POSIX::strptime is the reverse of C's strftime, not Perl's strftime 16:38:28 I imagine Perl's probably has more features 16:38:42 and fits better with Perl for other reasons 16:39:14 -!- primo_ has quit (Read error: Connection reset by peer). 16:39:30 ais523: it looks like it's pretty much the inverse of perls 16:39:32 -!- primo_ has joined. 16:39:39 hmm, OK 16:39:47 but I think I actually will use this one. 16:40:16 since I need to use all of this DateTime stuff anyways to calculate date differences 16:42:52 * Sgeo just had a terrible yet fun idea about something to do with his wrapper 16:43:06 Not even sure how to do it or if it's possible. 16:46:47 ais523: the only thing that really makes these functions more perly is that it uses a list of time units instead of the time_t struct. 16:47:06 it may have some more date specifiers that I'm unaware of. 16:47:21 probably it handles timezones correctly 16:47:28 time_t can't record a timezone 16:47:55 -!- primo__ has joined. 16:47:56 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); 16:48:00 nope 16:48:04 just localtime and gmtime 16:48:22 ah, OK 16:48:40 strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1) 16:48:43 same thing 16:49:01 DateTime handles timezones correctly though 16:49:38 -!- primo_ has quit (Ping timeout: 248 seconds). 16:50:21 ah actually I didn't see that there's a DateTime->from_epoch 16:50:29 so I'll just store the time values. 16:54:13 help someone just emailed me asking me to explain the joke on http://esolangs.org/wiki/Java 16:54:50 any advice on how I should reply? 16:56:21 "you best be trollin'" 16:59:30 that's a bit out of character for me 17:02:08 "I assume you are trolling." 17:02:48 Ngevd: the thing is, I don't think he is 17:02:50 or she 17:02:53 based on past interactions 17:03:52 !perl my @x = 1..5; print "@x" 17:03:55 1 2 3 4 5 17:06:24 Hang on... 17:06:31 just tell them that java's popularity, influence on (according to wiki) Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Groovy, J#, JavaScript, PHP, Python, Scala, Vala.. and cross-platform compatability all achieved in a short span of years 17:06:38 make calling it esoteric exceedingly ironic 17:06:52 The only way for the cat to be both alive and dead is that if the cat is outside the universe 17:06:53 no wait.. 17:07:08 mention the fact that java support is built into many operating systems 17:07:15 !perl my @x = map {$_ if $_ < 3} 1..5; print "@x" 17:07:15 1 2 17:07:21 !perl my @x = map {$_ if $_ < 3} 1..5; print "@x" . "stuff" 17:07:21 (i am not sure on this) 17:07:21 1 2 stuff 17:07:25 nooooooo 17:07:32 !perl my @x = map {$_ if $_ < 3;()} 1..5; print "@x" . "stuff" 17:07:32 stuff 17:07:36 NOOOOOO 17:07:46 Java support is built into operating systems these days? 17:07:52 !perl my @x = map {return $_ if $_ < 3;()} 1..5; print "@x" . "stuff" 17:07:53 Can't return outside a subroutine at /tmp/input.2153 line 1. 17:07:53 i don't know 17:07:55 is it? 17:08:06 i mean........ 17:08:12 I didn't think so, but you said it was 17:08:13 !perl my @x = map {$_ < 3? $_ : ()} 1..5; print "@x" . "stuff" 17:08:13 1 2stuff 17:08:14 obviously i think i can assume solaris has it 17:08:32 but 17:08:38 * kallisti is kind of annoyed that perl5 does not have perl6s fun context stuff for || and friends 17:08:38 its more about windows that im concerned 17:09:18 well some phones come with java 17:09:27 but that isn't the same thing i know 17:09:41 very similar though :P 17:10:19 "Google and Android, Inc. have chosen to use Java as a key pillar in the creation of the Android operating system" 17:10:26 Android pretty much has built-in support -- yes 17:11:22 "There are 930 million Java Runtime Environment downloads each year and 3 billion mobile phones run Java." 17:11:36 its not esoteric :D 17:12:34 i think the essence of the joke though is the idea that it can seem as if whoever made it was pulling a practical joke on the world 17:13:57 also, having many syntax elements almost indistinguishable from c++ doesn't help towards being esoteric 17:14:02 I thought the joke was that it's such an annoying language to use that it deserves to be shelved away as esoteric 17:15:18 such as { a = a + b; a += b; a++; } 17:16:07 the first one is stolen from algebra i admit 17:17:04 blah.. 17:17:38 -!- Klisz has joined. 17:18:20 i'm not ready for etymology of syntax 17:44:19 return unless my $count = @{$state->{$nick} // []} 17:44:43 I still think perl resembles something like this: "hello my name is weoij!@;;!@$!@%%@!221;" 17:45:40 :t (|>) 17:45:41 Not in scope: `|>' 17:46:04 I'm still amused that the actual reason that Perl doesn't require you to quote string literals in all contexts is to make it easier to write poetry that's also valid Perl 17:50:01 o.O 17:51:55 * tswett suddenly realizes that his noit o' mnain gelb diode doesn't *actually* allow current to pass in only one direction. 17:52:05 It doesn't admit electrons, nor holes, in either direction. 17:54:27 The only thing you can do with it is feed in electrons one way and holes the other way. 17:54:29 figuring out how to arrange conditionals used to be difficult 17:54:34 then I learned DeMorgan's law. 17:54:38 fuck arrows 17:54:48 *laws 17:54:53 (??????) 17:55:18 I guess there are two of them, yes. 18:00:28 I think constellations really have two uses, one use is to identify stars you are viewing, and another use is for naming stars after the constellation they belong to. 18:00:50 -!- Phantom__Hoover has quit (Quit: Leaving). 18:01:01 -!- Phantom__Hoover has joined. 18:01:12 (The Sun doesn't count because it is too close to the Earth.) 18:01:33 Do we say that the Sun moves between constellations? 18:02:57 tswett: Well, due to its movement (relative to the Earth), it will pass the thirteen constellations of the ecliptic. 18:03:32 * tswett nods. 18:04:15 I like that IAU has files to specify constellation boundaries for each one 18:05:16 Where does Ophiuchus fall, anyway... between Vriska and Gamzee, it looks like. 18:05:50 No, silly me. Equius, not Gamzee. 18:07:10 what have i done 18:07:16 * Phantom__Hoover seppuku 18:07:31 Phantom__Hoover: now you've got tiger! }:D 18:23:53 There. Now noit o' mnain gelb is a thing. 18:24:05 Like noit o' mnain worb, but you can make transistors. 18:24:21 And a transistor's gain is probably less than 1. 18:25:26 we really need transistors with gain greater than 1 18:25:30 or less than -1, would work just as well 18:25:33 probably better, actually 18:28:26 I think the gain of a transistor could be made arbitrarily high by making electrons and holes refuse to cancel each other out most of the time. 18:38:07 so someone on wiki has said 18:38:33 "From a certain point of view, typed lambda calculi can be seen as refinements of the untyped lambda calculus but from another point of view, they can also be considered the more fundamental theory and untyped lambda calculus a special case with only one type." .. i imagine such situations lead to definitional tensions. 18:38:38 tswett: but in noit, you don't have p-type and n-type materials 18:39:17 when the truth is dependant on your point of view, tension has to arise 18:43:47 so, what is blegnian motion, anyway? 18:46:07 ah, you added n-type and p-type materials 18:46:52 It is like Belgian motion, but different. 18:46:58 tswett: if you're trying to find a large-gain transistor, I recommend experimenting with lightly doped n-type materials together with heavily-doped p-type materials, or vice versa 18:47:26 that's how bipolar junction transistors are made in practice, and noit o' mnain gelb doesn't have a field effect to make a field effect transistor with 18:51:34 -!- primo__ has quit (Quit: Verlassend). 18:59:56 -!- DCliche has joined. 19:01:03 -!- Ngevd has quit (Ping timeout: 252 seconds). 19:03:21 -!- Klisz has quit (Ping timeout: 260 seconds). 19:09:51 kallisti, Phantom__Hoover update 19:12:30 !perl defined "stuff" =~ /false/ 19:12:31 No output. 19:12:34 !perl defined ("stuff" =~ /false/) 19:12:35 No output. 19:16:59 kallisti: if you want output, you'll have to print it 19:21:29 !perl print defined ("stuff" =~ /false/) 19:21:30 1 19:22:57 -!- Ngevd has joined. 19:25:10 Hello 19:32:21 Ngevd, arupdoot 19:32:43 Seen it 19:32:59 `run hatesgeo /var/irclogs/_esoteric/2012-01-??-raw.txt 19:33:11 Jafet 2668;Ngevd 2629;ais523 1497;Phantom_Hoover 1474;Klisz 1427;elliott 1407;pikhq 1399;zzo38 1134;oerjan 1048;cheater 939;Patashu 912;Zuu 912;nooga 695;pikhq_ 668;Vorpal 667;atrapado 648;roper 646;azaq23 637;Nisstyre 618;MDude 603;augur 560;derdon 536;sebbu2 476;DCliche 472;NihilistDandy 458;monqy 457;boily 385;iamcal 383;itidus21 369;Frooxius 369;sebbu 353;saberman_1 346;cheater_ 344;GreaseMonkey 326;Sgeo 321;myndzi 19:33:21 fizzie! 19:33:33 what does hatesgeo do? 19:33:41 ais523, lists joins/parts I think 19:33:43 `cat bin/hatesgeo 19:33:46 ​#!/bin/sh \ perl -n -e '/:(.*?)!.*JOIN/; $j{$1}++; END {print "$_ $j{$_};" for sort {$j{$b} <=> $j{$a}} keys %j}' $@ 19:33:47 counts them 19:33:53 -!- DCliche has changed nick to Klisz. 19:33:59 just counts joins, it seems 19:34:02 so what's up with the name? 19:34:03 joins only yeah 19:34:03 WHATDIDIDO? Oo Sorry, it startled me a bit, because it highlighted me x3 19:34:07 Oh dear, I'm second 19:34:17 `welcome Frooxius 19:34:20 Frooxius: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 19:34:35 How many idlers do we have, anyway? 19:34:37 i am not even listed. that makes it a good month so far. 19:34:59 Hellooo Oo Though I've been here for a short while already ^^' 19:34:59 There definitely are people in here who I would not recognize if they talked 19:35:25 Including you >.> 19:35:27 No offense 19:35:49 i guess this place is getting SO POPULAR 19:36:00 I don't talk here much really, sowiii 19:37:07 thats good 19:37:30 I'd recognise Frooxius 19:37:31 the people who do talk a lot get boring 19:37:42 just talk a little bit 19:37:45 keep things fresh 19:39:11 my IRC bot is now infinitely better than lambdabot. 19:39:21 aside from the lack of Haskell-related features. 19:39:49 but, since its messaging system actually checks if the nick is registered, it's somewhat secure. 19:39:50 fungot, comment? 19:39:50 Ngevd: i'm jeff thomas, from visual concepts. i made this bear. he's got the plague. 19:40:08 -!- Phantom__Hoover has quit (Remote host closed the connection). 19:40:11 fungot thinks your bot has the plague. 19:40:12 Ngevd: it has been my life's dream to construct a lego replica of my dead wife. it was like some some fucked up escher painting, " the perfect eternal jackass." it's like a copyright infringement kit. 19:40:26 ^style 19:40:26 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa* qwantz sms speeches ss wp youtube 19:40:43 Fungot has dreams. Your bot is an eternal jackass 19:40:46 ^style pa 19:40:46 Selected style: pa (around 1200 transcribed Penny Arcade comics) 19:41:04 thats a really weird post 19:41:49 It has been my life's dream to construct a lego replica of my dead wife. It was like some some fucked up Escher painting, " the perfect eternal jackass." 19:42:27 what are you guys doing to fungot 19:42:27 itidus21: help us! oh god! it's gotten ahold of me! verily did i download the detonator tnt drivers, and now compatibility problems! what's next, sony a little hand that flips you off? 19:45:25 ^style homestuck 19:45:25 Selected style: homestuck (Homestuck pages 1901-4673) 19:45:32 fungot, feeling better? 19:45:32 Ngevd: you you might be here too. but for trolls, the challenge is particularly tortuous for young trolls, who must reconcile the wide 0rbit 0f 0ur s00n 19:46:53 * sebbu slaps HackEgo around a bit with a very large trout 19:47:12 kallisti, is your bot online? 19:48:43 Ngevd: it's not on freenode. 19:48:59 at the moment it's basically not very useful. 19:49:11 Better than my bot 19:49:19 Pietbot just joins and lurks for a bit 19:49:23 Then I turn it off 19:49:24 good bot. 19:49:57 that is the best kind of bot 19:55:34 Just made a Fractran interpreter 19:56:29 fractran is p cool 19:56:55 kmc, you awake? 19:58:47 -!- Phantom_Hoover has joined. 19:59:06 Phantom update 20:10:55 -!- MSleep has changed nick to MDude. 20:12:03 :t flip (ap . ((.) flip . ((.) ((.) (.)) . (.)))) id 20:12:04 forall a b (f :: * -> *). (Functor f) => (a -> a -> b) -> f a -> f (f b) 20:13:15 :t flip (ap . ((.) flip . ((.) ((.) (.)) . (.)))) id :: (b -> b -> c) -> (a -> b) -> a -> a -> c 20:13:16 forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c 20:13:20 :t on 20:13:22 forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c 20:13:30 @src on 20:13:30 (*) `on` f = \x y -> f x * f y 20:14:07 They clearly missed a big idea with my version 20:18:03 Ngevd, Phantom_Hoover kallisti upasd 20:18:27 Good name 20:20:27 "You are however QUITE GREAT at the esoteric sciences", "Your coding cred is totes ridic" 20:20:33 She's one of us! 20:20:59 hmm, I'm a little concerned that elliott hasn't come back after yesterday 20:21:06 What did he do yesterday? 20:21:10 ais523: I wouldn't worry about it. 20:21:27 Ngevd: spamming repeatedly, then attempting to evade a +q on him 20:21:47 Ngevd: check out the logs. it's wonderful. 20:22:04 (I mean that sarcastically) 20:22:11 My name prediction was wrong 20:23:15 -!- monqy has joined. 20:24:04 -!- Vorpal has quit (Ping timeout: 276 seconds). 20:24:39 -!- pikhq_ has joined. 20:24:49 -!- pikhq has quit (Ping timeout: 252 seconds). 20:28:04 I reckon Di-Stri is called Dick 20:30:55 A lot of people have been reckoning that 20:31:03 Or maybe Dirk 20:31:28 Dill? 20:32:00 dick strickland 20:32:24 Ngevd, what do you think about the unusual properties of the session? 20:33:54 Jack Noir seems even more ambitious? 20:34:09 Nope 20:34:11 Something else 20:34:20 It's in the End of Act 6 Intermission 1 20:34:26 Oh, that 20:34:27 Hard to notice 20:35:30 Are we certain we have the same that in mind? 20:35:44 No 20:35:47 Msg me 20:36:32 -!- oerjan has joined. 20:42:25 sorry, mischan <-- is that recursive or not? 20:42:37 because i cannot see what it referenced 20:42:58 I thought it'd be amusing to send it to a channel with no referent and see what people concluded 20:43:18 yay! 20:44:39 wait, if we treat it as recursive, then it's a mischan if and only if it isn't... 20:45:39 You know you have a problem when you consider "watched several episodes of anime" an accomplishment. 20:45:42 there's also the problem of establishing, if it's a mischan, what the /correct/ channel is 20:45:56 clearly #esoteric is probably the most appropriate place for recursive mischans… 20:46:23 pikhq_: what if you are regretting wasting your time by not having watched much anime? 20:46:25 ais523: :) 20:46:55 oerjan: I was regretting sinking time in complete and utter time-wastes. 20:47:10 At least watching things in a foreign language I'm learning aren't *complete* wastes of time. 20:47:27 Yeaaaah, breaks are really effing bad for me. 20:47:29 pikhq_: what if you're learning the foreign language just so you can watch things in it? 20:47:49 and break from what? 20:47:56 School. 20:48:16 ais523: Still more productive than "why the fuck have I been on this site for several hours". :P 20:49:49 Reddit is especially bad for me. 20:50:41 -!- zzo38 has quit (Quit: Of course, Baba, that's what constitutes a computer!!! How silly of me.). 20:51:48 I get the feeling that I've won something, though I'm not sure what. 20:52:23 Jafet, check your lotto numbers? And the spam folder of you email? 20:52:27 so heres something i was just thinking... n = n | +(n) | -(n); n = 0; +(n) = 1; -(n) = -1; +(+(n)) = 2; 20:52:34 zzo38: my idea has died. ill have a look at your chess variant <-- hey i'm sure reinventing zzo38's ideas is a step up 20:52:43 i am not sure to what degree it is dumb 20:53:41 itidus21: needs more clarification 20:53:57 humm 20:54:14 i guess it wasnt as clear as it seemed in my head 20:54:39 n = n | increment(n) | decrement(n) 20:54:52 i am not good at defining these things 20:55:01 oh right 20:55:07 Is increment(decrement(n)) legal? 20:55:10 so the n's after n = 0 are really 0's 20:55:13 yup 20:55:21 hmm 20:55:29 i mean, yup @ ngevd 20:55:41 * kallisti just got into a debate over whether typing /ns in an IRC client is expected behavior over all clients/servers 20:55:53 well.. uhhh those latter parts are how it can be mapped to numbers 20:56:08 or rather, typing /ns and getting nickserv 20:56:31 it doesnt mean much really.. 20:56:34 itidus21: it resembles that data Nat = Zero | Succ Nat thing in haskell, but extended to integers 20:56:37 kallisti: there are definitely client/server combos for which it doesn't work 20:56:51 ais523: yes irssi being one. 20:56:51 this client, if given /ns, sends an NS command to the server 20:57:01 You expect any behaviour over all clients or servers? 20:57:02 which Freenode interprets as PRIVMSG NickServ 20:57:07 ais523: I was told thatirssi "improperly handles" / commands 20:57:09 I said it does not. :P 20:57:10 but not all servers do 20:57:21 kallisti: I think you're right here 20:57:33 oerjan: what i had in mind was a unary string of 1's .. and i thought.. ok what can i do to a string of 1's.. i can either add a 1 or take a 1 away... 20:57:34 NS is nonstandard anyway isn't it? 20:57:44 but what happens if i reach zero 1's 20:57:44 the "expected behavior" is that if you privmsg a service you get a reply. 20:57:57 my irssi has alias ns msg nickserv 20:58:08 other problems with sending raw commands on / : you have to wait for some kind of reply 20:58:12 oerjan: also /quote 20:58:24 but if i don't actually specify how many 1's there are, then i can increment or decrement freely 20:59:05 so what happens in mIRC if you mistype a / command while you've just recently disconnect from a server? Does it wait for a reply until a timeout? 20:59:14 also it means your / commands are server-dependent. 20:59:20 which is gross. 21:01:53 itidus21: that's what's called a group action... any group (such as the integers) can be considered to act on itself, so the result of letting m act on n is m+n. 21:02:47 oerjan: it's abit ridiculous, but really it's intended for unary lambda calculus programming :D 21:02:49 the rest is just changing representation 21:03:47 mhm 21:03:49 the problem is it's even less efficient than the actual 1's 21:04:42 > let getPowersOf n xs = filter (\x -> ((==) `on` ($ (logBase `on` fromIntegral) n x)) ceiling floor) xs in getPowersOf 2 [1..1000] 21:04:43 [1,2,4,8,16,32,64,128,256,512] 21:05:13 There's almost certainly an easier way of doing the getPowersOf function 21:05:21 you'd think 21:05:30 > iterate (*2) 1 21:05:31 [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,... 21:05:45 No, I want it as a filter 21:05:52 So really I want isPowerOf 21:05:52 huh 21:05:59 Actually 21:06:04 Nah 21:06:29 yeah.. unary lambda programming is very useless 21:06:29 isPowerOf :: Integer -> Integer -> Bool 21:06:34 i have decided 21:06:37 itidus21, WRONG 21:08:25 Ngevd: i fear the logBase method might break on large numbers due to bad rounding at some point 21:08:31 > let getPowersOf n xs = filter (\x -> ((==) `on` ($ (logBase `on` fromIntegral) n x)) ceiling floor) xs in getPowersOf 3 [1,6..1000] 21:08:32 [1,81] 21:08:33 i am pretty silly.. 21:08:45 ais523: what other servers do not send raw commands like irssi. 21:08:47 er 21:08:48 clients 21:08:50 oerjan, can you suggest any alternatives that work better? 21:09:01 kallisti: I think /most/ don't 21:09:06 some translate /ns into /msg nickserv themselves 21:09:13 ais523: ah, this guy is saying most do. 21:09:15 and others pass commands they don't know through literally and let the server translate them 21:09:19 ais523: he must be talking about mIRC 21:09:20 like the one I use 21:09:26 well you _could_ do iterated division by 2, that should give a _correct_ result, but might be slower. 21:09:27 a `isPowerOf` b = a `elem` iterate (*b) 1 21:10:06 > let a `isPowerOf` b = a `elem` iterate (*b) 1 in 10 `isPowerOf` 3 21:10:10 mueval-core: Time limit exceeded 21:10:20 Deewiant, I already thought of that 21:10:35 a `isPowerOf` b = a `elem` takeWhile (<=a) (iterate (*b) 1) 21:10:48 Hmm... 21:11:12 > let a `isPowerOf` b = a `elem` takeWhile (<=a) (iterate (*b) 1) in 10 `isPowerOf` 3 21:11:13 False 21:11:16 :D 21:11:21 I'll take 12! 21:11:38 the logBase method would probably be particularly bad for powers _other_ than 2 21:11:43 er 21:11:44 @src isPowerOf 21:11:45 Source not found. You untyped fool! 21:11:47 bases 21:12:17 I'd have thought it would be e rather that 2 21:13:16 (Note: that takeWhile fails when a is negative, e.g. (-27) `isPowerOf` (-3)) 21:13:47 Deewiant, it's just really for personal use 21:15:36 Ngevd: um the point is Double is in practice base 2 based 21:15:56 -!- zzo38 has joined. 21:15:59 so powers of 2 have a good chance of being exactly represented 21:16:53 logBase is defined in terms of log, which is base e 21:17:13 @src logBase 21:17:14 Source not found. Are you on drugs? 21:17:24 @src RealFloat 21:17:25 Source not found. 21:17:31 @src Floating 21:17:31 class (Fractional a) => Floating a where 21:17:31 pi :: a 21:17:31 exp, log, sqrt, sin, cos, tan :: a -> a 21:17:31 asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh :: a -> a 21:17:31 (**), logBase :: a -> a -> a 21:17:59 Ngevd: it's a method, so it's likely to be specially treated 21:19:09 > map (logBase 2) [2^200 - 1 .. 2^200 + 1] 21:19:09 [200.0,200.0,200.0,200.0,200.0,200.0,200.0,200.0,200.0,200.0,200.0,200.0,20... 21:19:19 not _overly_ promising :P 21:19:37 It isn't, I'm looking at the source 21:19:49 the source where? 21:19:54 http://www.haskell.org/ghc/docs/7.0-latest/html/libraries/base-4.3.1.0/src/GHC-Float.html#logBase 21:20:13 For both Float and Double, no special-casing in logBase 21:20:28 ok 21:24:44 a `isPowerOf` b = a == head (dropWhile (< a) (iterate (*b) 1)) 21:26:38 getPowersOf = filter . (flip isPowerOf) 21:28:17 So, I guess gelb is thermodynamically inaccurate. Electron-hole pairs can spontaneously vanish everywhere, but they can only spontaneously generate in specific places. 21:34:08 -!- CHeReP has joined. 21:37:14 -!- oerjan has set topic: No topic today | http://codu.org/logs/_esoteric/. 21:43:17 -!- Gregor has set topic: No topic Tuesday! | Wait, it's not Tuesday? Damn it! | http://codu.org/logs/_esoteric/. 21:45:20 :k [::] 21:45:21 parse error on input `::' 21:45:26 hmph 21:45:40 -!- jix has quit (Remote host closed the connection). 21:45:48 Have I stumbled upon a mystery? 21:46:16 i am thinking something like one of the parallelizable list extensions 21:46:58 that's what I was told 21:47:44 yes, it's parallel arrays http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell 21:50:51 Well, mystery solved 21:51:17 :k [:Int:] 21:51:18 parse error on input `:' 21:51:25 * kallisti should learn prolog one of these days. 21:51:47 i think it's still very experimental 21:51:55 lambdabot won't have it 21:51:57 Well, it's time for sleeps 21:52:00 -!- Ngevd has quit (Quit: Goodbye). 21:52:05 What would it do if you have negative types in Haskell, that work inside-out and have a set of prohibited values instead of allowed, so it prohibit value of other type, somehow? 21:52:31 zzo38: it would be difficult to know what operations are available to those types. 21:52:49 kallisti: Yes I know it is difficult 21:53:33 * kallisti has thought about having essentially a type-level logic programming language to allow things like unions, differences, intersections, etc. 21:54:22 prohibiting things at the value-level would mostly be a runtime check I would think. 21:54:33 -!- Jafet has quit (Quit: Leaving.). 21:54:48 No, I was thinking of doing something that makes it a compile error not a runtime check 21:58:22 -!- ais523 has quit (Remote host closed the connection). 21:58:48 But I am unsure how. 22:00:47 zzo38: you would need the set of values to be described by a type 22:00:48 I think 22:01:03 also 22:01:17 you would need to know the "smallest subset" that a value occupies. 22:01:41 for example, if you know a value is an integer you can't determine that it's a natural, but you can go the other direction. 22:03:24 -!- oerjan has set topic: No topic Tuesday! | Wait, it's not Tuesday? Damn it! | So, what is blegnian motion, anyway? | http://codu.org/logs/_esoteric/. 22:05:56 Just because it is not Tuesday, does not mean it is Wednesday! 22:06:15 ain't that the truth! 22:06:18 -!- zzo38 has quit (Remote host closed the connection). 22:09:47 `words --norwegian 25 22:09:53 forbund arbeidelse seformelshopparas verkningens gasjone hausenta mengene braktstyrelsertikasse besken straktskingen opernessevnt smÃ¥rste bedrapen immereningsgivelse botste ølbarnes inner biledienestenttig fløtning petalandskat spennstene bedtype kvadragsblansmotie hornattere ene 22:13:32 forbund, bedtype (probably) and ene are real words. fløtning _may_ be, i'm not sure. and botste _could_ mean penance tea 22:13:59 .. 22:14:00 Ølbarnes probably isn't, but it _should_ be a place name. 22:14:42 -!- _Slereah has quit (Ping timeout: 240 seconds). 22:17:05 there are hits for fløtning but i think they're misspellings of fløting (timber floating, mainly) 22:17:32 oh it's an alternative spelling. 22:22:22 -!- _Slereah has joined. 22:25:22 kallisti: this is the list of languages so far taken just now from the esolang wiki .. http://hpaste.org/56483 would it work better with unusual character words excluded and spaces excluded? 22:25:46 i heard theres 8000+ actual languages.. 22:25:59 no need to remove non-alphanumeric characters 22:26:05 hmm 22:26:09 spaces are an issue though 22:26:16 ok cool 22:27:02 Hascalgorth, here we come! 22:27:21 oh wait only esolangs 22:27:33 not sure how to handle spaces actually. 22:27:43 Befuck already exists, i think 22:27:52 heres an updated version without spaces http://hpaste.org/56483 22:28:13 well removing spaces isn't really all that "accurate" either. 22:28:16 but it would work. 22:28:28 its better than dropping them out altogether :D 22:28:28 could just substitute all the spaces with something else. 22:28:40 I wonder if my code splits by non-breaking space. 22:30:25 i could just remove the ones with spaces 22:30:29 nope 22:30:40 !perl print "\x{C2A0}" 22:30:41 Wide character in print at /tmp/input.10429 line 1. \ 슠 22:30:53 !perl use v5.10; print "\x{C2A0}" 22:30:54 Wide character in print at /tmp/input.10474 line 1. \ 슠 22:31:12 !perl use v5.10; use open qw (:encoding(UTF-8) :std); print chr "\x{C2A0}" 22:31:13 No output. 22:31:20 !perl use v5.10; use open qw (:encoding(UTF-8) :std); print ord "\x{C2A0}" 22:31:21 49824 22:31:32 uh..... 22:31:48 the problem is that spaces do actually delimit actual words 22:31:56 they do? 22:32:04 oh 22:32:05 yes they do 22:32:07 I misread 22:32:29 could split those ones with spaces into several lines 22:33:26 hm it would seem that my code does split by non-breaking space as well. 22:33:27 -!- Sgeo has quit (Quit: Leaving). 22:33:42 well it does work on words :P 22:33:57 -!- Sgeo has joined. 22:35:23 I'm not entirely sure how to write a non-breaking space in perl 22:35:44 so ill try this and you can look at the list and see what you think 22:35:47 !perl use HTML::Entities; 22:35:47 Can't locate HTML/Entities.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /tmp/input.10614 line 1. \ BEGIN failed--compilation aborted at /tmp/input.10614 line 1. 22:35:50 baaah 22:36:13 itidus21: what are you trying. 22:36:28 oh i forgot.. if it delimits with spaces i don't need to replace the spaces with newlines 22:37:16 but i will anyway 22:38:17 ah \240 22:38:18 apparently 22:38:29 I'm guessing that's octal or something 22:38:58 > ord '\240' 22:38:59 240 22:39:02 hm 22:39:40 Haskell does not use octal, I guess. 22:40:50 so instead of splitting by \s 22:41:02 I can just split by [^\S\240] 22:41:15 and that will allow non-breaking space to stand in for a space. 22:41:28 !perl print "\240" 22:41:29 ​  22:41:33 >_> 22:41:46 !perl use open qw(encoding(UTF-8) :std); print "\240" 22:41:47 ​  22:41:50 yep 22:42:28 heres the list with spaces anyway http://hpaste.org/56487 22:43:32 one problem with the symbolically named languages is that 22:43:40 if the algorithm picks their starting character 22:43:45 it will pretty much match the entire string 22:43:49 because nothing else uses it. 22:43:57 but... oh well. 22:44:45 its a very small sample of actual programming languages of course 22:44:54 er, does hpaste have a raw link? 22:45:05 yup, on annotate 22:45:33 i could have linked directly to that but eh 22:47:07 kallisti: clearly you need a "fnord" character. hth. 22:48:12 nonsense 22:48:36 my existing algorithm is applicable to all possible datasets 22:48:40 no exceptions. 22:54:15 `fetch http://dl.dropbox.com/u/16495819/construct_grams.pl 22:54:19 2012-01-15 22:54:18 URL:http://dl.dropbox.com/u/16495819/construct_grams.pl [1289/1289] -> "construct_grams.pl" [1] 22:54:23 `fetch http://dl.dropbox.com/u/16495819/esolangs.txt 22:54:27 2012-01-15 22:54:26 URL:http://dl.dropbox.com/u/16495819/esolangs.txt [5810/5810] -> "esolangs.txt" [1] 22:54:55 `run chmod +x construct_grams.pl; mv construct_grams.pl share 22:54:58 No output. 22:56:25 `run share/construct_grams.pl -m share/WordData/Esolangs -f '.' esolangs.txt 22:56:28 utf8 "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ utf8 "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ utf8 "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ utf8 "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ utf8 "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ utf8 "\xB0" does not map to Unicode at 22:56:52 !perl print ord "\xB0" 22:56:53 176 22:57:03 erm 22:58:52 !perl use Encode; @list = Encode->encodings(); print "@list" 22:58:53 ascii ascii-ctrl iso-8859-1 null utf-8-strict utf8 22:59:05 `run share/construct_grams.pl -e 'ascii' -m share/WordData/Esolangs -f '.' esolangs.txt 22:59:10 ascii "\xE2" does not map to Unicode at share/construct_grams.pl line 19. \ ascii "\x89" does not map to Unicode at share/construct_grams.pl line 19. \ ascii "\xA0" does not map to Unicode at share/construct_grams.pl line 19. \ ascii "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ ascii "\xB0" does not map to Unicode at share/construct_grams.pl line 19. \ ascii "\xB0" does not map to Unicode at 22:59:11 -!- Phantom_Hoover has quit (Quit: Leaving). 22:59:27 oh right 22:59:37 `run file esolangs.txt 22:59:41 esolangs.txt: Non-ISO extended-ASCII text 23:00:19 um... 23:01:44 I'm not entirely sure which encoding I want. 23:03:29 `run share/construct_grams.pl -e 'ascii-ctrl' -m share/WordData/Esolangs -f '.' esolangs.txt 23:03:33 ascii-ctrl "\x30" does not map to Unicode at share/construct_grams.pl line 19. \ ascii-ctrl "\x31" does not map to Unicode at share/construct_grams.pl line 19. \ ascii-ctrl "\x5F" does not map to Unicode at share/construct_grams.pl line 19. \ ascii-ctrl "\x30" does not map to Unicode at share/construct_grams.pl line 19. \ ascii-ctrl "\x78" does not map to Unicode at share/construct_grams.pl line 19. \ ascii-ctrl "\x32" 23:04:05 ...why is this not utf-8 23:04:46 because its not 23:05:20 its ANSI :-s 23:05:32 i dunno if hpaste changes it or anything 23:05:41 uh 23:05:50 what is ANSI 23:05:54 i dont know 23:05:56 hmmm 23:06:07 maybe i should try and fix it 23:06:10 kallisti, update 23:06:14 hpaste most likely changes it to utf-8... 23:06:26 or, well... HTML 23:06:27 entities 23:06:32 which chrome then probably 23:06:33 converts to utf-8 23:06:53 KILL ALL PONIES 23:08:00 hmmm 23:08:08 okay so I think I'm using the wrong character for non-breaking space. 23:08:32 i used notepad in the first place 23:08:39 so the troubles may have started there 23:08:39 itidus21: what you used is irrelevant 23:09:26 ok 23:11:57 this should not be this difficult... 23:13:35 -!- GreaseMonkey has joined. 23:13:35 -!- GreaseMonkey has quit (Changing host). 23:13:36 -!- GreaseMonkey has joined. 23:14:42 `fetch http://dl.dropbox.com/u/16495819/esolangs.txt 23:14:45 2012-01-15 23:14:44 URL:http://dl.dropbox.com/u/16495819/esolangs.txt [5811/5811] -> "esolangs.txt.1" [1] 23:14:51 `run file esolangs.txt 23:14:55 esolangs.txt: Non-ISO extended-ASCII text 23:16:56 life is difficult 23:17:00 problems are merely the proof 23:17:05 * oerjan swats itidus21 -----### 23:17:09 DON'T REMIND ME 23:17:31 life is easy :-D 23:17:37 yay 23:18:01 you can get hot food and cold drinks without wasting your leisure and academic work hours 23:18:26 kallisti: er note the .1 at end of downloaded filename 23:18:36 `run file esolangs.txt.1 23:18:39 esolangs.txt.1: Non-ISO extended-ASCII text 23:18:46 as if that helped 23:18:51 -!- jix has joined. 23:21:06 oerjan: yeah it's still an issue 23:21:09 may be a perl problem 23:21:26 `run rm esolangs.txt* 23:21:30 No output. 23:22:16 afk 23:27:10 Sgeo, i'm awake now 23:32:56 kmc, the thing about organizing each subset of attributes is that it adds stuff that the person using my wrapper needs to know beyond knowledge of the C SDK and how to translate that to the wrapper 23:33:15 Is an HList record really that bad? 23:34:18 `fetch http://dl.dropbox.com/u/16495819/esolangs.txt 23:34:21 2012-01-15 23:34:21 URL:http://dl.dropbox.com/u/16495819/esolangs.txt [5939/5939] -> "esolangs.txt" [1] 23:34:35 Sgeo, the thing they need to know is the definition of that record, which is in the docs for your library? 23:35:04 It wouldn't be better if they just needed to know the C attributes? 23:35:17 `run share/construct_grams.pl -m share/WordData/Esolangs -f '.' esolangs.txt 23:35:21 can't create Data/Share/WordData/Esolangs: No such file or directory at share/construct_grams.pl line 49 \ Constructing Share/WordData/Esolangs dataset from UTF-8 \ Filter: (?i-xsm:.) \ Reading esolangs.txt... 23:35:24 Sgeo, I'm not sure 23:35:52 Sgeo, when I've written FFI bindings I usually don't assume the user knows the corresponding C library 23:36:02 i want to provide an idiomatic Haskell interface 23:37:09 we've already established that the C library is terrible 23:37:12 That sounds like more work... although I wonder if there is a way I can automate such things 23:37:25 yeah it's more work to write good software 23:37:37 `fetch http://dl.dropbox.com/u/16495819/construct_grams.pl 23:37:40 2012-01-15 23:37:40 URL:http://dl.dropbox.com/u/16495819/construct_grams.pl [1284/1284] -> "construct_grams.pl" [1] 23:37:54 `run chmod +x construct_grams.pl 23:37:57 No output. 23:38:02 i mean it's ok to do a low-level binding to the C functions, and leave the "idiomatic haskell interface" part to someone else 23:38:05 it's obviously not as good 23:38:09 `run ./construct_grams.pl -m share/WordData/Esolangs -f '.' esolangs.txt 23:38:13 but in that case you wouldn't use HList either 23:38:13 can't create Share/WordData/Esolangs: No such file or directory at ./construct_grams.pl line 49 \ Constructing Share/WordData/Esolangs dataset from UTF-8 \ Filter: (?i-xsm:.) \ Reading esolangs.txt... 23:38:19 oh 23:38:25 right my script is dumb 23:38:32 `run ./construct_grams.pl -m Esolangs -f '.' esolangs.txt 23:38:36 Constructing Esolangs dataset from UTF-8 \ Filter: (?i-xsm:.) \ Reading esolangs.txt... 23:38:44 `ls 23:38:47 Esolangs \ bin \ canary \ construct_grams.pl \ esolangs.txt \ karma \ lib \ main \ paste \ quotes \ searchlog.hi \ searchlog.hs \ searchlog.o \ share \ test.pl \ wisdom 23:38:53 kmc, is there a way for me to define a structure while giving extra data to Template Haskell code that might read it? 23:38:56 `run mv Esolangs share/WordData 23:39:00 No output. 23:39:14 `paste bin/words 23:39:17 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18049 23:39:55 Sgeo, I haven't used HList, I think it's not terrible, but it is messy and complicated 23:40:11 `fetch http://dl.dropbox.com/u/16495819/words.pl 23:40:14 2012-01-15 23:40:14 URL:http://dl.dropbox.com/u/16495819/words.pl [4608/4608] -> "words.pl" [1] 23:40:15 http://hackage.haskell.org/package/records might be a better choice 23:40:27 but really, it sounds like you're trying to make this fancier than it needs to be 23:40:32 `run head -n 2 words.pl 23:40:35 ​#!/usr/bin/perl \ use strict; use warnings; 23:40:45 `run chmod +x words.pl mv words.pl bin/words 23:40:48 chmod: cannot access `mv': No such file or directory 23:40:54 `run chmod +x words.pl; mv words.pl bin/words 23:40:57 No output. 23:40:58 i don't know 23:41:08 `words --esolangs 25 23:41:10 imagine the API someone would expect, without knowing anything about the C library 23:41:12 emorscript youarel sceql java2k plato trits jump q-ballmachip wtfzomfg excon 0x29c hat2.0 automouse q-bal bytebytejump epl smillii bitran ora quating thrat suble automouflabtized arrow stree 23:41:26 -!- pikhq has joined. 23:41:35 kmc, that's trickier than it sounds, there are some really, really stupid bits 23:41:43 would they expect a fancy record system that requires 12 GHC extensions 23:41:52 or would they expect an ordinary haskell record for each event type 23:41:54 most of those are just esolang names.... 23:42:33 automouflabtized is not 23:42:40 In order to receive events about objects being added or deleted, I need to query all objects in the area first. Querying elsewhere will destroy my ability to retrieve updates in the original area 23:43:02 yeah I think 3-grams is just a bit too good at reproducing actual elements of a small dataset like this. 23:43:11 actually 4-grams 23:43:34 `words --esolangs 25 23:43:38 braint epoaq smurin parnand twimp 1cnisc skul wikicyclic infche uncomb ook object barint th rube vela cupid chanique bub unis ~ unreall befal attoasm devil 23:43:57 I am completely unable to distinguish made-up esolang names from real esolang names 23:44:00 help. 23:44:15 There should be an esolang named unamb 23:44:17 -!- pikhq_ has quit (Ping timeout: 252 seconds). 23:44:20 Sgeo, :( 23:44:29 itidus21: ^ 23:44:40 `ls 23:44:43 bin \ canary \ construct_grams.pl \ esolangs.txt \ karma \ lib \ main \ paste \ quotes \ searchlog.hi \ searchlog.hs \ searchlog.o \ share \ test.pl \ wisdom 23:44:46 `ls share 23:44:49 WordData \ awesome \ construct_grams.pl \ units.dat 23:44:50 Previous statement not to be construed as a slur against unamb. 23:45:31 `run mv construct_grams.pl share; mv esolangs.txt share; 23:45:35 No output. 23:45:48 `rm *.hs *.hi *.o *.pl 23:45:51 rm: cannot remove `*.hs *.hi *.o *.pl': No such file or directory 23:45:57 `run rm *.hs *.hi *.o *.pl 23:46:00 No output. 23:46:00 `ls 23:46:04 bin \ canary \ karma \ lib \ main \ paste \ quotes \ share \ wisdom 23:46:48 unfortunately I still have to modify the script everytime I add a dataset 23:51:40 `run sort share/esolangs.txt | diff - share/esolangs.txt 23:51:43 1,8d0 \ < \ < (()) \ < () \ < *W \ < .Gertrude \ < .box \ < .yacuabll \ < /// \ 13d4 \ < 1L \ 14a6 \ > 1L \ 16d7 \ < 2-ill \ 19d9 \ < 2D-Reverse \ 21c11,12 \ < 2L \ --- \ > 2D-Reverse \ > 2-ill \ 23c14 \ < 3D \ --- \ > 2L \ 24a16 \ > 3D \ 29c21,24 \ < :≠ \ --- \ > *W \ > .box \ > .Gertrude \ > .yacuabll \ 30a26,32 \ > /// \ > () \ > (()) \ > [] \ > ] \ > ~ \ > :≠ \ 32a35 \ > Aargh! \ 36a40 \ > Addleq \ 39,44d42 23:51:49 grmbl 23:51:58 hm i guess 23:54:16 `run sort share/esolangs.txt >ess 23:54:19 No output. 23:55:15 `run echo 'braint epoaq smurin parnand twimp 1cnisc skul wikicyclic infche uncomb ook object barint th rube vela cupid chanique bub unis ~ unreall befal attoasm devil' | xargs -1 echo | sort | diff - ess 23:55:19 xargs: invalid option -- '1' \ Usage: xargs [-0prtx] [--interactive] [--null] [-d|--delimiter=delim] \ [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] \ [-L max-lines] [-l[max-lines]] [--max-lines[=max-lines]] \ [-I replace-str] [-i[replace-str]] [--replace[=replace-str]] \ [-n max-args] [--max-args=max-args] \ [-s max-chars] [--max-chars=max-chars] \ [-P max-procs] 23:55:35 :( 23:56:04 `run echo 'braint epoaq smurin parnand twimp 1cnisc skul wikicyclic infche uncomb ook object barint th rube vela cupid chanique bub unis ~ unreall befal attoasm devil' | xargs -n1 echo | sort | diff - ess 23:56:08 1,24c1,694 \ < 1cnisc \ < attoasm \ < barint \ < befal \ < braint \ < bub \ < chanique \ < cupid \ < devil \ < epoaq \ < infche \ < object \ < ook \ < parnand \ < rube \ < skul \ < smurin \ < th \ < twimp \ < uncomb \ < unis \ < unreall \ < vela \ < wikicyclic \ --- \ > \ > (()) \ > () \ > *W \ > .Gertrude \ > .box \ > .yacuabll \ > /// \ > 01_ \ > 0x29A \ > 0x29C \ > 1337 \ > 1L \ > 1cnis \ > 1mpr0mp2 \ > 2-ill \ > 23:56:12 kmc, is it sufficiently Haskelly to return a tuple like (IO Something, IO ()) where the first one keeps retrieving things and the second closes it? 23:56:17 erp 23:56:31 Or could I do that better 23:57:21 Sgeo: slightly resembles conduit 23:57:41 except the Something is a bit more complex 23:57:45 also a function 23:57:51 instead of IO Something 23:57:54 oh hm 23:58:34 note that this isn't really an advocation of doing such. just an observation. :P 23:58:35 Well, I'm just taking what would be an event-based API and turning it into something like polling 23:58:54 Which I think is easier to write combinators to turn that back into something with events if that's really needed 23:59:32 this _should_ be simpler to achieve than this :(